示例#1
0
    bool Parser::parseInt (int value, const TokenLoc& loc, Scanner& scanner)
    {
        if (!(mOptional && mEmpty))
            reportSeriousError ("Unexpected numeric value", loc);
        else
            scanner.putbackInt (value, loc);

        return false;
    }
示例#2
0
    bool LineParser::parseInt (int value, const TokenLoc& loc, Scanner& scanner)
    {
        if (mAllowExpression && mState==BeginState)
        {
            scanner.putbackInt (value, loc);
            parseExpression (scanner, loc);
            return true;
        }

        return Parser::parseInt (value, loc, scanner);
    }
示例#3
0
 bool ExprParser::parseInt (int value, const TokenLoc& loc, Scanner& scanner)
 {
     if (!mExplicit.empty())
         return Parser::parseInt (value, loc, scanner);
 
     mFirst = false;
     
     if (mNextOperand)
     {       
         pushIntegerLiteral (value);
         mTokenLoc = loc;
         return true;
     }
     else
     {
         // no comma was used between arguments
         scanner.putbackInt (value, loc);
         return false;
     }
 }