]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programparser.cpp
Improve formatting of an empty loop body
[libs/gl.git] / source / programparser.cpp
index b3a226fc98c55d2d9ceed2f39e9e498b4c68a71a..b607e1cfb8f063abfec2127b7c57247809677a81 100644 (file)
@@ -263,7 +263,7 @@ void ProgramParser::skip_comment_and_whitespace()
                {
                        if(*iter=='/')
                                comment = 0;
-                       else
+                       else if(*iter!='*')
                                comment = 3;
                }
 
@@ -315,7 +315,7 @@ bool ProgramParser::is_interface_qualifier(const string &token)
 
 bool ProgramParser::is_sampling_qualifier(const string &token)
 {
-       return token=="centroid";
+       return (token=="centroid" || token=="sample");
 }
 
 bool ProgramParser::is_interpolation_qualifier(const string &token)
@@ -853,14 +853,19 @@ RefPtr<Iteration> ProgramParser::parse_iteration()
                loop->init_statement = parse_statement();
        else
        {
-               RefPtr<ExpressionStatement> expr = new ExpressionStatement;
-               expr->expression = parse_expression();
+               if(token!=";")
+               {
+                       RefPtr<ExpressionStatement> expr = new ExpressionStatement;
+                       expr->expression = parse_expression();
+                       loop->init_statement = expr;
+               }
                expect(";");
-               loop->init_statement = expr;
        }
-       loop->condition = parse_expression();
+       if(peek_token()!=";")
+               loop->condition = parse_expression();
        expect(";");
-       loop->loop_expression = parse_expression();
+       if(peek_token()!=")")
+               loop->loop_expression = parse_expression();
        expect(")");
 
        parse_block(loop->body, false);