summaryrefslogtreecommitdiff
path: root/colm/bytecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'colm/bytecode.c')
-rw-r--r--colm/bytecode.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/colm/bytecode.c b/colm/bytecode.c
index fa0178b0..eddac588 100644
--- a/colm/bytecode.c
+++ b/colm/bytecode.c
@@ -897,6 +897,20 @@ void callParseBlock( Code **pinstr, Tree ***psp, long pcr, Program *prg,
/* Call execution. */
*pinstr = exec->code;
}
+ else if ( pcr == PcrGeneration ) {
+ initGenerationExecution( pdaRun->exec, prg, &pdaRun->rcodeCollect,
+ pdaRun, fsmRun, prg->rtd->lelInfo[pdaRun->tokenId].frameId,
+ pdaRun->fi->codeWV, 0, pdaRun->tokenId, pdaRun->tokdata, fsmRun->mark );
+
+ /* Push the instruction. */
+ vm_push( (SW)*pinstr );
+
+ /* Push the LHS onto the stack. */
+ vm_push( 0 );
+
+ /* Call execution. */
+ *pinstr = exec->code;
+ }
*psp = sp;
}