diff options
author | Eugene Sandulenko | 2016-06-19 21:51:01 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-08-03 23:40:36 +0200 |
commit | d5587eb45dc1a5fc6036f1ccb617f00dfff7a0a6 (patch) | |
tree | 1292031dcac82da43824defb8c8b603a1d8dc2aa /engines/director/lingo/lingo-gr.y | |
parent | da4db91941a21f2ad1f5405dd406b0d2a19eb53d (diff) | |
download | scummvm-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.y | 14 |
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; } |