本文整理汇总了C#中ParseNode.GetRule方法的典型用法代码示例。如果您正苦于以下问题:C# ParseNode.GetRule方法的具体用法?C# ParseNode.GetRule怎么用?C# ParseNode.GetRule使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParseNode
的用法示例。
在下文中一共展示了ParseNode.GetRule方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
}