aboutsummaryrefslogtreecommitdiff
path: root/ql/ast/extractors/extractor.py
diff options
context:
space:
mode:
authorBicker <bickerkards@tuta.io>2019-05-22 17:45:37 +0200
committerBicker <bickerkards@tuta.io>2019-05-22 17:45:37 +0200
commit25314fd2aed81aa5281bc3d93dbcc7919368ebe1 (patch)
tree1995521ee652e419926de5fced0f2e3b655e70fb /ql/ast/extractors/extractor.py
Initial commitHEADmaster
Diffstat (limited to 'ql/ast/extractors/extractor.py')
-rw-r--r--ql/ast/extractors/extractor.py35
1 files changed, 35 insertions, 0 deletions
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