https://github.com/kschiess/parslet
A small PEG based parser library. See the Hacking page in the Wiki as well.
https://github.com/kschiess/parslet
Keywords from Contributors
activerecord activejob mvc rubygem rspec rubocop sidekiq ruby-gem yardoc yard
Last synced: about 3 hours ago
JSON representation
Repository metadata
A small PEG based parser library. See the Hacking page in the Wiki as well.
- Host: GitHub
- URL: https://github.com/kschiess/parslet
- Owner: kschiess
- License: mit
- Created: 2010-03-15T08:14:24.000Z (almost 16 years ago)
- Default Branch: master
- Last Pushed: 2023-10-05T10:10:59.000Z (about 2 years ago)
- Last Synced: 2025-11-27T18:13:09.493Z (27 days ago)
- Language: Ruby
- Homepage: kschiess.github.com/parslet
- Size: 2.47 MB
- Stars: 833
- Watchers: 15
- Forks: 99
- Open Issues: 22
- Releases: 0
-
Metadata Files:
- Readme: README
- Changelog: HISTORY.txt
- License: LICENSE
README
INTRODUCTION
Parslet makes developing complex parsers easy. It does so by
* providing the best error reporting possible
* not generating reams of code for you to debug
Parslet takes the long way around to make your job easier. It allows for
incremental language construction. Often, you start out small, implementing
the atoms of your language first; _parslet_ takes pride in making this
possible.
Eager to try this out? Please see the associated web site:
https://kschiess.github.io/parslet/
SYNOPSIS
require 'parslet'
include Parslet
# parslet parses strings
str('foo').
parse('foo') # => "foo"@0
# it matches character sets
match['abc'].parse('a') # => "a"@0
match['abc'].parse('b') # => "b"@0
match['abc'].parse('c') # => "c"@0
# and it annotates its output
str('foo').as(:important_bit).
parse('foo') # => {:important_bit=>"foo"@0}
# you can construct parsers with just a few lines
quote = str('"')
simple_string = quote >> (quote.absent? >> any).repeat >> quote
simple_string.
parse('"Simple Simple Simple"') # => "\"Simple Simple Simple\""@0
# or by making a fuss about it
class Smalltalk < Parslet::Parser
root :smalltalk
rule(:smalltalk) { statements }
rule(:statements) {
# insert smalltalk parser here (outside of the scope of this readme)
}
end
# and then
Smalltalk.new.parse('smalltalk')
FEATURES
* Tools for every part of the parser chain
* Transformers generate Abstract Syntax Trees
* Accelerators transform parsers, making them quite a bit faster
* Pluggable error reporters
* Graphviz export for your parser
* Rspec testing support rig
* Simply Ruby, composable and hackable
COMPATIBILITY
This library is intended to work with Ruby variants >= 1.9. I've tested it on
MRI 1.9, rbx-head, jruby. Please report as a bug if you encounter issues.
STATUS
Production worthy.
(c) 2010-today Kaspar Schiess
Owner metadata
- Name: Kaspar Schiess
- Login: kschiess
- Email:
- Kind: user
- Description: code, i write code
- Website: absurd.li
- Location: Bern, Switzerland
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/2991?v=4
- Repositories: 26
- Last ynced at: 2023-04-10T05:10:58.158Z
- Profile URL: https://github.com/kschiess
GitHub Events
Total
- Issues event: 3
- Watch event: 20
- Issue comment event: 5
- Pull request event: 7
- Fork event: 1
Last Year
- Issues event: 3
- Watch event: 15
- Issue comment event: 5
- Pull request event: 7
- Fork event: 1
Committers metadata
Last synced: 1 day ago
Total Commits: 761
Total Committers: 41
Avg Commits per committer: 18.561
Development Distribution Score (DDS): 0.143
Commits in past year: 0
Committers in past year: 0
Avg Commits per committer in past year: 0.0
Development Distribution Score (DDS) in past year: 0.0
| Name | Commits | |
|---|---|---|
| Kaspar Schiess | k****s@a****i | 652 |
| Florian Hanke | f****e@g****m | 17 |
| Kaspar Schiess | k****r@p****m | 12 |
| Kaspar Schiess | k****s@t****h | 9 |
| Kaspar Schiess | k****r@a****i | 7 |
| Chris Wendt | c****t@g****m | 6 |
| Josep M. Bach | j****h@g****m | 5 |
| Rory O’Kane | r****y@r****m | 4 |
| Thomas Ingram | c****e@r****m | 4 |
| Raphael Simon | r****l@r****m | 3 |
| Kevin Olbrich | k****h@m****m | 3 |
| Mark Delk | j****l@g****m | 3 |
| Postmodern | p****3@g****m | 3 |
| meh | m****h@p****g | 3 |
| Torsten Ruger | t****n@v****i | 2 |
| Adam Prescott | a****m@a****m | 2 |
| Max Jacobson | m****x@h****t | 2 |
| 0x01f7 | s****7@g****m | 1 |
| Andrew Hartford | a****d@d****m | 1 |
| Jordan Ryan Reuter | j****r@s****m | 1 |
| wusuopu | a****n@l****n | 1 |
| takahashim | m****i@r****g | 1 |
| sandstrom | m****b@a****e | 1 |
| aoitaku | a****u@g****m | 1 |
| Zach Moazeni | z****i@g****m | 1 |
| Tadashi Saito | t****r@g****m | 1 |
| Sebastian Skałacki | s****e@g****m | 1 |
| Roger Braun | r****r@r****t | 1 |
| Nikita Shilnikov | ns@l****u | 1 |
| Matt Larraz | m****z | 1 |
| and 11 more... | ||
Committer domains:
- absurd.li: 2
- pryv.com: 1
- technologyastronauts.ch: 1
- roryokane.com: 1
- ravinggenius.com: 1
- rightscale.com: 1
- mckesson.com: 1
- paranoici.org: 1
- villataika.fi: 1
- aprescott.com: 1
- hardscrabble.net: 1
- doxo.com: 1
- scimedsolutions.com: 1
- longchangjin.cn: 1
- rubycolor.org: 1
- a16m.se: 1
- rogerbraun.net: 1
- latera.ru: 1
- brachium-system.net: 1
- salsify.com: 1
- kernowsoul.com: 1
- nyh.se: 1
- hiptest.net: 1
- sprybts.com: 1
Issue and Pull Request metadata
Last synced: 13 days ago
Total issues: 61
Total pull requests: 53
Average time to close issues: 6 months
Average time to close pull requests: 6 months
Total issue authors: 52
Total pull request authors: 36
Average comments per issue: 2.67
Average comments per pull request: 2.15
Merged pull request: 23
Bot issues: 0
Bot pull requests: 2
Past year issues: 3
Past year pull requests: 7
Past year average time to close issues: N/A
Past year average time to close pull requests: 1 minute
Past year issue authors: 3
Past year pull request authors: 2
Past year average comments per issue: 0.0
Past year average comments per pull request: 0.71
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- ravinggenius (4)
- olbrich (3)
- kernow (2)
- postmodern (2)
- dorianmariefr (2)
- igravious (2)
- hagabaka (1)
- bastelfreak (1)
- dmolesUC (1)
- xavriley (1)
- takashiyamazaki (1)
- niuage (1)
- nak1114 (1)
- HoneyryderChuck (1)
- pinkynrg (1)
Top Pull Request Authors
- ronaldtse (5)
- chrismwendt (3)
- taichi-ishitani (3)
- maxjacobson (3)
- olbrich (2)
- ravinggenius (2)
- sheldon-b (2)
- dependabot[bot] (2)
- johnnaegle (2)
- mlarraz (2)
- alex-sc (2)
- andrewpkent (1)
- tallakt (1)
- look (1)
- rathrio (1)
Top Issue Labels
- discussion (13)
- feature requests (7)
- delayed (2)
- supportrequestsshouldnotbeissues (2)
- howto (2)
- worksasdesigned (2)
Top Pull Request Labels
- discussion (2)
- delayed (2)
- dependencies (2)
- ready_for_merge (1)
- no tests (1)
- feature requests (1)
Package metadata
- Total packages: 4
-
Total downloads:
- rubygems: 150,464,302 total
- Total docker downloads: 975,581,898
- Total dependent packages: 232 (may contain duplicates)
- Total dependent repositories: 24,108 (may contain duplicates)
- Total versions: 48
- Total maintainers: 2
gem.coop: parslet
Parser construction library with great error reporting in Ruby.
- Homepage: http://kschiess.github.io/parslet
- Documentation: http://www.rubydoc.info/gems/parslet/
- Licenses: MIT
- Latest release: 2.0.0 (published almost 6 years ago)
- Last Synced: 2025-12-22T13:30:19.371Z (2 days ago)
- Versions: 22
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 75,226,398 Total
- Docker Downloads: 487,790,949
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.127%
- Downloads: 0.38%
- Maintainers (1)
rubygems.org: parslet
Parser construction library with great error reporting in Ruby.
- Homepage: http://kschiess.github.io/parslet
- Documentation: http://www.rubydoc.info/gems/parslet/
- Licenses: MIT
- Latest release: 2.0.0 (published almost 6 years ago)
- Last Synced: 2025-12-22T07:48:12.032Z (2 days ago)
- Versions: 22
- Dependent Packages: 232
- Dependent Repositories: 24,108
- Downloads: 75,221,272 Total
- Docker Downloads: 487,790,949
-
Rankings:
- Dependent packages count: 0.171%
- Dependent repos count: 0.229%
- Docker downloads count: 0.253%
- Downloads: 0.403%
- Average: 0.973%
- Stargazers count: 2.076%
- Forks count: 2.708%
- Maintainers (1)
gem.coop: ghazel-parslet
Parser construction library with great error reporting in Ruby.
- Homepage: http://kschiess.github.com/parslet
- Documentation: http://www.rubydoc.info/gems/ghazel-parslet/
- Licenses: mit
- Latest release: 1.4.0.2 (published over 13 years ago)
- Last Synced: 2025-12-22T13:30:19.532Z (2 days ago)
- Versions: 2
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 8,316 Total
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 22.558%
- Downloads: 67.675%
- Maintainers (1)
rubygems.org: ghazel-parslet
Parser construction library with great error reporting in Ruby.
- Homepage: http://kschiess.github.com/parslet
- Documentation: http://www.rubydoc.info/gems/ghazel-parslet/
- Licenses: mit
- Latest release: 1.4.0.2 (published over 13 years ago)
- Last Synced: 2025-12-22T13:30:19.528Z (2 days ago)
- Versions: 2
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 8,316 Total
-
Rankings:
- Stargazers count: 1.893%
- Forks count: 2.441%
- Dependent packages count: 15.706%
- Average: 23.972%
- Dependent repos count: 46.782%
- Downloads: 53.039%
- Maintainers (1)
Dependencies
- RedCloth >= 0
- case >= 0
- cod >= 0
- middleman >= 0
- parslet >= 0
- rb-fsevent >= 0
- rspec >= 0
- slim >= 0
- text-highlight >= 0
- RedCloth 4.3.2
- activesupport 5.0.7.2
- addressable 2.7.0
- backports 3.16.0
- case 0.5.2.1
- cod 0.6.0
- coffee-script 2.4.1
- coffee-script-source 1.12.2
- concurrent-ruby 1.1.6
- contracts 0.13.0
- diff-lcs 1.3
- dotenv 2.7.5
- erubis 2.7.0
- execjs 2.7.0
- fast_blank 1.0.0
- fastimage 2.1.7
- ffi 1.12.2
- haml 5.1.2
- hamster 3.0.0
- hashie 3.6.0
- i18n 0.9.5
- kramdown 1.17.0
- listen 3.0.8
- memoist 0.16.2
- middleman 4.3.5
- middleman-cli 4.3.5
- middleman-core 4.3.5
- minitest 5.14.0
- padrino-helpers 0.13.3.4
- padrino-support 0.13.3.4
- parallel 1.19.1
- parslet 1.8.2
- public_suffix 4.0.3
- rack 2.2.2
- rb-fsevent 0.10.3
- rb-inotify 0.10.1
- rspec 3.9.0
- rspec-core 3.9.1
- rspec-expectations 3.9.0
- rspec-mocks 3.9.1
- rspec-support 3.9.2
- sassc 2.2.1
- servolux 0.13.0
- slim 4.0.1
- temple 0.8.2
- text-highlight 1.0.2
- thor 1.0.1
- thread_safe 0.3.6
- tilt 2.0.10
- tzinfo 1.2.6
- uglifier 3.2.0
- actions/checkout v2 composite
- ruby/setup-ruby v1 composite
Score: 31.306674211135746