public override Node VisitBlock(DeltinScriptParser.BlockContext context)
        {
            Node[] statements = new Node[context.statement().Length];
            for (int i = 0; i < statements.Length; i++)
            {
                statements[i] = VisitStatement(context.statement()[i]);
            }

            return(new BlockNode(statements, new Location(file, Range.GetRange(context))));
        }
        void ParseBlock(DeltinScriptParser.BlockContext blockContext)
        {
            var statements = blockContext.children
                             .Where(v => v is DeltinScriptParser.StatementContext)
                             .Cast <DeltinScriptParser.StatementContext>().ToArray();

            for (int i = 0; i < statements.Length; i++)
            {
                ParseStatement(statements[i]);
            }
        }
Exemple #3
0
        public override Node VisitBlock(DeltinScriptParser.BlockContext context)
        {
            IStatementNode[] statements = new IStatementNode[context.statement().Length];
            for (int i = 0; i < statements.Length; i++)
            {
                statements[i] = (IStatementNode)VisitStatement(context.statement()[i]);
            }

            var node = new BlockNode(statements, Range.GetRange(context));

            CheckRange(node);
            return(node);
        }
Exemple #4
0
        public BlockAction(ParseInfo parseInfo, Scope scope, DeltinScriptParser.BlockContext blockContext)
        {
            Scope blockScope = scope.Child();

            if (blockContext.statement() == null)
            {
                Statements = new IStatement[0];
            }
            else
            {
                Statements = new IStatement[blockContext.statement().Length];
                for (int i = 0; i < Statements.Length; i++)
                {
                    Statements[i] = DeltinScript.GetStatement(parseInfo, blockScope, blockContext.statement(i));
                }
            }

            if (blockContext.BLOCK_START() != null && blockContext.BLOCK_END() != null)
            {
                parseInfo.Script.AddCompletionRange(new CompletionRange(blockScope, DocRange.GetRange(blockContext.BLOCK_START(), blockContext.BLOCK_END()), CompletionRangeKind.Catch));
            }
        }