2014-06-04 19:55:04 +03:00
|
|
|
module Parser
|
|
|
|
module Expression
|
|
|
|
include Parslet
|
2015-09-15 18:57:31 +03:00
|
|
|
|
2015-09-20 14:25:06 +03:00
|
|
|
rule(:expression) { (simple_return | while_do | small_conditional | conditional |
|
2015-09-27 12:05:35 +03:00
|
|
|
operator_expression | call_site | class_field | field |
|
|
|
|
hash_constant | array_constant) }
|
2014-06-04 19:55:04 +03:00
|
|
|
|
|
|
|
def delimited_expressions( delimit )
|
|
|
|
( (delimit.absent? >> expression).repeat(1)).as(:expressions) >> delimit
|
|
|
|
end
|
|
|
|
|
|
|
|
rule(:expressions_do) { delimited_expressions(keyword_do) }
|
|
|
|
rule(:expressions_else) { delimited_expressions(keyword_else) }
|
|
|
|
rule(:expressions_end) { delimited_expressions(keyword_end) }
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|