added lazy predicates for the lexer

this way we can parse infinite streams in theory (or REPL)