46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/code/parser/if.rb', line 46
def root
(
(if_keyword | unless_keyword).aka(:first_operator) << whitespace <<
statement.aka(:first_statement) << code.aka(:first_body) <<
(
(
elsif_keyword.aka(:operator) << whitespace <<
statement.aka(:statement) << code.aka(:body)
) |
(
else_keyword << whitespace <<
(if_keyword | unless_keyword).aka(:operator) <<
whitespace << statement.aka(:statement) << code.aka(:body)
) | (else_keyword.aka(:operator) << code.aka(:body))
).repeat(1).aka(:elses).maybe << end_keyword.maybe
).aka(:if) | statement
end
|