/*virtual*/ void morkBuilder::OnMetaEnd(morkEnv* ev, const morkSpan& inSpan) // mp:Meta ::= OnNewMeta mp:MetaItem* OnMetaEnd { MORK_USED_2(ev,inSpan); // mParser_InMeta = morkBool_kFalse; }
void morkBuilder::LogGlitch(morkEnv* ev, const morkGlitch& inGlitch, const char* inKind) { MORK_USED_2(inGlitch,inKind); ev->NewWarning("parsing glitch"); }
/*virtual*/ void morkBuilder::OnGroupCommitEnd(morkEnv* ev, const morkSpan& inSpan) { MORK_USED_2(ev,inSpan); // mParser_InGroup = morkBool_kFalse; // ev->StubMethodOnlyError(); }
/*virtual*/ void morkBuilder::OnPortEnd(morkEnv* ev, const morkSpan& inSpan) // mp:Start ::= OnNewPort mp:PortItem* OnPortEnd { MORK_USED_2(ev, inSpan); // ev->StubMethodOnlyError(); // nothing to do? // mParser_InPort = morkBool_kFalse; }
/*virtual*/ void morkBuilder::OnCellEnd(morkEnv* ev, const morkSpan& inSpan) // mp:Cell ::= OnMinusCell? OnNewCell mp:CellItem? OnCellEnd { MORK_USED_2(ev, inSpan); // mParser_InCell = morkBool_kFalse; mBuilder_MetaTokenSlot = 0; mBuilder_CellAtomScope = mBuilder_RowAtomScope; }
/*virtual*/ void morkBuilder::OnDictEnd(morkEnv* ev, const morkSpan& inSpan) // mp:Dict ::= OnNewDict mp:DictItem* OnDictEnd { MORK_USED_2(ev, inSpan); // mParser_InDict = morkBool_kFalse; mBuilder_DictForm = 0; mBuilder_DictAtomScope = 0; }
/*virtual*/ void morkBuilder::OnNewDict(morkEnv* ev, const morkPlace& inPlace) // mp:Dict ::= OnNewDict mp:DictItem* OnDictEnd // mp:DictItem ::= OnAlias | OnAliasGlitch | mp:Meta | OnDictGlitch { MORK_USED_2(ev, inPlace); // mParser_InDict = morkBool_kTrue; mBuilder_CellForm = mBuilder_DictForm = mBuilder_PortForm; mBuilder_CellAtomScope = mBuilder_DictAtomScope = mBuilder_PortAtomScope; }
/*virtual*/ void morkBuilder::OnNewMeta(morkEnv* ev, const morkPlace& inPlace) // mp:Meta ::= OnNewMeta mp:MetaItem* OnMetaEnd // mp:MetaItem ::= mp:Cell | OnMetaGlitch // mp:Cell ::= OnMinusCell? OnNewCell mp:CellItem? OnCellEnd // mp:CellItem ::= mp:Slot | OnCellForm | OnCellGlitch // mp:Slot ::= OnValue | OnValueMid | OnRowMid | OnTableMid { MORK_USED_2(ev, inPlace); // mParser_InMeta = morkBool_kTrue; }
/*virtual*/ void morkBuilder::OnNewPort(morkEnv* ev, const morkPlace& inPlace) // mp:Start ::= OnNewPort mp:PortItem* OnPortEnd // mp:PortItem ::= mp:Content | mp:Group | OnPortGlitch // mp:Content ::= mp:PortRow | mp:Dict | mp:Table | mp:Row { MORK_USED_2(ev, inPlace); // mParser_InPort = morkBool_kTrue; mBuilder_PortForm = 0; mBuilder_PortRowScope = (mork_scope)'r'; mBuilder_PortAtomScope = (mork_scope)'v'; }
mork_num morkRowSpace::CutAllRows(morkEnv* ev, morkPool* ioPool) { if ( this->IsRowSpaceClean() ) this->MaybeDirtyStoreAndSpace(); mork_num outSlots = mRowSpace_Rows.MapFill(); #ifdef MORK_ENABLE_ZONE_ARENAS MORK_USED_2(ev, ioPool); return 0; #else /*MORK_ENABLE_ZONE_ARENAS*/ morkZone* zone = &mSpace_Store->mStore_Zone; morkRow* r = 0; // old key row in the map mork_change* c = 0; #ifdef MORK_ENABLE_PROBE_MAPS morkRowProbeMapIter i(ev, &mRowSpace_Rows); #else /*MORK_ENABLE_PROBE_MAPS*/ morkRowMapIter i(ev, &mRowSpace_Rows); #endif /*MORK_ENABLE_PROBE_MAPS*/ for ( c = i.FirstRow(ev, &r); c && ev->Good(); c = i.NextRow(ev, &r) ) { if ( r ) { if ( r->IsRow() ) { if ( r->mRow_Object ) { morkRowObject::SlotWeakRowObject((morkRowObject*) 0, ev, &r->mRow_Object); } ioPool->ZapRow(ev, r, zone); } else r->NonRowTypeWarning(ev); } else ev->NilPointerError(); #ifdef MORK_ENABLE_PROBE_MAPS // cut nothing from the map #else /*MORK_ENABLE_PROBE_MAPS*/ i.CutHereRow(ev, /*key*/ (morkRow**) 0); #endif /*MORK_ENABLE_PROBE_MAPS*/ } #endif /*MORK_ENABLE_ZONE_ARENAS*/ return outSlots; }