Index: modules/pt/pt_rdengine_oo.tcl ================================================================== --- modules/pt/pt_rdengine_oo.tcl +++ modules/pt/pt_rdengine_oo.tcl @@ -548,11 +548,11 @@ debug.pt/rdengine {[InstReturn]} return -code return } $mystackmark push [$mystackast size] set myloc [$mystackloc peek] - $mystackerr push {} + $mystackerr push $myerror debug.pt/rdengine {[InstReturn]} return } @@ -589,11 +589,11 @@ debug.pt/rdengine {[InstReturn]} return -code return } $mystackast trim* $mark set myloc [$mystackloc peek] - $mystackerr push {} + $mystackerr push $myerror debug.pt/rdengine {[InstReturn]} return } @@ -632,11 +632,11 @@ debug.pt/rdengine {[InstReturn]} return -code return } $mystackast trim* [$mystackmark peek] set myloc [$mystackloc peek] - $mystackerr push {} + $mystackerr push $myerror debug.pt/rdengine {[InstReturn]} return } Index: modules/pt/pt_rdengine_tcl.tcl ================================================================== --- modules/pt/pt_rdengine_tcl.tcl +++ modules/pt/pt_rdengine_tcl.tcl @@ -536,11 +536,11 @@ debug.pt/rdengine {[InstReturn]} return -code return } $mystackmark push [$mystackast size] set myloc [$mystackloc peek] - $mystackerr push {} + $mystackerr push $myerror debug.pt/rdengine {[InstReturn]} return } @@ -577,11 +577,11 @@ debug.pt/rdengine {[InstReturn]} return -code return } $mystackast trim* $mark set myloc [$mystackloc peek] - $mystackerr push {} + $mystackerr push $myerror debug.pt/rdengine {[InstReturn]} return } @@ -620,11 +620,11 @@ debug.pt/rdengine {[InstReturn]} return -code return } $mystackast trim* [$mystackmark peek] set myloc [$mystackloc peek] - $mystackerr push {} + $mystackerr push $myerror debug.pt/rdengine {[InstReturn]} return } ADDED modules/pt/tests/data/gr/def/49_ticket-3ed39a451f Index: modules/pt/tests/data/gr/def/49_ticket-3ed39a451f ================================================================== --- /dev/null +++ modules/pt/tests/data/gr/def/49_ticket-3ed39a451f @@ -0,0 +1,16 @@ +PEG Tiny (Proc) + Proc <- CmdSeq !. ; + CmdSeq <- Cmd SEMICOLON (Cmd SEMICOLON)*; + Cmd <- Skip ((IfCmd / RepeatCmd / AssignCmd / ReadCmd / WriteCmd)) Skip; + IfCmd <- 'if' Exp 'then' CmdSeq ('else' CmdSeq)? 'end'; + RepeatCmd <- 'repeat' CmdSeq 'until' Exp; + AssignCmd <- Name ASSIGNMENT Exp; + ReadCmd <- 'read' Skip Name; + WriteCmd <- 'write' Skip Exp; +void: SEMICOLON <- Skip ';' Skip; +leaf: ASSIGNMENT <- Skip ':=' Skip; + Name <- 'n' / 'f'; + Exp <- Operand Skip (('*' / '-' / '+' / '>' / '<') Operand)?; + Operand <- Skip (Name / ) Skip; +void: Skip <- *; +END; ADDED modules/pt/tests/data/gr/fail-ticket-3ed39a451f-container-res/0_tinyProg Index: modules/pt/tests/data/gr/fail-ticket-3ed39a451f-container-res/0_tinyProg ================================================================== --- /dev/null +++ modules/pt/tests/data/gr/fail-ticket-3ed39a451f-container-res/0_tinyProg @@ -0,0 +1,1 @@ +1 {pt::rde 50 {space {t {;}}}} ADDED modules/pt/tests/data/gr/fail-ticket-3ed39a451f-critcl-res/0_tinyProg Index: modules/pt/tests/data/gr/fail-ticket-3ed39a451f-critcl-res/0_tinyProg ================================================================== --- /dev/null +++ modules/pt/tests/data/gr/fail-ticket-3ed39a451f-critcl-res/0_tinyProg @@ -0,0 +1,1 @@ +1 {pt::rde 50 {space {t {;}}}} ADDED modules/pt/tests/data/gr/fail-ticket-3ed39a451f-oo-res/0_tinyProg Index: modules/pt/tests/data/gr/fail-ticket-3ed39a451f-oo-res/0_tinyProg ================================================================== --- /dev/null +++ modules/pt/tests/data/gr/fail-ticket-3ed39a451f-oo-res/0_tinyProg @@ -0,0 +1,1 @@ +1 {pt::rde 50 {space {t {;}}}} ADDED modules/pt/tests/data/gr/fail-ticket-3ed39a451f-snit-res/0_tinyProg Index: modules/pt/tests/data/gr/fail-ticket-3ed39a451f-snit-res/0_tinyProg ================================================================== --- /dev/null +++ modules/pt/tests/data/gr/fail-ticket-3ed39a451f-snit-res/0_tinyProg @@ -0,0 +1,1 @@ +1 {pt::rde 50 {space {t {;}}}} ADDED modules/pt/tests/data/gr/fail-ticket-3ed39a451f/0_tinyProg Index: modules/pt/tests/data/gr/fail-ticket-3ed39a451f/0_tinyProg ================================================================== --- /dev/null +++ modules/pt/tests/data/gr/fail-ticket-3ed39a451f/0_tinyProg @@ -0,0 +1,7 @@ +n := 5; +f := 1; +repeat + f := f * n; + n := n - 1 +until n < 1; +write f; ADDED modules/pt/tests/data/gr/ok-ticket-3ed39a451f-res/0_tinyProg Index: modules/pt/tests/data/gr/ok-ticket-3ed39a451f-res/0_tinyProg ================================================================== --- /dev/null +++ modules/pt/tests/data/gr/ok-ticket-3ed39a451f-res/0_tinyProg @@ -0,0 +1,1 @@ +Proc 0 71 {CmdSeq 0 71 {Cmd 0 5 {AssignCmd 0 5 {Name 0 0} {ASSIGNMENT 1 4} {Exp 5 5 {Operand 5 5}}}} {Cmd 8 13 {AssignCmd 8 13 {Name 8 8} {ASSIGNMENT 9 12} {Exp 13 13 {Operand 13 13}}}} {Cmd 16 61 {RepeatCmd 16 61 {CmdSeq 22 50 {Cmd 22 34 {AssignCmd 25 34 {Name 25 25} {ASSIGNMENT 26 29} {Exp 30 34 {Operand 30 31 {Name 30 30}} {Operand 33 34 {Name 34 34}}}}} {Cmd 39 48 {AssignCmd 39 48 {Name 39 39} {ASSIGNMENT 40 43} {Exp 44 48 {Operand 44 45 {Name 44 44}} {Operand 47 48}}}}} {Exp 56 61 {Operand 56 58 {Name 57 57}} {Operand 60 61}}}} {Cmd 64 70 {WriteCmd 64 70 {Exp 70 70 {Operand 70 70 {Name 70 70}}}}}} ADDED modules/pt/tests/data/gr/ok-ticket-3ed39a451f/0_tinyProg Index: modules/pt/tests/data/gr/ok-ticket-3ed39a451f/0_tinyProg ================================================================== --- /dev/null +++ modules/pt/tests/data/gr/ok-ticket-3ed39a451f/0_tinyProg @@ -0,0 +1,7 @@ +n := 5; +f := 1; +repeat + f := f * n; + n := n - 1; +until n < 1; +write f;