void ConnectorOld::connectAll() { connect(this, SIGNAL(readyRead()), this, SLOT(readString())); connect(this, SIGNAL(readStringReady(QByteArray)), this, SLOT(stringParser(QByteArray))); connect(this, SIGNAL(authRequestRecv(QString)), this, SLOT(authStringProcessing(QString))); }
TokenizerT *TKCreate(char *ts) { TokenizerT *tokenPointer; tokenPointer = (TokenizerT*)malloc(sizeof(TokenizerT)); if (tokenPointer == NULL){ fprintf(stderr, "Error: No memory available to create pointer"); } tokenPointer->j = 0; tokenPointer->k = 0; char *tsCopy = (char*)malloc((strlen(ts)+1)*(sizeof(char))); if (tsCopy == NULL){ fprintf(stderr, "Error: No memory available. Could not create string."); } strcpy (tsCopy, ts); stringParser(tsCopy); tokenPointer->tokenStream = tsCopy; return tokenPointer; }
void CFile::TryConvertString() { long oldPos = m_pos; long oldLineNum = m_lineNum; bool noTerminator = false; if (m_buffer[m_pos] != '_' || (m_pos > 0 && IsIdentifierChar(m_buffer[m_pos - 1]))) return; m_pos++; if (m_buffer[m_pos] == '_') { noTerminator = true; m_pos++; } SkipWhitespace(); if (m_buffer[m_pos] != '(') { m_pos = oldPos; m_lineNum = oldLineNum; return; } m_pos++; SkipWhitespace(); std::printf("{ "); while (1) { SkipWhitespace(); if (m_buffer[m_pos] == '"') { unsigned char s[kMaxStringLength]; int length; StringParser stringParser(m_buffer, m_size); try { m_pos += stringParser.ParseString(m_pos, s, length); } catch (std::runtime_error& e) { RaiseError(e.what()); } for (int i = 0; i < length; i++) printf("0x%02X, ", s[i]); } else if (m_buffer[m_pos] == ')') { m_pos++; break; } else { if (m_pos >= m_size) RaiseError("unexpected EOF"); if (IsAsciiPrintable(m_buffer[m_pos])) RaiseError("unexpected character '%c'", m_buffer[m_pos]); else RaiseError("unexpected character '\\x%02X'", m_buffer[m_pos]); } } if (noTerminator) std::printf(" }"); else std::printf("0xFF }"); }
/************************************************************************* MAIN PROGRAM *************************************************************************/ int main() { bool error; ifstream fin; ofstream fout; bool doneEvaluating; string line; fin.open("postfix.txt"); error = fin.fail(); //if input file exists, if(!error) { fout.open("postfixAnswers.txt"); error = fout.fail(); } if(!error) { do { Stack operandStack; int lineIndex = 0; if(!done(line,fin)) { doneEvaluating = false; do { string token; stringParser(line,token,lineIndex); if(!isOperand(operandStack,token,error)) { stackType rightOperand; error = !operandStack.pop(rightOperand); stackType leftOperand; if(!error) { error = !operandStack.pop(leftOperand); } if(error) { fout<< "incorrect postfix expression" << endl; } else { bool pushError = false; stackType result; if(!(evaluate(rightOperand, leftOperand, token[0], result))) { error = true; fout<< "error, tried to divide by zero" << endl; } else { pushError = !operandStack.push(result); } if(pushError) { displayError(fout,444); fin.close(); fout.close(); return 444; } } } }while(lineIndex < line.length()); } else { doneEvaluating = true; } if(!error && !doneEvaluating) { outputAnswer(operandStack,fout); } error = false; }while(!doneEvaluating && !fin.eof()); } else { displayError(fout,501); fin.close(); fout.close(); return 501; } fin.close(); fout.close(); return 0; }