aboutsummaryrefslogtreecommitdiff
path: root/driver (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Namespace packages with "urubu/"EuAndreh2024-12-1014-5568/+0
|
* Start building test filesEuAndreh2024-12-106-13/+13
|
* Build and test existing code as isEuAndreh2024-12-025-10/+10
|
* Add byte position to nodes of a syntax treeRyo Nihei2022-11-134-5/+22
|
* Fix typoRyo Nihei2022-11-131-10/+10
|
* Add byte position to tokensRyo Nihei2022-11-132-241/+270
|
* Set token positions for the EOF symbolRyo Nihei2022-11-122-3/+3
| | | | | | vartan intentionally had not set positional information for the EOF symbol in a token because the corresponding character does not exist in the source code. However, to be able to include the positional information in a syntax error message when a syntax error occurs due to the detection of the EOF symbol during parsing, this commit sets the position next to the last character in the source code as the position of the EOF symbol.
* Fix counting of token positionsRyo Nihei2022-11-121-37/+46
| | | | The name `unread` gives the impression of operating just the opposite of `read`. However, this commit renames `unread` function to `revert` because it was a function to revert the state to the last acceptance.
* Import source code of lexer generatorRyo Nihei2022-11-1014-94/+2125
| | | | From: https://github.com/nihei9/maleeni
* Move the skip table from lexer-related data to parser-related dataRyo Nihei2022-11-064-40/+33
|
* Remove anonymous symbol systemRyo Nihei2022-11-053-53/+68
| | | | Remove unimportant features to tidy up the specification.
* Remove alias systemRyo Nihei2022-11-055-44/+22
| | | | Remove unimportant features to tidy up the specification.
* Prohibit using a pattern in an alternativeRyo Nihei2022-06-121-6/+8
| | | | | | When a syntax error occurs, the parser must provide a user with the names of expected tokens. However, if a pattern appears directly in an alternative, Vartan cannot assign an appropriate name to the pattern. Therefore, this commit prohibits alternatives from containing patterns.
* Remove the kind field from a node corresponding to an anonymous terminal symbolRyo Nihei2022-06-113-10/+202
|
* Rename spec package to spec/grammar packageRyo Nihei2022-05-278-8/+8
|
* Allows a directory to be specified as the --output option for the ↵Ryo Nihei2022-05-225-5/+5
| | | | vartan-compile command
* Stop supporting SLR(1) and always use LALR(1)Ryo Nihei2022-05-228-83/+60
|
* Prohibit using escape sequences in string literalsRyo Nihei2022-05-151-0/+24
|
* Follow golangci-lintRyo Nihei2022-05-101-3/+1
|
* Make the identifier format strictRyo Nihei2022-05-101-7/+7
|
* Add ordered symbol notationRyo Nihei2022-05-101-7/+7
|
* Add #assign directiveRyo Nihei2022-05-101-13/+152
| | | | An #assign directive changes only precedence.
* Change syntax for top-level directivesRyo Nihei2022-05-105-52/+70
| | | | | | | | | | | | | %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-101-2/+47
|
* Add --json option to vartan-parse commandRyo Nihei2022-05-102-27/+79
|
* vartan-show command prints only adopted actions when conflicts occurRyo Nihei2022-04-211-5/+0
|
* Add tests for driverRyo Nihei2022-04-161-3/+155
|
* Move compiler tests from driver package to grammar packageRyo Nihei2022-04-141-545/+2
|
* Allow arbitrary user-defined types for nodes in a syntax treeRyo Nihei2022-04-033-196/+219
|
* Print a parse tree even if syntax error occurRyo Nihei2022-04-011-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 directivesRyo Nihei2022-03-301-2/+116
|
* Move directives given to lexical productionsRyo Nihei2022-03-294-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 directivesRyo Nihei2022-03-291-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 Nihei2022-03-291-4/+102
| | | | positions
* Add label notationRyo Nihei2022-03-291-0/+60
|
* Simplify the syntax of #ast directiveRyo Nihei2022-03-281-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 commandRyo Nihei2022-03-278-47/+613
|
* Use a lexer via interfaceRyo Nihei2022-03-279-91/+183
|
* Use grammar via an interfaceRyo Nihei2022-03-237-48/+172
|
* Add name directive to specify a grammar nameRyo Nihei2021-10-285-0/+133
|
* Use maleeni v0.5.1Ryo Nihei2021-10-274-17/+18
|
* Pass a token that caused a syntax error to the semantic action APIsRyo Nihei2021-09-073-16/+17
|
* Call the 'MissError' when input doesn't meet an error productionRyo Nihei2021-09-072-1/+7
|
* Add the semantic action API 'TrapAndShiftError' instead of 'TrapError' and ↵Ryo Nihei2021-09-073-52/+35
| | | | 'ShiftError'
* Change semantic action APIsRyo Nihei2021-09-073-18/+42
| | | | The driver reports whether it recovered from an error to the semantic action APIs via the argument `recovered`.
* 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 tableRyo Nihei2021-08-311-10/+15
| | | | The driver searches the expected terminals corresponding to each state if necessary.
* RefactorRyo Nihei2021-08-301-166/+216
|