本文整理汇总了C#中AstNode.ToSource方法的典型用法代码示例。如果您正苦于以下问题:C# AstNode.ToSource方法的具体用法?C# AstNode.ToSource怎么用?C# AstNode.ToSource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AstNode
的用法示例。
在下文中一共展示了AstNode.ToSource方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ToSource
public override string ToSource(int depth)
{
StringBuilder sb = new StringBuilder();
sb.Append(MakeIndent(depth));
sb.Append("function");
if (functionName != null)
{
sb.Append(" ");
sb.Append(functionName.ToSource(0));
}
if (@params == null)
{
sb.Append("() ");
}
else
{
sb.Append("(");
PrintList(@params, sb);
sb.Append(") ");
}
if (isExpressionClosure)
{
AstNode body = GetBody();
if (body.GetLastChild() is ReturnStatement)
{
// omit "return" keyword, just print the expression
body = ((ReturnStatement)body.GetLastChild()).GetReturnValue();
sb.Append(body.ToSource(0));
if (functionType == FUNCTION_STATEMENT)
{
sb.Append(";");
}
}
else
{
// should never happen
sb.Append(" ");
sb.Append(body.ToSource(0));
}
}
else
{
sb.Append(GetBody().ToSource(depth).Trim());
}
if (functionType == FUNCTION_STATEMENT)
{
sb.Append("\n");
}
return sb.ToString();
}
示例2: Visit
public bool Visit(AstNode node)
{
int type = node.GetType();
if (type == Token.SCRIPT)
{
return true;
}
if (node.GetParent() == null)
{
throw new InvalidOperationException("No parent for node: " + node + "\n" + node.ToSource(0));
}
return true;
}