Class: Code::Parser::SquareBracket

Inherits:
Language
  • Object
show all
Defined in:
lib/code/parser/square_bracket.rb

Instance Method Summary collapse

Instance Method Details

#left_square_bracketObject



22
23
24
# File 'lib/code/parser/square_bracket.rb', line 22

def left_square_bracket
  str("[")
end

#right_square_bracketObject



26
27
28
# File 'lib/code/parser/square_bracket.rb', line 26

def right_square_bracket
  str("]")
end

#rootObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/code/parser/square_bracket.rb', line 30

def root
  (
    statement.aka(:left) << (
      left_square_bracket << whitespace? << square_bracket <<
        (whitespace? << right_square_bracket).maybe
    ).repeat(1).aka(:statements).maybe
  )
    .aka(:square_bracket)
    .then do |output|
      if output[:square_bracket][:statements]
        output
      else
        output[:square_bracket][:left]
      end
    end
end

#square_bracketObject



10
11
12
# File 'lib/code/parser/square_bracket.rb', line 10

def square_bracket
  SquareBracket
end

#statementObject



6
7
8
# File 'lib/code/parser/square_bracket.rb', line 6

def statement
  UnaryMinus
end

#whitespaceObject



14
15
16
# File 'lib/code/parser/square_bracket.rb', line 14

def whitespace
  Whitespace
end

#whitespace?Boolean

Returns:



18
19
20
# File 'lib/code/parser/square_bracket.rb', line 18

def whitespace?
  whitespace.maybe
end