- Extraction of Shared Packed Parse Forest from BSR set added
- BSR set stores only symbol strings in stringBSR
- Allow length 1 non-terminals.
- Add regular definitions to lexical rules
- Support the Unicode category and property range tables supported by Go package unicode.
- Fixed duplicate symbols in first sets.
- Fixed BSR String() bug
Issue Generated files are set as executable #15 fixed
Module path supports major version v3
Bug in lexer state machine generation fixed by Paul Samways
Escaped characters are now correctly handled in string_lit
.
Please see the grammar for constraints enforced by gogll on the use
of certain escaped characters string_lit
as SyntaxSymbol
.
This version does not support Rust.
Suppressed tokens added to lexer. See gogll.md
Bug fixed in handling of empty productions.
This version of gogll supports generation of Rust and Go LR(1) parsers as well as GLL. Pager's Practical General Method and Knuth's original machine are both supported.
- Unnecessary match statements removed from generated Rust lexer code.
- Generated Rust lexer markdown loading performance improved.
Rust target added.
- Global variables removed from parser and BSR.
- tokens have a method: GetLineColumn()
- Bugfix in lexer closure algorithm.
- Some semantic checks implemented
- Check that referenced NTs and TokIDs are declared.
- Gogll stops with an error if the parse forest is ambiguous
- GoGLL v3.0.3 has both a lexer and parser generated by GoGLL v3.0.2. This version compiles itself.
- GoGLL v3.0.2 has a GoGLL parser generated by GoGLL v3.0.1 and a hand-written lexer. This is the final bootstrap version.
- v3.0.2 generates a GoGLL parser with a matching linear-time FSA lexer from one input grammar.
- GOGLL v3.0.1 features a GoGLL parser generated by GoGLL v3.0.0 and a hand-written FSA lexer. It is used to bootstrap the GoGLL v3.0.2 which generates both a linear-time FSA lexer for a matching GLL parser.
- GoGLL v3.0.0 (worktree gogll-lex). This is the basic bootstrap version of GoGLL v3. This version is made with Gocc and generates syntax-only GoGLL v3.0.1 parser.
- Documentation added on how to walk the parse forest. See
- testSelect is generated as a slice of functions, not a map of functions.
- follow is generated as separate functions, not a map of functions.
- Bug fixed in
ast.NewAnyOf
andast.NewNot
- Grammar change:
emptyAlt
replace byempty
.emptyAlt
was a vestige of the bootstrap gocc compiler.
BSR performance improved.