changeset 7:c95d28c5aaf2 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 12 Nov 2020 11:46:20 +0900
parents 1896f63eedc1
children
files tl1trans/tl1parser.tl1 tl1trans/tl1token.tl1 tl1trans/tl1trans.pl
diffstat 3 files changed, 72 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tl1trans/tl1parser.tl1	Thu Nov 12 11:46:20 2020 +0900
@@ -0,0 +1,56 @@
+FUNC PARSE,EXPR,AEXPR,MEXPR,TERM
+VAR T,VALUE
+BEGIN
+  T:=TOKEN()
+  DO {
+    PARSE()
+  } WHILE(C=255)
+END
+
+FUNC
+PARSE()
+VAR D
+BEGIN
+    EXPR()
+END
+
+FUNC
+EXPR()
+VAR D
+BEGIN
+    AEXPR()
+END
+
+FUNC
+AEXPR()
+VAR D
+BEGIN
+    MEXPR()
+    CASE T OF
+     '-' { ... }
+     '+' { ... }
+    OTHERWISE {}
+END
+
+FUNC
+AEXPR()
+VAR D
+BEGIN
+    TERM()
+    CASE T OF
+     '-' { ... }
+     '+' { ... }
+    OTHERWISE {}
+END
+
+FUNC
+TERM()
+VAR D
+BEGIN
+    TOKEN()
+    CASE KIND OF
+     '0' { ... }
+     'v' { ... }
+    OTHERWISE {}
+END
+
--- a/tl1trans/tl1token.tl1	Wed Nov 04 17:38:45 2020 +0900
+++ b/tl1trans/tl1token.tl1	Thu Nov 12 11:46:20 2020 +0900
@@ -1,13 +1,23 @@
+PROC RESERVE
+FUNC TOKEN
+VAR C,KIND,VALUE
+BEGIN
+  C:=GET(0)
+  DO {
+    TOKEN()
+  } WHILE(C=255)
+END
+
 %
 %
 %
 %
-PROC RESERVE
+RESERVE
 BEGIN
     WRITE(3:$30,"PPROC");
-    WRRIE(3:$31,"FUNC");
+    WRITE(3:$31,"FUNC");
     WRITE(3:$32,"VAR");
-    WRITE(3:$33,:ARRAY");
+    WRITE(3:$33,"ARRAY");
     WRITE(3:$34,"BEGIN");
     WRITE(3:$35,";");
     WRITE(3:$36,"[");
@@ -73,16 +83,6 @@
     WRITE(3:$FF "");  % delimitor
 END
 
-FUNC TOKEN
-VAR C,KIND,VALUE
-BEGIN
-  C:=GET(0)
-  DO {
-    TOKEN()
-  } WHILE(C=255)
-END
-
-FUNC
 TOKEN()
 VAR D
 ARRAY W(8)
--- a/tl1trans/tl1trans.pl	Wed Nov 04 17:38:45 2020 +0900
+++ b/tl1trans/tl1trans.pl	Thu Nov 12 11:46:20 2020 +0900
@@ -61,7 +61,8 @@
         exit 1;
     }
     $_ = <>;
-    s/^\%.*//;
+    s/\%.*//;
+    s/\$([0-9A-Z]+)/0x\1/g;  # will replce inside of string
 }
 
 # get declaration
@@ -111,6 +112,7 @@
 #include <unistd.h>
 #include "proto.h"
 
+extern char GET(int);
 $gvar;
 $array;