use a special FileReader that caches the result

and handles '-' as $stdin
rm a case that's handled already
spec the lexers in a saner and more complete way
add a comment about :bol and :expr_bol
http: actually consume the remainder of the stream
make the http lexer more robust to guessing shenanigans
add more objc sample code
objc bugfix: accept whitespace in forward classnames