Commit graph

67 commits

Author SHA1 Message Date
Max Brunsfeld
3e0debf814 Fix compile error on gcc 2014-05-09 15:37:30 -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
Max Brunsfeld
4700e33746 Introduce 'ubiquitous_tokens' concept, for parsing comments and such 2014-05-06 12:54:04 -07:00
Max Brunsfeld
0d763d229d cpplint 2014-04-28 21:46:43 -07:00
Max Brunsfeld
25eda9d889 ISymbol -> Symbol
Interned symbols are now the main type of symbol in use
2014-04-28 20:43:27 -07:00
Max Brunsfeld
93df5579b4 Trim whitespace 2014-04-25 22:17:23 -07:00
Max Brunsfeld
68d44fd565 Intern symbols during grammar preparation 2014-04-22 23:38:26 -07:00
Max Brunsfeld
a437d39773 Add rule precedence construct
Still need to add some way of expressing left and right
associativity
2014-04-15 08:40:46 -07:00
Max Brunsfeld
5145bba53d Silence missing-initializer warnings for gcc 2014-04-12 20:16:16 -07:00
Max Brunsfeld
bd5ec68c96 Get generated parsers building under gcc 2014-04-08 22:11:20 -07:00
Max Brunsfeld
6a0a28f4b3 WIP - try to fix travis build 2014-04-08 21:41:38 -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
a79a7435de Remove remaining trailing whitespace from generated c code 2014-03-29 19:21:42 -07:00
Max Brunsfeld
8e1b78ca8e Remove trailing whitespace from generated c code 2014-03-29 19:00:31 -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
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
f601322956 Clean up macros in parser.h 2014-03-25 19:51:34 -07:00
Max Brunsfeld
80b19cbb83 Construct entire parse table statically
This removes the need for the 'init_parse_table' function,
which was not really thread safe
2014-03-25 19:34:17 -07:00
Max Brunsfeld
25861b7f03 Remove reduction-specific collapse flags in favor of globally hidden symbols 2014-03-25 09:05:55 -07:00
Max Brunsfeld
aac0786449 Resolve token conflicts by tokens' order in grammar 2014-03-24 19:18:06 -07:00
Max Brunsfeld
9cb92a0a96 Remove code related to old error recovery function 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
bdbe69258a Fix bug in stack breakdown procedure 2014-03-21 12:46:23 -07:00
Max Brunsfeld
8e7f59db1c Allow room in parse table for error and EOF entries 2014-03-18 08:04:17 -07:00
Max Brunsfeld
67b33a615b Refactor generated parsers to used explicit table
This is slightly slower than encoding the parse table in
flow control, but allows the parser to inspect the parse
table more flexibly. This is needed for incremental parsing.
2014-03-17 18:43:17 -07:00
Max Brunsfeld
da992b77ff Rename 'parse_config' export -> 'parser' 2014-03-15 14:48:28 -07:00
Max Brunsfeld
0dc3a95d0c Refactor parser header
Make separate lexer, stack and parser structs.
2014-03-15 14:43:50 -07:00
Max Brunsfeld
3aaa08b948 Fix some egregiously long lines 2014-03-09 23:58:25 -07:00
Max Brunsfeld
a4120f36d4 Remove all uses of 'using namespace' 2014-03-09 22:45:33 -07:00
Max Brunsfeld
de5deeeb69 Remove spurious semicolons 2014-03-09 22:24:52 -07:00
Max Brunsfeld
661314cf4e Remove all non const reference parameters 2014-03-09 22:21:58 -07:00
Max Brunsfeld
a411e43484 Rename source files: .cpp -> .cc 2014-03-09 22:13:08 -07:00
Max Brunsfeld
31a58bc7e4 Make include guards pass cpplint 2014-03-09 22:05:24 -07:00
Max Brunsfeld
eb30429700 Make paths explicit in #includes 2014-03-09 21:43:14 -07:00
Max Brunsfeld
39aa0ccc91 Add script to trim whitespace 2014-03-09 19:49:35 -07:00
Max Brunsfeld
af64d3fffa Build with all warnings enabled
Fix resulting warnings
2014-03-04 18:28:28 -08:00
Max Brunsfeld
926b4ef242 Clean up parser.h 2014-02-27 00:06:22 -08:00
Max Brunsfeld
0d4687bdad Make start and EOF symbols into builtin symbols 2014-02-26 23:18:49 -08:00
Max Brunsfeld
7251456cd2 Move some general code generation helpers into their own file 2014-02-26 19:08:07 -08:00
Max Brunsfeld
63718d5bad Add basic support for error recovery 2014-02-26 19:03:43 -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
6ed6aa05cc Update runtime code naming
Also, add macros so that code generator doesn't
need to know about any runtime variables names
or types
2014-02-20 13:30:43 -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
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