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