-
Notifications
You must be signed in to change notification settings - Fork 156
Markdown processor
The Markdown processor pegdown is implemented around a parboiled parser for the Markdown syntax (plus certain extensions) and serves as a good example for a complete application realized with parboiled.
pegdowns Markdown parser builds an abstract syntax tree representing the structure of the underlying Markdown document that is subsequently written out to HTML.
One speciality of pegdowns parsing approach is that for some Markdown elements (like blockquotes or list items) pegdowns parser first builds an “inner source” string that is then fed to another, inner parser instance to run a separate, recursive parse whose root AST node is then attached to the outer AST at the respective position. This recursive parser invocation strategy simplifies the grammar design as only one level of the respective language structures has to be modeled.
- 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