Sprache:解析有符号整数

Tad*_*kys 0 c# parsing integer sprache

我想知道是否有更好的方法使用Sprache解析器框架解析有符号整数。

对于没有符号的整数,有一个众所周知的解析器定义 Parse.Number.Select(int.Parse)

但是我也想解析带有-前缀的整数。

我现在得到的是Parse.Regex(@"\-?\d+").Select(int.Parse)。

没有使用正则表达式的更好方法吗?

例如,使用Parse.Char('-').Optional()然后解析以下数字。

谢谢

Geo*_*off 5

我这样做的方式类似于以下内容:

from op in Parse.Optional(Parse.Char('-').Token())
from num in Parse.Decimal
from trailingSpaces in Parse.Char(' ').Many()
select decimal.Parse(num) * (op.IsDefined ? -1 : 1);
Run Code Online (Sandbox Code Playgroud)

当然,根据您要解析的内容,忽略trailingSpaces部分。