Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
import parser
redef class AnalysisManager
import parser
redef class AnalysisManager
- fun build_ast( filename : String ) : nullable AListing
+ fun build_ast_from_file( filename : String ) : nullable AListing
do
var file = new IFStream.open( filename )
do
var file = new IFStream.open( filename )
+ return build_ast(filename, file)
+ end
- var source = new SourceFile(filename, file)
+ fun build_ast(filename: String, stream: IStream): nullable AListing
+ do
+ var source = new SourceFile(filename, stream)
var lexer = new Lexer(source)
var parser = new Parser(lexer)
var node_tree = parser.parse
var lexer = new Lexer(source)
var parser = new Parser(lexer)
var node_tree = parser.parse
opts.add_option(opt_ast)
end
opts.add_option(opt_ast)
end
- redef fun build_ast(filename)
+ redef fun build_ast(filename, stream)
import ast_base
redef class AnalysisManager
import ast_base
redef class AnalysisManager
- redef fun build_ast(filename)
+ redef fun build_ast(filename, stream)
do
var ast = super
if ast != null then
do
var ast = super
if ast != null then
print "Target file \"{filename}\" does not exist."
exit 1
end
print "Target file \"{filename}\" does not exist."
exit 1
end
- var ast = build_ast( filename )
+ var ast = build_ast_from_file( filename )
assert ast != null
if failed then continue
assert ast != null
if failed then continue