Max Brunsfeld
381f89f8ba
Create ambiguity nodes when joining stack heads
2015-06-18 17:03:16 -07:00
Max Brunsfeld
755894b44d
Allow multiple parse actions in parse table
2015-06-18 17:03:16 -07:00
Max Brunsfeld
44774119bf
Use all caps for built-in symbol names
2015-06-15 15:26:05 -07:00
Max Brunsfeld
fd97b8a237
Dedup auxiliary repeat rules from different source rules
2015-05-02 20:42:47 -07:00
Max Brunsfeld
e8db35af6b
Avoid creating redundant auxiliary repeat rules
2015-04-16 17:42:22 -07:00
Max Brunsfeld
b1f8ba6202
Replace {left,right}_assoc w/ prec, with an associativity argument
2015-03-23 21:06:31 -07:00
Max Brunsfeld
a19b0e75ac
🔥 keyword and keypattern functions
...
Just make strings have higher precedence than regexps.
2015-03-22 16:00:26 -07:00
Max Brunsfeld
80ec303b10
Replace prec rule w/ left_assoc and right_assoc
...
Consider shift/reduce conflicts to be compilation errors unless
they are resolved by a specified associativity.
2015-03-16 23:12:34 -07:00
Max Brunsfeld
9a198562e0
Treat parse conflicts as errors in grammar compilation
...
For now, only reduce/reduce conflicts w/ no tie-breaking precedence
are treated as errors. The rest are dropped, because shift/reduce
conflicts are currently very common because we don't have a way
of specifying associativity along w/ precedence.
2015-03-15 20:31:41 -07:00
Max Brunsfeld
2d436cf141
Identify fragile reductions at compile time
2015-02-21 15:11:03 -08:00
Max Brunsfeld
bee756b414
Regenerate fixture parsers with better token names
2014-11-01 17:00:49 -07:00
Max Brunsfeld
d8099826f9
Workaround duplicate symbol problem in golang grammar
...
Currently, a grammar can't have a string rule and a keyword rule with
the same string.
2014-10-21 13:03:50 -07:00
Max Brunsfeld
8a03bd8978
Comment out some parts of JS grammar to speed up tests
2014-10-21 09:01:56 -07:00
Max Brunsfeld
91cf35b72c
Rework javascript fixture grammar
2014-10-21 08:49:16 -07:00
Max Brunsfeld
22ee68e1a9
Make node for each var assignment in JS grammar
2014-10-15 15:04:57 -07:00
Max Brunsfeld
8c3ea6ef30
In JS grammar, don't include enclosing parens in formal_parameters node
2014-10-10 17:11:14 -07:00
Max Brunsfeld
3bcb221379
Include non-terminal lookahead symbols for reduction actions
...
This is necessary for re-using the right subtree after an edit
2014-10-10 12:06:16 -07:00
Max Brunsfeld
aab449635f
Allow greek letters as variables in arithmetic fixture grammar
2014-10-02 11:50:16 -07:00
Max Brunsfeld
13ba35e26f
Fix indentation in fixture grammars
2014-09-27 16:10:30 -07:00
Max Brunsfeld
68d6e242ee
Fix parsing of wildcard patterns at the ends of documents
...
- Remove special EOF handling from lexer
- Explicitly exclude the EOF character from all-inclusive character sets.
2014-09-11 13:10:23 -07:00
Max Brunsfeld
9682ef6c79
Rename examples directory to spec/fixtures
...
- I want to move away from having complete grammars for real languages
(e.g. javascript, golang) in this repo. These languages take a long
time to compile, and they now exist in their own repos
(node-tree-sitter-javascript etc).
- I want to start testing more compiler edge cases through integration
tests, so I want to put more small, weird grammars in here. That makes
me not want to call the directory `examples`.
2014-09-10 13:31:06 -07:00
Max Brunsfeld
fd757c20d0
Move example grammars from fixtures -> examples dir
2014-02-17 13:18:09 -08:00
Max Brunsfeld
d09fa910ef
Put public headers in tree_sitter directory
2014-02-17 12:53:57 -08:00
Max Brunsfeld
9e2dc14182
Extract public compiler API into its own header file
2014-02-17 12:40:46 -08:00
Max Brunsfeld
0b4e1c8d0d
Remove unused import in generated parsers
2014-02-15 22:26:41 -08:00
Max Brunsfeld
5c1a0982df
Change repeat to mean zero-or-more
2014-02-15 15:43:32 -08:00
Max Brunsfeld
2ee9455174
Give tokens descriptive names in json grammar
2014-02-13 13:22:47 -08:00
Max Brunsfeld
7490a7ac94
Change repeat to mean zero-or-more in lexical rules
...
Still need to make it work this way in syntactic rules
2014-02-12 18:35:29 -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
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
df3397f02c
Implement character set difference
2014-02-07 12:57:35 -08:00
Max Brunsfeld
e8337a3c70
Fix errors in computing character set unions
2014-02-06 09:12:03 -08:00
Max Brunsfeld
d3d25f2683
Represent character sets as sets of character ranges
2014-02-05 18:56:04 -08:00
Max Brunsfeld
716a4a4259
Store character rules’ matches in a set, not a vector
2014-01-31 18:56:43 -08:00
Max Brunsfeld
5ed5ae7514
In LR(1) items, only store consumed symbols as booleans
...
the booleans represent the symbols point to auxiliary tokens
or not. This is all we need to know for the purpose of building
parse tables. Any other information just leads to redundant
parse states.
2014-01-31 00:13:05 -08:00
Max Brunsfeld
0d3a941848
Add support for character ranges in regex patterns
2014-01-30 18:54:39 -08:00
Max Brunsfeld
60e2d00b4d
Parse simple character sets in pattern rules
2014-01-30 13:04:31 -08:00
Max Brunsfeld
7f62e752be
Allow Character rules to handle arbitrary character sets
2014-01-30 08:34:20 -08:00
Max Brunsfeld
7d297f2f9e
Remove auxiliary rules from syntax tree
2014-01-28 22:09:37 -08:00
Max Brunsfeld
c3b65d22bf
Improve prepare_grammar specs
2014-01-28 18:44:14 -08:00
Max Brunsfeld
fd0d77ef8b
Separate auxiliary rules from user-specified rules
2014-01-28 13:27:30 -08:00
Max Brunsfeld
ca33c3942a
In parse table, store symbols as Symbol objects, not strings
2014-01-27 13:40:10 -08:00
Max Brunsfeld
5eb5b61c14
Don’t pass rule names to code generator separately from parse tables
2014-01-25 20:45:00 -08:00
Max Brunsfeld
b85b15db42
Refactor extract tokens function
2014-01-24 23:41:43 -08:00
Max Brunsfeld
67fa81d079
Convert repeat rules into pairs of recursive rules
2014-01-24 18:27:29 -08:00
Max Brunsfeld
8208aae060
Fix transitions for sequences whose left side can be blank
2014-01-23 23:56:37 -08:00