c - How to differentiate '-' operator from a negative number for a tokenizer -



c - How to differentiate '-' operator from a negative number for a tokenizer -

i creating infix look parser, have create tokenizer. works well, except 1 thing: not how differentiate negative number "-" operator.

for example, if have:

23 / -23

the tokens should 23, / , -23, if have look like

23-22

then tokens should 23, - , 22.

i found dirty workaround if encounter "-" followed number, @ previous character , if character digit or ')', treat "-" operator , not number. apart beingness kind of ugly, doesn't work expressions like

--56

where gets next tokens: - , -56 should --56

any suggestion?

in first illustration tokens should 23, /, - , 23.

the solution evaluate tokens according rules of associativity , precedence. - cannot bind / can 23, example.

if encounter --56, split -,-,56 , rules take care of problem. there no need special cases.

c parsing token

Comments

Popular posts from this blog

java Multi query from Mysql using netbeans -

c# - DotNetZip fails with "stream does not support seek operations" -

c++ - StartServiceCtrlDispatcher don't can access 1063 error -