Charles Baker
|
f2cd4b1a8d
|
Add lalrc LALR parser compiler
|
2018-03-31 15:30:37 +13:00 |
|
Charles Baker
|
acd652013b
|
Add ParserStateMachine::transitions()
|
2018-03-31 15:30:37 +13:00 |
|
Charles Baker
|
90113b9d4f
|
Store identifier in Grammar
|
2018-03-31 15:30:37 +13:00 |
|
Charles Baker
|
1ea0c4d817
|
Minor reformatting and renaming to remove get_ prefix
|
2018-03-31 15:30:37 +13:00 |
|
Charles Baker
|
233afea39f
|
Remove get_ prefix from functions in Item
|
2018-03-31 15:30:37 +13:00 |
|
Charles Baker
|
c4024a8599
|
Set associativity and precedence directly, remove unused Directive
|
2018-03-31 15:30:37 +13:00 |
|
Charles Baker
|
2dd741da6d
|
Make LexerGenerator constructor do nothing, use LexerGenerator::generate() for generation
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
99121f8a76
|
Make Generator constructor do nothing, use Generator::generate() for generation
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
d4a517e087
|
Remove unused functions from Generator
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
37eedee5b8
|
Remove unused lalr::Nil and lalr::nil
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
fe04b66b9a
|
Remove redundant Grammar operators for actions and end of expression
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
ce8e9c5635
|
Remove generation-time dependencies from run-time lexer
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
fd2968ae4d
|
Use unique_ptr<> to manage RegexAction lifetime
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
0ca01fb0df
|
Rename classes involved in lexer runtime from Lexer* to Regex*
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
2b85608e87
|
Rename lexer classes involved in lexer runtime and generation
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
ea5e179817
|
Prioritize lexer tokens by line number
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
77f55f2aad
|
Track line number in GrammarParser
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
74ddd6b40f
|
Explicitly match the error symbol in GrammarParser
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
b58e3e9137
|
Set symbols referenced in precedence directives as terminal
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
3d3c506a49
|
Add Grammar::parse() for parsing grammars from text
|
2018-03-31 15:30:36 +13:00 |
|
Charles Baker
|
39a26e5ff7
|
Remove unused reserving memory from Grammar
|
2018-03-03 20:40:58 +13:00 |
|
Charles Baker
|
3ff277c678
|
Add simple recursive descent parser to parser grammars
|
2018-03-03 20:29:05 +13:00 |
|
Charles Baker
|
8087180333
|
Make precedence directives set a flag and capture the next symbol call in Grammar
|
2018-03-03 20:29:05 +13:00 |
|
Charles Baker
|
9c6b0157a1
|
Add explicit literal, regex, and identifier functions to Grammar
|
2018-03-03 20:29:05 +13:00 |
|
Charles Baker
|
f8f102ed36
|
Remove get_*() prefix from ParserUserData accessors
|
2018-03-03 20:29:05 +13:00 |
|
Charles Baker
|
492365f4be
|
Rename LalrSymbol to Symbol
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
4174fa5587
|
Rename LalrProduction to Production
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
fefdcae696
|
Rename LalrTransition to Transition
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
34e31c815c
|
Rename LalrState to State
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
374c10d53f
|
Rename LalrNil to Nil
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
e13bd8795b
|
Rename LalrItem to Item
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
2ae988e674
|
Rename LalrGenerator to Generator
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
9a4a1c5cf2
|
Rename LalrDirective to Directive
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
9f06b4344c
|
Rename LalrAction to Action
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
b95d31407e
|
Remove redundant LalrGrammar (replaced by Grammar)
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
4882f8cb9c
|
Add implicit production for start symbol to first non-terminal symbol specified
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
4b66abb702
|
Add start, end, and error symbols to Grammar
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
cd5d1f1306
|
Add Grammar::identifier() to access grammar identifier
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
62b14ce727
|
Remove Grammar::begin() and Grammar::end()`
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
d540d2c396
|
Move generation code from Grammar::end() to Grammar::generate()
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
6bf53f9be3
|
Rename GrammarNil to LalrNil
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
4568275ebe
|
Rename GrammarDirective to LalrDirective
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
b9ea3bf638
|
Use LalrProduction instead of GrammarProduction in Grammar
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
d45015e2ba
|
Delete LalrSymbol.[ch]pp
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
d3852c4ed6
|
Use unique_ptr<> to manage lifetimes of objects in Grammar
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
5d4be83cc4
|
Update include guards in Grammar.hpp to LALR instead of PARSER
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
be01fe6d5f
|
Use LalrAction instead of GrammarAction in Grammar
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
e57702cc2e
|
Use unique_ptr<> to manage GrammarAction lifetime in Grammar
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
96b0d3470f
|
Make LalrAction more self contained and private
|
2018-02-25 14:16:06 +13:00 |
|
Charles Baker
|
35be0b086f
|
Move population of ParserStateMachine into LalrGenerator
|
2018-02-25 14:16:06 +13:00 |
|