Subroutine declaration

www.altova.com Print this Topic Previous Page Up One Level Next page

Home >  User Guide and Reference > Code Generator > SPL (Spy Programming Language) > Subroutines >

Subroutine declaration

Subroutines

 

Syntax example:

 

Sub SimpleSub()

 

... lines of code

EndSub

 

Sub is the keyword that denotes the procedure.
SimpleSub is the name assigned to the subroutine.
Round parenthesis can contain a parameter list.
The code block of a subroutine starts immediately after the closing parameter parenthesis.
EndSub denotes the end of the code block.

 

Note:Recursive or cascaded subroutine declaration is not permitted, i.e. a subroutine may not contain another subroutine.

 

Parameters

Parameters can also be passed by procedures using the following syntax:

 

All parameters must be variables
Variables must be prefixed by the $ character
Local variables are defined in a subroutine
Global variables are declared explicitly, outside of subroutines
Multiple parameters are separated by the comma character "," within round parentheses
Parameters can pass values

 

Parameters - passing values

Parameters can be passed in two ways, by value and by reference, using the keywords ByVal and ByRef respectively.

 

Syntax:

 

' define sub CompleteSub()

[Sub CompleteSub( $param, ByVal $paramByValue, ByRef $paramByRef )

] ...

 

ByVal specifies that the parameter is passed by value. Note that most objects can only be passed by reference.
ByRef specifies that the parameter is passed by reference. This is the default if neither ByVal nor ByRef is specified.

 

Function return values

To return a value from a subroutine, use the return statement. Such a function can be called from within an expression.

 

Example:

 

' define a function

[Sub MakeQualifiedName( ByVal $namespacePrefix, ByVal $localName )

if $namespacePrefix = ""

return $localName

else

return $namespacePrefix & ":" & $localName

endif

EndSub

]


© 2019 Altova GmbH