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