コード例 #1
0
        public override Object Visit(ThetaStatement node, Object obj)
        {
            this.printIndentation(Convert.ToInt32(obj));
            this.output.Write("{0}{1} = 0(", node.ThetaId.Identifier, node.ThetaId.IndexOfSSA);
            for (int i = 0; i < node.ThetaList.Count - 1; i++)
            {
                if (node.ThetaList[i].IndexOfSSA != -1)
                {
                    this.output.Write("{0}{1}", node.ThetaList[i].Identifier, node.ThetaList[i].IndexOfSSA);
                }
                else
                {
                    this.output.Write("{0}", node.ThetaList[i].Identifier);
                }

                this.output.Write(" ({0}), ", printType(node.ThetaList[i].ExpressionType));
            }

            if (node.ThetaList[node.ThetaList.Count - 1].IndexOfSSA != -1)
            {
                this.output.Write("{0}{1}", node.ThetaList[node.ThetaList.Count - 1].Identifier, node.ThetaList[node.ThetaList.Count - 1].IndexOfSSA);
            }
            else
            {
                this.output.Write("{0}", node.ThetaList[node.ThetaList.Count - 1].Identifier);
            }

            this.output.WriteLine(" ({0}))", printType(node.ThetaList[node.ThetaList.Count - 1].ExpressionType));

            return(null);
        }
コード例 #2
0
 public override object Visit(ThetaStatement node, object obj)
 {
     if (node.Location == ((AstNode)obj).Location || found)
     {
         found = true;
         return(this.table);
     }
     return(base.Visit(node, obj));
 }
コード例 #3
0
        public override Object Visit(ThetaStatement node, Object obj)
        {
            List <SingleIdentifierExpression> list = new List <SingleIdentifierExpression>();

            for (int i = 0; i < node.ThetaList.Count; i++)
            {
                list.Add((SingleIdentifierExpression)node.ThetaList[i].Accept(this, obj));
            }
            return(new ThetaStatement((SingleIdentifierExpression)node.ThetaId.Accept(this, obj), list, node.Location));
        }
コード例 #4
0
        public override Object Visit(ThetaStatement node, Object obj)
        {
            node.ThetaId.Accept(this, obj);

            for (int i = 0; i < node.ThetaList.Count; i++)
            {
                node.ThetaList[i].Accept(this, obj);
            }

            return(null);
        }
コード例 #5
0
 public abstract Object Visit(ThetaStatement node, Object obj);