alogos._grammar.normalization._shared

Functions

create_empty_terminal()

Create a terminal that represents the empty string ε.

is_empty_terminal(symbol)

Check if a symbol is a terminal and represents the empty string.

create_new_nonterminal(grammar, prefix)

Create a new nonterminal that is not yet part of the grammar.

update_grammar_parts(grammar)

Repair the grammar after rule modifications so all parts fit.


Detailed object descriptions

alogos._grammar.normalization._shared.create_empty_terminal()[source]

Create a terminal that represents the empty string ε.

alogos._grammar.normalization._shared.is_empty_terminal(symbol)[source]

Check if a symbol is a terminal and represents the empty string.

alogos._grammar.normalization._shared.create_new_nonterminal(grammar, prefix)[source]

Create a new nonterminal that is not yet part of the grammar.

To ensure the nonterminal can be easily recognized as being autogenerated and to ensure that it is a new symbol, a combination of a prefix and an increment is used.

Caution: This function assumes that the grammar’s nonterminal set is up to date with the production rules.

alogos._grammar.normalization._shared.update_grammar_parts(grammar)[source]

Repair the grammar after rule modifications so all parts fit.

Process: - The grammar is reset. - The old production rules are inserted again. - The nonterminals and terminals are deduced from the content

of the production rules.

  • The start symbol is assumed to be the first nonterminal.