1
如何構建我的原始表達式來區分求和運算符和有符號整數?我正在使用PLY Python。Lexing求和運算符和帶符號整數的Python Python
此,不幸的是,沒有工作:思考這個
t_sum=r'\+'
def t_integer(token):
r'[-+]?\d+'
如何構建我的原始表達式來區分求和運算符和有符號整數?我正在使用PLY Python。Lexing求和運算符和帶符號整數的Python Python
此,不幸的是,沒有工作:思考這個
t_sum=r'\+'
def t_integer(token):
r'[-+]?\d+'
一種方式,而不是試圖區分+
目的的詞法,是要等到解析(當我們確定的含義)。因此,保持:
t_PLUS = r'\+'
t_MINUS = r'\-'
def t_INTEGER(token):
r'\d+'
return int(token)
,並定義語法:
number -> number PLUS number #sum, binary operator
number -> number MINUS number
number -> PLUS number #signed integer, unary operator
number -> MINUS number
number -> INTEGER
#By writing each as a parse functions like...
def p_number_ADD(p):
"number : number PLUS number"
p[0] = p[1]+p[2]
注:這確實允許以下行爲+-+2 = +(-(+2)) = -2
(如Python中看到的)。
這裏的提示(-ish),加號_sign_是一元運算符。此外,還有一個二元運算符。 –
感謝您的提示,但仍不知道如何去做。 – Academia