Example #1
0
import sys

import ply.yacc as yacc

from Cparser import Cparser
from Translator import Translator


if __name__ == '__main__':

    filename = None
    try:
        filename = sys.argv[1] if len(sys.argv) > 1 else "../resources/example.txt"
        input_file = open(filename, "r")
    except IOError:
        print("Cannot open {0} file".format(filename))
        sys.exit(0)

    Cparser = Cparser()
    parser = yacc.yacc(module=Cparser)
    text = input_file.read()
    
    ast = parser.parse(text, lexer=Cparser.scanner)

    translator = Translator()
    # ast.accept2(TypeChecker())
    ast.accept(translator)
    translator.print_commands(sys.argv[2] if len(sys.argv) > 2 else "../out/Main.j")