Cologne is a LR(0) parser created in Python.
- import Cologne.
import Cologne- create a parser.
parser = Cologne.parser- create your terminals.
# Terminals.
NUMBER = parser.add_terminal(Cologne.Terminal("NUMBER"))
PLUS = parser.add_terminal(Cologne.Terminal("PLUS"))
MINUS = parser.add_terminal(Cologne.Terminal("MINUS"))
TIMES = parser.add_terminal(Cologne.Terminal("TIMES"))
DIVIDE = parser.add_terminal(Cologne.Terminal("DIVIDE"))- create your non terminals.
expr = parser.add_non_terminal(Cologne.NonTerminal("expr"))- create your productions.
parser.add_productions(
Cologne.Production( expr, (expr, PLUS, expr) ),
Cologne.Production( expr, (expr, MINUS, expr) ),
Cologne.Production( expr, (expr, TIMES, expr) ),
Cologne.Production( expr, (expr, DIVIDE, expr) ),
Cologne.Production( expr, (NUMBER, ) )
)- Generate the closures and the parse table.
parser.generate_closures()
parse_table = Cologne.ParseTable(parser)