Class: Parsr

Inherits:
Object
  • Object
show all
Defined in:
lib/parsr.rb,
lib/parsr/version.rb

Defined Under Namespace

Modules: Rules Classes: SyntaxError, Token

Constant Summary collapse

BASE_PATH =
File.expand_path(File.join(File.dirname(__FILE__), 'parsr'))
Error =
Class.new(Exception)
IllegalValue =
Class.new(Error)
VERSION =
'0.0.4'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*rules) ⇒ Parsr

Returns a new instance of Parsr.



51
52
53
# File 'lib/parsr.rb', line 51

def initialize(*rules)
  @rules = [rules].flatten
end

Instance Attribute Details

#rulesObject

Returns the value of attribute rules.



49
50
51
# File 'lib/parsr.rb', line 49

def rules
  @rules
end

Class Method Details

.literal_eval(string) ⇒ Object



42
43
44
45
# File 'lib/parsr.rb', line 42

def literal_eval(string)
  @literal_parser ||= self.new(*Parsr::Rules::All)
  @literal_parser.parse(string)
end

Instance Method Details

#parse(string) ⇒ Object

Raises:



55
56
57
58
59
60
# File 'lib/parsr.rb', line 55

def parse(string)
  scanner = StringScanner.new(string)
  token = parse_value(scanner)
  raise IllegalValue unless token.is_a?(Parsr::Token)
  token.value
end