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