diff --git a/log.py b/log.py index ba91794..a5c2cd9 100644 --- a/log.py +++ b/log.py @@ -1,6 +1,8 @@ # SPDX-License-Identifier: MIT # Copyright 2021 Jookia +import os + LEXER = 0 PARSER = 1 @@ -8,7 +10,12 @@ DEBUG = 1 # high-level information about what's happening TRACE = 2 # trace output +log_level = 0 + def log(module, level, text): + if level > log_level: + return + if module == LEXER: module_name = "LEXER" elif module == PARSER: @@ -26,3 +33,15 @@ level_name = "UNKNOWN" print("%s %s: %s" % (level_name, module_name, text)) + +def set_default_log_level(): + level = os.getenv("NEWLANG_LOG_LEVEL") + global log_level + if not level or level == "NORMAL": + log_level = 0 + elif level == "DEBUG": + log_level = 1 + elif level == "TRACE": + log_level = 2 + else: + print("ERROR: Unknown log level %s" % (level)) diff --git a/main.py b/main.py index de28b1b..1ef46a5 100755 --- a/main.py +++ b/main.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: MIT # Copyright 2021 Jookia +import log import parse def text_create(value): @@ -78,6 +79,7 @@ if len(args) != 2: print("Usage: main.py FILENAME") return 1 + log.set_default_log_level() filename = args[1] code = open(filename).read() if code[0:2] == '#!':