As of now, the self-hosted parser can parse (and build AST for) all of the .savi files on my computer. Obviously I haven't gone through all of the ASTs by hand to confirm that they are being built 100% correctly, so there may still be bugs, but I'm confident enough to call the basic parsing/building structures done.
Next steps on this:
build cap'n proto representations of source code positions for all AST nodes.
make savi-lang-parse runnable as a continuous server that takes inputs and parses each in turn.
make a new binary (probably in Crystal for now) that acts as a client to that server and can watch source files (from a manifest) and write AST files (to a compiler cache directory), delegating to the server for the parsing part of the process.
add nice error reporting for parsing errors into the above process
work on the next compiler pass, which also will be its own binary that acts as a server, and will take the contents of the AST files (from the compiler cache directory) as its input, and be orchestrated by the same file-watching client binary that orchestrates the operations of the parser binary
As of now, the self-hosted parser can parse (and build AST for) all of the
.savi
files on my computer. Obviously I haven't gone through all of the ASTs by hand to confirm that they are being built 100% correctly, so there may still be bugs, but I'm confident enough to call the basic parsing/building structures done.Next steps on this:
savi-lang-parse
runnable as a continuous server that takes inputs and parses each in turn.