本文整理汇总了C#中ParseNode.GetNamedParent方法的典型用法代码示例。如果您正苦于以下问题:C# ParseNode.GetNamedParent方法的具体用法?C# ParseNode.GetNamedParent怎么用?C# ParseNode.GetNamedParent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParseNode
的用法示例。
在下文中一共展示了ParseNode.GetNamedParent方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParsingException
public ParsingException(ParserState ps, Rule rule, ParseNode node = null, string message = null)
{
UserMessage = message;
// Store the failed node, the parent node (which should be named), and the associated rule
ParentNode = node;
if (ParentNode != null)
ParentNode = ParentNode.GetNamedParent();
FailedRule = rule;
if (ParentNode != null)
ParentRule = ParentNode.GetRule();
// set the main text variables
Text = ps.Text;
// set the index into the text
Index = ps.Index;
if (Index >= Text.Length)
Index = Text.Length - 1;
// initialize a bunch of values
LineStart = 0;
Column = 0;
Row = 0;
int i = 0;
// Compute the column, row, and lineStart
for (; i < Index; ++i)
{
if (Text[i] == '\n')
{
LineStart = i + 1;
Column = 0;
++Row;
}
else
{
++Column;
}
}
// Compute the line end
while (i < Text.Length)
if (Text[i++] == '\n')
break;
LineEnd = i;
// Compute the line length
LineLength = LineEnd - LineStart;
// Get the line text (don't include the new line)
Line = Text.Substring(LineStart, LineLength - 1);
// Assume Tabs of length of four
string tab = " ";
// Compute the pointer (^) line will be
// based on the fact that we will be replacing tabs
// with spaces.
string tmp = Line.Substring(0, Column);
tmp = tmp.Replace("\t", tab);
Ptr = new String(' ', tmp.Length);
Ptr += "^";
// Replace tabs with spaces
Line = Line.Replace("\t", tab);
}
示例2: ParsingException
public ParsingException(ParseNode parent, Rule rule, ParserState ps)
{
// Store the failed node, the parent node (which should be named), and the associated rule
parentNode = parent;
if (parentNode != null)
parentNode = parentNode.GetNamedParent();
failedRule = rule;
if (parentNode != null)
parentRule = parentNode.GetRule();
// set the main text variables
text = ps.text;
// set the index into the text
index = ps.index;
if (index >= text.Length)
index = text.Length - 1;
// initialize a bunch of values
lineStart = 0;
col = 0;
row = 0;
int i = 0;
// Compute the column, row, and lineStart
for (; i < index; ++i)
{
if (text[i] == '\n')
{
lineStart = i + 1;
col = 0;
++row;
}
else
{
++col;
}
}
// Compute the line end
while (i < text.Length)
if (text[i++] == '\n')
break;
lineEnd = i;
// Compute the line length
lineLength = lineEnd - lineStart;
// Get the line text (don't include the new line)
line = text.Substring(lineStart, lineLength - 1);
// Assume Tabs of length of four
string tab = " ";
// Compute the pointer (^) line will be
// based on the fact that we will be replacing tabs
// with spaces.
string tmp = line.Substring(0, col);
tmp = tmp.Replace("\t", tab);
ptr = new String(' ', tmp.Length);
ptr += "^";
// Replace tabs with spaces
line = line.Replace("\t", tab);
}