Skip to content
Objective-C Tokenizer and Parser Generator. Supports Grammars.
Objective-C Other
Failed to load latest commit information.
ParseKit.xcodeproj * cleanup. remove warnings Apr 17, 2014
ParserGenApp merging fixes from tree-rewrite branch back to trunk May 11, 2013
debugapp Merge from SVN. All new Static features included Apr 29, 2013
docs fix location of PKNodeVisitor.h May 9, 2013
en.lproj Merge from SVN. All new Static features included Apr 30, 2013
include/ParseKit remove expected: arg. move back to _tokenKindNameTab Apr 30, 2013
lib Merge from SVN. All new Static features included Apr 30, 2013
res * cleanup. remove warnings Apr 17, 2014
src * revert porting of delimit state changes from pegkit Apr 17, 2014
test * cleanup. remove warnings Apr 17, 2014
.gitignore ignores Aug 31, 2012
License.txt initial add Jan 25, 2010 * pegkit tutorial link Mar 27, 2014

Deprecation Notice

I've forked ParseKit into a new faster/cleaner/smaller library called PEGKit.

ParseKit should be considered deprecated, and PEGKit should be used for all new development.

ParseKit was originally a very dynamic library with poor performance. Over time, I added static source code generation features (inspired by ANTLR) with much better performance.

My new PEKit library eschews all of the dynamic aspects of the original ParseKit library and retains only the new, fast, static code-generation aspects.

PEGKit's grammar syntax is very similar to ParseKit. The differences in PEGKit's grammar syntax are:

  1. There is no longer an explicit (redundant) @start rule. The first rule defined in your grammar is implicitly recognized as your start rule. This simplifies your grammar slightly.
  2. Tokenizer Directives are removed. Instead, use a @before block on your start rule to configure your tokenizer behavior with Objective-C code. An example.

The highly dynamic nature of the original ParseKit library may still be usefull in some rare circumstances, but you almost certainly want to use PEGKit for all new development. See this PEGKit tutorial.


ParseKit is a Mac OS X Framework written by Todd Ditchendorf in Objective-C and released under the Apache 2 Open Source License. ParseKit is suitable for use on iOS or Mac OS X. ParseKit is an Objective-C is heavily influced by ANTLR by Terence Parr and "Building Parsers with Java" by Steven John Metsker. Also, ParseKit depends on MGTemplateEngine by Matt Gemmell for its templating features.

The ParseKit Framework offers 3 basic services of general interest to Cocoa developers:

  1. String Tokenization via the Objective-C PKTokenizer and PKToken classes.
  2. High-Level Language Parsing via Objective-C - An Objective-C parser-building API (the PKParser class and sublcasses).
  3. Objective-C Parser Generation via Grammars - Generate an Objective-C source code for parser for your custom language using a BNF-style grammar syntax (similar to yacc or ANTLR). While parsing, the parser will provide callbacks to your Objective-C code.

More about ParseKit can be found on

Something went wrong with that request. Please try again.