aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-gr.y
diff options
context:
space:
mode:
authorEugene Sandulenko2016-06-19 21:51:01 +0200
committerEugene Sandulenko2016-08-03 23:40:36 +0200
commitd5587eb45dc1a5fc6036f1ccb617f00dfff7a0a6 (patch)
tree1292031dcac82da43824defb8c8b603a1d8dc2aa /engines/director/lingo/lingo-gr.y
parentda4db91941a21f2ad1f5405dd406b0d2a19eb53d (diff)
downloadscummvm-rg350-d5587eb45dc1a5fc6036f1ccb617f00dfff7a0a6.tar.gz
scummvm-rg350-d5587eb45dc1a5fc6036f1ccb617f00dfff7a0a6.tar.bz2
scummvm-rg350-d5587eb45dc1a5fc6036f1ccb617f00dfff7a0a6.zip
DIRECTOR: Lingo: Rearrange 'go to' grammar for better readability
Diffstat (limited to 'engines/director/lingo/lingo-gr.y')
-rw-r--r--engines/director/lingo/lingo-gr.y14
1 files changed, 8 insertions, 6 deletions
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index c3459e889d..1a6a23bb39 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -94,12 +94,7 @@ expr: INT { g_lingo->code1(g_lingo->func_constpush); inst i; WRITE_LE_UINT3
func: tMCI STRING { g_lingo->code1(g_lingo->func_mci); g_lingo->codeString($2->c_str()); delete $2; }
| tMCIWAIT VAR { g_lingo->code1(g_lingo->func_mciwait); g_lingo->codeString($2->c_str()); delete $2; }
- | tGO tLOOP { g_lingo->code1(g_lingo->func_gotoloop); }
- | tGO tNEXT { g_lingo->code1(g_lingo->func_gotonext); }
- | tGO tPREVIOUS { g_lingo->code1(g_lingo->func_gotoprevious); }
- | tGO gotoframe { g_lingo->code1(g_lingo->func_goto); g_lingo->codeString($2->c_str()); g_lingo->codeString(""); delete $2; }
- | tGO gotoframe gotomovie { g_lingo->code1(g_lingo->func_goto); g_lingo->codeString($2->c_str()); g_lingo->codeString($3->c_str()); delete $2; delete $3; }
- | tGO gotomovie { g_lingo->code1(g_lingo->func_goto); g_lingo->codeString(""); g_lingo->codeString($2->c_str()); delete $2; }
+ | gotofunc
;
// go {to} {frame} whichFrame {of movie whichMovie}
@@ -110,6 +105,13 @@ func: tMCI STRING { g_lingo->code1(g_lingo->func_mci); g_lingo->codeString($2-
// go to {frame} whichFrame {of movie whichMovie}
// go to {frame whichFrame of} movie whichMovie
+gotofunc: tGO tLOOP { g_lingo->code1(g_lingo->func_gotoloop); }
+ | tGO tNEXT { g_lingo->code1(g_lingo->func_gotonext); }
+ | tGO tPREVIOUS { g_lingo->code1(g_lingo->func_gotoprevious); }
+ | tGO gotoframe { g_lingo->code1(g_lingo->func_goto); g_lingo->codeString($2->c_str()); g_lingo->codeString(""); delete $2; }
+ | tGO gotoframe gotomovie { g_lingo->code1(g_lingo->func_goto); g_lingo->codeString($2->c_str()); g_lingo->codeString($3->c_str()); delete $2; delete $3; }
+ | tGO gotomovie { g_lingo->code1(g_lingo->func_goto); g_lingo->codeString(""); g_lingo->codeString($2->c_str()); delete $2; }
+ ;
gotoframe: tTO tFRAME STRING { $$ = $3; }
| tFRAME STRING { $$ = $2; }