diff options
Diffstat (limited to 'colm/fsmrun.cpp')
-rw-r--r-- | colm/fsmrun.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/colm/fsmrun.cpp b/colm/fsmrun.cpp index fc9c45d2..6f184b35 100644 --- a/colm/fsmrun.cpp +++ b/colm/fsmrun.cpp @@ -265,7 +265,7 @@ void FsmRun::sendBackIgnore( Kid *ignore ) /* Check for reverse code. */ if ( ignore->tree->flags & AF_HAS_RCODE ) { Execution execution( prg, parser->reverseCode, - parser, 0, 0, 0 ); + parser, 0, 0, 0, 0 ); /* Do the reverse exeuction. */ execution.rexecute( parser->root, parser->allReverseCode ); @@ -307,7 +307,7 @@ void FsmRun::sendBack( Kid *input ) /* Check for reverse code. */ if ( input->tree->flags & AF_HAS_RCODE ) { Execution execution( prg, parser->reverseCode, - parser, 0, 0, 0 ); + parser, 0, 0, 0, 0 ); /* Do the reverse exeuction. */ execution.rexecute( parser->root, parser->allReverseCode ); @@ -441,10 +441,10 @@ void FsmRun::sendNamedLangEl() send_handle_error( this, parser, input ); } -void execute_generation_action( Program *prg, PdaRun *parser, Code *code, Head *tokdata ) +void execute_generation_action( Program *prg, PdaRun *parser, Code *code, long id, Head *tokdata ) { /* Execute the translation. */ - Execution execution( prg, parser->reverseCode, parser, code, 0, tokdata ); + Execution execution( prg, parser->reverseCode, parser, code, 0, id, tokdata ); execution.execute( parser->root ); /* If there is revese code but nothing generated we need a noToken. */ @@ -481,7 +481,7 @@ void FsmRun::generationAction( int id, Head *tokdata, bool namedLangEl, int bind parser->tables->rtd->lelInfo[id].frameId].codeWV; /* Execute the action and process the queue. */ - execute_generation_action( prg, parser, code, tokdata ); + execute_generation_action( prg, parser, code, id, tokdata ); /* Finished with the match text. */ string_free( prg, tokdata ); @@ -518,8 +518,8 @@ Kid *FsmRun::makeToken( int id, Head *tokdata, bool namedLangEl, int bindId ) Head *data = string_alloc_new( prg, mark[ca->mark_enter], mark[ca->mark_leave] - mark[ca->mark_enter] ); Tree *string = construct_string( prg, data ); - set_attr( input->tree, ca->offset, string ); tree_upref( string ); + set_attr( input->tree, ca->offset, string ); } } @@ -772,7 +772,7 @@ void FsmRun::sendEOF( ) Code *code = parser->tables->rtd->frameInfo[frameId].codeWV; /* Execute the action and process the queue. */ - execute_generation_action( prg, parser, code, 0 ); + execute_generation_action( prg, parser, code, input->tree->id, 0 ); /* Send the generated tokens. */ send_queued_tokens( this, parser ); |