Commit graph

197 commits

Author SHA1 Message Date
Max Brunsfeld
68d44fd565 Intern symbols during grammar preparation 2014-04-22 23:38:26 -07:00
Max Brunsfeld
33d781f492 Refactor bookkeeping of token starts in lexical rules
- Move lex items and parse items into their own files
2014-04-17 13:33:34 -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
67243c7e2f cpplint 2014-04-14 08:38:44 -07:00
Max Brunsfeld
cad6122295 Use boost regex on travis ci 2014-04-10 13:17:45 -07:00
Max Brunsfeld
e1e0cc6278 Make sure conflicts returned by compile are unique 2014-04-10 08:38:14 -07:00
Max Brunsfeld
53285f7d0c Give rule-specific names to repeat helper rules 2014-04-09 18:41:43 -07:00
Max Brunsfeld
6a0a28f4b3 WIP - try to fix travis build 2014-04-08 21:41:38 -07:00
Max Brunsfeld
2ab9caa87c Remove stray include 2014-04-08 20:32:25 -07:00
Max Brunsfeld
f71d7bae16 Record parse conflicts when compiling grammars
Need to remove duplicate conflicts
2014-04-08 18:47:42 -07:00
Max Brunsfeld
3982b73ed6 Start work on recording parse action conflicts 2014-04-08 08:19:55 -07:00
Max Brunsfeld
1da9f1fdfd Store rule metadata as a map, not a single number
Need to store more than just boolean values
2014-04-07 08:50:00 -07:00
Max Brunsfeld
be1c8e0f17 Add dynamic property access to javascript grammar 2014-04-05 15:55:20 -07:00
Max Brunsfeld
5320cad065 Trim trailing whitespace 2014-04-04 13:10:55 -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
32e94081fa Backfill tests 2014-04-04 08:07:46 -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
85b97c4f87 Fix error in merging character set transitions 2014-04-01 13:33:32 -07:00
Max Brunsfeld
2a222adb7e Represent character sets with unsigned chars
This is better for comparing character ranges, since
there is a definite maximum character value.
2014-03-31 18:47:18 -07:00
Max Brunsfeld
7824b3191b Fix bug in character set difference calculation 2014-03-31 18:38:54 -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
e1ac62edc5 Give better symbol names to generated tokens
This should make debugging easier
2014-03-27 12:54:54 -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
3f770ff3c3 Remove unused consumed_symbols vector from parse items 2014-03-26 21:04:11 -07:00
Max Brunsfeld
4454925b5a Clean up parser macros more 2014-03-26 13:03:12 -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
80b19cbb83 Construct entire parse table statically
This removes the need for the 'init_parse_table' function,
which was not really thread safe
2014-03-25 19:34:17 -07:00
Max Brunsfeld
3f0203d928 Clean up character set spec 2014-03-24 22:07:25 -07:00
Max Brunsfeld
42214ba0eb Add if statements to javascript grammar 2014-03-24 19:18:20 -07:00
Max Brunsfeld
aac0786449 Resolve token conflicts by tokens' order in grammar 2014-03-24 19:18:06 -07:00
Max Brunsfeld
2a5dd3434f Fix bug in character set intersection calculation 2014-03-24 19:17:25 -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
fd226a6bfe Clean up test that compiles example grammars 2014-03-24 07:26:06 -07:00
Max Brunsfeld
06cd18b483 Put example grammars in tree_sitter::examples ns 2014-03-24 07:19:31 -07:00
Max Brunsfeld
3a7c4bb5b1 Store AST nodes' non-hidden children 2014-03-24 01:03:32 -07:00
Max Brunsfeld
95188d84b6 Make tree struct private 2014-03-24 00:34:13 -07:00
Max Brunsfeld
50a90e456b Handle * quantifier in regex patterns 2014-03-22 20:08:11 -07:00
Max Brunsfeld
57ed6da225 Make explicit char * -> string conversion in test helper
The version of clang on travis-ci seems to not allow this
conversion to be made implicitly
2014-03-22 19:27:07 -07:00
Max Brunsfeld
13009e52a5 Clean 2014-03-22 15:59:21 -07:00