nitcc_runtime :: TestParser :: work
Produce also statistics and output files
# Produce a full syntactic tree for a given stream of character
# Produce also statistics and output files
fun work(text: String): Node
do
print "INPUT: {text.length} chars"
var l = new_lexer(text)
var tokens = l.lex
var tokout = "{name}.tokens.out"
print "TOKEN: {tokens.length} tokens (see {tokout})"
var f = new FileWriter.open(tokout)
for t in tokens do
f.write "{t.to_s}\n"
end
f.close
var p = new_parser
p.tokens.add_all(tokens)
var n = p.parse
var astout = "{name}.ast.out"
f = new FileWriter.open(astout)
var tpv = new TreePrinterVisitor(f)
var astdotout = "{name}.ast.dot"
if n isa NError then
print "Syntax error: {n.message}"
print "ERROR: {n} (see {astout} and {astdotout})"
tpv.enter_visit(n)
n = n.error_tree
else
print "ROOT: {n}; {n.depth.length} nodes (see {astout} and {astdotout})"
end
tpv.enter_visit(n)
n.to_dot(astdotout)
f.close
return n
end
lib/nitcc_runtime/nitcc_runtime.nit:637,2--676,4