Class: Code::Parser::List
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_bracket ⇒ Object
20
21
22
|
# File 'lib/code/parser/list.rb', line 20
def closing_square_bracket
str("]")
end
|
4
5
6
|
# File 'lib/code/parser/list.rb', line 4
def code
::Code::Parser::Code.new.present
end
|
24
25
26
|
# File 'lib/code/parser/list.rb', line 24
def comma
str(",")
end
|
28
29
30
|
# File 'lib/code/parser/list.rb', line 28
def element
code
end
|
#opening_square_bracket ⇒ Object
16
17
18
|
# File 'lib/code/parser/list.rb', line 16
def opening_square_bracket
str("[")
end
|
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
|
#whitespace ⇒ Object
8
9
10
|
# File 'lib/code/parser/list.rb', line 8
def whitespace
::Code::Parser::Whitespace
end
|
#whitespace? ⇒ Boolean
12
13
14
|
# File 'lib/code/parser/list.rb', line 12
def whitespace?
whitespace.maybe
end
|