{"id":18271914,"url":"https://github.com/itod/parsekit","last_synced_at":"2025-04-05T02:30:52.479Z","repository":{"id":791433,"uuid":"488764","full_name":"itod/parsekit","owner":"itod","description":"Objective-C Tokenizer and Parser Generator. Supports Grammars.","archived":false,"fork":false,"pushed_at":"2017-04-17T00:24:40.000Z","size":4434,"stargazers_count":520,"open_issues_count":16,"forks_count":48,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-03-17T11:51:25.639Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-01-26T04:37:33.000Z","updated_at":"2025-01-24T08:00:40.000Z","dependencies_parsed_at":"2022-07-05T15:01:15.782Z","dependency_job_id":null,"html_url":"https://github.com/itod/parsekit","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itod%2Fparsekit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itod%2Fparsekit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itod%2Fparsekit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itod%2Fparsekit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itod","download_url":"https://codeload.github.com/itod/parsekit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247279300,"owners_count":20912857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T11:39:35.639Z","updated_at":"2025-04-05T02:30:47.896Z","avatar_url":"https://github.com/itod.png","language":"Objective-C","readme":"## Deprecation Notice\n\nI've forked ParseKit into a new faster/cleaner/smaller library called [PEGKit](https://github.com/itod/pegkit).\n\n**ParseKit should be considered deprecated, and PEGKit should be used for all new development.**\n\nParseKit was originally a very **dynamic** library with poor performance. Over time, I added **static** source code generation features (inspired by [ANTLR](http://www.antlr.org/)) with much better performance.\n\nMy new PEKit library eschews all of the dynamic aspects of the original ParseKit library and retains only the new, fast, static code-generation aspects. \n\n**PEGKit's grammar syntax is very similar to ParseKit.** The differences in PEGKit's grammar syntax are:\n\n1. 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.\n1. **Tokenizer Directives** are removed. Instead, use a `@before` block on your *start* rule to configure your tokenizer behavior with Objective-C code. [An example](https://github.com/itod/pegkit/blob/master/res/crockford.grammar).\n\nThe highly dynamic nature of the original ParseKit library may still be usefull in some rare circumstances, but you almost certainly want to [use PEGKit](https://github.com/itod/pegkit) for all new development. [See this PEGKit tutorial](http://itod.github.io/PEGKitMiniMathTutorial/).\n\n## ParseKit\n\nParseKit 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](http://www.antlr.org/) by Terence Parr and [\"Building Parsers with Java\"](http://www.amazon.com/Building-Parsers-Java-Steven-Metsker/dp/0201719622) by Steven John Metsker. Also, ParseKit depends on [MGTemplateEngine](http://mattgemmell.com/2008/05/20/mgtemplateengine-templates-with-cocoa) by Matt Gemmell for its templating features.\n\nThe ParseKit Framework offers 3 basic services of general interest to Cocoa developers:\n\n1.  **String Tokenization** via the Objective-C PKTokenizer and PKToken classes.\n2.  **High-Level Language Parsing via Objective-C** - An Objective-C parser-building API (the PKParser class and sublcasses).\n3.  **[Objective-C Parser Generation via Grammars](http://itod.github.io/ParseKitMiniMathExample/)** - 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.\n","funding_links":[],"categories":["etc"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitod%2Fparsekit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitod%2Fparsekit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitod%2Fparsekit/lists"}