def main(argv): input_stream = FileStream(argv[1]) lexer = frameQLLexer(input_stream) stream = CommonTokenStream(lexer) parser = frameQLParser(stream) tree = parser.root() print(tree.toStringTree(recog=parser))
def main(input): input_stream = FileStream(input) data = [[0, 50, 'bus'], [1, 100, 'car'], [2, 50, 'van'], [3, 150, 'bus'], [4, 120, 'bus'], [5, 130, 'car'], [6, 250, 'bus'], [7, 70, 'van'], [8, 110, 'bus']] lexer = frameQLLexer(input_stream) print("Raw SQL Query: ") print(input_stream, '\n') stream = CommonTokenStream(lexer) parser = frameQLParser(stream) tree = parser.root() listener = MyListener(data) walker = ParseTreeWalker() walker.walk(listener, tree) print("Parse Tree: \n") print(tree.toStringTree(recog=parser)) print('\n') ExpressionTree = listener.root PlanTree = listener.projectionNode Data_inp = listener.crossNode def traverseExpTree(node, children=[]): if hasattr(node, 'children'): if len(node.children) == 0: return for child in node.children: traverseExpTree(child, children) if hasattr(node, 'attribute'): children.append(ExpressionConstant(node.attribute)) print(node.attribute, end=', ') elif hasattr(node, 'data'): children.append(ExpressionConstant(node.data)) print(node.data, end=', ') elif hasattr(node, 'operator'): if node.operator in ['+', '-', '*', '/']: ExpressionArithmetic(children, node.operator) elif node.operator in ['AND', 'OR', 'NOT']: ExpressionLogical(children, node.operator, node.parent) else: ExpressionComparison(children, node.operator) children = [] print(node.operator, end=', ') else: print(node, end=', ') print("PostFix Traversal of Expression Tree: \n") traverseExpTree(ExpressionTree) print('\n')
def main(argv): input_stream = FileStream(argv) lexer = frameQLLexer(input_stream) stream = CommonTokenStream(lexer) parser = frameQLParser(stream) tree = parser.root() listener = MyListener() walker = ParseTreeWalker() walker.walk(listener,tree) PlanTree = listener.projectionNode print(PlanTree.attributes) print(PlanTree.children.expression) print(PlanTree.children.children.data)
def main(argv): input_stream = FileStream(argv[1]) lexer = frameQLLexer(input_stream) stream = CommonTokenStream(lexer) parser = frameQLParser(stream) tree = parser.root() '''print out the parse tree''' #print(tree.toStringTree(recog=parser)) '''traverse through the parse tree''' printer = KeyPrinter() walker = ParseTreeWalker() walker.walk(printer, tree) '''generate the predicate list and the operator list required by the query optimizer''' '''these lists are generated by the _parseQuery in the query_optimizer.py file''' printer.generateParsedLists() print(printer.getQueryParsed()) print(printer.getQueryOperator())
def main(argv): input_stream = FileStream(argv) #query=convert_query('SELECT CLASS , REDNESS FROM TAIPAI WHERE CLASS = \'BUS\' AND REDNESS > 200') #input_stream.strdata=query lexer = frameQLLexer(input_stream) stream = CommonTokenStream(lexer) parser = frameQLParser(stream) tree = parser.root() listener = MyListener() walker = ParseTreeWalker() walker.walk(listener, tree) print(tree.toStringTree(recog=parser)) ExpressionTree = listener.currentLogicalExpression PlanTree = listener.projectionNode print(ExpressionTree.children[0].children[0]) print(ExpressionTree.children[0].operator) print(ExpressionTree.children[0].children[1].data) print(ExpressionTree.children[1].children[0].attribute) print(ExpressionTree.children[1].operator) print(ExpressionTree.children[1].children[1].data)
def main(argv): input_stream = FileStream(argv) lexer = frameQLLexer(input_stream) stream = CommonTokenStream(lexer) parser = frameQLParser(stream) tree = parser.root() listener = MyListener() walker = ParseTreeWalker() walker.walk(listener,tree) ExpressionTree=listener.FIFO[0] ''' print(ExpressionTree.children[0].children[0].children[0].attribute) print(ExpressionTree.children[0].children[0].operator) print(ExpressionTree.children[0].children[0].children[1].data) print(ExpressionTree.children[0].operator) print(ExpressionTree.children[0].children[1].children[0].attribute) print(ExpressionTree.children[0].children[1].operator) print(ExpressionTree.children[0].children[1].children[1].data) print(ExpressionTree.operator) print(ExpressionTree.children[1].children[0].attribute) print(ExpressionTree.children[1].operator) print(ExpressionTree.children[1].children[1].data) ''' ''' print(ExpressionTree.children[1].children[0].children[0].attribute) print(ExpressionTree.children[1].children[0].operator) print(ExpressionTree.children[1].children[0].children[1].data) print(ExpressionTree.children[1].children[1].children[0].attribute) print(ExpressionTree.children[1].children[1].operator) print(ExpressionTree.children[1].children[1].children[1].data) print(ExpressionTree.operator) print(ExpressionTree.children[0].children[1].children[0].children[0].children[0].attribute) print(ExpressionTree.children[0].children[1].children[0].children[0].operator) print(ExpressionTree.children[0].children[1].children[0].children[0].children[1].data) print(ExpressionTree.children[0].children[1].children[0].operator) print(ExpressionTree.children[0].children[1].children[0].children[1].children[0].attribute) print(ExpressionTree.children[0].children[1].children[0].children[1].operator) print(ExpressionTree.children[0].children[1].children[0].children[1].children[1].data) print(ExpressionTree.children[0].children[1].operator) print(ExpressionTree.children[0].children[1].children[1].children[0].attribute) print(ExpressionTree.children[0].children[1].children[1].operator) print(ExpressionTree.children[0].children[1].children[1].children[1].data) ''' ''' #test4.txt print(ExpressionTree.children[0].children[1].children[0].children[0].attribute) print(ExpressionTree.children[0].children[1].children[0].operator) print(ExpressionTree.children[0].children[1].children[0].children[1].data) print(ExpressionTree.children[0].children[1].operator) print(ExpressionTree.children[0].children[1].children[1].data) print(ExpressionTree.operator) print(ExpressionTree.children[1].children[0].attribute) print(ExpressionTree.children[1].operator) print(ExpressionTree.children[1].children[1].data) ''' '''