JSFlak

From Esolang
Jump to navigation Jump to search

by User:ZCX islptng
This esolang's purpose is to confuse JS programmers. File extention is . js note that space!

The esolang, inspired by Brain-Flak, uses 6 commands, same as JSFuck.

However, the syntax is completely different.

Syntax

This esolang uses 3 stacks, call them X,Y and Z.
Nilads:

() pops a value from active stack and return it.
[] pops a value from active stack and return negated it.

Monads:

(a) Push a into active stack and return it.
[a] Repeat executing a until the top of active stack equal or less than zero. Returns the top value negated.

Tools:

! toggles active stack (Default is X, !a to be Y, !!a to be Z). A single ! returns 1.
+ connects 2 commands, returns their sum.

No-connections between 2 commands:

a() prints the value a returns in ASCII.
a[] prints in number.
+() inputs char and returns its ASCII.
+[] inputs number and return it.

Examples

A+B problem

(+[])+(+[])+(()+())+()[]

Interpreter

Try it online!