aboutsummaryrefslogtreecommitdiff
path: root/grammar (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Stop supporting SLR(1) and always use LALR(1)Ryo Nihei2022-05-227-1076/+4
|
* Prohibit applying #left, #right, #assign, and #prec to an error symbolRyo Nihei2022-05-152-14/+103
| | | | | | | The shift of the error symbol is an operation forced by the driver. Therefore it is impossible to change this behavior by giving precedence to the error symbol. If we desire to change the precedence of a production rule with the error symbol, we can use #prec directive.
* Add spelling inconsistencies checkRyo Nihei2022-05-103-23/+238
|
* Make the identifier format strictRyo Nihei2022-05-104-65/+66
|
* Change the suffix of a description file from -description.json to -report.jsonRyo Nihei2022-05-102-12/+12
|
* Add ordered symbol notationRyo Nihei2022-05-103-123/+969
|
* Add #assign directiveRyo Nihei2022-05-102-0/+333
| | | | An #assign directive changes only precedence.
* Change syntax for top-level directivesRyo Nihei2022-05-109-220/+570
| | | | | | | | | | | | | %name changes to: #name example; %left and %right change to: #prec ( #left a b #right c d );
* Make #prec directive change only precedence and not associativityRyo Nihei2022-05-103-26/+224
|
* Suppress a report about conflicts resolved explicitlyRyo Nihei2022-04-222-37/+68
|
* vartan-show command prints only adopted actions when conflicts occurRyo Nihei2022-04-213-58/+51
|
* Prohibit ambiguous symbol in an #ast directiveRyo Nihei2022-04-163-1/+49
|
* Add tests for compilerRyo Nihei2022-04-161-0/+224
|
* Prohibit using the same element multiple times in the #ast directiveRyo Nihei2022-04-163-4/+45
|
* Prohibit specifying associativity and precedence multiple times for a symbolRyo Nihei2022-04-163-1/+130
|
* Add tests for compilerRyo Nihei2022-04-153-113/+719
|
* Move compiler tests from driver package to grammar packageRyo Nihei2022-04-142-8/+656
|
* Fix error messagesRyo Nihei2022-03-301-2/+2
|
* Upgrade maleeni to v0.6.0Ryo Nihei2022-03-301-1/+21
|
* Allow an alternative to have multiple directivesRyo Nihei2022-03-302-5/+26
|
* Move directives given to lexical productionsRyo Nihei2022-03-292-30/+38
| | | | | 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.
* Use IDs and labels as parameters of an #ast directive instead of symbol ↵Ryo Nihei2022-03-291-21/+25
| | | | positions
* Add label notationRyo Nihei2022-03-292-0/+25
|
* Simplify the syntax of #ast directiveRyo Nihei2022-03-281-30/+29
| | | | This change allows using the simple syntax of the directive like `#ast $1 $3...` instead of `#ast #(foo $1 $3...)`.
* Follow golangci-lintRyo Nihei2022-03-287-88/+31
|
* Add name directive to specify a grammar nameRyo Nihei2021-10-288-2/+71
|
* Use maleeni v0.5.1Ryo Nihei2021-10-271-1/+4
|
* Use the LALR by default when using grammar.Compile instead of the CLIRyo Nihei2021-09-031-1/+3
|
* Support LAC (lookahead correction)Ryo Nihei2021-09-022-0/+9
|
* Remove the expected terminals field from the parsing tableRyo Nihei2021-08-312-25/+5
| | | | The driver searches the expected terminals corresponding to each state if necessary.
* Add #prec directive to set precedence and associativity of productionsRyo Nihei2021-08-301-10/+48
|
* Add precedences and associativities to the description fileRyo Nihei2021-08-292-3/+42
|
* Add describe command to print a description fileRyo Nihei2021-08-293-171/+213
|
* Use a pattern string defined by a string literal as its aliasRyo Nihei2021-08-281-13/+42
|
* Add an #alias directive to define a user-friendly name of a terminalRyo Nihei2021-08-281-11/+36
|
* Add error symbol and #recover directive to recover from an error stateRyo Nihei2021-08-269-43/+156
|
* Fix panic on no productionsRyo Nihei2021-08-221-0/+3
|
* Add a column number to an error messageRyo Nihei2021-08-221-0/+28
|
* Support %left and %right to specify precedences and associativitiesRyo Nihei2021-08-223-3/+176
|
* Resolve conflicts by default rulesRyo Nihei2021-08-213-88/+94
| | | | 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.
* Make the functions that test the automaton commonRyo Nihei2021-08-183-361/+152
|
* Set look-ahead symbols to items before generating a SLR(1) parsing tableRyo Nihei2021-08-189-288/+713
|
* Support LALR(1) classRyo Nihei2021-08-1511-920/+2089
|
* Fix the name of the EOF symbol in the description fileRyo Nihei2021-08-031-0/+7
|
* Print expected terminals on a parse errorRyo Nihei2021-08-023-15/+35
|
* Use maleeni v0.3.0Ryo Nihei2021-08-011-33/+22
|
* Write terminals to a description fileRyo Nihei2021-07-315-43/+78
|
* Detect duplicate names between terminals and non-terminalsRyo Nihei2021-07-312-4/+12
|
* Prevent terminals used in productions from being skippedRyo Nihei2021-07-312-23/+57
| | | | A terminal symbol used in productions cannot have the skip directive.
* Detect unused-symbol errorRyo Nihei2021-07-302-1/+102
| | | | When there are productions and terminals that are cannot be reached from the start symbol, the compiler reports an error.