Beispiel #1
0
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)));
}
Beispiel #2
0
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;
}
Beispiel #3
0
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 }");
}
Beispiel #4
0
/*************************************************************************
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;
}