No description
Find a file
2025-09-07 18:27:02 -04:00
decks A new parser touches the beacon 2025-09-07 18:27:02 -04:00
examples A new parser touches the beacon 2025-09-07 18:27:02 -04:00
imgs A new parser touches the beacon 2025-09-07 18:27:02 -04:00
compiler.lua A new parser touches the beacon 2025-09-07 18:27:02 -04:00
main.lua A new parser touches the beacon 2025-09-07 18:27:02 -04:00
parser.lua A new parser touches the beacon 2025-09-07 18:27:02 -04:00
pprint.lua initial commit 2025-07-12 00:00:04 -04:00
README.md A new parser touches the beacon 2025-09-07 18:27:02 -04:00
syntax.lua A new parser touches the beacon 2025-09-07 18:27:02 -04:00

A drawing of nyx as a sheep with the name of the lnaguage beside her.

A nova compiler and front end design to have a simple and extensible parser. Wul can compile program into Lua. Designed with LuaJIT in mind.

Example

The following is Wul's default syntax:

= = @rpn ( 3 4 dup * swap dup * swap + sqrt print )

= @rpn dup . @rpn.data $ =
    @rpn.data ( $ $ )

= @rpn swap . @rpn.data ( $x $y ) =
    @rpn.data ( $y $x )

= @rpn * . @rpn.data ( $y $x ) =
    @rpn.data $z . @code [$z = $x * $y]

= @rpn + . @rpn.data ( $y $x ) =
    @rpn.data $z . @code [$z = $x + $y]

= @rpn sqrt . @rpn.data $x =
    @rpn.data $y . @code [$y = math.sqrt(tonumber($x))]

= @rpn print . @rpn.data $x =
    @code [print($x)]

= @rpn $x =
    @rpn.data $x