end
# Generate the parser of the automaton
- fun gen_to_nit(filepath: String)
+ fun gen_to_nit(filepath: String, name: String)
do
var gen = new Generator
- gen.gen_to_nit(self)
+ gen.gen_to_nit(self, name)
var f = new OFStream.open(filepath)
for s in gen.out do
f.write(s)
private class Generator
var out = new Array[String]
fun add(s: String) do out.add(s)
- fun gen_to_nit(autom: LRAutomaton)
+ fun gen_to_nit(autom: LRAutomaton, name: String)
do
var states = autom.states
var gram = autom.grammar
- add "# Parser generated by nitcc"
+ add "# Parser generated by nitcc for the grammar {name}"
add "import nitcc_runtime"
- add "class MyParser"
+ add "class Parser_{name}"
add "\tsuper Parser"
add "\tredef fun start_state do return state_{states.first.cname}"
add "end"