Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make #prec directive change only precedence and not associativity | Ryo Nihei | 2022-05-10 | 1 | -2/+47 |
| | |||||
* | Add --json option to vartan-parse command | Ryo Nihei | 2022-05-10 | 2 | -27/+79 |
| | |||||
* | vartan-show command prints only adopted actions when conflicts occur | Ryo Nihei | 2022-04-21 | 1 | -5/+0 |
| | |||||
* | Add tests for driver | Ryo Nihei | 2022-04-16 | 1 | -3/+155 |
| | |||||
* | Move compiler tests from driver package to grammar package | Ryo Nihei | 2022-04-14 | 1 | -545/+2 |
| | |||||
* | Allow arbitrary user-defined types for nodes in a syntax tree | Ryo Nihei | 2022-04-03 | 3 | -196/+219 |
| | |||||
* | Print a parse tree even if syntax error occur | Ryo Nihei | 2022-04-01 | 1 | -2/+8 |
| | | | | | A parser can construct a parse tree even if syntax error occur. When there is a parse tree, print it. | ||||
* | Allow an alternative to have multiple directives | Ryo Nihei | 2022-03-30 | 1 | -2/+116 |
| | |||||
* | Move directives given to lexical productions | Ryo Nihei | 2022-03-29 | 4 | -71/+136 |
| | | | | | Move all directives given to lexical productions from alternative directives to production directives. This change aims to ensure consistency with respect to the syntax of definitions of terminal symbols and non-terminal symbols. | ||||
* | Change syntax of production directives | Ryo Nihei | 2022-03-29 | 1 | -12/+16 |
| | | | | | | | The position of directives given to productions has moved from before a left-hand side value to after a left-hand side value. This change aims to simplify the syntax. However, there is no change in positions of directives given to alternatives. | ||||
* | Use IDs and labels as parameters of an #ast directive instead of symbol ↵ | Ryo Nihei | 2022-03-29 | 1 | -4/+102 |
| | | | | positions | ||||
* | Add label notation | Ryo Nihei | 2022-03-29 | 1 | -0/+60 |
| | |||||
* | Simplify the syntax of #ast directive | Ryo Nihei | 2022-03-28 | 1 | -19/+4 |
| | | | | This change allows using the simple syntax of the directive like `#ast $1 $3...` instead of `#ast #(foo $1 $3...)`. | ||||
* | Add vartan-go command | Ryo Nihei | 2022-03-27 | 8 | -47/+613 |
| | |||||
* | Use a lexer via interface | Ryo Nihei | 2022-03-27 | 9 | -91/+183 |
| | |||||
* | Use grammar via an interface | Ryo Nihei | 2022-03-23 | 7 | -48/+172 |
| | |||||
* | Add name directive to specify a grammar name | Ryo Nihei | 2021-10-28 | 5 | -0/+133 |
| | |||||
* | Use maleeni v0.5.1 | Ryo Nihei | 2021-10-27 | 4 | -17/+18 |
| | |||||
* | Pass a token that caused a syntax error to the semantic action APIs | Ryo Nihei | 2021-09-07 | 3 | -15/+16 |
| | |||||
* | Call the 'MissError' when input doesn't meet an error production | Ryo Nihei | 2021-09-07 | 2 | -1/+7 |
| | |||||
* | Add the semantic action API 'TrapAndShiftError' instead of 'TrapError' and ↵ | Ryo Nihei | 2021-09-07 | 3 | -52/+35 |
| | | | | 'ShiftError' | ||||
* | Change semantic action APIs | Ryo Nihei | 2021-09-07 | 3 | -18/+42 |
| | | | | The driver reports whether it recovered from an error to the semantic action APIs via the argument `recovered`. | ||||
* | Add tests for LAC | Ryo Nihei | 2021-09-03 | 1 | -0/+113 |
| | |||||
* | Make semantic actions user-configurable | Ryo Nihei | 2021-09-03 | 6 | -242/+521 |
| | |||||
* | Support LAC (lookahead correction) | Ryo Nihei | 2021-09-02 | 1 | -29/+115 |
| | |||||
* | Remove the expected terminals field from the parsing table | Ryo Nihei | 2021-08-31 | 1 | -10/+15 |
| | | | | The driver searches the expected terminals corresponding to each state if necessary. | ||||
* | Refactor | Ryo Nihei | 2021-08-30 | 1 | -165/+215 |
| | |||||
* | Add #prec directive to set precedence and associativity of productions | Ryo Nihei | 2021-08-30 | 1 | -0/+92 |
| | |||||
* | Add an #alias directive to define a user-friendly name of a terminal | Ryo Nihei | 2021-08-28 | 1 | -25/+17 |
| | |||||
* | Add error symbol and #recover directive to recover from an error state | Ryo Nihei | 2021-08-26 | 3 | -27/+336 |
| | |||||
* | Add a column number to a token | Ryo Nihei | 2021-08-22 | 1 | -2/+10 |
| | |||||
* | Support %left and %right to specify precedences and associativities | Ryo Nihei | 2021-08-22 | 2 | -0/+297 |
| | |||||
* | Resolve conflicts by default rules | Ryo Nihei | 2021-08-21 | 2 | -12/+121 |
| | | | | 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. | ||||
* | Fix indents of a tree | Ryo Nihei | 2021-08-19 | 1 | -1/+1 |
| | |||||
* | Fix panic on a syntax error | Ryo Nihei | 2021-08-15 | 1 | -3/+5 |
| | |||||
* | Support LALR(1) class | Ryo Nihei | 2021-08-15 | 1 | -40/+47 |
| | |||||
* | Add --only-parse option to the parse command | Ryo Nihei | 2021-08-05 | 1 | -6/+11 |
| | | | | When this option is enabled, the parser performs only parse and doesn't semantic actions. | ||||
* | Avoid the growth of slices when constructing trees | Ryo Nihei | 2021-08-05 | 1 | -5/+25 |
| | |||||
* | Generate an AST and a CST only when they are necessary | Ryo Nihei | 2021-08-04 | 2 | -59/+99 |
| | |||||
* | Print expected terminals on a parse error | Ryo Nihei | 2021-08-02 | 1 | -2/+44 |
| | |||||
* | Use maleeni v0.3.0 | Ryo Nihei | 2021-08-01 | 1 | -2/+2 |
| | |||||
* | Detect duplicate names between terminals and non-terminals | Ryo Nihei | 2021-07-31 | 1 | -0/+26 |
| | |||||
* | Prevent terminals used in productions from being skipped | Ryo Nihei | 2021-07-31 | 1 | -0/+11 |
| | | | | A terminal symbol used in productions cannot have the skip directive. | ||||
* | Detect unused-symbol error | Ryo Nihei | 2021-07-30 | 1 | -0/+43 |
| | | | | When there are productions and terminals that are cannot be reached from the start symbol, the compiler reports an error. | ||||
* | Detect duplicate production errors | Ryo Nihei | 2021-07-28 | 1 | -0/+42 |
| | |||||
* | Add literal pattern syntax and change tree structure syntax | Ryo Nihei | 2021-07-22 | 1 | -5/+5 |
| | | | | | | - 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 #(...). | ||||
* | Write a description file | Ryo Nihei | 2021-07-22 | 1 | -2/+4 |
| | | | | The description file describes a LR(0) item set and conflicts (if any). | ||||
* | Detect multiple semantic errors in a single parse | Ryo Nihei | 2021-07-18 | 1 | -1/+2 |
| | |||||
* | Add testing for the driver | Ryo Nihei | 2021-07-15 | 2 | -0/+47 |
| | | | | The driver can reduce productions that have the empty alternative and can generate a CST (and AST) node. | ||||
* | Allow directives to take multiple parameters | Ryo Nihei | 2021-07-02 | 1 | -1/+3 |
| |