soml-parser/lib/parser/function_definition.rb

17 lines
499 B
Ruby
Raw Normal View History

2014-06-04 19:55:04 +03:00
module Parser
module FunctionDefinition
include Parslet
2015-09-15 18:57:31 +03:00
2014-06-04 19:55:04 +03:00
rule(:function_definition) {
type >> ((class_name|name).as(:receiver) >> str(".")).maybe >> #possibly qualified
2015-09-18 00:02:52 +03:00
name.as(:function_name) >> left_parenthesis >>
parameter_list.maybe >> right_parenthesis >> expressions_end >> space?
2014-06-04 19:55:04 +03:00
}
2014-06-19 18:33:08 +02:00
rule(:parameter_list) {
2015-09-18 00:02:52 +03:00
((field.as(:parameter) >> (comma >> field.as(:parameter)).repeat(0)).repeat(0,1)).as(:parameter_list)
2014-06-04 19:55:04 +03:00
}
end
end