You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added a JavaScript parser generator backend, selected with --backend javascript. The generated ECMAScript module imports the token constants from the generated scanner, whose module specifier can be set with --backend-javascript-scanner-module.
Added a TypeScript scanner generator backend.
Added a TypeScript parser generator backend.
Added a C# scanner generator backend.
Added a C# parser generator backend.
Replaced the Java scanner backend with a table driven one.
Added a Java parser generator backend, selected with --backend java.
Replaced the Rust scanner backend with a table driven one.
Added a Rust parser generator backend, selected with --backend rust.
Added a Python scanner generator backend, selected with --backend python.
Added a Python parser generator backend, selected with --backend python.
Added a C++ scanner generator backend, selected with --backend cpp.
Added a C++ parser generator backend, selected with --backend cpp.
Fixed the generated scanners consuming one byte too many when a match failed after the automaton had already consumed bytes. The byte which ended the failed match now starts the next token instead of being swallowed by the invalid token, which had corrupted the token following the error.
Fixed the generated parser rejecting an empty input which the grammar accepts. The end of input is now a token the parse table decides on like any other.
Fixed Symbol.String of the generated Go parser printing the index of a symbol instead of its name.
BREAKING: The generated Go parser now spells the augmented start symbol AcceptNonterminal instead of Nonterminal_accept, which is the name every other language backend already uses.
BREAKING: --backend go now writes the table driven scanner and parser, which is smaller and faster than the directly coded one it replaces. The directly coded Go backend is gone, and with it the names go-direct and go-table.
BREAKING: The public packages pkg/parsergen/backend/golangtable and pkg/scannergen/backend/golangtable are now pkg/parsergen/backend/golang and pkg/scannergen/backend/golang, taking the place of the re-exports of the directly coded backend.
Added a C scanner generator backend, selected with --backend c.
Added a C parser generator backend, selected with --backend c.