EndeyshentLabs / EXSES

WIP. Yet another questionable programming language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CMake

EXSES

WARNING: THIS PROGRAMMING LANGUAGE IS UNFINISHED! EVERYTHING MAY CHANGE IN THE FUTURE!

EXSES logp

EXSES - smol stack-oriented concatenative programming language. Development have just started: do not expect something revolutionary new.

Example

Hello, World!

[Hello,\sWorld!] !

Basic

20 10 + ! # Will output the '30'
# Raise 5 to the power of 2
5 & # `&` will duplicate top value e.g '5'
* # Multiply
! # Output

Control flow

500 80 > ( # if 500 is less than 80 do following code block
    99 !
) # close the block

More advanced

Bindings

# bind 500 to '1100'. NOTE: You can use strings as names
1100 500 <-
# bind 80 to '1101'
1101 80 <-

# load value of '1100' (e.g 500)
1100 ^
# load value of '1101' (e.g 80)
1101 ^
- # subtract
! # print (420)

Procedures

1100 ' # int  # create a procedure named "1100". NOTE: You can use strings as names
    80 - ! # body of the procedure. subtract 80 from the value that was on top of the stack when procedure was invoked and print the result
" # close the procedure

500 1100 : # `:` call a procedure

Build-it

Dependencies:

  • CMake >= 3.14
  • Any C++ compiler with C++20 (I use GCC 12.2)
$ cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=Release
$ cmake --build build --config Release
$ vim test.xes
... WRITING ...
$ ./build/exsi test.xes

About

WIP. Yet another questionable programming language

License:Other


Languages

Language:C++ 86.8%Language:Vim Script 5.8%Language:Shell 4.7%Language:CMake 2.6%