Compile a Backus-Naur Form Specification into an R Grammar Object
Overview
Translates a BNF (Backus-Naur Form) specification of a context-free language into an R grammar object which consists of the start symbol, the symbol table, the production table, and a short production table. The short production table is non-recursive. The grammar object contains the file name from which it was generated (without a path). In addition, it provides functions to determine the type of a symbol (isTerminal() and isNonterminal()) and functions to access the production table (rules() and derives()). For the BNF specification, see Backus, John et al. (1962) "Revised Report on the Algorithmic Language ALGOL 60". (ALGOL60 standards page http://www.algol60.org/2standards.htm, html-edition https://www.masswerk.at/algol60/report.htm) A preprocessor for macros which expand to standard BNF is included. The grammar compiler is an extension of the APL2 implementation in Geyer-Schulz, Andreas (1997, ISBN:978-3-7908-0830-X).
- dataframePT(): Return a production table as a (readable) dataframe.
From NEWS in the release
Install
Health
- OK13 OK2026-08-04
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-06-08
- ERROR12 OK, 1 ERROR2026-06-07
- OK14 OK2026-03-10
Documentation
- Help pages
- 37includes a package overview page
- Examples that run
- 100%36 run in a plain check
- Exported functions with examples
- 100%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 8%
Downloads
Repository
Checks run against github.com/ageyerschulz/xegabnf on 2026-10-21.
No development-tooling practices detected in the upstream repository.
Dependencies
Installing xegaBNF adds no packages beyond those that come with R.
Code & Tests
People & History
Pick two releases to compare their code metrics.
- RR 4.6.0 released · 2026-04-24
- 1.0.0.5Latest2025-04-17 · current release · diff ↗ ·
added 20 exports
allTerminal, bindKvariables, booleanGrammarK, cL, dataframePT, directRecursion, evenMacro, existsMacro, expandGrid, expandRules, findNextRuleForExpansion, finiteRulesOfG, newPT, nonTerminalsOfG, pastePart, preBNF, printPT, smallestRules, variableNamesBNF, variableNamesLHS - RR 4.5.0 released · 2025-04-11
- RR 4.4.0 released · 2024-04-24
- 1.0.0.02024-02-05
- RR 4.3.0 released · 2023-04-21
Package metadata
- First published
- 2024-02-05
- Total releases
- 2 / 2 yrs
- License
- MIT + file LICENSE OSI
- Download size
- 24 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("xegaBNF")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-25, which the citation names so these numbers can be found later. More on citing and the projects behind them.