Sha256: 5fe88766a560558270bf4e40687e3678b04b1583519efea7ddd7f5304a076776
Contents?: true
Size: 1.51 KB
Versions: 2
Compression:
Stored size: 1.51 KB
Contents
INTRODUCTION Parslet makes developing complex parsers easy. It does so by * providing the best <b>error reporting</b> possible * <b>not generating</b> reams of code for you to debug Parslet takes the long way around to make <b>your job</b> 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: http://kschiess.github.com/parslet SYNOPSIS require 'parslet' include Parslet # Constructs a parser using a Parser Expression Grammar like DSL: parser = str('"') >> ( str('\\') >> any | str('"').absnt? >> any ).repeat.as(:string) >> str('"') # Parse the string and capture parts of the interpretation (:string above) tree = parser.parse(%Q{ "This is a \\"String\\" in which you can escape stuff" }.strip) tree # => {:string=>"This is a \\\"String\\\" in which you can escape stuff"} # Here's how you can grab results from that tree: transform = Parslet::Transform.new do rule(:string => simple(:x)) { puts "String contents (method 2): #{x}" } end transform.apply(tree) COMPATIBILITY This library should work with most rubies. I've tested it with MRI 1.8, 1.9, rbx-head, jruby. Please report as a bug if you encounter issues. STATUS At version 1.1 - Good basic functionality and lots of plans for extension. (c) 2010 Kaspar Schiess
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
parslet-1.1.1 | README |
parslet-1.1.0 | README |