fix function definition
This commit is contained in:
@ -5,11 +5,11 @@ module Parser
|
||||
rule(:function_definition) {
|
||||
type >> ((class_name|name).as(:receiver) >> str(".")).maybe >> #possibly qualified
|
||||
name.as(:function_name) >> left_parenthesis >>
|
||||
parameter_list.maybe >> right_parenthesis >> expressions_end >> space?
|
||||
parameter_list.maybe >> right_parenthesis >> statements_end >> space?
|
||||
}
|
||||
|
||||
rule(:parameter_list) {
|
||||
((field.as(:parameter) >> (comma >> field.as(:parameter)).repeat(0)).repeat(0,1)).as(:parameter_list)
|
||||
((field_def.as(:parameter) >> (comma >> field_def.as(:parameter)).repeat(0)).repeat(0,1)).as(:parameter_list)
|
||||
}
|
||||
|
||||
end
|
||||
|
@ -4,25 +4,20 @@ module Parser
|
||||
|
||||
rule(:keyword_begin) { str('begin').as(:begin) >> space?}
|
||||
rule(:keyword_class) { str('class') >> space? }
|
||||
rule(:keyword_do) { str('do').as(:do) >> space?}
|
||||
rule(:keyword_else) { str('else').as(:else) >> space? }
|
||||
rule(:keyword_end) { str('end').as(:end) >> space? }
|
||||
rule(:keyword_false) { str('false').as(:false) }
|
||||
rule(:keyword_field) { str('field').as(:field) >> space? }
|
||||
rule(:keyword_if) { str('if').as(:if) }
|
||||
rule(:keyword_rescue) { str('rescue').as(:rescue) >> space?}
|
||||
rule(:keyword_if) { str('if').as(:if_statement) }
|
||||
rule(:keyword_return) { str('return').as(:return) >> space?}
|
||||
rule(:keyword_true) { str('true').as(:true) }
|
||||
rule(:keyword_module) { str('module') >> space? }
|
||||
rule(:keyword_nil) { str('nil').as(:nil) }
|
||||
rule(:keyword_unless) { str('unless').as(:unless) >> space?}
|
||||
rule(:keyword_until) { str('until').as(:until) >> space?}
|
||||
rule(:keyword_while) { str('while').as(:while) }
|
||||
|
||||
# this rule is just to make sure identifiers can't be keywords. Kind of duplication here, but we need the
|
||||
# space in above rules, so just make sure to add any here too.
|
||||
rule(:keyword){ str('begin') | str('def') | str('do') | str('else') | str('end') |
|
||||
str('false')| str('if')| str('rescue')| str('true')| str('nil') |
|
||||
str('unless')| str('until')| str('while') | str('field')}
|
||||
rule(:keyword){ str('if') | str('else') | str('end') | str('while') |
|
||||
str('false') | str('true')| str('nil') | str("class") |
|
||||
str('return')| str('int')| str('field')}
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user