From 25314fd2aed81aa5281bc3d93dbcc7919368ebe1 Mon Sep 17 00:00:00 2001 From: Bicker Date: Wed, 22 May 2019 17:45:37 +0200 Subject: Initial commit --- ql/ast/extractors/extractor.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 ql/ast/extractors/extractor.py (limited to 'ql/ast/extractors/extractor.py') diff --git a/ql/ast/extractors/extractor.py b/ql/ast/extractors/extractor.py new file mode 100644 index 0000000..f86304e --- /dev/null +++ b/ql/ast/extractors/extractor.py @@ -0,0 +1,35 @@ +from ql.ast.visitors.dependency_visitor import DependencyVisitor +from ql.ast.visitors.identifier_type_visitor import IdentifierTypeVisitor +from ql.ast.visitors.model_generator import ModelGenerator +from ql.ast.visitors.question_visitor import QuestionVisitor +from ql.ast.visitors.reference_visitor import ReferenceVisitor + + +def extract_identifier_dependencies(ast): + dependency_visitor = DependencyVisitor() + dependency_visitor.visit(ast) + return dependency_visitor.identifier_dependencies + + +def extract_identifier_scopes(ast): + reference_visitor = ReferenceVisitor() + reference_visitor.visit(ast) + return reference_visitor.identifier_scopes + + +def extract_identifier_types(ast): + identifier_type_visitor = IdentifierTypeVisitor() + identifier_type_visitor.visit(ast) + return identifier_type_visitor.symbol_table + + +def extract_questions(ast): + question_visitor = QuestionVisitor() + question_visitor.visit(ast) + return question_visitor.questions + + +def extract_gui_model(ast): + model_generator = ModelGenerator() + model_generator.visit(ast) + return model_generator.form -- cgit v1.2.3