forked from yumaikas/myte
A Nova dialect inspired by Pyra that compiles to JS
| bounties | ||
| examples | ||
| lib | ||
| .gitignore | ||
| compiler.js | ||
| myte.js | ||
| package.json | ||
| parser.js | ||
| README.nv | ||
|:: DOC|
:@in: MARKUP
:links: pyra0 https://git.sr.ht/~nebulae/pyra0/tree/main/item/examples/variables/variables.nv
:: (h1 [myte, a JS Nova implementation])
:: (p
[myte is a Nova implementation built in JS, that has started as a port of])
:: link pyra0 [pyra0. ]
:: [I'm taking it in my own directions tho, eventually I plan on moving it from Pyra-based syntax to delimiter pairs (kinda like this document is written in).]
/p)
|:: TODOS|
:board: TODOS
:@in: Tasks
:: for myte
:: sub-project [Optimize JS Output]
:: sub-project complete [delimiter-based frontend]
:: done [Implement pattern matching strides in compiler]
:: done [basic pyra0-style JS producing backend]
:: done [basic pyra0-style parsing frontend]
:: done [get more examples working]
:: for [Optimize JS Output]
:: todo [Switch to z-encoded stack names]
:: todo [Optimize/profile stack push/pops]
:: todo [Dead Code Elimination]
:: todo [Rule-run queue]
:: todo [Interned symbols instead of string literals]
:: todo []
:: for [delimiter-based frontend]
:: obsolete [fix handling of * in patterns]
:: done [fix handling of ?]
:: done [Implement "" as string data]
:: done [Implement @in as a macro]
:: done [Handle quoted symbols as first class thing so they work in lists]
:: done [Return initial state from parse]
:: done [Handle vars]
:: done [Handle ?]
:: done [Handle #js/snippet stack]
|:: BOUNTIES|
:board: Bounties
:@in: Tasks
:: for roguelike_logic.pnv
:: todo [translate to myte syntax]
:: todo [get compilation output working]
:: for variables.pnv
:: todo [translate to myte syntax]
:: todo [update myte to parse me without erroring out]
|:: SYNTAX|
_@in_ MARKUP
[This file uses the standard two-layer configurable delimiter syntax
with one extension: ' or " as a way to say "treat all text until the next stack delimiter as a single string (or quoted token)." This allows for a natural split between tokens-as-commands and unstructured chardata
meant for output.]
|:: SPECIALS|
_@in_ MARKUP
[One other convention is using :#in: STACKNAME to change the default
stack that unlabled data goes to.]
||
:button: DOCS
:button: TODOS
:button: SYNTAX
:button: SPECIALS