Varkon MBS Programmers manual
Statements are the things that actually do the job in a module. There are five types of statements: Assignment, IF, FOR, GOTO, and procedure call.
An assignment has the following form...
variable:=expression;
where expression is any valid expression for the type of variable to recieve its value.
An IF statement has the following form:
IF condition THEN statements [ELIF condition THEN statements] [ELSE statements] ENDIF;
The ELIF and ELSE keywords are optional. A condition is a logical expression including relational operators and keywords AND, OR and NOT.
Here is an example:
IF a < min OR a > max THEN statements ELSE statements ENDIF;
A for statement has the following form:
FOR loop_variable:=start TO stop [STEP increment] DO statements ENDFOR;
The loop_variable is an ordinary INT variable while start, stop and increment are any integer expressions. Evaluation of these is done once before the loop is entered and their values can not be altered from within the loop. The STEP value may be positive or negative.
A sample FOR loop:
FOR i:=1 to 10 DO poi_free(#1,vec(i,0)); ! 10 Points on a row ENDFOR;
A goto statement is used to jump to a label as in the following example:
IF a > max THEN GOTO error; ENDIF; error:
As you see from this example a label is just an identifier followed by a colon.
There are four types of procedures in MBS.
A call to an ordinary procedure has the following form:
identifier([expressions]);
A call to a geometric procedure has the following form:
identifier(#integer, [expressions] [:attributes]);
Geometric procedures are used to create entities with #integer as ID. Attributes are things like PEN and LEVEL, see below.
The part procedure has two forms:
part(#integer, part_name([parameters]) [,reference_expression] [:attributes]); part(#integer, string_expression, ([parameters]) [,reference_expression]);
In the first form the part name is a constant while the other form accepts an expression.
The set procedure also has two forms:
set(attributes); set_basic(attributes);
Multiple attributes may be specified by separating them with commas.
set(LEVEL=1,TFONT=0,LDASHL=10/s); set_basic(PSIZE=2.5);
For a complete list of attributes see the set procedure.
Varkon 1.19D svn # 120M