diff options
Diffstat (limited to 'colm/bytecode.c')
-rw-r--r-- | colm/bytecode.c | 14 |
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; } |