summaryrefslogtreecommitdiff
path: root/main.go
AgeCommit message (Collapse)Author
2023-11-03feat: add support for control flow operators in expressionsMarc Vertes
Logical operators `&&` (and), `||` (or) are now parsed in expressions. The control flow tokens (labels, conditional jumps) are added accordingly.
2023-10-12move to a direct byte code compiler (#8)Marc Vertes
* chore: refactor to keep only the new parser and bytecode vm * scanner: remove Token.value field * scanner: remove scanner.kind field * chore: move language specification in lang package This avoid a cyclic dependency in scanner_test which can now use the golang/GoSpec language specification for Go. * clean code * scanner: export scanner fields Also parser now generate function calls, including externals. * chore: fix lint issues * parser: handle strings * wip * parser: implement support for 'if, else, else if' statements Resolving labels in the compiler still in progress. * parser: support if statements, improve compiler * improve handling of functions * improve support of local variables * scanner: trim leading and trailing spaces * fixes to make fibonacci work * parser: improve README, fix function parameters parsing
2023-09-08cli: use flags in command lineMarc Vertes
Also isolate repl in a separate function. Introduce `run` function for executing programs, letting room for other verbs to be done later: test, debug, ... Use file path as argument. Standard input redirect is no more mandatory.
2023-09-04codegen: add interpreter testsMarc Vertes
Also simplify project structure. The executable is now produced in the root directory. Work in progress.