forked from qt-creator/qt-creator
Fix some bugs in GLSL AST generation in the parser
This commit is contained in:
@@ -740,14 +740,14 @@ case $rule_number: {
|
|||||||
unary_expression ::= INC_OP unary_expression ;
|
unary_expression ::= INC_OP unary_expression ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreIncrement, expression(1));
|
ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreIncrement, expression(2));
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
unary_expression ::= DEC_OP unary_expression ;
|
unary_expression ::= DEC_OP unary_expression ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreDecrement, expression(1));
|
ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreDecrement, expression(2));
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
@@ -936,7 +936,7 @@ case $rule_number: {
|
|||||||
exclusive_or_expression ::= exclusive_or_expression CARET and_expression ;
|
exclusive_or_expression ::= exclusive_or_expression CARET and_expression ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseOr, expression(1), expression(3));
|
ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseXor, expression(1), expression(3));
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
@@ -950,7 +950,7 @@ case $rule_number: {
|
|||||||
inclusive_or_expression ::= inclusive_or_expression VERTICAL_BAR exclusive_or_expression ;
|
inclusive_or_expression ::= inclusive_or_expression VERTICAL_BAR exclusive_or_expression ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseXor, expression(1), expression(3));
|
ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseOr, expression(1), expression(3));
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
@@ -1947,7 +1947,7 @@ case $rule_number: {
|
|||||||
type_specifier_nonarray ::= MAT2X2 ;
|
type_specifier_nonarray ::= MAT2X2 ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeBasicType(T_MAT2X2, Type::Matrix);
|
ast(1) = makeBasicType(T_MAT2, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
@@ -1975,7 +1975,7 @@ case $rule_number: {
|
|||||||
type_specifier_nonarray ::= MAT3X3 ;
|
type_specifier_nonarray ::= MAT3X3 ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeBasicType(T_MAT3X3, Type::Matrix);
|
ast(1) = makeBasicType(T_MAT3, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
@@ -2003,7 +2003,7 @@ case $rule_number: {
|
|||||||
type_specifier_nonarray ::= MAT4X4 ;
|
type_specifier_nonarray ::= MAT4X4 ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeBasicType(T_MAT4X4, Type::Matrix);
|
ast(1) = makeBasicType(T_MAT4, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
@@ -2031,7 +2031,7 @@ case $rule_number: {
|
|||||||
type_specifier_nonarray ::= DMAT2X2 ;
|
type_specifier_nonarray ::= DMAT2X2 ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeBasicType(T_DMAT2X2, Type::Matrix);
|
ast(1) = makeBasicType(T_DMAT2, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
@@ -2059,7 +2059,7 @@ case $rule_number: {
|
|||||||
type_specifier_nonarray ::= DMAT3X3 ;
|
type_specifier_nonarray ::= DMAT3X3 ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeBasicType(T_DMAT3X3, Type::Matrix);
|
ast(1) = makeBasicType(T_DMAT3, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
@@ -2087,7 +2087,7 @@ case $rule_number: {
|
|||||||
type_specifier_nonarray ::= DMAT4X4 ;
|
type_specifier_nonarray ::= DMAT4X4 ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
ast(1) = makeBasicType(T_DMAT4X4, Type::Matrix);
|
ast(1) = makeBasicType(T_DMAT4, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
@@ -2841,8 +2841,6 @@ case $rule_number: {
|
|||||||
} else {
|
} else {
|
||||||
sym(1).declaration_list = 0;
|
sym(1).declaration_list = 0;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
sym(1).declaration_list = 0;
|
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|||||||
@@ -332,13 +332,13 @@ case 25: {
|
|||||||
#line 741 "./glsl.g"
|
#line 741 "./glsl.g"
|
||||||
|
|
||||||
case 26: {
|
case 26: {
|
||||||
ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreIncrement, expression(1));
|
ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreIncrement, expression(2));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 748 "./glsl.g"
|
#line 748 "./glsl.g"
|
||||||
|
|
||||||
case 27: {
|
case 27: {
|
||||||
ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreDecrement, expression(1));
|
ast(1) = makeAstNode<UnaryExpression>(AST::Kind_PreDecrement, expression(2));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 755 "./glsl.g"
|
#line 755 "./glsl.g"
|
||||||
@@ -500,7 +500,7 @@ case 53: {
|
|||||||
#line 937 "./glsl.g"
|
#line 937 "./glsl.g"
|
||||||
|
|
||||||
case 54: {
|
case 54: {
|
||||||
ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseOr, expression(1), expression(3));
|
ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseXor, expression(1), expression(3));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 944 "./glsl.g"
|
#line 944 "./glsl.g"
|
||||||
@@ -512,7 +512,7 @@ case 55: {
|
|||||||
#line 951 "./glsl.g"
|
#line 951 "./glsl.g"
|
||||||
|
|
||||||
case 56: {
|
case 56: {
|
||||||
ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseXor, expression(1), expression(3));
|
ast(1) = makeAstNode<BinaryExpression>(AST::Kind_BitwiseOr, expression(1), expression(3));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 958 "./glsl.g"
|
#line 958 "./glsl.g"
|
||||||
@@ -1382,7 +1382,7 @@ case 182: {
|
|||||||
#line 1948 "./glsl.g"
|
#line 1948 "./glsl.g"
|
||||||
|
|
||||||
case 183: {
|
case 183: {
|
||||||
ast(1) = makeBasicType(T_MAT2X2, Type::Matrix);
|
ast(1) = makeBasicType(T_MAT2, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 1955 "./glsl.g"
|
#line 1955 "./glsl.g"
|
||||||
@@ -1406,7 +1406,7 @@ case 186: {
|
|||||||
#line 1976 "./glsl.g"
|
#line 1976 "./glsl.g"
|
||||||
|
|
||||||
case 187: {
|
case 187: {
|
||||||
ast(1) = makeBasicType(T_MAT3X3, Type::Matrix);
|
ast(1) = makeBasicType(T_MAT3, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 1983 "./glsl.g"
|
#line 1983 "./glsl.g"
|
||||||
@@ -1430,7 +1430,7 @@ case 190: {
|
|||||||
#line 2004 "./glsl.g"
|
#line 2004 "./glsl.g"
|
||||||
|
|
||||||
case 191: {
|
case 191: {
|
||||||
ast(1) = makeBasicType(T_MAT4X4, Type::Matrix);
|
ast(1) = makeBasicType(T_MAT4, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2011 "./glsl.g"
|
#line 2011 "./glsl.g"
|
||||||
@@ -1454,7 +1454,7 @@ case 194: {
|
|||||||
#line 2032 "./glsl.g"
|
#line 2032 "./glsl.g"
|
||||||
|
|
||||||
case 195: {
|
case 195: {
|
||||||
ast(1) = makeBasicType(T_DMAT2X2, Type::Matrix);
|
ast(1) = makeBasicType(T_DMAT2, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2039 "./glsl.g"
|
#line 2039 "./glsl.g"
|
||||||
@@ -1478,7 +1478,7 @@ case 198: {
|
|||||||
#line 2060 "./glsl.g"
|
#line 2060 "./glsl.g"
|
||||||
|
|
||||||
case 199: {
|
case 199: {
|
||||||
ast(1) = makeBasicType(T_DMAT3X3, Type::Matrix);
|
ast(1) = makeBasicType(T_DMAT3, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2067 "./glsl.g"
|
#line 2067 "./glsl.g"
|
||||||
@@ -1502,7 +1502,7 @@ case 202: {
|
|||||||
#line 2088 "./glsl.g"
|
#line 2088 "./glsl.g"
|
||||||
|
|
||||||
case 203: {
|
case 203: {
|
||||||
ast(1) = makeBasicType(T_DMAT4X4, Type::Matrix);
|
ast(1) = makeBasicType(T_DMAT4, Type::Matrix);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2095 "./glsl.g"
|
#line 2095 "./glsl.g"
|
||||||
@@ -2152,42 +2152,40 @@ case 307: {
|
|||||||
} else {
|
} else {
|
||||||
sym(1).declaration_list = 0;
|
sym(1).declaration_list = 0;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
sym(1).declaration_list = 0;
|
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2851 "./glsl.g"
|
#line 2849 "./glsl.g"
|
||||||
|
|
||||||
case 308: {
|
case 308: {
|
||||||
// nothing to do.
|
// nothing to do.
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2858 "./glsl.g"
|
#line 2856 "./glsl.g"
|
||||||
|
|
||||||
case 309: {
|
case 309: {
|
||||||
// nothing to do.
|
// nothing to do.
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2865 "./glsl.g"
|
#line 2863 "./glsl.g"
|
||||||
|
|
||||||
case 310: {
|
case 310: {
|
||||||
ast(1) = 0;
|
ast(1) = 0;
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2872 "./glsl.g"
|
#line 2870 "./glsl.g"
|
||||||
|
|
||||||
case 311: {
|
case 311: {
|
||||||
function(1)->body = statement(2);
|
function(1)->body = statement(2);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2879 "./glsl.g"
|
#line 2877 "./glsl.g"
|
||||||
|
|
||||||
case 312: {
|
case 312: {
|
||||||
ast(1) = 0;
|
ast(1) = 0;
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#line 2887 "./glsl.g"
|
#line 2885 "./glsl.g"
|
||||||
|
|
||||||
} // end switch
|
} // end switch
|
||||||
} // end Parser::reduce()
|
} // end Parser::reduce()
|
||||||
|
|||||||
Reference in New Issue
Block a user