|
@@ -141,6 +141,30 @@ enum ExprDef {
|
|
|
EMeta( name : String, args : Array<Expr>, e : Expr );
|
|
|
}
|
|
|
|
|
|
+enum TExprDef {
|
|
|
+ TConst( c : Const );
|
|
|
+ TVar( v : TVar );
|
|
|
+ TGlobal( g : TGlobal );
|
|
|
+ TParenthesis( e : TExpr );
|
|
|
+ TBlock( el : Array<TExpr> );
|
|
|
+ TBinop( op : Binop, e1 : TExpr, e2 : TExpr );
|
|
|
+ TUnop( op : Unop, e1 : TExpr );
|
|
|
+ TVarDecl( v : TVar, ?init : TExpr );
|
|
|
+ TCall( e : TExpr, args : Array<TExpr> );
|
|
|
+ TSwiz( e : TExpr, regs : Array<Component> );
|
|
|
+ TIf( econd : TExpr, eif : TExpr, eelse : Null<TExpr> );
|
|
|
+ TDiscard;
|
|
|
+ TReturn( ?e : TExpr );
|
|
|
+ TFor( v : TVar, it : TExpr, loop : TExpr );
|
|
|
+ TContinue;
|
|
|
+ TBreak;
|
|
|
+ TArray( e : TExpr, index : TExpr );
|
|
|
+ TArrayDecl( el : Array<TExpr> );
|
|
|
+ TSwitch( e : TExpr, cases : Array<{ values : Array<TExpr>, expr:TExpr }>, def : Null<TExpr> );
|
|
|
+ TWhile( e : TExpr, loop : TExpr, normalWhile : Bool );
|
|
|
+ TMeta( m : String, args : Array<Const>, e : TExpr );
|
|
|
+}
|
|
|
+
|
|
|
typedef TVar = {
|
|
|
var id : Int;
|
|
|
var name : String;
|
|
@@ -259,30 +283,6 @@ enum Component {
|
|
|
W;
|
|
|
}
|
|
|
|
|
|
-enum TExprDef {
|
|
|
- TConst( c : Const );
|
|
|
- TVar( v : TVar );
|
|
|
- TGlobal( g : TGlobal );
|
|
|
- TParenthesis( e : TExpr );
|
|
|
- TBlock( el : Array<TExpr> );
|
|
|
- TBinop( op : Binop, e1 : TExpr, e2 : TExpr );
|
|
|
- TUnop( op : Unop, e1 : TExpr );
|
|
|
- TVarDecl( v : TVar, ?init : TExpr );
|
|
|
- TCall( e : TExpr, args : Array<TExpr> );
|
|
|
- TSwiz( e : TExpr, regs : Array<Component> );
|
|
|
- TIf( econd : TExpr, eif : TExpr, eelse : Null<TExpr> );
|
|
|
- TDiscard;
|
|
|
- TReturn( ?e : TExpr );
|
|
|
- TFor( v : TVar, it : TExpr, loop : TExpr );
|
|
|
- TContinue;
|
|
|
- TBreak;
|
|
|
- TArray( e : TExpr, index : TExpr );
|
|
|
- TArrayDecl( el : Array<TExpr> );
|
|
|
- TSwitch( e : TExpr, cases : Array<{ values : Array<TExpr>, expr:TExpr }>, def : Null<TExpr> );
|
|
|
- TWhile( e : TExpr, loop : TExpr, normalWhile : Bool );
|
|
|
- TMeta( m : String, args : Array<Const>, e : TExpr );
|
|
|
-}
|
|
|
-
|
|
|
typedef TExpr = { e : TExprDef, t : Type, p : Position }
|
|
|
|
|
|
typedef ShaderData = {
|