-
Notifications
You must be signed in to change notification settings - Fork 156
Features
Mathias edited this page Jan 26, 2011
·
4 revisions
These are the main features parboiled offers:
-
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.)
-
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
-
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
-
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).
- Introduction
- ... Motivation
- ... Features
- ... Simple Java Example
- ... Simple Scala Example
- ... RegEx vs. parboiled vs. Parser Generators
- ... Projects using parboiled
- Installation
- Concepts
- ... The Big Picture
- ... The Rule Tree
- ... The Value Stack
- ... The Parse Tree
- ... AST Construction
- ... Parse Error Handling
- parboiled for Java
- ... Rule Construction in Java
- ... Parser Action Expressions
- ... Working with the Value Stack
- ... Action Variables
- ... Parser Extension in Detail
- ... Style Guide
- ... Java Examples
- ...... ABC Grammar
- ...... Calculators
- ...... Time Parser
- ...... Java Parser
- ...... Markdown processor
- parboiled for Scala
- ... Rule Construction in Scala
- ... Parser Actions in Scala
- ... Parser Testing in Scala
- ... Scala Examples
- ...... Simple Calculator
- ...... JSON Parser
- Advanced Topics
- ... Handling Whitespace
- ... Parsing Performance Tuning
- ... Indentation Based Grammars
- ... The ProfilingParseRunner
- ... Grammar and Parser Debugging
- ... Thread Safety
- Building parboiled
- parboiled-core Javadoc API
- parboiled-java Javadoc API
- parboiled-scala Scaladoc API
- Change Log
- Patch Policy