revert lex.ll parse.yy stdlib.ispc to state when all constants are floats

This commit is contained in:
Evghenii
2013-09-13 16:02:53 +02:00
parent 9861375f0c
commit 36886971e3
3 changed files with 4 additions and 38 deletions

19
lex.ll
View File

@@ -76,7 +76,7 @@ static int allTokens[] = {
TOKEN_TASK, TOKEN_TRUE, TOKEN_TYPEDEF, TOKEN_UNIFORM, TOKEN_UNMASKED,
TOKEN_UNSIGNED, TOKEN_VARYING, TOKEN_VOID, TOKEN_WHILE,
TOKEN_STRING_C_LITERAL, TOKEN_DOTDOTDOT,
TOKEN_FLOAT_CONSTANT, TOKEN_DOUBLE_CONSTANT,
TOKEN_FLOAT_CONSTANT,
TOKEN_INT8_CONSTANT, TOKEN_UINT8_CONSTANT,
TOKEN_INT16_CONSTANT, TOKEN_UINT16_CONSTANT,
TOKEN_INT32_CONSTANT, TOKEN_UINT32_CONSTANT,
@@ -152,7 +152,6 @@ void ParserInit() {
tokenToName[TOKEN_STRING_C_LITERAL] = "\"C\"";
tokenToName[TOKEN_DOTDOTDOT] = "...";
tokenToName[TOKEN_FLOAT_CONSTANT] = "TOKEN_FLOAT_CONSTANT";
tokenToName[TOKEN_DOUBLE_CONSTANT] = "TOKEN_DOUBLE_CONSTANT";
tokenToName[TOKEN_INT8_CONSTANT] = "TOKEN_INT8_CONSTANT";
tokenToName[TOKEN_UINT8_CONSTANT] = "TOKEN_UINT8_CONSTANT";
tokenToName[TOKEN_INT16_CONSTANT] = "TOKEN_INT16_CONSTANT";
@@ -267,7 +266,6 @@ void ParserInit() {
tokenNameRemap["TOKEN_STRING_C_LITERAL"] = "\"C\"";
tokenNameRemap["TOKEN_DOTDOTDOT"] = "\'...\'";
tokenNameRemap["TOKEN_FLOAT_CONSTANT"] = "float constant";
tokenNameRemap["TOKEN_DOUBLE_CONSTANT"] = "double constant";
tokenNameRemap["TOKEN_INT8_CONSTANT"] = "int8 constant";
tokenNameRemap["TOKEN_UINT8_CONSTANT"] = "unsigned int8 constant";
tokenNameRemap["TOKEN_INT16_CONSTANT"] = "int16 constant";
@@ -343,8 +341,6 @@ inline int ispcRand() {
WHITESPACE [ \t\r]+
INT_NUMBER (([0-9]+)|(0x[0-9a-fA-F]+)|(0b[01]+))[uUlL]*[kMG]?[uUlL]*
INT_NUMBER_DOTDOTDOT (([0-9]+)|(0x[0-9a-fA-F]+)|(0b[01]+))[uUlL]*[kMG]?[uUlL]*\.\.\.
DOUBLE_NUMBER (([0-9]+|(([0-9]+\.[0-9]*?)|(\.[0-9]+)))([eE][-+]?[0-9]+)??)
HEX_DOUBLE_NUMBER (0x[01](\.[0-9a-fA-F]*)?p[-+]?[0-9]+?)
FLOAT_NUMBER (([0-9]+|(([0-9]+\.[0-9]*[fF]?)|(\.[0-9]+)))([eE][-+]?[0-9]+)?[fF]?)
HEX_FLOAT_NUMBER (0x[01](\.[0-9a-fA-F]*)?p[-+]?[0-9]+[fF]?)
@@ -442,19 +438,6 @@ L?\"(\\.|[^\\"])*\" { lStringConst(&yylval, &yylloc); return TOKEN_STRING_LITERA
}
{DOUBLE_NUMBER} {
RT;
yylval.doubleVal = atof(yytext);
return TOKEN_DOUBLE_CONSTANT;
}
{HEX_DOUBLE_NUMBER} {
RT;
yylval.doubleVal = lParseHexFloat(yytext);
return TOKEN_DOUBLE_CONSTANT;
}
{FLOAT_NUMBER} {
RT;
yylval.floatVal = (float)atof(yytext);

View File

@@ -149,8 +149,7 @@ struct ForeachDimension {
%union {
uint64_t intVal;
float floatVal;
double doubleVal;
float floatVal;
std::string *stringVal;
const char *constCharPtr;
@@ -186,7 +185,7 @@ struct ForeachDimension {
%token TOKEN_INT64_CONSTANT TOKEN_UINT64_CONSTANT
%token TOKEN_INT32DOTDOTDOT_CONSTANT TOKEN_UINT32DOTDOTDOT_CONSTANT
%token TOKEN_INT64DOTDOTDOT_CONSTANT TOKEN_UINT64DOTDOTDOT_CONSTANT
%token TOKEN_FLOAT_CONSTANT TOKEN_DOUBLE_CONSTANT TOKEN_STRING_C_LITERAL
%token TOKEN_FLOAT_CONSTANT TOKEN_STRING_C_LITERAL
%token TOKEN_IDENTIFIER TOKEN_STRING_LITERAL TOKEN_TYPE_NAME TOKEN_NULL
%token TOKEN_PTR_OP TOKEN_INC_OP TOKEN_DEC_OP TOKEN_LEFT_OP TOKEN_RIGHT_OP
%token TOKEN_LE_OP TOKEN_GE_OP TOKEN_EQ_OP TOKEN_NE_OP
@@ -328,11 +327,7 @@ primary_expression
}
| TOKEN_FLOAT_CONSTANT {
$$ = new ConstExpr(AtomicType::UniformFloat->GetAsConstType(),
yylval.floatVal, @1);
}
| TOKEN_DOUBLE_CONSTANT {
$$ = new ConstExpr(AtomicType::UniformDouble->GetAsConstType(),
yylval.doubleVal, @1);
(float)yylval.floatVal, @1);
}
| TOKEN_TRUE {
$$ = new ConstExpr(AtomicType::UniformBool->GetAsConstType(), true, @1);

View File

@@ -1559,18 +1559,6 @@ static inline uniform float clamp(uniform float v, uniform float low, uniform fl
return min(max(v, low), high);
}
// double
__declspec(safe,cost2)
static inline double clamp(double v, double low, double high) {
return min(max(v, low), high);
}
__declspec(safe,cost2)
static inline uniform double clamp(uniform double v, uniform double low, uniform double high) {
return min(max(v, low), high);
}
// int8
__declspec(safe,cost2)