Commit graph

443 commits

Author SHA1 Message Date
Max Brunsfeld
f4287c07d0 Fix ParseStateId / size_t confusion in parse table 2014-07-07 13:21:30 -07:00
Max Brunsfeld
c5c25d30bb Fix golang grammar after latest lexer change 2014-07-03 13:28:08 -07:00
Max Brunsfeld
77df7fe511 In lexer, always prefer the longest match
Only use rules' precedence to decide between two tokens
that match the same string
2014-07-03 08:57:35 -07:00
Max Brunsfeld
c85841364e Add throw statements to js grammar 2014-07-03 08:20:43 -07:00
Max Brunsfeld
67590eddc7 Fix stream operator for new parse action types 2014-07-03 08:15:36 -07:00
Max Brunsfeld
18ae326459 Fix lint errors 2014-07-02 09:01:38 -07:00
Max Brunsfeld
6424eea62a Refactor handling of ubiquitous tokens when building parse table 2014-07-01 21:43:26 -07:00
Max Brunsfeld
83a1b9439e Fix handling of ubiquitous tokens used in grammar rules 2014-07-01 20:47:35 -07:00
Max Brunsfeld
59cc65c2e3 Rename parse action types 2014-06-29 00:20:16 -07:00
Max Brunsfeld
da7b50a2d1 Rename type ts_string_input_data -> TSStringInput 2014-06-28 19:29:44 -07:00
Max Brunsfeld
0ec3faba3e Rename type ts_lr_parser -> TSStateMachine 2014-06-28 19:22:16 -07:00
Max Brunsfeld
27f6eb725d Rename type ts_parse_action -> TSParseAction 2014-06-28 19:06:37 -07:00
Max Brunsfeld
26f612a20d Rename type ts_stack -> TSStack 2014-06-28 19:04:14 -07:00
Max Brunsfeld
9d4fcf75de Rename type ts_lexer, ts_parser -> TSLexer, TSParser 2014-06-28 19:01:46 -07:00
Max Brunsfeld
c8797bfa27 Rename type ts_input_edit -> TSInputEdit 2014-06-28 18:56:47 -07:00
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
8aea89750d Add project vimrc 2014-06-26 07:29:23 -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
d5674d33c4 Add test helper stream method for pairs 2014-06-24 21:54:38 -07:00
Max Brunsfeld
81880e000e Tweak header include paths in tests 2014-06-23 18:50:03 -07:00
Max Brunsfeld
6769659f59 Add vim YCM config file 2014-06-23 12:47:12 -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
e953dbaa17 Update submodules recursively in configure script 2014-06-16 13:27:38 -07:00
Max Brunsfeld
17040e32ec Remove unused version of first_set function 2014-06-16 13:25:30 -07:00
Max Brunsfeld
5c089d0563 Bump bandit 2014-06-16 13:21:03 -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
082560dd6e Fix operator precedence of '.' operator in js grammar 2014-06-11 14:01:38 -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
155a57d3ab Prevent infinite loop on certain lex errors 2014-06-11 11:49:06 -07:00
Max Brunsfeld
4ad6278334 Add finally, instance of, typeof, in to js grammar 2014-06-11 11:49:06 -07:00
Max Brunsfeld
c91c5cb730 Add range statements to golang grammar 2014-06-10 14:11:25 -07:00
Max Brunsfeld
a42f498c59 Optimize merge_sym_transitions and merge_char_transitions 2014-06-10 14:01:32 -07:00
Max Brunsfeld
53bc633a22 Add var decl and if statements to golang grammar 2014-06-10 13:27:55 -07:00