我设置了 Sprache 来解析一个方程,该方程中有许多不同的可能的方法调用。解析方法后,有没有办法确定原始字符串中的索引值?也许解析有一个可以以某种方式访问的“当前索引”值和“长度”值?
输入字符串示例:
IndexOf("fred", 2) + IndexOf("bob")
使用这样的解析器...
Parser<Expression> FunctionCall = from namePart in Parse.Letter.Many().Text()
from lparen in Parse.Char('(')
from expr in Parameter.DelimitedBy(ListDelimiter)
from rparen in Parse.Char(')')
select CallMethod(namePart, Enumerable.Repeat(sourceData, 1)
.Concat(expr)
.ToArray());
谁能想到一个“技巧”,让我能够确定第一个 CallMethod 处理SubString(0, 18),第二个 CallMethod 处理原始字符串中的SubString(21, 14) ?
开满天机
慕无忌1623718
相关分类