No description
Find a file
2025-12-04 20:04:25 -05:00
decks update syntax, implement Ewe, some examples for Ewe 2025-10-08 20:58:14 -04:00
examples add a guessing game 2025-12-04 20:04:25 -05:00
imgs A new parser touches the beacon 2025-09-07 18:27:02 -04:00
.gitignore update syntax, implement Ewe, some examples for Ewe 2025-10-08 20:58:14 -04:00
compiler.lua A new parser touches the beacon 2025-09-07 18:27:02 -04:00
main.lua update syntax, implement Ewe, some examples for Ewe 2025-10-08 20:58:14 -04:00
parser.lua update syntax, implement Ewe, some examples for Ewe 2025-10-08 20:58:14 -04:00
pprint.lua initial commit 2025-07-12 00:00:04 -04:00
README.md update syntax, implement Ewe, some examples for Ewe 2025-10-08 20:58:14 -04:00
syntax.lua update syntax, implement Ewe, some examples for Ewe 2025-10-08 20:58:14 -04:00
wul update syntax, implement Ewe, some examples for Ewe 2025-10-08 20:58:14 -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:

{ @comment 
    an example of an assembly language
    implemented in wul }

{ @ewe ( 20 fib @ewe.call ) }

@ewe def fib ; @ewe.stack 0 { @ewe.stack ( 0 ) }
@ewe def fib ; @ewe.stack 1 { @ewe.stack ( 1 ) }
@ewe def fib ; @ewe.stack $n { 
    @ewe ( 
        $n @ewe.dup 
            1 @ewe.sub fib @ewe.call @ewe.swap 
            2 @ewe.sub fib @ewe.call 
        @ewe.add
    ) ; 
}

You can find the full VM for the language in decks/ewe.wul. A more friendly example is on my todo list. I've unfortunately have a day job :(