#!/usr/bin/env python3

import sys
from scanner      import Scanner
from fb_token     import Token
from td_parser    import Parser
from errors       import LexicalError, ParseError

try:
    filename = sys.argv[1]
    myfile   = open(filename)
    program  = myfile.read()

    scanner  = Scanner(program)
    parser   = Parser(scanner)
    tree     = parser.parse()

    print()
    print(tree.pretty_print(), end='\n\n')
except LexicalError as le:
    print('Lexical error: ' + str(le))
except ParseError as le:
    print('Parse error: ' + str(le))
except Exception as exc:
    print('Something went wrong: ' + str(exc))
