From fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 8 Jul 2015 20:46:52 -0400 Subject: Initial commit --- pkg/language/doc/decls.hlp | 144 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 pkg/language/doc/decls.hlp (limited to 'pkg/language/doc/decls.hlp') diff --git a/pkg/language/doc/decls.hlp b/pkg/language/doc/decls.hlp new file mode 100644 index 00000000..eb168c65 --- /dev/null +++ b/pkg/language/doc/decls.hlp @@ -0,0 +1,144 @@ +.help declarations Feb86 language +.ih +NAME +declarations -- parameter and variable declarations +.ih +SYNTAX +.nf +vartype [*]varname[index_list] [= init_value] [{options}] [, ...] + + or + +vartype [*]varname[index_list] [{init_value [, options]}] [, ...] +.fi +.ih +ELEMENTS +.ls vartype +One of the legal variable types, i.e.: + + int, bool, char, real, gcur, imcur, struct, file +.le +.ls varname +The name of the variable or parameter. The name must begin with +an alphabetic character or '_' and should be fewer than 64 characters +in length. If the name is preceded by a '*', then the variable +is 'list-directed', meaning that a new value is taken from a list +each time the parameter is read. +.le +.ls index_list +The index_list consists of a series of ranges enclosed in square brackets. +A range may be a single integer in which case the range is from 1 to +that integer, or two integers separated by a colon. The second integer +must be larger than the first. Ranges are separated by commas. In +the special case that no ranges are specified by the user, the variable +is assumed to be a one-dimensional array with a range from 1 to the +number of elements in the initialization list. +.le +.ls init_value +The initialization value is a single value for scalar parameters but +may be a list for array. A repetition count may be specified in the form + + rep_count (value) + + +which is equivalent to value repeated the rep_count times. +The values in the initialization list are separated by commas. +.le +.ls options +.br +Options define certain characteristics of the variables. Each +options has the form opt_name=value where value is a constant. +The current options are: +.ls mode +Determines whether the parameter is queried for and whether +it is learned after task execution. The default mode for parameters +declared in the argument list of a CL procedure is "a", and "h" otherwise. +.le +.ls min +The minimum allowable value for the parameter. If omitted, no min checking +is performed. +.le +.ls max +The maximum allowable value for the parameter. If omitted, no max checking +is performed. +.le +.ls prompt +.br +The prompt to be used when the parameter is queried for. +.le +.ls enum +The set of allowable string values for a string valued parameter. +The character '|' delimits successive enumerated strings. +.le +.ls filetype +For a \fIfile\fR type parameter, a string containing characters giving +file characteristics to be checked for when the file parameter is used. +.ls +.nf +r file exists and is readable +w file exists and is writable +n file does not exist +b file is a binary file +t file is a text file +.fi +.le +.le +.ls length +For a string type parameter, the number of characters of storage to +allocate for the string. If the actual length of a string later exceeds +the allocated value the string will be silently truncated. +.le + +Note that all string constants in an options list must be enclosed in +quotes. +.le + +.ih +DESCRIPTION +Declaration statements are used for inline declaration of parameters and +local variables. A declaration after the begin statement of a procedure +script is a declaration of a local variable, but any other declaration +defines a parameter. Parameters are generally saved between invocations +of a script while local variables are not. + +Parameter and variable declarations should always precede executable +statements with a script. Certain functions are legal before +declarations, but this depends upon certain hidden aspects of +declarations which are not obvious to the user. +.ih +EXAMPLES + +.nf +real x +int ii=32 +int y {min=0, max=14} +char z="abc" {enum="abc|def|ghi", mode="q"} + +bool isotest {YES, mode="ql", + prompt="Do you want to test for isotropy?"} + +int ii=1 {min=0,max=10, prompt="Number of images", mode="h"} +file infile="testfile" {filetype="r"} +struct line {length=80, mode="h"} + +real array[10] +int iarray[15]=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 {min=0, max=100} +int jarray[15] { 5(0), 5(2), 5(4), min=0, max=400} +char carray[5]= 5("Junk") +bool flags[4,-3:3] = 28(NO) {mode="h", prompt="Value set"} +file inp_files[3]= "fil1.inp", "fil2.inp", "fil3.inp" + +int karray[3]=1 # (note second and third elements are undefined) +struct *list="inputfile.list" {mode="q"} +int *ilist="infile.inp" {mode="h", min=0, max=100} +.fi +.ih +BUGS +.nf +Options are only permitted for parameters, not local variables. +The filetype options are recognized but are not implemented internally. +.fi +.ih +SEE ALSO +parameters, procedure +.endhelp -- cgit