# HG changeset patch # User Shinji KONO # Date 1605149180 -32400 # Node ID c95d28c5aaf2cbf8ee0306bf609f1366e4f3b284 # Parent 1896f63eedc1acdc1d5c6eaaab969d26a806ca2d ... diff -r 1896f63eedc1 -r c95d28c5aaf2 tl1trans/tl1parser.tl1 --- /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 + diff -r 1896f63eedc1 -r c95d28c5aaf2 tl1trans/tl1token.tl1 --- 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) diff -r 1896f63eedc1 -r c95d28c5aaf2 tl1trans/tl1trans.pl --- 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 #include "proto.h" +extern char GET(int); $gvar; $array;