我如何区分加号运算符和 Lex 中的正号?

How can I differentiate a plus operator from a positive sign in Lex?

我正在为几乎类似于 C 的语言编写 lex,我需要区分这两个符号。例如:

a+b -> 加号

+a -> 正号

其中 ab 可以是数字或标识符。我已经有了数字和标识符的正则表达式,但现在我陷入了这个问题。我该怎么做

区分中缀运算符和前缀运算符不是词法分析器的工作。加号应该以任何一种方式产生相同的标记,然后解析器可以根据它是出现在前缀还是中缀位置来区别对待它。