void ActionWithVessel::readVesselKeywords(){ // Set maxderivatives if it is too big if( maxderivatives>getNumberOfDerivatives() ) maxderivatives=getNumberOfDerivatives(); // Loop over all keywords find the vessels and create appropriate functions for(unsigned i=0;i<keywords.size();++i){ std::string thiskey,input; thiskey=keywords.getKeyword(i); // Check if this is a key for a vessel if( vesselRegister().check(thiskey) ){ plumed_assert( keywords.style(thiskey,"vessel") ); bool dothis=false; parseFlag(thiskey,dothis); if(dothis) addVessel( thiskey, input ); parse(thiskey,input); if(input.size()!=0){ addVessel( thiskey, input ); } else { for(unsigned i=1;;++i){ if( !parseNumbered(thiskey,i,input) ) break; std::string ss; Tools::convert(i,ss); addVessel( thiskey, input, i ); input.clear(); } } } } // Make sure all vessels have had been resized at start if( functions.size()>0 ) resizeFunctions(); }
bool NIVissimSingleTypeParser_Querverkehrsstoerungsdefinition::parse(std::istream& from) { std::string tag; tag = myRead(from); if (tag == "nureigenestrecke") { return parseOnlyMe(from); } else if (tag == "ort") { return parsePositionDescribed(from); } else if (tag == "nummer") { return parseNumbered(from); } WRITE_ERROR( "NIVissimSingleTypeParser_Querverkehrsstoerungsdefinition: format problem"); throw 1; }