本文整理汇总了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("");
}
}
示例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;
}
示例3: initialize
/// <summary>
/// initialize this instance from an AST
/// </summary>
public override void initialize(AST t)
{
this.setText(t.getText());
this.Type = t.Type;
}
示例4: initialize
public override void initialize(AST t) {
if (t.Type == CalcParserTokenTypes.INT)
v = Convert.ToInt32(t.getText());
}
示例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:
//.........这里部分代码省略.........
示例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);
}