I am writing lex for a specific language where operations are carried out in prefix notation :
(+ a b) --> (a + b)
An integer is defined as follows : An integer can have a negative sign (–) but no positive sign. It can be with or without space(s) between the sign and the digits. If the value is 0, only a single digit 0 is allowed. Otherwise, it is the same as common integer definitions (no leading 0’s).
Order of expressions in the lex is as follows ( first match rule) :
[\-]?[ ]*((0)|([1-9][0-9]*))
"-"
With these definitions, I would like to parse the string - 5 3
ie. (5-3)
Current output
Integer : - 5,
Integer : 3
Desired output:
Operator : '-'
Integer : 5
Integer : 3
You don't. You return -
and INTEGER separately to the parser, and let the parser handle unary minus.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With