add foreach(a/l/a,p/l,p/a,p,f/l,p,f : blocklinesiterator/blockthingsiterator)
This commit is contained in:
parent
5cb0e3bc5b
commit
f5507a7373
7 changed files with 216 additions and 3 deletions
|
|
@ -276,6 +276,7 @@ enum EFxType
|
|||
EFX_ForLoop,
|
||||
EFX_ForEachLoop,
|
||||
EFX_MapForEachLoop,
|
||||
EFX_BlockForEachLoop,
|
||||
EFX_JumpStatement,
|
||||
EFX_ReturnStatement,
|
||||
EFX_ClassTypeCast,
|
||||
|
|
@ -2107,6 +2108,27 @@ public:
|
|||
//ExpEmit Emit(VMFunctionBuilder *build); This node is transformed, so it won't ever be emitted itself
|
||||
};
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FxBlockIteratorForEachLoop
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
class FxBlockIteratorForEachLoop : public FxExpression
|
||||
{
|
||||
FName varVarName;
|
||||
FName posVarName;
|
||||
FName flagsVarName;
|
||||
FxExpression* BlockIteratorExpr;
|
||||
FxExpression* Code;
|
||||
|
||||
public:
|
||||
FxBlockIteratorForEachLoop(FName vv, FName pv, FName fv, FxExpression* blockiteartorexpr, FxExpression* code, const FScriptPosition& pos);
|
||||
~FxBlockIteratorForEachLoop();
|
||||
FxExpression *Resolve(FCompileContext&);
|
||||
//ExpEmit Emit(VMFunctionBuilder *build); This node is transformed, so it won't ever be emitted itself
|
||||
};
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FxJumpStatement
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue