]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/parser.cpp
Recognize the 'f' suffix for float literals in GLSL
[libs/gl.git] / source / glsl / parser.cpp
index 6a055c0cd3ebb718830e65175efa15aa3bf10ca1..72f8ebfa6279982e675b98b9c5364044e90f3150 100644 (file)
@@ -536,10 +536,12 @@ RefPtr<Literal> Parser::parse_literal()
        if(isdigit(literal->token[0]))
        {
                // TODO have the tokenizer return the type of the token
-               if(isnumrc(literal->token))
-                       literal->value = lexical_cast<int>(literal->token);
-               else
+               if(literal->token.back()=='f')
+                       literal->value = lexical_cast<float>(literal->token.substr(0, literal->token.size()-1));
+               else if(literal->token.find('.')!=string::npos)
                        literal->value = lexical_cast<float>(literal->token);
+               else
+                       literal->value = lexical_cast<int>(literal->token);
        }
        else if(literal->token=="true" || literal->token=="false")
                literal->value = (literal->token=="true");