Class: Code::Parser::List

Inherits:
Language show all
Defined in:
lib/code/parser/list.rb

Instance Method Summary collapse

Methods inherited from Language

<<, >>, absent, aka, #any, ignore, #inspect, maybe, parse, #parse, repeat, #str, then, #to_s, |

Instance Method Details

#closing_square_bracketObject



20
21
22
# File 'lib/code/parser/list.rb', line 20

def closing_square_bracket
  str("]")
end

#codeObject



4
5
6
# File 'lib/code/parser/list.rb', line 4

def code
  ::Code::Parser::Code.new.present
end

#commaObject



24
25
26
# File 'lib/code/parser/list.rb', line 24

def comma
  str(",")
end

#elementObject



28
29
30
# File 'lib/code/parser/list.rb', line 28

def element
  code
end

#opening_square_bracketObject



16
17
18
# File 'lib/code/parser/list.rb', line 16

def opening_square_bracket
  str("[")
end

#rootObject



32
33
34
35
36
37
38
39
# File 'lib/code/parser/list.rb', line 32

def root
  (
    opening_square_bracket.ignore << whitespace? <<
      element.repeat(0, 1) <<
      (whitespace? << comma << whitespace? << element).repeat <<
      (whitespace? << closing_square_bracket.ignore).maybe
  ).aka(:list) | ::Code::Parser::String
end

#whitespaceObject



8
9
10
# File 'lib/code/parser/list.rb', line 8

def whitespace
  ::Code::Parser::Whitespace
end

#whitespace?Boolean

Returns:



12
13
14
# File 'lib/code/parser/list.rb', line 12

def whitespace?
  whitespace.maybe
end