!@$%^&*()+=
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.
top of stack is 1st on stack, then 2nd on stack, and so on...
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 ` idk ! pops and output as number on stack @ implementation dependent # push zero onto stack $ bitwise xor % double top of stack ^ manipulate: pops a number, and pushes the nth item on stack (from the top) 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)
more notes
The point of this esolang is to make use of literally every symbol I could type on my keyboard lol --Xyzzy (talk) 12:24, 24 December 2024 (UTC)
How to get numbers:
numbers begin with # use #_^+ to shift 0 into number and #_^+_ to shift 1 into the number low enough numbers can use _ to slowly work your way up: #,#_,#__,#___,... some people can also make good use of *.
useful operations:
dup: #_^ swap: ##__-^ rot: ##___-^ over: #__^ pop: #_^--