!@$%^&*()+=

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

This is a language based on !@$%^&*()+.
Because the creator, User:Xyzzy, did not have much time (he's still in school), he only left us with a text file for us to parse.
Here's the text file. ALL OF IT.

NOTES:
In addition to the stack, an artificial memory is present. This behaves like normal memory except that each cell contains a number instead of a byte.
=========
~ bitwise not
` implementation dependent
! pops and output as number on stack
@ implementation dependent
# implementation dependent
$ bitwise xor
% double top of stack
^ manipulate: pops a number, and pushes the nth item on stack to top. if n is negative, pop the previously pushed stack element 
& bitwise and
* multiplication
( if top of stack is zero goto matching ). pops top of stack.
) if top of stack is nonzero goto maching (. pops top of stack.
- subtraction (2nd on stack minus 1st on stack)
_ increment
+ addition
= push 1 if top of stack is 0, 0 otherwise.
[ like ( but if nonzero
] like ) but if zero
\ exit from loop
{ push code pointer to stack
} pop and set code pointer to top of stack
| bitwise or
: pop [addr], then push value at [addr] (MEMORY)
; pop [number] then pop [addr], set [addr] to [number] (MEMORY)
*NOTE FOR : AND ;* if [addr] is out of bounds, then the program halts. DO NOT MESS UP YOUR POINTERS
" implementation dependent
' implementation dependent
< push 1 if top of stack is larger than 0, 0 otherwise.
> push 1 if top of stack is smaller than 0, 0 otherwise.
? pushes input as number onto stack
, pushes input as char onto stack
. pop and output as char
/ floored divison (2nd on stack divided by 1st on stack)