Features

Mathias edited this page Jan 26, 2011 · 4 revisions
Clone this wiki locally

These are the main features parboiled offers:

  1. Grammar definition directly in Java or Scala source
    • No external, custom format non-Java/non-Scala files
    • No proprietary syntax to learn
    • No break in IDE support (syntax highlighting, code navigation, refactoring, etc.)
  2. Real-world ready
    • Full expressive power of Parsing Expression Grammars
    • Support for powerful and flexible parser actions
    • Excellent parse error reporting and recovery
    • Good performance
  3. Very easy integration
    • No external parser generator tools to manage
    • No special steps complicating your build process
    • No “untouchable”, generated source files in your project structure
    • Open and flexible architecture to integrate easily into existing structures
  4. Light-weight, easy-to-use
    • Just one parsing phase (no lexer code required)
    • Small, simple API
    • Library is ca. 300/450 KB for Java/Scala with few dependencies

Even though parboiled was originally designed less for speed than for ease-of-use and manageability its parsing performance has improved significantly since its early releases and is now more than sufficient for most applications. It can parse its own Java 5 sources (see the Java Parser example) at a rate of approx. 55,000 lines or 2.0 million characters per second on one core of a 2.4 GHz Intel Core i5 (under OS/X Java 6).