a3d6efcaec
Desugar function calls without args
2022-11-21 12:35:53 +01:00
52c1aeba35
Desugar literals
2022-11-21 12:05:24 +01:00
8278442d3f
Expand expression desugaring
2022-11-21 11:43:31 +01:00
13b7db79b0
Desugar separated elements
2022-11-21 11:35:58 +01:00
8b21acac9e
Add desugar command and desugar programs
2022-11-21 09:33:34 +01:00
6eee1ba930
Simplify pretty printing separated elements
2022-11-21 00:49:04 +01:00
9d6cd580d4
Pretty print module elems
2022-11-21 00:17:51 +01:00
b3eaa40902
Pretty print function definitions
2022-11-21 00:16:15 +01:00
c45a45f0b6
Rename parser::func_defs to parser::func_def
2022-11-21 00:08:59 +01:00
e7416fbc1e
Pretty print table destructors
2022-11-21 00:07:57 +01:00
c7fc8584ff
Pretty print variable accesses and assignments
2022-11-21 00:02:12 +01:00
5bd43ee37a
Pretty print field accesses and assignments
2022-11-20 23:50:53 +01:00
81e2a28b06
Pretty print function calls
2022-11-20 23:45:28 +01:00
fc139c31f4
Pretty print table constructors
2022-11-20 23:41:39 +01:00
412eaffc07
Pretty print table literals
2022-11-20 23:33:39 +01:00
f91e8ac9a2
Pretty print string literals
2022-11-20 23:06:04 +01:00
e6bbb37323
Pretty print numeric literals
2022-11-20 22:59:20 +01:00
7833ef533d
Place parentheses in expressions when necessary
2022-11-20 22:53:19 +01:00
4156006ada
Pretty print literals partially
2022-11-20 22:22:36 +01:00
03e7f10739
Satisfy warnings
2022-11-20 22:16:10 +01:00
3ed3c4e8f8
Add warnings from cove
2022-11-20 22:16:10 +01:00
2ba56f0c92
Make code generic over allocator
...
This way, I can use the same code with any allocator I want. More
importantly, I can also use the nice DocBuilder-exclusive helper
functions!
2022-11-20 21:41:57 +01:00
1a3772e6f7
Pretty print expressions partially
2022-11-20 21:19:54 +01:00
23796e53a9
Pretty print program elements
2022-11-20 21:11:38 +01:00
200b653e61
Pretty print programs partially
2022-11-20 21:09:59 +01:00
1b364061e4
Make rule about consuming surrounding whitespace
2022-11-20 21:09:59 +01:00
6533c9dcf7
Handle things separated by things differently
...
I noticed that programs like '{} would parse correctly while '{ } would
expect an inner element. This was because the leading space was actually
part of the element parser, which is a violation of the (as of yet
unspoken) rule that parsers should not parse surrounding whitespace.
Because whitespace whas treated differently from everywhere else and
because this implementation was wrong, I decided to reimplement it,
abstracting the concept of things separated by other things with
optional trailing things. I did this in such a way that surrounding
whitespace is not touched.
2022-11-20 21:09:59 +01:00
407786b98c
Add "pretty" subcommand
2022-11-20 18:27:25 +01:00
43d5b6d5ae
Forbid underscores in unicode escapes
2022-11-20 18:17:19 +01:00
dfaa878820
Forbid escapable characters in string literals
2022-11-20 18:10:15 +01:00
3130736057
Parse program
2022-11-20 18:10:15 +01:00
2be47871da
Add "module" program variant
2022-11-20 18:10:15 +01:00
9658907d76
Make string literal Debug more compact
2022-11-20 17:36:28 +01:00
82e5b589e1
Parse string literals
2022-11-20 17:36:16 +01:00
867595b5b9
Remove multiline string literals from ast
2022-11-20 17:14:43 +01:00
ea7518b183
Create each main parser only once
2022-11-19 20:56:10 +01:00
b291619d10
Remove unnecessary Clone bounds
2022-11-19 19:36:10 +01:00
0099277644
Parse named function definitions
2022-11-19 19:24:23 +01:00
ff3edf17e5
Parse anonymous function definitions
2022-11-19 19:13:30 +01:00
9a1bb92dfe
Prepare parser for function definitions
2022-11-19 18:58:39 +01:00
86006933d7
Add local function definitions
2022-11-19 18:58:21 +01:00
b590f640f4
Parse logic operators right associative
2022-11-19 13:26:09 +01:00
5e26d9550c
Remove unused import
2022-11-19 13:05:40 +01:00
9c8d09e3cb
Box pub parsers and adjust visibility
2022-11-19 13:00:43 +01:00
408219073a
Parse binary operators
...
For now, they're all left associative.
2022-11-19 12:40:52 +01:00
63f8026007
Parse arithmetic and logical negation
2022-11-19 11:58:52 +01:00
4be5283204
Make Expr Debug more compact and less ambiguous
2022-11-19 11:38:11 +01:00
94198d126f
Parse suffixes
2022-11-19 11:22:49 +01:00
3e2f118e2e
Move program ast into separate file
2022-11-19 11:02:36 +01:00
e2bb847577
Simplify imports
2022-11-19 11:01:09 +01:00