Syntax



next up previous contents
Next: Functions Up: SISCAD-P Macro Language Previous: Structure

Syntax

Syntax SISCAD-P - Input Language

Command                : Command | Block | IF-Command |
                            WHILE-Command 


Command                : { Action }
                         { Object }
                         { Characterization }
                         { Parameter 
                            { ParameterEnd Parameter }+ }
                         CommandEnd

Block                  : '{'
                         { Command }
                         '}'

IF -  command          : IF '(' ArithmeticExpression ')'
                         Block
                         CommandEnd | ELSE-Command

ELSE - command         : ELSE
                         block

WHILE - command        : WHILE '(' ArithmeticExpression ')'
                         block

Parameter              : { KeyWord '=' }
                         { ParameterSetting }
               
ParameterSetting       : {} |
                         Entity { PickInfo } |
                         Coordinates { PointOfIntersectionInfo }|
                         Integer |
                         Letters |
                         Text |
                         ArithmeticExpression 

Entity                 : EntityName |
                         {Typecast} RecordNumber |
                         FunctionVariable

PickInfo               : '(' Entity { ',' Entity } ')'

PointOfIntersetionInfo : '(' { CoordinatesPair ';' }
                             WindowNumber ')'

Typecast               : '[' PartNumber ']' |
                         '[' Operand ']' |
                         '[' PartNumber '|' Object ']' |
                         '[' PartNumber ']' '[' Object ']'

PartNumber                : RecordNumber

FunctionVariable       : '@'Integer

Coordinates           : FunctionVariable |
                         CoordinatesPair |
                         Function |
                         Entity

CoordinatesPair        : ArithmeticExpression
                            ',' ArithmeticExpression

Function               : FunctionEntity  
                            { '(' FunctionParameter 
                              { ParameterEnd 
                                FunctionParameter }+ ')' }

FunctionEntity         : EntityName |
                         {Typecast} RecordNumber

FunctionParameter      : ArithmeticExpression |
                         Entity |
                         Coordinates |
                         Text

EntityName             : Name
                         TextInQuotationMarks
                         Function

Text                   : TextInQuotationMarks |
                         FunctionVariable |
                         Function |
                         Entity

ArithmeticExpression   : {[+-]} Term { [+-] Term }+

Term                   : Factor { [*/] Term }

Factor                 : Function |
                         Entity |
                         '(' ArithmeticExpression ')' |
                         Number |
                         FunctionVariable

Action                 : MODIFY , ACTIVATE , CREATE ...

Object                 : POINT , LINE , CIRCLE ...

Characterization       : CAR , PP , DX ...

KeyWord               : P , FA , LA , P1 ...

Name                   : [_a-zA-Z]{_a-zA-Z0-9}+

RecordNumber          : 1 .. max 

Integer                : min ... max 

TextInQuotationMarks   : '"' {...}+ '"'

Letters                : [a_zA_Z]

Number                 : real number 
                            ( min  max) 

End of command         : '!'

End of parameter       : ';'

WindowNumber              : 0 .. 9




Thu Aug 3 12:51:32 MET DST 1995