Commit graph

51 commits

Author SHA1 Message Date
Max Brunsfeld
e93e254518 In lexer, prefer tokens to skipped separator characters
This was causing newlines in go and javascript to be parsed as
meaningless separator characters instead of statement terminators
2014-05-30 13:29:54 -07:00
Max Brunsfeld
844f73c193 Remove unnecessary comment rule from JS grammar 2014-05-26 21:48:35 -07:00
Max Brunsfeld
4c9ac3dada Fix parsing of empty strings in javascript and golang 2014-05-20 09:47:26 -07:00
Max Brunsfeld
649f200831 Expand regex/string rules as part of grammar preparation
This makes it possible to report errors in regex parsing
2014-05-19 20:54:59 -07:00
Max Brunsfeld
2d0f90c7d5 Add try and while statements to js grammar 2014-05-09 21:36:18 -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
3a50171249 Expose all grammar compilation errors 2014-05-01 23:28:40 -07:00
Max Brunsfeld
b9393b5c1a Refactor grammar helper functions 2014-05-01 20:02:06 -07:00
Max Brunsfeld
2906125824 Refactor javascript grammar to use new keyword helper 2014-05-01 13:25:50 -07:00
Max Brunsfeld
60e2728acc Refactor string and regex specification in javascript grammar 2014-05-01 12:48:01 -07:00
Max Brunsfeld
a2c125998e Add single quoted strings and regexes to javascript grammar 2014-05-01 12:43:53 -07:00
Max Brunsfeld
6ea4e6b2b0 Give rules::Visitor a virtual destructor 2014-04-27 23:19:11 -07:00
Max Brunsfeld
b86203d205 Extract shared helper functions from example grammars 2014-04-27 21:45:05 -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
c2abfd2d03 Parse '.' in regexes 2014-04-24 13:21:46 -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
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
a79a7435de Remove remaining trailing whitespace from generated c code 2014-03-29 19:21:42 -07:00
Max Brunsfeld
2cd595d81a Clean up helper functions in example grammars 2014-03-29 19:02:00 -07:00
Max Brunsfeld
7c502e5b58 Fix ambiguity in golang grammar 2014-03-29 18:59:54 -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
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
059f7ff9d5 Add else blocks to javascript grammar 2014-03-25 23:40:53 -07:00
Max Brunsfeld
2df56f01c8 Remove public hidden symbol function
Now, you can't a particular occurrence of a symbol
in a grammar. You can only hide a symbol globally
(right now, by beginning its name with an underscore).
2014-03-25 08:16:26 -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
06cd18b483 Put example grammars in tree_sitter::examples ns 2014-03-24 07:19:31 -07:00
Max Brunsfeld
50a90e456b Handle * quantifier in regex patterns 2014-03-22 20:08:11 -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
Max Brunsfeld
c43ec90dad Fix missing auxiliary tokens in lex error state 2014-02-27 00:38:08 -08:00
Max Brunsfeld
8b7ed13c8b Add more error recovery tests for JSON 2014-02-26 22:58:45 -08:00
Max Brunsfeld
63718d5bad Add basic support for error recovery 2014-02-26 19:03:43 -08:00
Max Brunsfeld
713b3899c5 Simplify logic for extracting tokens from grammar 2014-02-23 10:00:49 -08:00
Max Brunsfeld
688fe993cf Remove rules that don't need to be public from compiler.h 2014-02-20 23:05:32 -08:00
Max Brunsfeld
acad97cfd2 Separate concepts of hidden and auxiliary symbols
This way, we can hide auxiliary symbols from library users,
but still allow them to use hidden symbols
2014-02-19 13:05:54 -08:00