Almost complete rewrite for better performance
Updated documentation
Removed obsolete code
Fix parentheses and punctuation parsing
Use array ranges instead of concatenation
Allow changing lookahead depth