public ForNode(VarSetNode varSetNode, ScopedDefineNode defineNode, IExpressionNode expression, IStatementNode statement, BlockNode block, Range range) : base(range) { VarSetNode = varSetNode; DefineNode = defineNode; Expression = expression; Statement = statement; Block = block; }
void ParseDefine(ScopeGroup scope, ScopedDefineNode defineNode) { var var = VarCollection.AssignDefinedVar(scope, IsGlobal, defineNode.VariableName, defineNode.Range); // Set the defined variable if the variable is defined like "define var = 1" if (defineNode.Value != null) { Actions.Add(var.SetVariable(ParseExpression(scope, defineNode.Value))); } }
public override Node VisitDefine(DeltinScriptParser.DefineContext context) { string variableName = context.PART().GetText(); IExpressionNode value = null; if (context.expr() != null) { value = (IExpressionNode)VisitExpr(context.expr()); } Node node = new ScopedDefineNode(variableName, value, Range.GetRange(context)); CheckRange(node); return(node); }
public override Node VisitFor(DeltinScriptParser.ForContext context) { Node node; BlockNode block = (BlockNode)VisitBlock(context.block()); if (context.IN() != null) { IExpressionNode array = (IExpressionNode)Visit(context.expr()); string variable = context.PART().GetText(); node = new ForEachNode(variable, array, block, Range.GetRange(context)); } else { VarSetNode varSet = null; if (context.varset() != null) { varSet = (VarSetNode)VisitVarset(context.varset()); } ScopedDefineNode defineNode = null; if (context.define() != null) { defineNode = (ScopedDefineNode)VisitDefine(context.define()); } IExpressionNode expression = null; if (context.expr() != null) { expression = (IExpressionNode)VisitExpr(context.expr()); } IStatementNode statement = null; if (context.statement() != null) { statement = (IStatementNode)VisitStatement(context.statement()); } node = new ForNode(varSet, defineNode, expression, statement, block, Range.GetRange(context)); } CheckRange(node); return(node); }