Max Brunsfeld
ff13122419
Rename type ts_input -> TSInput
2014-06-28 18:56:04 -07:00
Max Brunsfeld
d7449bf5ea
Rename type ts_symbol -> TSSymbol
2014-06-28 18:53:32 -07:00
Max Brunsfeld
7e0d46002c
Rename type ts_state_id -> TSStateId
2014-06-28 18:51:06 -07:00
Max Brunsfeld
5f59de72a8
Rename type ts_tree -> TSTree
2014-06-28 18:48:07 -07:00
Max Brunsfeld
2795078633
Rename type ts_document -> TSDocument
2014-06-28 18:37:29 -07:00
Max Brunsfeld
7a6d3365c5
Remove helper function in rule_transitions.cc
2014-06-28 18:09:32 -07:00
Max Brunsfeld
3be648593e
merge_{sym,char}_transitions -> merge_{sym,char}_transition
2014-06-28 17:02:48 -07:00
Max Brunsfeld
9bad5dff3e
Avoid unnecessary std::map construction when merging transition sets
2014-06-26 13:42:42 -07:00
Max Brunsfeld
9686c57e90
Allow ubiquitous tokens to also be used in grammar rules
2014-06-26 08:52:42 -07:00
Max Brunsfeld
a9dff20658
Make grammars' separator characters configurable
2014-06-26 07:31:08 -07:00
Max Brunsfeld
7df35f9b8d
Make separate types for syntax and lexical grammars
...
This way, the separator characters can be added as a field to
lexical grammars only
2014-06-25 13:27:16 -07:00
Max Brunsfeld
240de1ca61
Reorder methods in c code generator
2014-06-18 08:21:43 -07:00
Max Brunsfeld
2c382b7363
Trim trailing whitespace
2014-06-16 21:33:35 -07:00
Max Brunsfeld
c312f985c8
Refactor c code generator
...
It's been rewritten in a less functional style. String copies were actually
taking significant time for large parsers.
2014-06-16 21:29:04 -07:00
Max Brunsfeld
1daaf4485f
Refactor item set transition functions
2014-06-16 13:37:34 -07:00
Max Brunsfeld
17040e32ec
Remove unused version of first_set function
2014-06-16 13:25:30 -07:00
Max Brunsfeld
39c1ab2d50
Refactor item_set_closure
...
Inline unnecessary function
2014-06-16 13:20:39 -07:00
Max Brunsfeld
7a2c2c1c90
Store ParseItemSets as maps, w/ core items as keys
...
ParseItem no longer has a lookahead_sym field; it now represents
the 'core' of a parse item. The lookahead context is stored separately,
as a set per core item. This makes iterating, copying and merging item
sets more efficient, because before, the core items were repeated for each
different lookahead symbol.
Also, the memoization in sym_transitions(ParseItemSet) has been removed.
Maybe I'll add it back later.
2014-06-16 08:35:20 -07:00
Max Brunsfeld
d203c15911
Remove unneeded blank rule in lex table builder
2014-06-11 17:43:07 -07:00
Max Brunsfeld
cad6e0ed5f
Fix expected symbol count in lr parser
2014-06-11 16:44:38 -07:00
Max Brunsfeld
bb4d83ce47
Add regex postfix flags to javascript grammar
...
- Refactor statement terminators in javascript grammar
- Reorganize javascript language tests
2014-06-11 16:43:27 -07:00
Max Brunsfeld
3cd031af38
Add keypattern rule helper
...
This way, pattern rules (e.g. golang's comment) can be easily given the
same precedence as keyword rules.
2014-06-11 12:40:49 -07:00
Max Brunsfeld
174f306e2a
Fix precedence of comments vs '/' operator
2014-06-11 12:27:58 -07:00
Max Brunsfeld
a42f498c59
Optimize merge_sym_transitions and merge_char_transitions
2014-06-10 14:01:32 -07:00
Max Brunsfeld
123d3b26d8
Add more expressions, statements to golang grammar
2014-06-10 11:33:05 -07:00
Max Brunsfeld
e105f5cebc
Remove inheritance link btwn PreparedGrammar and Grammar
2014-06-10 10:34:37 -07:00
Max Brunsfeld
11acc7d087
Fix missing initializer warnings
2014-06-09 21:47:57 -07:00
Max Brunsfeld
21c259df9c
Clean up lint errors
2014-06-09 21:14:38 -07:00
Max Brunsfeld
54a555168d
Add accessor methods on Grammar
2014-06-09 21:05:25 -07:00
Max Brunsfeld
12331d66f5
Fix memory leaks
2014-06-09 13:12:44 -07:00
Max Brunsfeld
9bc7d51074
Always initialize tree node size and offset
2014-06-09 13:12:44 -07:00
Max Brunsfeld
deaa7e2755
Fix missing return warning on gcc
2014-06-04 13:39:12 -07:00
Max Brunsfeld
9a4889176e
Move lr_parser implementation into a separate .c file
2014-06-04 13:34:37 -07:00
Max Brunsfeld
63cde3967c
Add unit test for stack
...
- Also, fix bug where trees pushed onto the stack were not retained
2014-06-03 13:19:49 -07:00
Max Brunsfeld
baec9f2c9a
Move computation of tree size/offset into tree constructor
2014-06-02 13:32:36 -07:00
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
220e081c49
Remove unnecessary methods on LexTable
2014-05-29 18:28:23 -07:00
Max Brunsfeld
2988cc5aa2
Show offending lookahead chars when pretty-printing trees w/ errors
2014-05-26 21:50:01 -07:00
Max Brunsfeld
c30055ba18
Fix symbol names for extracted tokens
2014-05-20 08:30:58 -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
5245bc01fe
Backfill tests for token extraction in auxiliary rules
2014-05-19 19:05:54 -07:00
Max Brunsfeld
608b5ce02b
Cleanup - extract method in parse table builder
2014-05-12 08:53:28 -07:00
Max Brunsfeld
10d3801d7e
Fix missing symbol names for keywords
2014-05-09 16:14:48 -07:00
Max Brunsfeld
3e0debf814
Fix compile error on gcc
2014-05-09 15:37:30 -07:00
Max Brunsfeld
963768eb8a
Remove unnecessary parser helper functions
2014-05-09 15:03:29 -07:00
Max Brunsfeld
ccc1b41f2a
Make separate header files for stack and lexer
2014-05-09 13:32:12 -07:00
Max Brunsfeld
e4be585c43
Handle ubiquitous tokens at the beginning of programs
...
As a final step before returning the finished parse tree, check if
there are still multiple nodes on the stack. If so, make the inner
nodes children of the top node.
2014-05-09 12:46:36 -07:00
Max Brunsfeld
3f374c6547
Tidy up
2014-05-08 13:27:48 -07:00
Max Brunsfeld
34137be12d
Represent state ids as unsigned shorts
...
This fixes some signedness conversion warnings
2014-05-08 13:23:46 -07:00
Max Brunsfeld
0a21eee3f0
Remove magic number from generated symbols enums
...
The symbol numbers 0 and 1 are reserved for 'error' and 'eof',
so the grammar's start symbol is always 2.
2014-05-08 13:14:45 -07:00