diff options
Diffstat (limited to 'appl/lib')
| -rw-r--r-- | appl/lib/mkfile | 4 | ||||
| -rw-r--r-- | appl/lib/sh9log.b | 58 | ||||
| -rw-r--r-- | appl/lib/sh9parser.b | 2 |
3 files changed, 62 insertions, 2 deletions
diff --git a/appl/lib/mkfile b/appl/lib/mkfile index 0becc2b..567d36f 100644 --- a/appl/lib/mkfile +++ b/appl/lib/mkfile @@ -3,16 +3,18 @@ TARG=\ sh9util.dis\ sh9parser.dis\ + sh9log.dis\ SYSMODULES=\ sh9util.m\ sh9parser.m\ + sh9log.m\ sys.m\ MODULES=\ - + DISBIN=$ROOT/dis/lib diff --git a/appl/lib/sh9log.b b/appl/lib/sh9log.b new file mode 100644 index 0000000..e4867e4 --- /dev/null +++ b/appl/lib/sh9log.b @@ -0,0 +1,58 @@ +implement Sh9Log; + +include "sys.m"; +include "sh9log.m"; + +sys: Sys; + +Logger.dbg(m: self ref Logger, s: string): int +{ + n:=0; + if (m.level <= LOG_DBG) { + n = sys->print("[D] %s\n", s); + } + return n; +} + +Logger.inf(m: self ref Logger, s: string): int +{ + n:=0; + if (m.level <= LOG_INF) { + n = sys->print("[I] %s\n", s); + } + return n; +} + +Logger.wrn(m: self ref Logger, s: string): int +{ + n:=0; + if (m.level <= LOG_WRN) { + n = sys->print("[W] %s\n", s); + } + return n; +} + +Logger.err(m: self ref Logger, s: string): int +{ + n:=0; + if (m.level <= LOG_ERR) { + n = sys->print("[E] %s\n", s); + } + return n; +} + +Logger.set_level(m: self ref Logger, level: int) +{ + if (m.level >= LOG_ERR) { + m.level = LOG_ERR; + } else if (m.level <= LOG_DBG) { + m.level = LOG_DBG; + } else { + m.level = level; + } +} + +init() +{ + sys = load Sys Sys->PATH; +} diff --git a/appl/lib/sh9parser.b b/appl/lib/sh9parser.b index 9f83354..75fe2e9 100644 --- a/appl/lib/sh9parser.b +++ b/appl/lib/sh9parser.b @@ -204,8 +204,8 @@ parse_toks(toks: array of ref TokNode, g: array of ref GrammarNode, debug_printi lt := len toks; if (debug_printing) { sys->print("Loop %d: ", ctr); + print_toks_short(toks); } - print_toks_short(toks); ctr ++; changed = 0; fast: for (i := 0; i < lt; i ++) { |
