do not treat sign as part of a constant, would render "1+1" as two constants
minor rework
make Lexer peekable
decouple lexer from Cards
decouple lexer from Cards
fix float lexing and tests