小编ron*_*725的帖子

在 lex 中,如何区分“-”(减法)运算符和整数“-3”?

我正在为特定语言编写 lex,其中操作以前缀表示法进行:

(+ a b) --> (a + b)

一个整数的定义如下:一个整数可以具有负号( - ),但没有正号。符号和数字之间可以有或没有空格。如果值为 0,则只允许单个数字 0。否则,它与常见的整数定义相同(没有前导 0)。

lex 中的表达式顺序如下(第一个匹配规则):

  • 整数的正则表达式:[\-]?[ ]*((0)|([1-9][0-9]*))
  • 减法运算符的正则表达式: "-"

有了这些定义,我想解析字符串- 5 3 即。(5-3)

电流输出

Integer : - 5, 

Integer : 3
Run Code Online (Sandbox Code Playgroud)

期望的输出:

Operator : '-'

Integer : 5

Integer : 3
Run Code Online (Sandbox Code Playgroud)

lex lexical-analysis flex-lexer

5
推荐指数
1
解决办法
2005
查看次数

标签 统计

flex-lexer ×1

lex ×1

lexical-analysis ×1