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()