aboutsummaryrefslogtreecommitdiff
path: root/driver (follow)
Commit message (Expand)AuthorAgeFilesLines
* Change semantic action APIs•••The driver reports whether it recovered from an error to the semantic action APIs via the argument `recovered`. Ryo Nihei2021-09-073-18/+42
* Add tests for LACRyo Nihei2021-09-031-0/+113
* Make semantic actions user-configurableRyo Nihei2021-09-036-242/+521
* Support LAC (lookahead correction)Ryo Nihei2021-09-021-29/+115
* Remove the expected terminals field from the parsing table•••The driver searches the expected terminals corresponding to each state if necessary. Ryo Nihei2021-08-311-10/+15
* RefactorRyo Nihei2021-08-301-165/+215
* Add #prec directive to set precedence and associativity of productionsRyo Nihei2021-08-301-0/+92
* Add an #alias directive to define a user-friendly name of a terminalRyo Nihei2021-08-281-25/+17
* Add error symbol and #recover directive to recover from an error stateRyo Nihei2021-08-263-27/+336
* Add a column number to a tokenRyo Nihei2021-08-221-2/+10
* Support %left and %right to specify precedences and associativitiesRyo Nihei2021-08-222-0/+297
* Resolve conflicts by default rules•••When a shift/reduce conflict occurred, we prioritize the shift action, and when a reduce/reduce conflict occurred, we prioritize the production defined earlier in the grammar file. Ryo Nihei2021-08-212-12/+121
* Fix indents of a treeRyo Nihei2021-08-191-1/+1
* Fix panic on a syntax errorRyo Nihei2021-08-151-3/+5
* Support LALR(1) classRyo Nihei2021-08-151-40/+47
* Add --only-parse option to the parse command•••When this option is enabled, the parser performs only parse and doesn't semantic actions. Ryo Nihei2021-08-051-6/+11
* Avoid the growth of slices when constructing treesRyo Nihei2021-08-051-5/+25
* Generate an AST and a CST only when they are necessaryRyo Nihei2021-08-042-59/+99
* Print expected terminals on a parse errorRyo Nihei2021-08-021-2/+44
* Use maleeni v0.3.0Ryo Nihei2021-08-011-2/+2
* Detect duplicate names between terminals and non-terminalsRyo Nihei2021-07-311-0/+26
* Prevent terminals used in productions from being skipped•••A terminal symbol used in productions cannot have the skip directive. Ryo Nihei2021-07-311-0/+11
* Detect unused-symbol error•••When there are productions and terminals that are cannot be reached from the start symbol, the compiler reports an error. Ryo Nihei2021-07-301-0/+43
* Detect duplicate production errorsRyo Nihei2021-07-281-0/+42
* Add literal pattern syntax and change tree structure syntax•••- Literal patterns don't interpret the special characters of regular expressions. In other words, 'abc|def' matches only `abc|def`, not `abc` or `def`. - Change tree structure syntax from '(...) to #(...). Ryo Nihei2021-07-221-5/+5
* Write a description file•••The description file describes a LR(0) item set and conflicts (if any). Ryo Nihei2021-07-221-2/+4
* Detect multiple semantic errors in a single parseRyo Nihei2021-07-181-1/+2
* Add testing for the driver•••The driver can reduce productions that have the empty alternative and can generate a CST (and AST) node. Ryo Nihei2021-07-152-0/+47
* Allow directives to take multiple parametersRyo Nihei2021-07-021-1/+3
* Prettify treesRyo Nihei2021-07-022-10/+32
* Simplify syntax of modifiers and semantic actions•••Modifiers and semantic actions are represented by directives following the '#' symbol. Ryo Nihei2021-06-301-15/+15
* Add testing for the driverRyo Nihei2021-06-291-1/+114
* Add ast actionRyo Nihei2021-06-282-42/+158
* Add syntax of fragmentRyo Nihei2021-06-201-0/+11
* Add skip actionRyo Nihei2021-06-202-12/+33
* Add syntax of modifiers and actions•••Currently, a mode modifier and push/pop actions are available. The modifier and the actions make sense in only lexical specifications. Ryo Nihei2021-06-201-23/+65
* Add driverRyo Nihei2021-06-192-0/+205