You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Ludovic 'Archivist' Lagouardette 26724a3812 Added type checked support for GOTO and LABEL in prevision of adding conditionals jumps and loops 10 maanden geleden
.idea Work on interpreter 1 jaar geleden
include Added type checked support for GOTO and LABEL in prevision of adding conditionals jumps and loops 10 maanden geleden
prototypes/molasses First unit test added 1 jaar geleden
src Added type checked support for GOTO and LABEL in prevision of adding conditionals jumps and loops 10 maanden geleden
tests Added type checked support for GOTO and LABEL in prevision of adding conditionals jumps and loops 10 maanden geleden
.clang-format Compiles and build completely 1 jaar geleden
.clang-tidy Added several features 1 jaar geleden
.gitignore Added tests for error messages on all build system known failure 1 jaar geleden
CMakeLists.txt Added type checked support for GOTO and LABEL in prevision of adding conditionals jumps and loops 10 maanden geleden
README.md Made help into a proper readme too 1 jaar geleden

README.md

Sugar

Commands

lex : string ➔ lexed_output

takes a filename to a file that must be compiled

merge : lexed_output lexed_output ➔ lexed_output

merges two lexed modules together

parse : lexed_output ➔ parsed_output

prepares code for generation

generate : parsed_output string ➔ string

takes a root filename, it will be appended with ".s" and that will be the generated assembly file, the filename will not be consumed

assemble : string ➔ _

takes a root filename, it will be appended with ".s" and that file will be compiled, the compiled output will be the given filename

help : _ ➔ _

prints this help

Examples

  • compile the file "example.mol" into the "potato.s" assembly file

$ sugar example.mol lex parse potato generate

  • compile the file "example.mol" into the "potato" executable

$ sugar example.mol lex parse potato generate assemble

  • compile the file "example.mol" and "2.mol" into the "potato" executable

$ sugar example.mol lex 2.mol lex merge parse potato generate assemble