add return and argument types

This commit is contained in:
Torsten Ruger
2015-09-18 00:02:52 +03:00
parent 4d195a5f44
commit 396a843a5e
15 changed files with 163 additions and 171 deletions

View File

@ -3,14 +3,13 @@ module Parser
include Parslet
rule(:function_definition) {
keyword_def >> ((module_name|name).as(:receiver) >> str(".")).maybe >> #possibly qualified
name.as(:function_name) >> parameter_list.maybe >> space >> expressions_end >> space?
type >> ((module_name|name).as(:receiver) >> str(".")).maybe >> #possibly qualified
name.as(:function_name) >> left_parenthesis >>
parameter_list.maybe >> right_parenthesis >> expressions_end >> space?
}
rule(:parameter_list) {
left_parenthesis >>
((name.as(:parameter) >> (comma >> name.as(:parameter)).repeat(0)).repeat(0,1)).as(:parameter_list) >>
right_parenthesis
((field.as(:parameter) >> (comma >> field.as(:parameter)).repeat(0)).repeat(0,1)).as(:parameter_list)
}
end