X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=blobdiff_plain;f=csrc%2Findent_test.mdc;h=960f63eb8122a2b8791952498e5c7b42832d2029;hp=88e93914aa6f88a7b49638e230c3d99e372019eb;hb=86e54542650f7f72a04c70618e07091f905398c8;hpb=ca00beb39b9d02578c1f0b556a2c2f70f28cf6e7 diff --git a/csrc/indent_test.mdc b/csrc/indent_test.mdc index 88e9391..960f63e 100644 --- a/csrc/indent_test.mdc +++ b/csrc/indent_test.mdc @@ -4,17 +4,16 @@ simple assignments with expressions, and then prints out the same with complete bracketing and indenting. # File: indent_test.mk - myCFLAGS := -Wall -g -fplan9-extensions - CFLAGS := $(filter-out $(myCFLAGS),$(CFLAGS)) $(myCFLAGS) - myLDLIBS:= libparser.o libscanner.o libmdcode.o -licuuc - LDLIBS := $(filter-out $(myLDLIBS),$(LDLIBS)) $(myLDLIBS) + itestCFLAGS := -Wall -g -fplan9-extensions + itestLDLIBS:= libparser.o libscanner.o libmdcode.o -licuuc all :: itest - itest.c itest.h : indent_test.mdc parsergen libparser.o libscanner.o libmdcode.o + itest.c itest.h : indent_test.mdc parsergen ./parsergen -o itest --LALR --tag indent indent_test.mdc indent_test.mk: indent_test.mdc md2c ./md2c indent_test.mdc - itest: itest.c + itest: itest.c | $(filter %.o,$(itestLDLIBS)) + $(CC) $(itestCFLAGS) $^ $(itestLDLIBS) -o $@ doitest: itest itest.code ./itest itest.code @@ -138,8 +137,10 @@ with complete bracketing and indenting. Program -> Statementlist ${ print_statement($1, 0); }$ $*statement + Newlines -> NEWLINE + | Newlines NEWLINE Statementlist -> Statements ${ $0 = $<1; }$ - | NEWLINE Statementlist ${ $0 = $<2; }$ + | Newlines Statements ${ $0 = $<2; }$ Statements -> Statements Statement ${ { @@ -155,12 +156,12 @@ $*statement | ERROR ${ printf("statement ERROR\n"); $0 = NULL; }$ Open -> { - | NEWLINE Open + | Newlines { Close -> } - | NEWLINE Close + | Newlines } Block -> Open Statementlist Close ${ $0 = $<2; }$ | Open SimpleStatements } ${ $0 = $<2; }$ - | : SimpleStatements $$NEWLINE ${ $0 = $<2; }$ + | : SimpleStatements ${ $0 = $<2; }$ | : StatementBlock ${ $0 = $<2; }$ StatementBlock -> Statementlist $$OUT ${ $0 = $<1; }$ @@ -185,9 +186,9 @@ $*statement $0->expr->right = $<3; }$ SSline -> SimpleStatements NEWLINE ${ $0 = $<1; }$ - | SSline NEWLINE ${ $0 = $<1; }$ Statement -> SSline ${ $0 = $<1; }$ - | IfStatement ${ $0 = $<1; }$ + | IfStatement $$NEWLINE ${ $0 = $<1; }$ + | Statement NEWLINE ${ $0 = $<1; }$ $RIGHT else @@ -197,20 +198,16 @@ $*statement $0->thenpart = $<3; }$ | IfHead NEWLINE ${ $0 = $<1; }$ - IfTail -> else Block ${ $0 = $<2; }$ - | IfTail NEWLINE ${ $0 = $<1; }$ IfStatement -> IfHead $$else ${ $0 = $<1; }$ - | IfHead IfTail ${ + | IfHead else Block ${ $0 = $<1; - $0->elsepart = $<2; + $0->elsepart = $<3; }$ | IfHead else IfStatement ${ $0 = $<1; $0->elsepart = $<3; }$ - | IfStatement NEWLINE ${ $0 = $<1; }$ - $*expression Expression -> Expression + Term ${ @@ -272,6 +269,7 @@ $*expression all = y; if true {yes=x;} else : no=x if true: yes = no; no = yes; + if false: yes=ok; else: no=ok if false { print = OK @@ -309,6 +307,10 @@ $*expression if true: (yes=no); (no=yes); + if false: + (yes=ok); + else: + (no=ok); if false: (print=OK); else: