public void VisitBlock(IndentWriter context, AstStatement.BlockStmt blockStmt)
        {
            context.Indent();
            foreach (var item in blockStmt.Statements)
            {
                item.Accept(context, this);
            }

            context.Unindent();
        }
Example #2
0
        public AstStatement ParseCompilationUnit()
        {
            var block = new AstStatement.BlockStmt();

            while (this.Tokenizer.CanPeek())
            {
                block.Statements.Add(this.ParseStatement());
            }

            return(block);
        }
Example #3
0
        private AstStatement.BlockStmt ParseBlock()
        {
            this.Consume(TokenType.BracketBegin);
            var block = new AstStatement.BlockStmt();

            while (!this.Matches(TokenType.BracketEnd))
            {
                block.Statements.Add(this.ParseStatement());
            }

            return(block);
        }
        public AstStatement VisitBlock(Scope context, AstStatement.BlockStmt blockStmt)
        {
            var scope = new Scope(context);

            blockStmt.Scope = scope;
            for (int i = 0; i < blockStmt.Statements.Count; i++)
            {
                blockStmt.Statements[i] = blockStmt.Statements[i].Accept(scope, this);
            }

            return(blockStmt);
        }
 public List <Instruction> VisitBlock(object context, AstStatement.BlockStmt blockStmt)
 {
     return(blockStmt.Statements
            .SelectMany(stmt => stmt.Accept(context, this))
            .ToList());
 }
Example #6
0
 public Tree VisitBlock(object c, AstStatement.BlockStmt blockStmt)
 => new Tree("block", blockStmt.Statements.Select(s => s.Accept(c, this)).ToArray());