summaryrefslogtreecommitdiff
path: root/colm/compile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'colm/compile.cpp')
-rw-r--r--colm/compile.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/colm/compile.cpp b/colm/compile.cpp
index 5fce43ce..d4d2f503 100644
--- a/colm/compile.cpp
+++ b/colm/compile.cpp
@@ -2208,6 +2208,15 @@ void ParseData::compileTranslateBlock( KlangEl *langEl )
code.append( IN_INIT_LOCALS );
code.appendHalf( 0 );
+ if ( langEl->tokenDef->reCaptureVect.length() > 0 ) {
+ code.append( IN_INIT_CAPTURES );
+ code.append( langEl->tokenDef->reCaptureVect.length() );
+
+ ObjFieldList::Iter f = *curLocalFrame->objFieldList;
+ for ( int i = 0; i < langEl->tokenDef->reCaptureVect.length(); i++, f++ )
+ curLocalFrame->referenceField( this, f->value );
+ }
+
/* Set the local frame and compile the reduce block. */
block->compile( this, code );