Пример #1
0
        public override int VisitIfstatement(MINICParser.IfstatementContext context)
        {
            int    serial = ms_serialCounter++;
            string s      = "IfStatement_" + serial;

            outFile.WriteLine("\"{0}\"->\"{1}\";", m_labels.Peek(), s);

            m_labels.Push(s);

            base.VisitChildren(context);

            m_labels.Pop();
            return(0);
        }
Пример #2
0
        public override int VisitIfstatement(MINICParser.IfstatementContext context)
        {
            ASTComposite    m_parent = m_parents.Peek();
            CASTIfStatement newnode  = new CASTIfStatement(context.GetText(), m_parents.Peek(), 3);

            m_parent.AddChild(newnode, m_parentContext.Peek());
            m_parents.Push(newnode);

            this.VisitElementInContext(context.expression(), m_parentContext, contextType.CT_IFSTATEMENT_CONDITION);
            this.VisitElementInContext(context.statement(0), m_parentContext, contextType.CT_IFSTATEMENT_IFCLAUSE);
            if (context.statement(1) != null)
            {
                this.VisitElementInContext(context.statement(1), m_parentContext, contextType.CT_IFSTATEMENT_ELSECLAUSE);
            }
            m_parents.Pop();
            return(0);
        }