36 lines
869 B
Python
36 lines
869 B
Python
from TreeLexer import TreeLexer
|
|
from TreeParser import TreeParser
|
|
from TreeVisitor import TreeVisitor
|
|
|
|
from antlr4 import InputStream, CommonTokenStream
|
|
import sys
|
|
|
|
class MyTreeVisitor(TreeVisitor):
|
|
def visitLeaf(self, ctx):
|
|
return True
|
|
|
|
def visitNode(self, ctx):
|
|
nodes = ctx.int_tree();
|
|
if(len(nodes)>2):
|
|
return False
|
|
for node in nodes:
|
|
if(not self.visit(node)):
|
|
return False
|
|
return True
|
|
|
|
def visitTop(self, ctx):
|
|
return self.visit(ctx.int_tree())
|
|
|
|
def main():
|
|
lexer = TreeLexer(InputStream(sys.stdin.read()))
|
|
stream = CommonTokenStream(lexer)
|
|
parser = TreeParser(stream)
|
|
tree = parser.int_tree_top()
|
|
visitor = MyTreeVisitor()
|
|
b = visitor.visit(tree)
|
|
print("Is it a binary tree ? " + str(b))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|