Newer
Older
NewLang / src / main.py
# SPDX-License-Identifier: LGPL-2.1-only
# Copyright 2021 Jookia <contact@jookia.org>

import atexit
import sys

from src import log
from src import oldparse
from src import interp


def main():
    args = sys.argv
    if len(args) != 2:
        print("Usage: main.py FILENAME")
        return 1
    log.set_default_log_level()
    ast = oldparse.parse_file(args[1])
    if not ast:
        return 1
    interp.run_ast(ast)
    return 0


def nowait_main():
    code = main()
    sys.exit(code)


def unexpected_exit():
    input("Unexpected exit. Press any key to continue.")


def wait_main():
    atexit.register(unexpected_exit)
    code = main()
    atexit.unregister(unexpected_exit)
    input("Exited with code %s. Press any key to continue." % (code))
    sys.exit(code)