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
99817a38c1
Improve trees generated by arithmetic grammar
...
This work should inform how to implement operator
precedence helper functions
2014-03-29 18:37:51 -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
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
50a90e456b
Handle * quantifier in regex patterns
2014-03-22 20:08:11 -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
c43ec90dad
Fix missing auxiliary tokens in lex error state
2014-02-27 00:38:08 -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
63718d5bad
Add basic support for error recovery
2014-02-26 19:03:43 -08:00
Max Brunsfeld
4541332c2b
Put definition of EOF symbol back in parse table builder (not in parser.h)
2014-02-25 13:25:58 -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
fd757c20d0
Move example grammars from fixtures -> examples dir
2014-02-17 13:18:09 -08:00