masala / masala-parser JavaScript 150 10 Javascript Generalized Parser Combinators functional-programming parsec parser-combinator monad