function f(x, y):
// something
// you can call f like this
f(1, 2)
// or naming the arguments
f(x=1, y=2)
f(y=2, x=1)
f(1, y=2)
// but you can't supply a non named argument after a named one
f(x=1, 2) // wrong
Function:
'function' name=ID '(' parameters+=Parameter (',' parameters+=Parameter)* ')' ':'
statements += Statement+
'end'
;
Parameter:
name = ID
;
FunctionCall:
function=[Function] '(' (paramNames+=[Parameter] '=' )? paramValues+=INT (',' (paramNames+=[Parameter] '=' )? paramValues+=INT )* ')'
;