7054d2981a1cafac007f620746b6cb3b8b836ab5
[nit.git] / contrib / pep8analysis / src / ast / ast_base.nit
1 import backbone
2 import parser
3
4 redef class AnalysisManager
5 fun build_ast( filename : String ) : nullable AListing
6 do
7 var file = new IFStream.open( filename )
8
9 var source = new SourceFile(filename, file)
10 var lexer = new Lexer(source)
11 var parser = new Parser(lexer)
12 var node_tree = parser.parse
13
14 var ast = node_tree.n_base
15 if ast == null then
16 var err = node_tree.n_eof
17 assert err isa AError
18 print "error at {err.location}: {err.message}"
19 return null
20 end
21
22 return ast
23 end
24 end