Пример #1
0
static bool parseTokenIntoIntegerLiteral(const Token& t, const Args& args, int& result){
    if ((t.extendedType() == Token::INTEGER_TYPE) || (t.extendedType() == Token::HEX_INTEGER_TYPE)) {
        result = (int)t.number();
        return true;
    } else { 
        if (t.extendedType() == Token::SYMBOL_TYPE) {
            String macroValue;
            if (args.getMacro(t.string(), macroValue)) {
                TextInput ti(TextInput::FROM_STRING, macroValue);
                const Token& intToken = ti.read();
                if ((intToken.extendedType() == Token::INTEGER_TYPE) || (intToken.extendedType() == Token::HEX_INTEGER_TYPE)) {
                    result  = (int)intToken.number();
                    return true;
                } 
            } 
        } 
    }

    return false;    
}