Subroutine declaration このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  Code Generator > SPL (Spy Programming Language) > Subroutines >

Subroutine declaration



Syntax example:


Sub SimpleSub()


... lines of code



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 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.




' 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.




' define a function

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

if $namespacePrefix = ""

return $localName


return $namespacePrefix & ":" & $localName




(C) 2019 Altova GmbH