aboutsummaryrefslogtreecommitdiff
path: root/users/fcuny/exp (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-05-29fix(fcuny/monkey): remove unneeded filesFranck Cuny2-21/+0
Change-Id: If26166f29f9b519b87e288b514d2c603ca9b4413
2021-05-10readme: convert to org-modeFranck Cuny2-1/+3
2021-05-10lint: fix a few issuesFranck Cuny3-1/+4
2021-05-10git: ignore binary for the REPLFranck Cuny1-0/+1
2020-01-11repl: support a simple REPL for some early testingfranck cuny2-0/+41
The REPL reads the input, send it to the lexer, and prints the token to STDOUT. For now nothing else is done since we still don't parse the tokens.
2020-01-11lexer: support tokens for equal and not equal.franck cuny2-2/+39
The tokens for equal (`==`) and not equal (`!=`) are composed of two characters. We introduce a new helper (`peekChar`) that we use when we encounter the token `=` or `!` to see if this is a token composed of two characters. Add some tests to ensure they are parsed correctly.
2020-01-11token: add tokens for equal and not equal.franck cuny1-0/+3
2020-01-11lexer: test the new keywords are parsed correctly.franck cuny1-3/+25
Ensure that the new keywords added (`if`, `else`, `true`, `false`, `return`) are parsed correctly.
2020-01-11token: support more keywordsfranck cuny1-2/+13
Add support for a few more keywords (`true`, `false`, `if`, `else`, `return`). All keywords are grouped together in the constant declaration.
2020-01-11token: rewrite documentation for `LookupIdent`.franck cuny1-3/+4
2020-01-11lexer: delete redundant test.franck cuny1-32/+1
The test `TestNextTokenBasic` was not testing anything that `TestNextTokenMonkey` was not already testing. Rename `TestNextTokenMonkey` to `TestNextToken` for clarity.
2020-01-11Makefile: add a Makefilefranck cuny1-0/+4
For now, automate running the tests.
2020-01-11lexer: support more operator tokens.franck cuny2-1/+31
Support the operator tokens that were added to our tokenizer. This also add a few more tests to ensure we handle them correctly.
2020-01-11token: support more operator tokensfranck cuny1-3/+10
Support additional tokens for operators (`-`, `*`, etc). This change only adds the tokens to the list of constants, and group all the tokens related to operators together.
2020-01-11lexer: initial lexerfranck cuny2-0/+218
The initial lexer for the monkey language. We only support a small subset at this stage. We have some simple tests to ensure that we can parse some small snippet, and that the minimum number of tokens we need are also all supported correctly.
2020-01-11token: initial tokenizer.franck cuny1-0/+48
This is the initial tokenizer for the monkey language. For now we recognize a limited number of tokens. We only have two keywords at this stage: `fn` and `let`. `fn` is used to create function, while `let` is used for assigning variables. The other tokens are mostly to parse the source code, and recognize things like brackets, parentheses, etc.
2020-01-11go.mod: create the module 'monkey'franck cuny1-0/+3
The project is named monkey, we add a mod file to ensure that the tooling / dependencies are set up correctly when we import various modules in this project.
2019-12-29Add README.md, LICENSE.txtfranck cuny2-0/+21