Exemple #1
0
 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;
 }
Exemple #2
0
        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)));
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }