Commit graph

97 commits

Author SHA1 Message Date
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
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
e1ac62edc5 Give better symbol names to generated tokens
This should make debugging easier
2014-03-27 12:54:54 -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
3f0203d928 Clean up character set spec 2014-03-24 22:07:25 -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
50a90e456b Handle * quantifier in regex patterns 2014-03-22 20:08:11 -07:00
maxbrunsfeld
a733d31634 Fix spec wording in follow sets spec 2014-03-12 13:06:02 -07:00
Max Brunsfeld
dbaacee497 Fix integer type warnings in json parser spec 2014-03-12 08:18:20 -07:00
Max Brunsfeld
a411e43484 Rename source files: .cpp -> .cc 2014-03-09 22:13:08 -07:00
Max Brunsfeld
10b1bd0f5c Fix includes in specs 2014-03-09 22:05:05 -07:00
Max Brunsfeld
eb30429700 Make paths explicit in #includes 2014-03-09 21:43:14 -07:00
Max Brunsfeld
ac46bdcec6 Fix some whitespace 2014-03-09 20:21:19 -07:00
Max Brunsfeld
39aa0ccc91 Add script to trim whitespace 2014-03-09 19:49:35 -07:00
Max Brunsfeld
142671c177 Separate spec helpers files for compiler and runtime specs 2014-03-08 15:26:27 -08:00
Max Brunsfeld
e479773aac Rename files to avoid duplicate basenames 2014-03-02 15:07:43 -08:00
Max Brunsfeld
df05c75525 Backfill unit tests for follow sets
Also, add some comment docs for some compiler functions
2014-02-26 00:39:31 -08:00
Max Brunsfeld
e58a6d8ba7 Start work on error recovery
- In runtime, make parse errors part of the parse tree
- Add error state to lexers in which they can accept any token
2014-02-24 18:42:54 -08:00
Max Brunsfeld
713b3899c5 Simplify logic for extracting tokens from grammar 2014-02-23 10:00:49 -08:00
Max Brunsfeld
e87380a8b7 Make separate PreparedGrammar subclass of Grammar for internal use 2014-02-19 13:36:38 -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
Max Brunsfeld
2c56612650 Get makefile working 2014-02-18 09:07:00 -08:00
Max Brunsfeld
fd757c20d0 Move example grammars from fixtures -> examples dir 2014-02-17 13:18:09 -08:00
Max Brunsfeld
585f9f0054 Fix misplaced file 2014-02-17 12:59:24 -08:00
Max Brunsfeld
9e2dc14182 Extract public compiler API into its own header file 2014-02-17 12:40:46 -08:00
Max Brunsfeld
5c1a0982df Change repeat to mean zero-or-more 2014-02-15 15:43:32 -08:00
Max Brunsfeld
bf07522026 Fix bug in FIRST set function 2014-02-13 18:52:17 -08:00
Max Brunsfeld
a77ca1ee08 Allow users to put their own auxiliary rules in grammars 2014-02-13 13:09:00 -08:00
Max Brunsfeld
70173512f1 Don't extract isolated blanks from grammars into tokens 2014-02-12 18:31:57 -08:00
Max Brunsfeld
9a737e2316 Use map, not unordered_map in Grammar 2014-02-12 08:30:50 -08:00
Max Brunsfeld
27f305d556 Put rule_can_be_blank function in its own file 2014-02-11 13:21:45 -08:00
Max Brunsfeld
1962c17f45 Remove transition_map class 2014-02-11 13:15:44 -08:00
Max Brunsfeld
3cb65c9c81 Make the EOF be an auxiliary symbol
This way, it couldn’t conflict if a user had a rule called “__END__”
2014-02-10 18:53:01 -08:00
Max Brunsfeld
15c9e2d398 Make ordering of cases deterministic in generated parsers 2014-02-10 18:38:01 -08:00
Max Brunsfeld
8baa1396fd Properly merge transitions on overlapping character sets! 2014-02-10 13:20:43 -08:00
Max Brunsfeld
905a408998 Make separate functions for character-level and syntax-level rule transitions 2014-02-09 14:31:27 -08:00
Max Brunsfeld
d3d25f2683 Represent character sets as sets of character ranges 2014-02-05 18:56:04 -08:00