|
3818c8c528
|
parse: rename varname nonterm to csymbol
|
2015-04-18 17:58:44 +02:00 |
|
|
4ed7d5a1b2
|
parse: minor code simplification
|
2015-04-18 16:55:06 +02:00 |
|
|
6597de68e4
|
Add support for C++ namespaces
|
2015-04-18 00:02:05 +02:00 |
|
|
a2a663dafd
|
parse: replace type-specific deleters by simple delete calls
|
2015-04-17 23:45:20 +02:00 |
|
|
9cbf364a46
|
Add support for character terminal group rules
|
2015-04-17 23:14:17 +02:00 |
|
|
59db91599c
|
Move initial rule handling to grammer_t
|
2015-04-17 22:29:08 +02:00 |
|
|
9624984557
|
lex: change treatment of symbols which are neither all-uppercase or all-lowercase
|
2015-04-17 21:15:44 +02:00 |
|
|
dd5fa160c2
|
output_header: remove a few left-overs c_str() calls
|
2015-04-17 18:27:31 +02:00 |
|
|
6c8cd11dad
|
Completely refactor code generation
|
2015-04-17 17:20:25 +02:00 |
|
|
bb018683c9
|
parse: minor formatting fix
|
2015-04-17 01:12:19 +02:00 |
|
|
c1490a5ad8
|
output: fix generator include
|
2015-04-12 02:50:23 +02:00 |
|
|
7f80ff9bfc
|
parse: code formatting
|
2015-04-12 01:35:08 +02:00 |
|
|
4665e5643f
|
lex: change dumb mode to a positive character set
|
2015-04-12 00:05:38 +02:00 |
|
|
1a79d217af
|
Allow skipping the destructor selectively
|
2015-04-11 03:18:22 +02:00 |
|
|
d91b60407c
|
parse: introduce rhs_t typedef
|
2015-04-11 03:02:29 +02:00 |
|
|
42f74c83bf
|
Add support for destructors
|
2015-04-11 03:00:00 +02:00 |
|
|
69d5b76e1a
|
Add support for square-bracketed actions
|
2015-04-11 01:51:01 +02:00 |
|
|
0f3c53fb63
|
output: de-duplicate token value pushing
|
2015-04-11 00:09:33 +02:00 |
|
|
1f2a900e40
|
output_slr: remove unused includes
|
2015-04-10 23:30:48 +02:00 |
|
|
c7038d65b9
|
output: also collapse goto case branches
|
2015-04-10 23:22:12 +02:00 |
|
|
c2728e4c83
|
output_slr: collapse duplicate case branches
|
2015-04-10 22:51:51 +02:00 |
|
|
0e9b564f8c
|
output: rename i argument to state
|
2015-04-10 22:00:34 +02:00 |
|
|
4976085b72
|
generator_slr: fix follow set generation
Looks like my source of information was incomplete...
|
2015-04-10 21:02:29 +02:00 |
|
|
aeaeba2d73
|
Add support for escape sequences in character symbols
|
2015-04-10 19:10:17 +02:00 |
|
|
475326bf12
|
lex: initialize dumb_mode to false
|
2015-04-10 18:26:50 +02:00 |
|
|
8c3dd07dfb
|
lex: remove now unused include and define
|
2015-04-10 18:03:22 +02:00 |
|
|
634e5db209
|
Don't parse keywords in the lexer
|
2015-04-10 18:01:10 +02:00 |
|
|
650fff74de
|
parse: make grammar for toplevel directives more readable
|
2015-04-10 17:46:34 +02:00 |
|
|
48b791d443
|
Allow specifying sequences of character terminals as strings
|
2015-04-10 17:26:20 +02:00 |
|
|
5a54699f18
|
Replace hand-written parser by one generated by solar itself :D
|
2015-04-10 16:48:43 +02:00 |
|
|
a5d1689bc7
|
Implement SLR parser generation
At the moment, the generated parser is very inefficient, but that will change
soon.
|
2015-04-10 03:46:13 +02:00 |
|
|
7a14a8ec2f
|
Split output_lr0_t out of output_t
|
2015-04-10 03:22:57 +02:00 |
|
|
8feccee75d
|
generator_slr: implement first and follow set generation
|
2015-04-10 03:04:22 +02:00 |
|
|
70fc6ba8d2
|
generator: fix add_reduction() argument name
|
2015-04-09 19:44:01 +02:00 |
|
|
35c02202fd
|
generator: move LR(0)-specific code to generator_lr0_t
|
2015-04-09 19:14:14 +02:00 |
|
|
5887ec38e1
|
generator: add generator_lr0 and generator_slr classes
|
2015-04-09 17:21:32 +02:00 |
|
|
e86d064002
|
lex: use std::string * instead of char *
|
2015-04-09 05:18:47 +02:00 |
|
|
7a65ee0c61
|
Introduce rule_t and grammar_t
|
2015-04-09 04:46:39 +02:00 |
|
|
ffe1e7bb96
|
lex: disable number parsing
It is not used at the moment
|
2015-04-09 04:13:42 +02:00 |
|
|
031fdb010e
|
output: close output files
|
2015-04-09 04:00:05 +02:00 |
|
|
923ce33be1
|
output: correctly initialize parser state
|
2015-04-09 03:58:50 +02:00 |
|
|
59258d1f71
|
Add support for extra arguments
|
2015-04-09 03:31:20 +02:00 |
|
|
80abbf2be2
|
Emit alloc and free functions
|
2015-04-09 01:37:18 +02:00 |
|
|
9c990ae801
|
Allow adding source blocks to the top the of header and source files
|
2015-04-08 23:49:42 +02:00 |
|
|
7b8ebfcef1
|
Don't use map::emplace
It doesn't work with GCC 4.7...
|
2015-04-06 21:16:13 +02:00 |
|
|
1bb22babd9
|
output: emit include statement for header
|
2015-04-06 20:34:12 +02:00 |
|
|
fda24d9c22
|
Set output files from command line
|
2015-04-06 20:13:36 +02:00 |
|
|
d6deff997e
|
Implement a lot of symbol value support
|
2015-04-06 18:50:03 +02:00 |
|
|
6fb60a7201
|
generator: detect LR(0) conflicts
|
2015-04-06 00:22:44 +02:00 |
|
|
696d94d796
|
lex: handle preprocesser directives embedded into code blocks
|
2015-04-05 19:17:24 +02:00 |
|