diff options
Diffstat (limited to 'src/mesa/shader/slang/library/slang_shader.syn')
-rw-r--r-- | src/mesa/shader/slang/library/slang_shader.syn | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mesa/shader/slang/library/slang_shader.syn b/src/mesa/shader/slang/library/slang_shader.syn index 149bb15c44..bfa6793f06 100644 --- a/src/mesa/shader/slang/library/slang_shader.syn +++ b/src/mesa/shader/slang/library/slang_shader.syn @@ -1096,7 +1096,7 @@ condition_3 expression .and .true .emit OP_END; /* - <iteration_statement> ::= "while" "(" <condition> ")" <statement_no_new_scope> + <iteration_statement> ::= "while" "(" <condition> ")" <statement> | "do" <statement> "while" "(" <expression> ")" ";" | "for" "(" <for_init_statement> <for_rest_statement> ")" <statement_no_new_scope> @@ -1105,7 +1105,7 @@ iteration_statement iteration_statement_1 .or iteration_statement_2 .or iteration_statement_3; iteration_statement_1 "while" .emit OP_WHILE .and lparen .error LPAREN_EXPECTED .and condition .and - rparen .error RPAREN_EXPECTED .and statement_no_new_scope; + rparen .error RPAREN_EXPECTED .and statement; iteration_statement_2 "do" .emit OP_DO .and statement_space .and "while" .and lparen .error LPAREN_EXPECTED .and expression .and rparen .error RPAREN_EXPECTED .emit OP_END .and semicolon; @@ -1192,7 +1192,12 @@ note: this is an extension to the standard language specification - normally sla __asm statements */ asm_argument - variable_identifier .or floatconstant; + var_with_field .or + variable_identifier .or + floatconstant; + +var_with_field + variable_identifier .and dot .and field_selection .emit OP_FIELD; /* <translation_unit> ::= <external_declaration> |