Class: Libis::Tools::Metadata::BasicParser

Inherits:
Parslet::Parser
  • Object
show all
Defined in:
lib/libis/tools/metadata/parser/basic_parser.rb

Overview

noinspection RubyResolve

Instance Method Summary collapse

Instance Method Details

#any_quoted(key = :text) ⇒ Object



100
101
102
103
104
105
106
# File 'lib/libis/tools/metadata/parser/basic_parser.rb', line 100

def any_quoted(key = :text)
  scope {
    quote.capture(:quote) >>
        dynamic { |_, c| (str(c.captures[:quote]).absent? >> any).repeat(1) }.maybe.as(key) >>
        dynamic { |_, c| str(c.captures[:quote]) }
  }
end

#complement(char) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/libis/tools/metadata/parser/basic_parser.rb', line 71

def complement(char)
  case char
    when '('
      ')'
    when '{'
      '}'
    when '['
      ']'
    else
      char
  end
end

#grouped(foo, left_paren = lparen) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/libis/tools/metadata/parser/basic_parser.rb', line 84

def grouped(foo, left_paren = lparen)
  scope {
    left_paren.capture(:paren).as(:lparen) >>
        foo >>
        dynamic { |_, c| str(complement(c.captures[:paren])) }.as(:rparen)
  }
end

#grouped_anonymous(foo, left_paren = lparen) ⇒ Object



92
93
94
95
96
97
98
# File 'lib/libis/tools/metadata/parser/basic_parser.rb', line 92

def grouped_anonymous(foo, left_paren = lparen)
  scope {
    left_paren.capture(:paren) >>
        foo >>
        dynamic { |_, c| str(complement(c.captures[:paren])) }
  }
end

#transformerObject



108
109
110
# File 'lib/libis/tools/metadata/parser/basic_parser.rb', line 108

def transformer
  self.class::Transformer.new rescue nil
end