]> git.wincent.com - walrat.git/blob - lib/walrat/additions/symbol.rb
doc: Remove references to Gitorious
[walrat.git] / lib / walrat / additions / symbol.rb
1 # Copyright 2007-2014 Greg Hurrell. All rights reserved.
2 # Licensed under the terms of the BSD 2-clause license.
3
4 require 'walrat'
5
6 class Symbol
7   include Walrat::ParsletCombining
8
9   # Returns a SymbolParslet based on the receiver.
10   # Symbols can be used in Grammars when specifying rules and productions to
11   # refer to other rules and productions that have not been defined yet.
12   # They can also be used to allow self-references within rules and productions
13   # (recursion); for example:
14   #
15   #   rule :thing, :thing & :thing.optional & :other_thing
16   #
17   # Basically these SymbolParslets allow deferred evaluation of a rule or
18   # production (deferred until parsing takes place) rather than being evaluated
19   # at the time a rule or production is defined.
20   def to_parseable
21     Walrat::SymbolParslet.new self
22   end
23 end # class Symbol