Module | Parslet::Atoms::DSL |
In: |
lib/parslet/atoms/dsl.rb
|
A mixin module that defines operations that can be called on any subclass of Parslet::Atoms::Base. These operations make parslets atoms chainable and allow combination of parslet atoms to form bigger parsers.
Example:
str('foo') >> str('bar') str('f').repeat any.absent? # also called The Epsilon
Tests for absence of a parslet atom in the input stream without consuming it.
Example:
# Only proceed the parse if 'a' is absent. str('a').absent?
Marks a parslet atom as important for the tree output. This must be used to achieve meaningful output from the parse method.
Example:
str('a').as(:b) # will produce {:b => 'a'}
Tests for presence of a parslet atom in the input stream without consuming it.
Example:
# Only proceed the parse if 'a' is present. str('a').present?
Construct a new atom that repeats the current atom min times at least and at most max times. max can be nil to indicate that no maximum is present.
Example:
# match any number of 'a's str('a').repeat # match between 1 and 3 'a's str('a').repeat(1,3)