Exemplo n.º 1
0
        public void Visit(IfStmnt ifStmnt)
        {
            Replace(ref ifStmnt.Condition);

            for (var i = 0; i < ifStmnt.Then.Count; i += 1)
            {
                ifStmnt.Then[i].Accept(this);
            }
            for (var i = 0; i < ifStmnt.Else.Count; i += 1)
            {
                ifStmnt.Else[i].Accept(this);
            }
        }
Exemplo n.º 2
0
        public void Visit(IfStmnt ifStmnt)
        {
            ifStmnt.Condition.Accept(this);
            var type = result.Pop();

            if (type != BuiltIns.Bool)
            {
                throw new Exception("Not implemented");
            }

            foreach (var stmnt in ifStmnt.Then)
            {
                stmnt.Accept(this);
            }
            foreach (var stmnt in ifStmnt.Else)
            {
                stmnt.Accept(this);
            }
        }
Exemplo n.º 3
0
        public void Visit(IfStmnt ifStmnt)
        {
            var clone = new IfStmnt();

            ifStmnt.Condition.Accept(this);
            clone.Condition = result.Pop();

            foreach (var stmnt in ifStmnt.Then)
            {
                stmnt.Accept(this);
                clone.Then.Add(result.Pop());
            }
            foreach (var stmnt in ifStmnt.Else)
            {
                stmnt.Accept(this);
                clone.Else.Add(result.Pop());
            }

            result.Push(clone);
        }