当前位置: 首页>>代码示例>>C#>>正文


C# AST.getText方法代码示例

本文整理汇总了C#中AST.getText方法的典型用法代码示例。如果您正苦于以下问题:C# AST.getText方法的具体用法?C# AST.getText怎么用?C# AST.getText使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AST的用法示例。


在下文中一共展示了AST.getText方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: visit

		public void visit(AST node) 
		{
			// Flatten this level of the tree if it has no children
			bool flatten = /*true*/ false;
			AST node2;
			for (node2 = node; node2 != null; node2 = node2.getNextSibling()) 
			{
				if (node2.getFirstChild() != null) 
				{
					flatten = false;
					break;
				}
			}

			for (node2 = node; node2 != null; node2 = node2.getNextSibling()) 
			{
				if (!flatten || node2 == node) 
				{
					tabs();
				}
				if (node2.getText() == null) 
				{
					Console.Out.Write("nil");
				}
				else 
				{
					Console.Out.Write(node2.getText());
				}

				Console.Out.Write(" [" + node2.Type + "] ");

				if (flatten) 
				{
					Console.Out.Write(" ");
				}
				else 
				{
					Console.Out.WriteLine("");
				}

				if (node2.getFirstChild() != null) 
				{
					level++;
					visit(node2.getFirstChild());
					level--;
				}
			}

			if (flatten) 
			{
				Console.Out.WriteLine("");
			}
		}
开发者ID:alexed1,项目名称:dtrack,代码行数:53,代码来源:DumpASTVisitor.cs

示例2: Emit

        private INode Emit(AST a, IGraph to)
        {
            String text = a.getText();
            int iType = a.Type;
            String type = parserpackage.GetTypeName(iType);
            NodeType currentNodeType = GetNodeType(type, to);
            INode currentNode = to.AddNode(currentNodeType);
            currentNode.SetAttribute("value", text);

            if (a.getNumberOfChildren() > 0)
            {
                List<AST> l = GetChildren(a);
                INode previousChild = null;
                foreach (AST current in l)
                {
                    INode childNode = Emit(current, to);
                    EdgeType childType = GetEdgeType("child", to);
                    to.AddEdge(childType, currentNode, childNode);

                    if (previousChild != null)
                    {
                        EdgeType nextType = GetEdgeType("next", to);
                        to.AddEdge(nextType, previousChild, childNode);
                    }
                    previousChild = childNode;
                }
            }
            return currentNode;
        }
开发者ID:jblomer,项目名称:GrGen.NET,代码行数:29,代码来源:ASTdapter.cs

示例3: initialize

 /// <summary>
 /// initialize this instance from an AST
 /// </summary>
 public override void initialize(AST t)
 {
     this.setText(t.getText());
     this.Type = t.Type;
 }
开发者ID:hazzik,项目名称:nh-contrib-everything,代码行数:8,代码来源:SpringAST.cs

示例4: initialize

	public override void initialize(AST t) {
		if (t.Type == CalcParserTokenTypes.INT)
			v = Convert.ToInt32(t.getText());
	}
开发者ID:0xb1dd1e,项目名称:boo,代码行数:4,代码来源:INTNode.cs

示例5: InternalEvaluate

        /// <summary>
        /// Evaluates the tree, returns the resulting object.
        /// </summary>
        /// <param name="tree">AST tree to parse</param>
        /// <returns>Object depending on the type of expression</returns>
        object InternalEvaluate(AST tree, out Type resultType)
        {
            //AST returnedTree = null;
            object result = null;
            object a, b;

            try
            {

                if (tree == null)
                    tree = ASTNULL;

                switch (tree.Type)
                {
                    case ExpressionTokenTypes.GT:
                    case ExpressionTokenTypes.GTE:
                    case ExpressionTokenTypes.LTH:
                    case ExpressionTokenTypes.LTE:
                    case ExpressionTokenTypes.EQUAL:
                    case ExpressionTokenTypes.NOT_EQUAL:
                        {
                            AST tmpAST = tree;

                            tree = tree.getFirstChild();
                            Type aType;
                            a = InternalEvaluate(tree, out aType);

                            tree = tree.getNextSibling();
                            Type bType;
                            b = InternalEvaluate(tree, out bType);

                            tree = retTree_;
                            tree = tmpAST;
                            tree = tree.getNextSibling();

                            result = EvaluateEquality(aType, a, bType, b, tmpAST.getText());
                            resultType = typeof(bool);
                        }
                        break;

                    case ExpressionLexer.LITERAL_IN:
                    case ExpressionLexer.LITERAL_NOT:
                        {
                            AST tmpAST = tree; // NOT or IN

                            tree = tree.getFirstChild();
                            Type aType;
                            a = InternalEvaluate(tree, out aType);
                            ExpressionType leftType = GetExpressionType(a.GetType());

                            AST tmp = tree.getNextSibling();
                            ArrayList list = new ArrayList();
                            while (tmp != null)
                            {
                                Type oType;
                                object o = InternalEvaluate(tmp, out oType);
                                if (GetExpressionType(o.GetType()) != leftType)
                                {
                                    string msg = string.Format("Data type not match, '{0}'({1}) - '{2}'({3})",
                                        tmp.getText(), GetExpressionType(a.GetType()), tree.getText(), GetExpressionType(o.GetType()));
                                    throw new Exception(msg);
                                }
                                list.Add(o);
                                tmp = tmp.getNextSibling();
                            }

                            result = false;
                            //foreach(object o in list) {
                            //    if(a.Equals(o)) {
                            //        result = true;
                            //    }
                            //}
                            foreach (object o in list)
                            {
                                if (a.Equals(o) && tmpAST.Type == ExpressionLexer.LITERAL_IN)
                                    result = true;
                                else
                                {
                                    if (a.Equals(o) && tmpAST.Type == ExpressionLexer.LITERAL_NOT)
                                    {
                                        result = false;
                                        break;
                                    }
                                    else
                                    {
                                        if (!a.Equals(o) && tmpAST.Type == ExpressionLexer.LITERAL_NOT)
                                            result = true;
                                    }
                                }
                            }
                            resultType = typeof(bool);
                        }
                        break;

                    case ExpressionLexer.MULT:
//.........这里部分代码省略.........
开发者ID:sametyazak,项目名称:crosscheque,代码行数:101,代码来源:ExpressionTreeParser.cs

示例6: Equals

        /*Is node t equal to this in terms of token type and text? */
        public virtual bool Equals(AST t)
        {
            if (t == null)
                return false;

            return (Object.Equals(this.getText(), t.getText())) &&
                    (this.Type == t.Type);
        }
开发者ID:alexed1,项目名称:dtrack,代码行数:9,代码来源:BaseAST.cs


注:本文中的AST.getText方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。