指数的 Lex 解析
Lex Parsing for exponent
我正在尝试解析数据看起来像的文件
size = [5e+09, 5e+09, 5e+09]
I have 'size OSQUARE NUMBER COMMA NUMBER COMMA NUMBER ESQUARE'
NUMBER 在 tokrules 中定义为
t_NUMBER = r'[-]?[0-9]*[\.]*[0-9]+([eE]-?[0-9]+)*'
但我明白了
Syntax error in input!
LexToken(ID,'e',6,113)
Illegal character '+'
Illegal character '+'
Illegal character '+'
我的 NUMBER 定义有什么问题?
匹配指数的规则部分是
([eE]-?[0-9]+)*
显然,这与 +
不匹配。应该是:
([eE][-+]?[0-9]+)*
此外,它会匹配 0 个或多个指数,这是不正确的。它应该匹配 0 或 1:
([eE][-+]?[0-9]+)?
我正在尝试解析数据看起来像的文件
size = [5e+09, 5e+09, 5e+09]
I have 'size OSQUARE NUMBER COMMA NUMBER COMMA NUMBER ESQUARE'
NUMBER 在 tokrules 中定义为
t_NUMBER = r'[-]?[0-9]*[\.]*[0-9]+([eE]-?[0-9]+)*'
但我明白了
Syntax error in input!
LexToken(ID,'e',6,113)
Illegal character '+'
Illegal character '+'
Illegal character '+'
我的 NUMBER 定义有什么问题?
匹配指数的规则部分是
([eE]-?[0-9]+)*
显然,这与 +
不匹配。应该是:
([eE][-+]?[0-9]+)*
此外,它会匹配 0 个或多个指数,这是不正确的。它应该匹配 0 或 1:
([eE][-+]?[0-9]+)?