std::ostream &OCamlTabCodeGen::TO_STATE_ACTION_SWITCH() { /* Walk the list of functions, printing the cases. */ for ( GenActionList::Iter act = actionList; act.lte(); act++ ) { /* Write out referenced actions. */ if ( act->numToStateRefs > 0 ) { /* Write the case label, the action and the case break. */ out << "\t| " << act->actionId << " ->\n"; ACTION( out, act, 0, false ); } } genLineDirective( out ); return out; }
std::ostream &TabCodeGen::ACTION_SWITCH() { /* Walk the list of functions, printing the cases. */ for ( GenActionList::Iter act = actionList; act.lte(); act++ ) { /* Write out referenced actions. */ if ( act->numTransRefs > 0 ) { /* Write the case label, the action and the case break. */ out << "\tcase " << act->actionId << ":\n"; ACTION( out, act, 0, false, false ); out << "\tbreak;\n"; } } genLineDirective( out ); return out; }
std::wostream &CSharpGotoCodeGen::EOF_ACTION_SWITCH() { /* Walk the list of functions, printing the cases. */ for ( GenActionList::Iter act = actionList; act.lte(); act++ ) { /* Write out referenced actions. */ if ( act->numEofRefs > 0 ) { /* Write the case label, the action and the case break. */ out << L"\tcase " << act->actionId << L":\n"; ACTION( out, act, 0, true ); out << L"\tbreak;\n"; } } genLineDirective( out ); return out; }
std::wostream &FGotoCodeGen::EOF_ACTION_SWITCH() { /* Loop the actions. */ for ( GenActionTableMap::Iter redAct = redFsm->actionMap; redAct.lte(); redAct++ ) { if ( redAct->numEofRefs > 0 ) { /* Write the entry label. */ out << L"\tcase " << redAct->actListId+1 << L":\n"; /* Write each action in the list of action items. */ for ( GenActionTable::Iter item = redAct->key; item.lte(); item++ ) ACTION( out, item->value, 0, true, false ); out << L"\tbreak;\n"; } } genLineDirective( out ); return out; }
/* Write out the function switch. This switch is keyed on the values * of the func index. */ std::ostream &OCamlFGotoCodeGen::FROM_STATE_ACTION_SWITCH() { /* Loop the actions. */ for ( GenActionTableMap::Iter redAct = redFsm->actionMap; redAct.lte(); redAct++ ) { if ( redAct->numFromStateRefs > 0 ) { /* Write the entry label. */ out << "\t| " << redAct->actListId+1 << " ->\n"; /* Write each action in the list of action items. */ for ( GenActionTable::Iter item = redAct->key; item.lte(); item++ ) ACTION( out, item->value, 0, false ); // out << "\tbreak;\n"; } } genLineDirective( out ); return out; }
/* Write out the function switch. This switch is keyed on the values * of the func index. */ std::wostream &OCamlFFlatCodeGen::ACTION_SWITCH() { /* Loop the actions. */ for ( GenActionTableMap::Iter redAct = redFsm->actionMap; redAct.lte(); redAct++ ) { if ( redAct->numTransRefs > 0 ) { /* Write the entry label. */ out << L"\t| " << redAct->actListId+1 << L" ->\n"; /* Write each action in the list of action items. */ for ( GenActionTable::Iter item = redAct->key; item.lte(); item++ ) ACTION( out, item->value, 0, false ); out << L"\t()\n"; } } genLineDirective( out ); return out; }