Previously a negative prefix was applied in the lexer, but that's kind of hacky and messy so I handed it to the parser.
Another simple expression parser in C.