Handler definitions and calls
| Handler | Syntax |
| Subroutine definition (labeled parameters) | ( on | to ) subroutineName � [ of | in directParameterVariable ] � [ subroutineParamLabel paramVariable ] ... � [ given label:paramVariable [, label:paramVariable ]...] [ global variable [, variable ]...] [ local variable [, variable ]...] [ statement ]... end [ subroutineName ] |
| Subroutine call (labeled parameters) | subroutineName � [ ( of | in ) directParameter ] � [ subroutineParamLabel parameterValue ] � | [ with labelForTrueParam [, labelForTrueParam ]... � [( and | or | , ) labelForTrueParam ] ] � | [ without labelForFalseParam [, labelForFalseParam ]... � [( and | or | , ) labelForFalseParam ] ] � | [ given label:parameterValue � [, label:parameterValue ]...] ] ... |
| Subroutine definition (positional parameters) | ( on | to ) subroutineName ( [ paramVariable [, paramVariable ]...] ) [ global variable [, variable ]...] [ local variable [, variable ]...] [ statement ]... end [ subroutineName ] |
| Subroutine call (positional parameters) | subroutineName ( [ parameterValue [, parameterValue ]...] ) |
| Return statement | return expression |
| Command handler definition | ( on | to ) commandName � [ [ of ] directParameterVariable ] � [ [ given ] label:paramVariable [, label:paramVariable ]...] [ global variable [, variable ]...] [ local variable [, variable ]...] [ statement ]... end [ commandName ] |