summaryrefslogtreecommitdiff
path: root/appl/lib
diff options
context:
space:
mode:
Diffstat (limited to 'appl/lib')
-rw-r--r--appl/lib/mkfile4
-rw-r--r--appl/lib/sh9log.b58
-rw-r--r--appl/lib/sh9parser.b2
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 ++) {