# Name_of_field syntax resultType spatialresult nrArg
# followed by  arguments:
# no operation
nop SYNTAX_NONE VS_UNKNOWN ST_DERIVED 0 EXEC_NONE CG_PLAIN 
# illegal operation, used in EXEC_CONV, makecode section
ill SYNTAX_NONE VS_UNKNOWN ST_DERIVED 0 EXEC_NONE CG_PLAIN
# if/mif looks like function but it is
# a grammar construction, do not insert in symbol table
if  SYNTAX_FUNC VS_FIELD ST_DERIVED 3 EXEC_POLY CG_PLAIN IF_ELSE 
 VS_B ST_DERIVED
 VS_FIELD ST_DERIVED
 VS_FIELD ST_DERIVED
# special rule, all arguments equal type 
# but result is always boolean
ne SYNTAX_OP VS_B ST_DERIVED 2 EXEC_POLY CG_COMM 
 VS_FIELD ST_DERIVED
 VS_FIELD ST_DERIVED
eq SYNTAX_OP VS_B ST_DERIVED 2 EXEC_POLY CG_COMM 
 VS_FIELD ST_DERIVED
 VS_FIELD ST_DERIVED
gt SYNTAX_OP VS_B ST_DERIVED 2 EXEC_POLY CG_PLAIN 
 VS_OS ST_DERIVED
 VS_OS ST_DERIVED
ge SYNTAX_OP VS_B ST_DERIVED 2 EXEC_POLY CG_PLAIN 
 VS_OS ST_DERIVED
 VS_OS ST_DERIVED
lt SYNTAX_OP VS_B ST_DERIVED 2 EXEC_POLY CG_PLAIN 
 VS_OS ST_DERIVED
 VS_OS ST_DERIVED
le SYNTAX_OP VS_B ST_DERIVED 2 EXEC_POLY CG_PLAIN 
 VS_OS ST_DERIVED
 VS_OS ST_DERIVED
# derived rule, all arguments equal type and result is that type
# syntax of min,max,cover:
min SYNTAX_FUNC VS_OS ST_DERIVED -2 EXEC_POLY CG_VARARG 
 VS_OS ST_DERIVED
 VS_OS ST_DERIVED
max SYNTAX_FUNC VS_OS ST_DERIVED -2 EXEC_POLY CG_VARARG 
 VS_OS ST_DERIVED
 VS_OS ST_DERIVED
cover SYNTAX_FUNC VS_FIELD ST_DERIVED -2 EXEC_POLY CG_VARARG
 VS_FIELD ST_DERIVED
 VS_FIELD ST_DERIVED
timeinput SYNTAX_FUNC VS_FIELD ST_SPATIAL 1 EXEC_MISC  CG_PLAIN
 VS_FIELD ST_SPATIAL
timeinputsparse SYNTAX_FUNC VS_FIELD ST_SPATIAL 1 EXEC_MISC  CG_PLAIN
 VS_FIELD ST_SPATIAL
# simple rules, fixed types
# insert special operand, OP_SIMPLE_RULE, so we can discern between the 
# operand above and beneath this line:
# THERE CAN BE NO OPERATORS WITH WITH MORE THAN RESULT 1 VS TYPE BELOW THIS LINE
1ruletype  SYNTAX_NONE VS_UNKNOWN ST_DERIVED 0 EXEC_NONE CG_PLAIN SIMPLE_RULE
# both normal and uniform can have spatial or non-spatial par
# but always return a spatial
normal SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_DIFF_UN  CG_PLAIN
 VS_B  ST_DERIVED
uniform SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_DIFF_UN CG_PLAIN
 VS_B  ST_DERIVED
# if without an else clause is a spatial mask
# normal use assumes one of the argument to be spatial
# hence the result is spatial
if  SYNTAX_FUNC VS_FIELD ST_SPATIAL 2 EXEC_POLY CG_PLAIN IF
 VS_B ST_DERIVED
 VS_FIELD ST_DERIVED
spatial SYNTAX_FUNC VS_FIELD ST_SPATIAL 1 EXEC_POLY CG_PLAIN
 VS_FIELD ST_DERIVED
spreadzone  SYNTAX_FUNC VS_BNO ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_BNO ST_SPATIAL  # points
 VS_S ST_DERIVED    # initial costs
 VS_S ST_DERIVED    # friction
spreadmaxzone  SYNTAX_FUNC VS_BNO ST_SPATIAL 4 EXEC_DOUBLE CG_PLAIN|0
 VS_BNO ST_SPATIAL  # points
 VS_S ST_DERIVED    # initial costs
 VS_S ST_DERIVED    # friction
 VS_S ST_DERIVED    # max
dynamicwaveq  SYNTAX_FUNC VS_S ST_SPATIAL 16 EXEC_DOUBLE CG_PLAIN|0
  VS_L ST_SPATIAL # ldd                    1
  VS_S ST_DERIVED # inQ                    2
  VS_S ST_DERIVED # inH                    3
  VS_S ST_DERIVED # bottomHeight           4
  VS_S ST_DERIVED # roughness              5
  VS_S ST_DERIVED # channelLength          6
  VS_S ST_DERIVED # channelBottomWidth     7
  VS_S ST_DERIVED # channelDepth           8
  VS_S ST_DERIVED # channelForm            9
  VS_S ST_DERIVED # floodplainWidth       10
  VS_S ST_NONSPATIAL # timeStepInSeconds     11
  VS_S ST_NONSPATIAL # nrTimeSlices          12
  VS_B ST_DERIVED # structures            13
  VS_S ST_DERIVED # structureA            14
  VS_S ST_DERIVED # structureB            15
  VS_S ST_DERIVED # structureCrestLevel   16
spreadlddzone  SYNTAX_FUNC VS_BNO ST_SPATIAL 4 EXEC_DOUBLE CG_PLAIN|0
 VS_L   ST_SPATIAL  # ldd
 VS_BNO ST_SPATIAL  # points
 VS_S ST_DERIVED    # initialCosts
 VS_S ST_DERIVED    # friction
order SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_OS ST_SPATIAL
windowminimum  SYNTAX_FUNC VS_OS ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_OS ST_SPATIAL # 
  VS_S ST_DERIVED  # windowSize
brenner  SYNTAX_FUNC VS_B ST_SPATIAL 6 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL # nrBirds
  VS_S ST_DERIVED # cost
  VS_S ST_DERIVED # friction
  VS_S ST_DERIVED # maxCost
  VS_S ST_DERIVED # dispRange
  VS_S ST_DERIVED # habQual
windowmaximum  SYNTAX_FUNC VS_OS ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_OS ST_SPATIAL # 
  VS_S ST_DERIVED  # windowSize
areamaximum  SYNTAX_FUNC VS_OS ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_OS ST_SPATIAL  # 
  VS_BNO ST_SPATIAL # classes
areaminimum  SYNTAX_FUNC VS_OS ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_OS ST_SPATIAL # 
  VS_BNO ST_SPATIAL    # classes
windowdiversity  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_BNO ST_SPATIAL # 
  VS_S ST_DERIVED # windowSize
areadiversity  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_BNO ST_SPATIAL # 
  VS_BNO ST_SPATIAL # classes
areamajority  SYNTAX_FUNC VS_BNO ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_BNO ST_SPATIAL #
  VS_BNO ST_SPATIAL # classes
windowmajority  SYNTAX_FUNC VS_BNO ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_BNO ST_SPATIAL # 
  VS_S ST_DERIVED # windowSize
kinematic SYNTAX_FUNC VS_S ST_SPATIAL 7 EXEC_GLOBAL CG_PLAIN
  VS_L ST_SPATIAL # ldd
  VS_S ST_DERIVED # Qold
  VS_S ST_DERIVED # q
  VS_S ST_DERIVED # alpha
  VS_S ST_DERIVED # beta
  VS_S ST_DERIVED # deltaT
  VS_S ST_DERIVED # deltaX
# become special rules concerning combination of scalar and vector
# if vector is implemented
* SYNTAX_OP VS_S ST_DERIVED 2 EXEC_SAME_BIN CG_COMM mul
 VS_S ST_DERIVED
 VS_S  ST_DERIVED
*= SYNTAX_OP VS_S ST_DERIVED 2 EXEC_ASS CG_PLAIN assmul
 VS_S ST_DERIVED
 VS_S  ST_DERIVED
/ SYNTAX_OP VS_S ST_DERIVED 2 EXEC_SAME_BIN CG_PLAIN fdiv
 VS_S ST_DERIVED
 VS_S  ST_DERIVED
/= SYNTAX_OP VS_S ST_DERIVED 2 EXEC_ASS CG_PLAIN assfdiv
 VS_S ST_DERIVED
 VS_S  ST_DERIVED
** SYNTAX_OP VS_S ST_DERIVED 2 EXEC_SAME_BIN CG_PLAIN pow
 VS_S ST_DERIVED
 VS_S ST_DERIVED
**= SYNTAX_OP VS_S ST_DERIVED 2 EXEC_ASS CG_PLAIN asspow
 VS_S ST_DERIVED
 VS_S ST_DERIVED
mod SYNTAX_OP VS_S ST_DERIVED 2 EXEC_SAME_BIN CG_PLAIN 
 VS_S ST_DERIVED
 VS_S  ST_DERIVED
idiv SYNTAX_OP VS_S ST_DERIVED 2 EXEC_SAME_BIN CG_PLAIN 
 VS_S ST_DERIVED
 VS_S  ST_DERIVED
+ SYNTAX_OP VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN uadd
 VS_S ST_DERIVED
- SYNTAX_OP VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN umin
 VS_S ST_DERIVED
+ SYNTAX_OP VS_S ST_DERIVED 2 EXEC_SAME_BIN CG_COMM badd
 VS_S ST_DERIVED
 VS_S ST_DERIVED
+= SYNTAX_OP VS_S ST_DERIVED 2 EXEC_ASS CG_PLAIN assbadd
 VS_S ST_DERIVED
 VS_S ST_DERIVED
- SYNTAX_OP VS_S ST_DERIVED 2 EXEC_SAME_BIN CG_PLAIN bmin
 VS_S ST_DERIVED
 VS_S ST_DERIVED
-= SYNTAX_OP VS_S ST_DERIVED 2 EXEC_ASS CG_PLAIN assbmin
 VS_S ST_DERIVED
 VS_S ST_DERIVED
# mapminimum, mapmaximum is also solved by first and only operand
mapminimum SYNTAX_FUNC VS_OS ST_NONSPATIAL 1 EXEC_POLY CG_PLAIN 
 VS_OS ST_SPATIAL
mapmaximum SYNTAX_FUNC VS_OS ST_NONSPATIAL 1 EXEC_POLY CG_PLAIN 
 VS_OS ST_SPATIAL
timeinputscalar SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_T_IN CG_PLAIN
 VS_BNO   ST_DERIVED
timeinputdirectional SYNTAX_FUNC VS_D ST_DERIVED 1 EXEC_T_IN CG_PLAIN
 VS_BNO   ST_DERIVED
timeinputboolean SYNTAX_FUNC VS_B ST_DERIVED 1 EXEC_T_IN CG_PLAIN
 VS_BNO   ST_DERIVED
timeinputldd SYNTAX_FUNC VS_L ST_DERIVED 1 EXEC_T_IN CG_PLAIN
 VS_BNO   ST_DERIVED
timeinputnominal SYNTAX_FUNC VS_N ST_DERIVED 1 EXEC_T_IN CG_PLAIN
 VS_BNO   ST_DERIVED
timeinputordinal SYNTAX_FUNC VS_O ST_DERIVED 1 EXEC_T_IN CG_PLAIN
 VS_BNO   ST_DERIVED
lookupnominal SYNTAX_FUNC VS_N ST_DERIVED -1 EXEC_LOOKUP CG_PLAIN
 VS_FIELD   ST_DERIVED
lookupboolean SYNTAX_FUNC VS_B ST_DERIVED -1 EXEC_LOOKUP CG_PLAIN
 VS_FIELD   ST_DERIVED
lookupordinal SYNTAX_FUNC VS_O ST_DERIVED -1 EXEC_LOOKUP CG_PLAIN
 VS_FIELD   ST_DERIVED
lookupscalar SYNTAX_FUNC VS_S ST_DERIVED -1 EXEC_LOOKUP CG_PLAIN
 VS_FIELD   ST_DERIVED
lookuplinear SYNTAX_FUNC VS_S ST_DERIVED -1 EXEC_LOOKUP CG_PLAIN
 VS_FIELD   ST_DERIVED
lookupdirectional SYNTAX_FUNC VS_D ST_DERIVED -1 EXEC_LOOKUP CG_PLAIN
 VS_FIELD   ST_DERIVED
lookupldd SYNTAX_FUNC VS_L ST_DERIVED -1 EXEC_LOOKUP CG_PLAIN
 VS_FIELD   ST_DERIVED
indexnominal SYNTAX_FUNC VS_N ST_NONSPATIAL 1 EXEC_INDEX CG_PLAIN
 VS_INDEXTABLE ST_NON
indexboolean SYNTAX_FUNC VS_B ST_NONSPATIAL 1 EXEC_INDEX CG_PLAIN
 VS_INDEXTABLE ST_NON
indexordinal SYNTAX_FUNC VS_O ST_NONSPATIAL 1 EXEC_INDEX CG_PLAIN
 VS_INDEXTABLE ST_NON
indexscalar SYNTAX_FUNC VS_S ST_NONSPATIAL 1 EXEC_INDEX CG_PLAIN
 VS_INDEXTABLE ST_NON
indexdirectional SYNTAX_FUNC VS_D ST_NONSPATIAL 1 EXEC_INDEX CG_PLAIN
 VS_INDEXTABLE ST_NON
indexldd SYNTAX_FUNC VS_L ST_NONSPATIAL 1 EXEC_INDEX CG_PLAIN
 VS_INDEXTABLE ST_NON
indextable SYNTAX_FUNC VS_TABLE ST_DERIVED 1 EXEC_INDEX CG_PLAIN
 VS_INDEXTABLE ST_NON
index      SYNTAX_FUNC VS_FIELD ST_SPATIAL 1 EXEC_INDEX CG_PLAIN
 VS_INDEXTABLE ST_NON
# type conversions:
# clean ones:
#vector SYNTAX_FUNC VS_V ST_DERIVED 2 EXEC_CONV CG_PLAIN
# VS_S ST_DERIVED
# VS_S ST_DERIVED
ldd   SYNTAX_FUNC  VS_L ST_DERIVED 1 EXEC_CONV CG_PLAIN
 VS_NOSDL ST_DERIVED
directional SYNTAX_FUNC VS_D ST_DERIVED 1 EXEC_CONV CG_PLAIN
 VS_FIELD ST_DERIVED
#dirty ones, or neccessary for numbers:
scalar SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_CONV CG_PLAIN
 VS_FIELD ST_DERIVED
boolean SYNTAX_FUNC VS_B ST_DERIVED 1 EXEC_CONV CG_PLAIN
 VS_FIELD  ST_DERIVED
nominal SYNTAX_FUNC VS_N ST_DERIVED 1 EXEC_CONV CG_PLAIN
 VS_FIELD ST_DERIVED
ordinal SYNTAX_FUNC VS_O ST_DERIVED 1 EXEC_CONV CG_PLAIN
 VS_FIELD ST_DERIVED
# boolean operands:
and SYNTAX_OP VS_B ST_DERIVED 2 EXEC_SAME_BIN CG_COMM 
 VS_B ST_DERIVED
 VS_B ST_DERIVED
or SYNTAX_OP VS_B ST_DERIVED 2 EXEC_SAME_BIN CG_COMM 
 VS_B ST_DERIVED
 VS_B ST_DERIVED
xor SYNTAX_OP VS_B ST_DERIVED 2 EXEC_SAME_BIN CG_COMM 
 VS_B ST_DERIVED
 VS_B ST_DERIVED
not SYNTAX_OP VS_B ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN 
 VS_B ST_DERIVED
test_until SYNTAX_OP VS_B ST_DERIVED 1 EXEC_MISC CG_PLAIN 
 VS_B ST_DERIVED
# trigoniometric:
sin SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_TRIG CG_PLAIN 
 VS_SD  ST_DERIVED
cos SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_TRIG CG_PLAIN 
 VS_SD  ST_DERIVED
tan SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_TRIG CG_PLAIN 
 VS_SD  ST_DERIVED
asin SYNTAX_FUNC VS_D ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN 
 VS_S  ST_DERIVED
acos SYNTAX_FUNC VS_D ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN 
 VS_S  ST_DERIVED
atan SYNTAX_FUNC VS_D ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN 
 VS_S  ST_DERIVED
abs  SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
exp  SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
# faculty factorial
fac SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
rounddown  SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
ln  SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
log10  SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
roundup  SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
roundoff  SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
sqrt  SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
sqr  SYNTAX_FUNC VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_S  ST_DERIVED
# map creation: 
xcoordinate SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GEN_SP CG_PLAIN
 VS_B  ST_DERIVED
ycoordinate SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GEN_SP CG_PLAIN
 VS_B  ST_DERIVED
uniqueid SYNTAX_FUNC    VS_S ST_SPATIAL 1 EXEC_GEN_SP CG_PLAIN
 VS_B  ST_DERIVED
move SYNTAX_FUNC VS_B ST_SPATIAL 3 EXEC_GLOBAL CG_PLAIN
 VS_B  ST_DERIVED
 VS_S  ST_DERIVED
 VS_S  ST_DERIVED
shift SYNTAX_FUNC VS_FIELD ST_SPATIAL 3 EXEC_GLOBAL CG_PLAIN
 VS_FIELD  ST_SPATIAL
 VS_S      ST_NONSPATIAL
 VS_S      ST_NONSPATIAL
shift0 SYNTAX_FUNC VS_FIELD ST_SPATIAL 3 EXEC_GLOBAL CG_PLAIN
 VS_FIELD  ST_SPATIAL
 VS_S      ST_NONSPATIAL
 VS_S      ST_NONSPATIAL
# constants:
celllength SYNTAX_FUNC VS_S ST_NONSPATIAL 0 EXEC_GEN_NS CG_PLAIN
cellarea SYNTAX_FUNC VS_S ST_NONSPATIAL 0 EXEC_GEN_NS CG_PLAIN
time SYNTAX_FUNC VS_S ST_NONSPATIAL 0 EXEC_GEN_NS CG_PLAIN
timeslice SYNTAX_FUNC VS_S ST_NONSPATIAL 0 EXEC_GEN_NS CG_PLAIN
mapnormal  SYNTAX_FUNC VS_S ST_NONSPATIAL 0 EXEC_GEN_NS CG_PLAIN
mapuniform SYNTAX_FUNC VS_S ST_NONSPATIAL 0 EXEC_GEN_NS CG_PLAIN
# misc
succ SYNTAX_FUNC VS_O ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_O ST_DERIVED
pred SYNTAX_FUNC VS_O ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN
 VS_O ST_DERIVED
pit SYNTAX_FUNC VS_N ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN
 VS_L ST_DERIVED
nodirection SYNTAX_FUNC VS_B ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN
 VS_D ST_DERIVED
defined SYNTAX_FUNC VS_B ST_DERIVED 1 EXEC_POLY CG_PLAIN
 VS_FIELD ST_DERIVED
#
# single function, :
accustate SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_DOUBLE CG_PLAIN|0
 VS_L    ST_SPATIAL
 VS_S ST_DERIVED
accucapacitystate SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accuthresholdstate SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accufractionstate SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accutriggerstate SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accutraveltimestate SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL # ldd
 VS_S ST_DERIVED # material
 VS_S ST_DERIVED # velocity
accuflux SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_DOUBLE CG_PLAIN|0
 VS_L    ST_SPATIAL
 VS_S ST_DERIVED
accucapacityflux SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accuthresholdflux SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accufractionflux SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accutriggerflux SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accutraveltimeflux SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_L ST_SPATIAL # ldd
 VS_S ST_DERIVED # material
 VS_S ST_DERIVED # velocity
diffuseflux SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_D ST_DERIVED # direction
 VS_S ST_DERIVED # in map
 VS_S ST_DERIVED # fluxIn map
diffusestate SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_D ST_DERIVED # direction
 VS_S ST_DERIVED # in map
 VS_S ST_DERIVED # fluxIn map
# accu get SYNTAX)_NONE, not to recognized as a function!
# test/pcrcalc50a
accu SYNTAX_NONE VS_S ST_SPATIAL 2 EXEC_DASS CG_PLAIN
 VS_L    ST_SPATIAL
 VS_S    ST_DERIVED
accucapacity SYNTAX_NONE VS_S ST_SPATIAL 3 EXEC_DASS CG_PLAIN
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accuthreshold SYNTAX_NONE VS_S ST_SPATIAL 3 EXEC_DASS CG_PLAIN
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accufraction SYNTAX_NONE VS_S ST_SPATIAL 3 EXEC_DASS CG_PLAIN
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accutrigger SYNTAX_NONE VS_S ST_SPATIAL 3 EXEC_DASS CG_PLAIN
 VS_L ST_SPATIAL
 VS_S ST_DERIVED
 VS_S ST_DERIVED
accutraveltime SYNTAX_NONE VS_S ST_SPATIAL 3 EXEC_DASS CG_PLAIN
 VS_L ST_SPATIAL # ldd
 VS_S ST_DERIVED # material
 VS_S ST_DERIVED # velocity
diffuse      SYNTAX_NONE VS_S ST_SPATIAL 3 EXEC_DASS CG_PLAIN
 VS_D ST_DERIVED # direction
 VS_S ST_DERIVED # in map
 VS_S ST_DERIVED # fluxIn map
timeoutput SYNTAX_FUNC VS_TSS ST_NON 2 EXEC_NONE CG_PLAIN
 VS_BNO    ST_DERIVED
 VS_FIELD    ST_DERIVED
mapsummary SYNTAX_FUNC VS_TSS ST_NON 1 EXEC_NONE CG_PLAIN
 VS_FIELD    ST_SPATIAL
maptotal SYNTAX_FUNC VS_S ST_NONSPATIAL 1 EXEC_DIFF_UN CG_PLAIN
 VS_S ST_SPATIAL
maparea SYNTAX_FUNC VS_S ST_NONSPATIAL 1 EXEC_POLY CG_PLAIN
 VS_FIELD ST_SPATIAL
areaarea SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_BNO ST_SPATIAL
clump SYNTAX_FUNC VS_N ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_BNO ST_SPATIAL
drain SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_S ST_SPATIAL
 VS_S ST_SPATIAL
path SYNTAX_FUNC VS_B ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_L ST_SPATIAL
 VS_B ST_SPATIAL
aspect SYNTAX_FUNC VS_D ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_S ST_SPATIAL
slope SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_S ST_SPATIAL
window4total SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_S ST_SPATIAL
profcurv SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_S ST_SPATIAL
plancurv SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_S ST_SPATIAL
view SYNTAX_FUNC VS_B ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_S ST_SPATIAL
 VS_B ST_SPATIAL
extentofview SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_BNO ST_SPATIAL      # classes
 VS_S ST_NONSPATIAL     # nr of directions
inversedistance SYNTAX_FUNC VS_S ST_SPATIAL 5 EXEC_GLOBAL CG_PLAIN
 VS_B ST_DERIVED
 VS_S ST_SPATIAL
 VS_S ST_DERIVED # power
 VS_S ST_DERIVED # max. search radius (unit-cell)
 VS_S ST_DERIVED # max. points in neigbourhood
spread  SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_DOUBLE CG_PLAIN|0
 VS_BNO ST_SPATIAL # points
 VS_S ST_DERIVED # initial costs
 VS_S ST_DERIVED # friction
spreadmax  SYNTAX_FUNC VS_S ST_SPATIAL 4 EXEC_DOUBLE CG_PLAIN|0
 VS_BNO ST_SPATIAL # points
 VS_S ST_DERIVED # initial costs
 VS_S ST_DERIVED # friction
 VS_S ST_DERIVED # max
spreadldd  SYNTAX_FUNC VS_S ST_SPATIAL 4 EXEC_DOUBLE CG_PLAIN|0
 VS_L   ST_SPATIAL # ldd
 VS_BNO ST_SPATIAL # points
 VS_S ST_DERIVED # initial costs
 VS_S ST_DERIVED # friction
catchment  SYNTAX_FUNC VS_BNO ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_L   ST_SPATIAL  # ldd
 VS_BNO ST_SPATIAL  # points
subcatchment  SYNTAX_FUNC VS_BNO ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_L   ST_SPATIAL  # ldd
 VS_BNO ST_SPATIAL  # points
windowaverage  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL # 
  VS_S ST_DERIVED # windowSize
markwhilesumle  SYNTAX_FUNC VS_B ST_SPATIAL 3 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL    # order
  VS_S ST_DERIVED    # amount
  VS_S ST_NONSPATIAL # treshold
markuntilsumge  SYNTAX_FUNC VS_B ST_SPATIAL 3 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL    # order
  VS_S ST_DERIVED    # amount
  VS_S ST_NONSPATIAL # treshold
ellipseaverage  SYNTAX_FUNC VS_S ST_SPATIAL 4 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL # 
  VS_S ST_DERIVED # xmajor
  VS_S ST_DERIVED # ymajor
  VS_D ST_DERIVED # angle
influencesimplegauss  SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL # input
  VS_S ST_DERIVED    # range
  VS_S ST_DERIVED    # eps
distributesimplegauss  SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL    # amount
  VS_S ST_DERIVED    # range
  VS_S ST_DERIVED    # eps
ibngauss  SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL    # units
  VS_S ST_DERIVED    # range
  VS_S ST_DERIVED    # packages
horizontan  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL # dem
  VS_D ST_DERIVED # viewAngle
catchmenttotal  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_S ST_DERIVED # 
  VS_L ST_SPATIAL # ldd
areaaverage  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_S   ST_SPATIAL # 
  VS_BNO ST_SPATIAL    # classes
areatotal  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_S   ST_SPATIAL # 
  VS_BNO ST_SPATIAL    # classes
areauniform  SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
  VS_BNO ST_SPATIAL    # classes
areanormal  SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
  VS_BNO ST_SPATIAL    # classes
windowtotal  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL # 
  VS_S ST_DERIVED # windowsize
windowhighpass  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
  VS_S ST_SPATIAL # 
  VS_S ST_DERIVED # windowSize
ldddist  SYNTAX_FUNC VS_S ST_SPATIAL 3 EXEC_GLOBAL CG_PLAIN
 VS_L ST_SPATIAL # ldd
 VS_B ST_SPATIAL # points
 VS_S ST_DERIVED # frictionMaterial
downstreamtotal  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_L ST_SPATIAL # ldd
 VS_S ST_DERIVED # amount
upstream  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_L ST_SPATIAL # ldd
 VS_S ST_DERIVED # frictionMaterial
streamorder  SYNTAX_FUNC VS_O ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_L ST_SPATIAL # ldd
transient SYNTAX_FUNC VS_S ST_SPATIAL 7 EXEC_GLOBAL CG_PLAIN
 VS_S ST_SPATIAL # dem
 VS_S ST_DERIVED # recharge
 VS_S ST_DERIVED # transmissivity
 VS_N ST_DERIVED # flow condition
 VS_S ST_DERIVED # storage coeff.
 VS_S ST_NONSPATIAL # interval
 VS_S ST_NONSPATIAL # tolerance
downstream  SYNTAX_FUNC VS_FIELD ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_L ST_SPATIAL # ldd
 VS_FIELD ST_DERIVED # transportvalue
downstreamdist  SYNTAX_FUNC VS_S ST_SPATIAL 1 EXEC_DIFF_UN CG_PLAIN
 VS_L ST_SPATIAL # ldd
lddmask  SYNTAX_FUNC VS_L ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_L ST_SPATIAL # ldd
 VS_B ST_SPATIAL # points
lddrepair  SYNTAX_FUNC VS_L ST_SPATIAL 1 EXEC_GLOBAL CG_PLAIN
 VS_L ST_DERIVED # ldd
slopelength  SYNTAX_FUNC VS_S ST_SPATIAL 2 EXEC_GLOBAL CG_PLAIN
 VS_L ST_SPATIAL # ldd
 VS_S ST_DERIVED # frictionmaterial
lddcreate  SYNTAX_FUNC VS_L ST_SPATIAL 5 EXEC_DOUBLE CG_PLAIN|0
 VS_S ST_SPATIAL # dem
 VS_S ST_DERIVED # depth
 VS_S ST_DERIVED # volume
 VS_S ST_DERIVED # area
 VS_S ST_DERIVED # volumeArea
lddcreatedem  SYNTAX_FUNC VS_S ST_SPATIAL 5 EXEC_DOUBLE CG_PLAIN|0
 VS_S ST_SPATIAL # dem
 VS_S ST_DERIVED # depth
 VS_S ST_DERIVED # volume
 VS_S ST_DERIVED # area
 VS_S ST_DERIVED # volumeArea
# implementation functions for execution
# trigonimetric funcs for directional and scalar input
sin SYNTAX_NONE VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN sin_d
 VS_D  ST_DERIVED
cos SYNTAX_NONE VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN cos_d
 VS_D  ST_DERIVED
tan SYNTAX_NONE VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN tan_d
 VS_D  ST_DERIVED
sin SYNTAX_NONE VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN sin_s
 VS_S  ST_DERIVED
cos SYNTAX_NONE VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN cos_s
 VS_S  ST_DERIVED
tan SYNTAX_NONE VS_S ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN tan_s
 VS_S  ST_DERIVED
# non spatial timeoutput:  not used anymore
# timeoutput SYNTAX_NONE VS_TSS ST_NON 1 EXEC_TOUT CG_PLAIN timeoutput_n
# VS_FIELD   ST_NONSPATIAL
timeoutput SYNTAX_NONE VS_TSS ST_NON 2 EXEC_TOUT CG_PLAIN timeoutput_4
VS_BNO    ST_SPATIAL
VS_BNOL   ST_DERIVED
timeoutput SYNTAX_NONE VS_TSS ST_NON 2 EXEC_TOUT CG_PLAIN timeoutput_s
VS_BNO    ST_SPATIAL
VS_SD     ST_DERIVED
# implementation of unlimited arguments ( CG_VARARG)
# as binary operators (min,max,cover)
# and functions that have implementation for different cellrepresentations
min SYNTAX_NONE VS_O ST_DERIVED 2 EXEC_SAME_BIN CG_COMM min_4
 VS_O ST_DERIVED
 VS_O ST_DERIVED
min SYNTAX_NONE VS_S ST_DERIVED 2 EXEC_SAME_BIN CG_COMM min_s
 VS_S ST_DERIVED
 VS_S ST_DERIVED
max SYNTAX_NONE VS_O ST_DERIVED 2 EXEC_SAME_BIN CG_COMM max_4
 VS_O ST_DERIVED
 VS_O ST_DERIVED
max SYNTAX_NONE VS_S ST_DERIVED 2 EXEC_SAME_BIN CG_COMM max_s
 VS_S ST_DERIVED
 VS_S ST_DERIVED
cover SYNTAX_NONE VS_BL ST_DERIVED 2 EXEC_SAME_BIN CG_PLAIN cover_1
 VS_BL ST_DERIVED
 VS_BL ST_DERIVED
cover SYNTAX_NONE VS_NO ST_DERIVED 2 EXEC_SAME_BIN CG_PLAIN cover_4
 VS_NO ST_DERIVED
 VS_NO ST_DERIVED
cover SYNTAX_NONE VS_SD ST_DERIVED 2 EXEC_SAME_BIN CG_PLAIN cover_s
 VS_SD ST_DERIVED
 VS_SD ST_DERIVED
ne SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_SAME_BIN CG_COMM ne_1
 VS_BL ST_DERIVED
 VS_BL ST_DERIVED
ne SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_COMM ne_4
 VS_NO ST_DERIVED
 VS_NO ST_DERIVED
ne SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_COMM ne_s
 VS_SD ST_DERIVED
 VS_SD ST_DERIVED
eq SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_SAME_BIN CG_COMM eq_1
 VS_BL ST_DERIVED
 VS_BL ST_DERIVED
eq SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_COMM eq_4
 VS_NO ST_DERIVED
 VS_NO ST_DERIVED
eq SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_COMM eq_s
 VS_SD ST_DERIVED
 VS_SD ST_DERIVED
gt SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_PLAIN gt_4
 VS_NO ST_DERIVED
 VS_NO ST_DERIVED
gt SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_PLAIN gt_s
 VS_SD ST_DERIVED
 VS_SD ST_DERIVED
ge SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_PLAIN ge_4
 VS_NO ST_DERIVED
 VS_NO ST_DERIVED
ge SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_PLAIN ge_s
 VS_SD ST_DERIVED
 VS_SD ST_DERIVED
lt SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_PLAIN lt_4
 VS_NO ST_DERIVED
 VS_NO ST_DERIVED
lt SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_PLAIN lt_s
 VS_SD ST_DERIVED
 VS_SD ST_DERIVED
le SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_PLAIN le_4
 VS_NO ST_DERIVED
 VS_NO ST_DERIVED
le SYNTAX_NONE VS_B ST_DERIVED 2 EXEC_DIFF_BIN CG_PLAIN le_s
 VS_SD ST_DERIVED
 VS_SD ST_DERIVED
# conversion stuff
# ?_2_? conv. based on value scale
# ?TO? conv. based on cell representation
4to1 SYNTAX_NONE VS_BL ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_NO  ST_DERIVED
sto1 SYNTAX_NONE VS_BL ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_SD  ST_DERIVED
sto4 SYNTAX_NONE VS_NO ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_SD  ST_DERIVED
1_2_b SYNTAX_NONE VS_B ST_DERIVED 1 EXEC_SAME_UN CG_PLAIN 
 VS_L  ST_DERIVED
4_2_b SYNTAX_NONE VS_B ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_NO  ST_DERIVED
s_2_b SYNTAX_NONE VS_B ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN
 VS_SD  ST_DERIVED
1_2_4 SYNTAX_NONE VS_NO ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_BL  ST_DERIVED
s_2_4 SYNTAX_NONE VS_NO ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_S  ST_DERIVED
1_2_s SYNTAX_NONE VS_SD ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_BL  ST_DERIVED
4_2_s SYNTAX_NONE VS_SD ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_NO  ST_DERIVED
s_2_d SYNTAX_NONE VS_D ST_DERIVED 1 EXEC_SAME_UN  CG_PLAIN 
 VS_S  ST_DERIVED
d_2_s SYNTAX_NONE VS_S ST_DERIVED 1 EXEC_SAME_UN  CG_PLAIN 
 VS_D  ST_DERIVED
1_2_d SYNTAX_NONE VS_D ST_DERIVED 1 EXEC_DIFF_UN  CG_PLAIN 
 VS_B  ST_DERIVED
4_2_d SYNTAX_NONE VS_D ST_DERIVED 1 EXEC_DIFF_UN  CG_PLAIN 
 VS_NO ST_DERIVED
l_2_d SYNTAX_NONE VS_D ST_DERIVED 1 EXEC_DIFF_UN  CG_PLAIN 
 VS_L  ST_DERIVED
4_2_l SYNTAX_NONE VS_L ST_DERIVED 1 EXEC_DIFF_UN  CG_PLAIN 
 VS_NO  ST_DERIVED
s_2_l SYNTAX_NONE VS_L ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_S  ST_DERIVED
d_2_l SYNTAX_NONE VS_L ST_DERIVED 1 EXEC_DIFF_UN CG_PLAIN 
 VS_D  ST_DERIVED
mapminimum SYNTAX_NONE VS_O ST_NONSPATIAL 1 EXEC_DIFF_UN CG_PLAIN mapminimum_4
 VS_O ST_SPATIAL
mapminimum SYNTAX_NONE VS_S ST_NONSPATIAL 1 EXEC_DIFF_UN CG_PLAIN mapminimum_s
 VS_S ST_SPATIAL
mapmaximum SYNTAX_NONE VS_O ST_NONSPATIAL 1 EXEC_DIFF_UN CG_PLAIN mapmaximum_4
 VS_O ST_SPATIAL
mapmaximum SYNTAX_NONE VS_S ST_NONSPATIAL 1 EXEC_DIFF_UN CG_PLAIN mapmaximum_s
 VS_S ST_SPATIAL
maparea SYNTAX_NONE VS_S ST_NONSPATIAL 1 EXEC_DIFF_UN CG_PLAIN maparea_1
 VS_BL ST_SPATIAL
maparea SYNTAX_NONE VS_S ST_NONSPATIAL 1 EXEC_DIFF_UN CG_PLAIN maparea_4
 VS_NO ST_SPATIAL
maparea SYNTAX_NONE VS_S ST_NONSPATIAL 1 EXEC_DIFF_UN CG_PLAIN maparea_s
 VS_SD ST_SPATIAL
spatial SYNTAX_NONE VS_BL ST_SPATIAL 1 EXEC_DIFF_UN CG_PLAIN spatial_1
 VS_BL ST_DERIVED
spatial SYNTAX_NONE VS_NO ST_SPATIAL 1 EXEC_DIFF_UN CG_PLAIN spatial_4
 VS_NO ST_DERIVED
spatial SYNTAX_NONE VS_SD ST_SPATIAL 1 EXEC_DIFF_UN CG_PLAIN spatial_s
 VS_SD ST_DERIVED
defined SYNTAX_NONE VS_B ST_SPATIAL 1 EXEC_SAME_UN CG_PLAIN defined_1
 VS_BL ST_DERIVED
defined SYNTAX_NONE VS_B ST_SPATIAL 1 EXEC_DIFF_UN CG_PLAIN defined_4
 VS_NO ST_DERIVED
defined SYNTAX_NONE VS_B ST_SPATIAL 1 EXEC_DIFF_UN CG_PLAIN defined_s
 VS_SD ST_DERIVED
if  SYNTAX_NONE VS_BL ST_DERIVED 2 EXEC_IFTHEN CG_PLAIN if_1
 VS_B ST_DERIVED
 VS_BL ST_DERIVED
if  SYNTAX_NONE VS_NO ST_DERIVED 2 EXEC_IFTHEN CG_PLAIN if_4
 VS_B ST_DERIVED
 VS_NO ST_DERIVED
if  SYNTAX_NONE VS_SD ST_DERIVED 2 EXEC_IFTHEN CG_PLAIN if_s
 VS_B ST_DERIVED
 VS_SD ST_DERIVED
if  SYNTAX_NONE VS_BL ST_DERIVED 3 EXEC_IFTHENELSE CG_PLAIN if_else_1
 VS_B ST_DERIVED
 VS_BL ST_DERIVED
 VS_BL ST_DERIVED
if  SYNTAX_NONE VS_NO ST_DERIVED 3 EXEC_IFTHENELSE CG_PLAIN if_else_4
 VS_B ST_DERIVED
 VS_NO ST_DERIVED
 VS_NO ST_DERIVED
if  SYNTAX_NONE VS_SD ST_DERIVED 3 EXEC_IFTHENELSE CG_PLAIN if_else_s 
 VS_B ST_DERIVED
 VS_SD ST_DERIVED
 VS_SD ST_DERIVED
# implementation of DASS/DOUBLE types
spread  SYNTAX_NONE VS_S ST_SPATIAL 3 EXEC_DASS CG_PLAIN spread_impl
 VS_BNO ST_SPATIAL # points
 VS_S ST_DERIVED # initial costs
 VS_S ST_DERIVED # friction
spreadmax  SYNTAX_NONE VS_S ST_SPATIAL 4 EXEC_DASS CG_PLAIN spreadmax_impl
 VS_BNO ST_SPATIAL # points
 VS_S ST_DERIVED # initial costs
 VS_S ST_DERIVED # friction
 VS_S ST_DERIVED # max
dynamicwaveh  SYNTAX_FUNC VS_S ST_SPATIAL 16 EXEC_DOUBLE CG_PLAIN|0
  VS_L ST_SPATIAL # ldd
  VS_S ST_DERIVED # inQ
  VS_S ST_DERIVED # inH
  VS_S ST_DERIVED # bottomHeight
  VS_S ST_DERIVED # roughness
  VS_S ST_DERIVED # channelLength
  VS_S ST_DERIVED # channelBottomWidth
  VS_S ST_DERIVED # channelDepth
  VS_S ST_DERIVED # channelForm
  VS_S ST_DERIVED # floodplainWidth
  VS_S ST_NONSPATIAL # timeStepInSeconds
  VS_S ST_NONSPATIAL # nrTimeSlices
  VS_B ST_DERIVED # structures
  VS_S ST_DERIVED # structureA
  VS_S ST_DERIVED # structureB
  VS_S ST_DERIVED # structureCrestLevel
spreadldd  SYNTAX_NONE VS_S ST_SPATIAL 4 EXEC_DASS CG_PLAIN spreadldd_impl
 VS_L   ST_SPATIAL # ldd
 VS_BNO ST_SPATIAL # points
 VS_S ST_DERIVED # initial costs
 VS_S ST_DERIVED # friction
lddcreate  SYNTAX_NONE VS_L ST_SPATIAL 5 EXEC_DASS CG_PLAIN lddcreate_impl
 VS_S ST_SPATIAL # dem
 VS_S ST_DERIVED # depth
 VS_S ST_DERIVED # volume
 VS_S ST_DERIVED # area
   VS_S ST_DERIVED # volumeArea
dynamicwave SYNTAX_NONE VS_S ST_SPATIAL 16 EXEC_DASS CG_PLAIN
  VS_L ST_SPATIAL # ldd
  VS_S ST_DERIVED # inQ
  VS_S ST_DERIVED # inH
  VS_S ST_DERIVED # bottomHeight
  VS_S ST_DERIVED # roughness
  VS_S ST_DERIVED # channelLength
  VS_S ST_DERIVED # channelBottomWidth
  VS_S ST_DERIVED # channelDepth
  VS_S ST_DERIVED # channelForm
  VS_S ST_DERIVED # floodplainWidth
  VS_S ST_NONSPATIAL # timeStepInSeconds
  VS_S ST_NONSPATIAL # nrTimeSlices
  VS_B ST_DERIVED # structures
  VS_S ST_DERIVED # structureA
  VS_S ST_DERIVED # structureB
  VS_S ST_DERIVED # structureCrestLevel
