Max Brunsfeld
e4be585c43
Handle ubiquitous tokens at the beginning of programs
...
As a final step before returning the finished parse tree, check if
there are still multiple nodes on the stack. If so, make the inner
nodes children of the top node.
2014-05-09 12:46:36 -07:00
Max Brunsfeld
4700e33746
Introduce 'ubiquitous_tokens' concept, for parsing comments and such
2014-05-06 12:54:04 -07:00
Max Brunsfeld
bae32adc7b
Add constructor calls, pre/postfix operators to js grammar
2014-05-04 13:36:19 -07:00
Max Brunsfeld
1bdd87535a
Add prefix math operators +, - to javascript grammar
2014-05-02 07:42:13 -07:00
Max Brunsfeld
a2c125998e
Add single quoted strings and regexes to javascript grammar
2014-05-01 12:43:53 -07:00
Max Brunsfeld
801f4bd0a8
Add returns, deletes and bool operators to js grammar
2014-04-25 22:08:11 -07:00
Max Brunsfeld
61692c8bb1
Add error recovery in function calls to javascript gramamr
2014-04-24 13:22:54 -07:00
Max Brunsfeld
68c26a06b1
Add comments to javascript grammar
2014-04-24 13:22:23 -07:00
Max Brunsfeld
52c338ed60
Add some infix math operators to javascript grammar
2014-04-23 22:25:48 -07:00
Max Brunsfeld
7be8d469b8
Add ternary expressions to javascript grammar
2014-04-23 22:15:07 -07:00
Max Brunsfeld
a437d39773
Add rule precedence construct
...
Still need to add some way of expressing left and right
associativity
2014-04-15 08:40:46 -07:00
Max Brunsfeld
be1c8e0f17
Add dynamic property access to javascript grammar
2014-04-05 15:55:20 -07:00
Max Brunsfeld
2191a7d988
Add switch statements to javascript grammar
2014-04-04 13:10:33 -07:00
Max Brunsfeld
129d2b9314
Remove extra EOF actions in lexer
2014-04-04 08:44:35 -07:00
Max Brunsfeld
1cc7e32e2d
Fix handling of tokens consisting of separator characters
...
The parser is no longer hard-coded to skip whitespace. Tokens
such as newlines, whose characters overlap with the separator
characters, can now be correctly recognized.
2014-04-03 19:10:09 -07:00
Max Brunsfeld
8e1b78ca8e
Remove trailing whitespace from generated c code
2014-03-29 19:00:31 -07:00
Max Brunsfeld
99817a38c1
Improve trees generated by arithmetic grammar
...
This work should inform how to implement operator
precedence helper functions
2014-03-29 18:37:51 -07:00
Max Brunsfeld
7adb0bf34f
Add golang example grammar
...
Also, support '\a' character class shorthand in regexes,
for alphabetical characters
2014-03-29 16:29:34 -07:00
Max Brunsfeld
13c4e6e648
Tweak format for example grammars
2014-03-28 13:51:32 -07:00
Max Brunsfeld
324f55f1ce
Add error recovery to for loops in javascript grammar
2014-03-28 13:11:12 -07:00
Max Brunsfeld
2e11f60710
Add for loops to javascript grammar
2014-03-28 12:59:47 -07:00
Max Brunsfeld
2226234924
Add error recovery to javascript if statements
2014-03-26 23:02:57 -07:00
Max Brunsfeld
6d84e71ceb
Clean up javascript language tests
2014-03-26 22:56:58 -07:00
Max Brunsfeld
820b6f4020
Fix infinite loops during table generation for left-recursive rules
...
Add function calls for arbitrary expressions and dot property access to javascript grammar
2014-03-26 22:43:08 -07:00
Max Brunsfeld
6a0e2c08e6
Add more features to javascript grammar
2014-03-26 08:23:13 -07:00
Max Brunsfeld
09e28e7859
Collapse nodes with only one child and no additional text content
2014-03-26 00:10:59 -07:00
Max Brunsfeld
059f7ff9d5
Add else blocks to javascript grammar
2014-03-25 23:40:53 -07:00
Max Brunsfeld
42214ba0eb
Add if statements to javascript grammar
2014-03-24 19:18:20 -07:00
Max Brunsfeld
48baf056b4
Store grammars' rules in vectors, not maps
...
This way, we can keep of the order in which the rules
were given, for resolving reduce/reduce conflicts.
2014-03-24 13:17:38 -07:00
Max Brunsfeld
671f1a1ddc
Start work on javascript grammar
2014-03-24 09:14:29 -07:00
Max Brunsfeld
50a90e456b
Handle * quantifier in regex patterns
2014-03-22 20:08:11 -07:00
Max Brunsfeld
13009e52a5
Clean
2014-03-22 15:59:21 -07:00
Max Brunsfeld
c40411b4d1
Handle unexpected tokens properly
...
Also, add null and boolean values to json grammar
2014-03-22 15:46:58 -07:00
Karen Wang and Max Brunsfeld
f248ece3aa
Use table-driven tests for specific parsers
2014-03-22 15:19:13 -07:00