Commit Graph

12 Commits

Author SHA1 Message Date
5c505e5ae5 Add function call expressions
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-05-06 17:39:31 -04:00
bd87e9dd30 Add block expression parsing and test
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-05-06 17:14:55 -04:00
66af3dcc53 Add base statement parsing
Assign statements and standalone expression statements are added, plus
some tests.

Additionally, starting tokens are implemented using lazy_static!{} so
that they can be mixed and matched.

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-05-06 16:57:28 -04:00
7698e49baf cargo fmt
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-05-05 17:22:39 -04:00
ae99bbfc1e Add object parsing and tests
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-05-05 17:21:12 -04:00
4c2f18b7c9 Update parser bin_expr testing to be more consistent with the rest of the tests
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-05-05 16:52:46 -04:00
5622eb96bc Add ObjBrace token
To distinguish between objects and code bodies, an object is delimited
by curly braces, prefixed with a percent sign. Ex:

    obj = %{
        key = value
    }

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-05-05 16:43:38 -04:00
a4f289fb53 Add more expressions to parser, add EOL and newline tokens
* Lexer recognizes semicolons as EOL tokens, and newline tokens
* Parser can be configured to ignore newlines (which is also used
  internally)
* Newlines are allowed in lists, tuples, and parenthesized expressions
* Add a bunch of tests for the new stuff

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-05-05 16:38:07 -04:00
d9edf21d16 Add expression parsing
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-05-02 18:42:01 -04:00
28d29c2270 Add parser and AST, remove some stuff from lexer
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-04-27 20:17:16 -04:00
ce97d90f9d Move lexer to use regex instead of hand-rolled lexing
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-04-27 19:50:46 -04:00
58421a0469 Initial commit with lexer
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2020-04-27 12:42:17 -04:00