FUNCTION_LIST::FUNCTION_LIST(Node *parentNode) : Node(parentNode, parentNode->lex, parentNode->errorList) { //get grammar A2lGrammar* gram = parentNode->lex->grammar; namePar = &gram->function_list.namePar; typePar = &gram->function_list.typePar; factoryOptNode = &gram->function_list.factoryOptNode; factoryOptItem = &gram->function_list.factoryOptItem; //Set the line where the Node starts in ASAP file a2lLine = lex->getLine(); //Parse Mandatory PARAMETERS //parseFixPar(typePar, namePar ,in); name = (char*)"FUNCTION_LIST"; //Parse optional PARAMETERS //TokenTyp token = parseOptPar(in); TokenTyp token = parseListChar(); //fianlize parsing if (token == BlockEnd) { token = nextToken(); if (token == Keyword && lex->getLexem() == "FUNCTION_LIST") { //Sort the childNodes //std::sort(this->childNodes.begin(), this->childNodes.end(), nodeLessThan); //Sort The childItems //std::sort(this->optItems.begin(), this->optItems.end(), itemLessThan); //sort the charList std::sort(subsetList.begin(), subsetList.end()); } else { QString s(lex->toString(token).c_str()); this->showError("expected token : BlockEnd FUNCTION_LIST\nfind token : " + s); } } else { QString s1(lex->toString(token).c_str()); QString s2(lex->getLexem().c_str()); this->showError("expected end FUNCTION_LIST\nfind : " + s1 + " " + s2); } }
LOC_MEASUREMENT::LOC_MEASUREMENT( Node *parentNode) : Node(parentNode, parentNode->lex, parentNode->errorList) { //Set the line where the Node starts in ASAP file a2lLine = lex->getLine(); //Parse Mandatory PARAMETERS //parseFixPar(typePar, namePar ,in); name = (char*)"LOC_MEASUREMENT"; //Parse optional PARAMETERS //TokenTyp token = parseOptPar(in); TokenTyp token = parseListChar(); //fianlize parsing if (token == BlockEnd) { token = nextToken(); if (token == Keyword && lex->getLexem() == "LOC_MEASUREMENT") { //Sort the childNodes //qSort(this->childNodes.begin(), this->childNodes.end(), nodeLessThan); //Sort The childItems //qSort(this->optItems.begin(), this->optItems.end(), itemLessThan); //sort the charList qSort(charList.begin(), charList.end()); } else { QString s(lex->toString(token).c_str()); this->showError("expected token : BlockEnd LOC_MEASUREMENT\nfind token : " + s); } } else { QString s1(lex->toString(token).c_str()); QString s2(lex->getLexem().c_str()); this->showError("expected end LOC_MEASUREMENT\nfind : " + s1 + " " + s2); } }