- implemented local vector variables. Currently only the definition plus initial assignment works.
- removed all vector4 handling that had already been added, now that this type can no longer be defined.
This commit is contained in:
parent
f2f365bfef
commit
9400f97189
8 changed files with 278 additions and 44 deletions
|
|
@ -945,6 +945,7 @@ func_param_flags(X) ::= func_param_flags(A) OPTIONAL(T). { X.Int = A.Int | ZCC_O
|
|||
|
||||
%type expr{ZCC_Expression *}
|
||||
%type primary{ZCC_Expression *}
|
||||
%type vectorinit{ZCC_VectorInitializer*}
|
||||
%type unary_expr{ZCC_Expression *}
|
||||
%type constant{ZCC_ExprConstant *}
|
||||
|
||||
|
|
@ -966,29 +967,7 @@ primary(X) ::= SUPER(T).
|
|||
X = expr;
|
||||
}
|
||||
primary(X) ::= constant(A). { X = A; /*X-overwrites-A*/ }
|
||||
|
||||
primary(XX) ::= LPAREN expr(A) COMMA expr(B) COMMA expr(C) RPAREN.
|
||||
{
|
||||
NEW_AST_NODE(VectorInitializer, expr, A);
|
||||
expr->Operation = PEX_Vector;
|
||||
expr->Type = TypeVector3;
|
||||
expr->X = A;
|
||||
expr->Y = B;
|
||||
expr->Z = C;
|
||||
XX = expr;
|
||||
}
|
||||
|
||||
|
||||
primary(XX) ::= LPAREN expr(A) COMMA expr(B) RPAREN.
|
||||
{
|
||||
NEW_AST_NODE(VectorInitializer, expr, A);
|
||||
expr->Operation = PEX_Vector;
|
||||
expr->Type = TypeVector2;
|
||||
expr->X = A;
|
||||
expr->Y = B;
|
||||
expr->Z = nullptr;
|
||||
XX = expr;
|
||||
}
|
||||
primary(X) ::= vectorinit(A). { X = A; /*X-overwrites-A*/ }
|
||||
|
||||
primary(X) ::= LPAREN expr(A) RPAREN.
|
||||
{
|
||||
|
|
@ -1039,6 +1018,30 @@ primary(X) ::= SCOPE primary(B).
|
|||
X = expr2;
|
||||
}
|
||||
*/
|
||||
|
||||
vectorinit(XX) ::= LPAREN expr(A) COMMA expr(B) COMMA expr(C) RPAREN. [DOT]
|
||||
{
|
||||
NEW_AST_NODE(VectorInitializer, expr, A);
|
||||
expr->Operation = PEX_Vector;
|
||||
expr->Type = TypeVector3;
|
||||
expr->X = A;
|
||||
expr->Y = B;
|
||||
expr->Z = C;
|
||||
XX = expr;
|
||||
}
|
||||
|
||||
|
||||
vectorinit(XX) ::= LPAREN expr(A) COMMA expr(B) RPAREN. [DOT]
|
||||
{
|
||||
NEW_AST_NODE(VectorInitializer, expr, A);
|
||||
expr->Operation = PEX_Vector;
|
||||
expr->Type = TypeVector2;
|
||||
expr->X = A;
|
||||
expr->Y = B;
|
||||
expr->Z = nullptr;
|
||||
XX = expr;
|
||||
}
|
||||
|
||||
/*----- Unary Expressions -----*/
|
||||
|
||||
unary_expr(X) ::= primary(X).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue