CONTROL_BASIC:
CONTROL_BASIC
::= SentencesSequence
| SubRoutine
no referencesSubRoutine:
SubRoutine
::= LineNumber DECLARE EndLine SentencesSequence LineNumber 'END'
referenced by:
CONTROL_BASIC
SentencesSequence:
SentencesSequence
::= ProgramLine+
referenced by:
CONTROL_BASIC
Loop
SubRoutine
ProgramLine:
ProgramLine
::= EmptyLine
| LineNumber Sentence EndLine
referenced by:
SentencesSequence
Sentence:
Sentence ::= Comment
| ( Commands | Assignment | Branch | Loop ) Comment?
referenced by:
IFCLAUSE
ProgramLine
EmptyLine:
EmptyLine
::= LineNumber? EndLine
referenced by:
ProgramLine
EndLine:
EndLine ::= [#x000D#x000A]
referenced by:
EmptyLine
FOR
ProgramLine
SubRoutine
Comment:
Comment ::= 'REM' StringLiteral+
referenced by:
Sentence
Commands:
Commands ::= Command ( ';' Command )*
referenced by:
Sentence
Function:
Function ::= ABS
| AVG
| CONPROP
| CONRATE
| CONRESET
| 'DOM'
| 'DOW'
| 'DOY'
| INT
| INTERVAL
| LN
| LN1
| MAX
| MIN
| 'POWER-LOSS'
| 'SCANS'
| SQR
| STATUS
| TBL
| 'TIME'
| TIMEOFF
| TIMEON
| WRON
| WROFF
| 'UNACK'
| 'USER-A'
| 'USER-B'
referenced by:
IntegerTerm
Command:
Command ::= ALARM
| ALARMAT
| CALL
| 'CLEAR'
| DALARM
| DISABLE
| ENABLE
| 'END'
| 'HANGUP'
| ONALARM
| ONERROR
| PHONE
| PRINT
| PRINTAT
| REMOTEGET
| REMOTESET
| 'RETURN'
| RUNMACRO
| SETPRINTER
| WAIT
referenced by:
Commands
ABS:
ABS ::= 'ABS' PARIZQ Expression PARDER
referenced by:
Function
ALARM:
ALARM ::= 'ALARM' Expression ComparisonOps Expression ',' Expression ',' StringLiteral*
referenced by:
Command
ALARMAT:
ALARMAT ::= 'ALARM-AT' PANEL
| 'ALL'
referenced by:
Command
AVG:
AVG ::= 'AVG' PARIZQ Expression ExpressionListOpt PARDER
referenced by:
Function
CALL:
CALL ::= 'CALL' PRG ( AssignOp ARG ( Space ',' Space ARG )* )?
referenced by:
Command
CLOSE:
CLOSE ::= 'CLOSE' Designator
no referencesCONPROP:
CONPROP ::= 'CONPROP' PARIZQ CON ',' Expression PARDER
referenced by:
Function
CONRATE:
CONRATE ::= 'CONRATE' PARIZQ CON ',' Expression PARDER
referenced by:
Function
CONRESET:
CONRESET ::= 'CONRESET' PARIZQ CON ',' Expression PARDER
referenced by:
Function
CON:
CON ::= UPTO64
referenced by:
CONPROP
CONRATE
CONRESET
DALARM:
DALARM ::= 'DALARM' Expression ',' NumberLiteral ',' StringLiteral+
referenced by:
Command
DECLARE:
DECLARE ::= 'DECLARE' Identifier ( ',' Identifier )*
referenced by:
SubRoutine
DISABLE:
DISABLE ::= 'DISABLE' Identifier
referenced by:
Command
ENABLE:
ENABLE ::= 'ENABLE' Identifier
referenced by:
Command
INT:
INT ::= 'INT' PARIZQ Expression PARDER
referenced by:
Function
INTERVAL:
INTERVAL ::= 'INTERVAL' PARIZQ Expression PARDER
referenced by:
Function
LET:
LET ::= 'LET' Assignment
no referencesLN:
LN ::= 'LN' PARIZQ Expression PARDER
referenced by:
Function
LN1:
LN1 ::= 'LN-1' PARIZQ Expression PARDER
referenced by:
Function
MAX:
MAX ::= 'MAX' PARIZQ Expression ( Space ',' Space Expression )* PARDER
referenced by:
Function
MIN:
MIN ::= 'MIN' PARIZQ Expression ( Space ',' Space Expression )* PARDER
referenced by:
Function
ONALARM:
ONALARM ::= 'ON-ALARM' LineNumber
referenced by:
Command
ONERROR:
ONERROR ::= 'ON-ERROR' LineNumber
referenced by:
Command
OPEN:
OPEN ::= 'OPEN' Identifier
no referencesPHONE:
PHONE ::= 'PHONE' ( PhoneNumber | StringLiteral )
referenced by:
Command
PRINT:
PRINT ::= 'PRINT' ( EnclosedString | PrintableKeywords ) ( ';' EnclosedString | PrintableKeywords )*
referenced by:
Command
PrintableKeywords:
PrintableKeywords
::= 'DATE'
| 'TIME'
| 'USER-A'
| 'USER-B'
| 'POINT/LOCAL VARIABLE VALUES'
| 'BEEP'
referenced by:
PRINT
EnclosedString:
EnclosedString
::= '"' StringLiteral+ '"'
referenced by:
PRINT
PRINTAT:
PRINTAT ::= 'PRINT-AT' PANELS
referenced by:
Command
REMOTEGET:
REMOTEGET
::= 'REMOTE-GET' Designator AssignOp RemoteDesignator
referenced by:
Command
REMOTESET:
REMOTESET
::= 'REMOTE-SET' RemoteDesignator AssignOp Designator
referenced by:
Command
RUNMACRO:
RUNMACRO ::= 'RUN-SYSTEM' SYSPRG
referenced by:
Command
SETPRINTER:
SETPRINTER
::= PRINTEVERYTHING
| ONLYPRINTCOMMANDS
referenced by:
Command
PRINTEVERYTHING:
PRINTEVERYTHING
::= 'SET-PRINTER' ( 'A' | 'B' | '0' )
referenced by:
SETPRINTER
ONLYPRINTCOMMANDS:
ONLYPRINTCOMMANDS
::= 'Set-Printer' ( 'a' | 'b' | '0' )
referenced by:
SETPRINTER
SQR:
SQR ::= 'SQR' PARIZQ Expression PARDER
referenced by:
Function
START:
START ::= 'START' Designator
no referencesSTATUS:
STATUS ::= 'STATUS' PARIZQ Expression PARDER
referenced by:
Function
STOP:
STOP ::= 'STOP' Designator
no referencesTBL:
TBL ::= 'TBL' PARIZQ Expression ',' TABLENUMBER PARDER
referenced by:
Function
TIMEON:
TIMEON ::= 'TIME-ON' PARIZQ Designator PARDER
referenced by:
Function
TIMEOFF:
TIMEOFF ::= 'TIME-OFF' PARIZQ Designator PARDER
referenced by:
Function
WAIT:
WAIT ::= 'WAIT' Expression
referenced by:
Command
WRON:
WRON ::= 'WR-ON' PARIZQ SYSPRG ',' TIMER PARDER
referenced by:
Function
WROFF:
WROFF ::= 'WR-OFF' PARIZQ SYSPRG ',' TIMER PARDER
referenced by:
Function
Branch:
Branch ::= IF
| IFTRUE
| IFFALSE
| GOSUB
| GOTO
| ON
referenced by:
Sentence
IF:
IF ::= 'IF' Expression 'THEN' IFCLAUSE ( 'ELSE' IFCLAUSE )?
referenced by:
Branch
IFTRUE:
IFTRUE ::= 'IF+' Expression 'THEN' IFCLAUSE ( 'ELSE' IFCLAUSE )?
referenced by:
Branch
IFFALSE:
IFFALSE ::= 'IF-' Expression 'THEN' IFCLAUSE ( 'ELSE' IFCLAUSE )?
referenced by:
Branch
IFCLAUSE:
IFCLAUSE ::= Sentence
| LineNumber
referenced by:
IF
IFFALSE
IFTRUE
ON:
ON ::= 'ON' IntegerTerm ( GOTO | GOSUB ) ( ',' LineNumber )*
referenced by:
Branch
GOSUB:
GOSUB ::= 'GOSUB' LineNumber
referenced by:
Branch
ON
GOTO:
GOTO ::= 'GOTO' LineNumber
referenced by:
Branch
ON
Loop:
Loop ::= FOR SentencesSequence ENDFOR
referenced by:
Sentence
FOR:
FOR ::= 'FOR' LoopVariable AssignOp Integer 'TO' Integer ( 'STEP' Integer )? EndLine
referenced by:
Loop
ENDFOR:
ENDFOR ::= 'NEXT' ( LoopVariable ( ',' LoopVariable )* )?
referenced by:
Loop
LoopVariable:
LoopVariable
::= [A-K]
referenced by:
ENDFOR
FOR
Space:
Space ::= #x0009 #x0020
referenced by:
CALL
DatesLiteral
MAX
MIN
NonCtlAsciiChar
PANELS
StringLiteral:
StringLiteral
::= NonCtlAsciiChar+
referenced by:
ALARM
Comment
DALARM
EnclosedString
PHONE
NonCtlAsciiChar:
NonCtlAsciiChar
::= Space
| Punctuation
| Letter
| Digit
| Other
referenced by:
StringLiteral
Punctuation:
Punctuation
::= '.'
| ','
| ';'
referenced by:
NonCtlAsciiChar
Other:
Other ::= '*'
| '_'
| Parenthesis
referenced by:
NonCtlAsciiChar
LineNumber:
LineNumber
::= Ordinal
referenced by:
EmptyLine
GOSUB
GOTO
IFCLAUSE
ON
ONALARM
ONERROR
ProgramLine
SubRoutine
Literal:
Literal ::= NumbersLiteral
| DatesLiteral
| DaysLiteral
| TimeLiteral
referenced by:
Expression
PhoneNumber:
PhoneNumber
::= Integer ( '-' Integer )*
referenced by:
PHONE
NumbersLiteral:
NumbersLiteral
::= '-'? Integer ( ( '.' | 'E' '-'? ) Integer )?
referenced by:
Literal
DaysLiteral:
DaysLiteral
::= 'SUN'
| 'MON'
| 'TUE'
| 'WED'
| 'THU'
| 'FRI'
| 'SAT'
referenced by:
Literal
DatesLiteral:
DatesLiteral
::= MonthLiteral Space ( [1-2] [1-9] | '3' [0-1] )
referenced by:
Literal
MonthLiteral:
MonthLiteral
::= 'JAN'
| 'FEB'
| 'MAR'
| 'APR'
| 'MAY'
| 'JUN'
| 'JUL'
| 'AUG'
| 'SEP'
| 'OCT'
| 'NOV'
| 'DEC'
referenced by:
DatesLiteral
Integer:
Integer ::= Digit+
referenced by:
FOR
NumbersLiteral
PhoneNumber
Digit:
Digit ::= '0'
| NonZeroDigit
referenced by:
HH
Identifier
Integer
MM
NonCtlAsciiChar
Ordinal
SS
UPTO128
UPTO32
UPTO48
UPTO64
UPTO96
ValidSymbol
NonZeroDigit:
NonZeroDigit
::= [1-9]
referenced by:
Digit
Ordinal
UPTO128
UPTO16
UPTO32
UPTO48
UPTO64
UPTO96
TimeLiteral:
TimeLiteral
::= HH ':' MM ':' SS
referenced by:
Literal
HH:
HH ::= [0-1] Digit
| '2' [0-3]
referenced by:
TimeLiteral
MM:
MM ::= [0-5] Digit
referenced by:
TimeLiteral
SS:
SS ::= [0-5] Digit
referenced by:
TimeLiteral
LogicOps:
LogicOps ::= 'AND'
| 'OR'
| 'XOR'
referenced by:
BinaryOps
ArithmeticOps:
ArithmeticOps
::= '^'
| '*'
| '/'
| '\'
| '+'
| '-'
| 'MOD'
referenced by:
BinaryOps
ComparisonOps:
ComparisonOps
::= '<'
| '>'
| '<='
| '>='
| '<>'
| AssignOp
referenced by:
ALARM
BinaryOps
UnaryOps:
UnaryOps ::= 'NOT'
| '-'
referenced by:
UnaryExpression
BinaryOps:
BinaryOps
::= ArithmeticOps
| ComparisonOps
| LogicOps
referenced by:
BinaryExpression
Parenthesis:
Parenthesis
::= '('
| ')'
referenced by:
Other
Expression:
Expression
::= Fucntion
| Literal
| Designator
| BinaryExpression
| EnclosableExpression
| UnaryExpression
referenced by:
ABS
ALARM
ARG
AVG
Assignment
BinaryExpression
CONPROP
CONRATE
CONRESET
DALARM
EnclosableExpression
ExpressionListOpt
IF
IFFALSE
IFTRUE
INT
INTERVAL
LN
LN1
MAX
MIN
SQR
STATUS
TBL
UnaryExpression
WAIT
EnclosableExpression:
EnclosableExpression
::= '(' Expression ')'
referenced by:
Expression
UnaryExpression:
UnaryExpression
::= UnaryOps Expression
referenced by:
Expression
BinaryExpression:
BinaryExpression
::= Expression BinaryOps Expression
referenced by:
Expression
ExpressionListOpt:
ExpressionListOpt
::= ( ',' Expression )*
referenced by:
AVG
IntegerTerm:
IntegerTerm
::= Function
| Designator
referenced by:
ON
Assignment:
Assignment
::= Designator AssignOp Expression
referenced by:
LET
Sentence
Designator:
Designator
::= Identifier
| PointIdentifier
| LocalVariable
referenced by:
ARG
Assignment
CLOSE
Expression
IntegerTerm
REMOTEGET
REMOTESET
RemoteDesignator
START
STOP
TIMEOFF
TIMEON
RemoteDesignator:
RemoteDesignator
::= Designator
referenced by:
REMOTEGET
REMOTESET
Identifier:
Identifier
::= ( Letter | Digit ) ValidSymbol+
referenced by:
DECLARE
DISABLE
Designator
ENABLE
OPEN
ValidSymbol:
ValidSymbol
::= '-'? ( Letter | Digit )+
referenced by:
Identifier
PointIdentifier:
PointIdentifier
::= VARS
| CONS
| WRS
| ARS
| OUTS
| INS
| PRG
| GRP
| DMON
| AMON
| ARR
referenced by:
Designator
VARS:
VARS ::= 'VAR' UPTO128
referenced by:
PointIdentifier
OUTS:
OUTS ::= 'OUT' UPTO128
referenced by:
PointIdentifier
INS:
INS ::= 'IN' UPTO128
referenced by:
PointIdentifier
CONS:
CONS ::= 'CON' UPTO64
referenced by:
PointIdentifier
WRS:
WRS ::= 'WR' UPTO32
referenced by:
PointIdentifier
ARS:
ARS ::= 'AR' UPTO8
referenced by:
PointIdentifier
PRG:
PRG ::= 'PRG' UPTO128
referenced by:
CALL
PointIdentifier
GRP:
GRP ::= 'GRP' UPTO32
referenced by:
PointIdentifier
DMON:
DMON ::= 'DMON' UPTO128
referenced by:
PointIdentifier
AMON:
AMON ::= 'AMON' UPTO96
referenced by:
PointIdentifier
ARR:
ARR ::= 'AY' UPTO48
referenced by:
PointIdentifier
LocalVariable:
LocalVariable
::= Letter
referenced by:
Designator
Letter:
Letter ::= [A-Z]
referenced by:
Identifier
LocalVariable
NonCtlAsciiChar
ValidSymbol
PANEL:
PANEL ::= Ordinal
referenced by:
ALARMAT
PANELS
PANELS:
PANELS ::= PANEL ( Space PANEL )*
| 'ALL'
referenced by:
PRINTAT
ARG:
ARG ::= Designator
| Expression
referenced by:
CALL
Ordinal:
Ordinal ::= NonZeroDigit Digit*
referenced by:
LineNumber
PANEL
SYSPRG:
SYSPRG ::= UPTO16
referenced by:
RUNMACRO
WROFF
WRON
TABLENUMBER:
TABLENUMBER
::= UPTO5
referenced by:
TBL
TIMER:
TIMER ::= UPTO4
referenced by:
WROFF
WRON
UPTO128:
UPTO128 ::= NonZeroDigit Digit?
| '1' ( [0-1] Digit | '2' [0-8] )
referenced by:
DMON
INS
OUTS
PRG
VARS
UPTO96:
UPTO96 ::= NonZeroDigit
| [1-8] Digit
| '9' [0-6]
referenced by:
AMON
UPTO64:
UPTO64 ::= NonZeroDigit
| [1-5] Digit
| '6' [0-4]
referenced by:
CON
CONS
UPTO48:
UPTO48 ::= NonZeroDigit
| [1-3] Digit
| '4' [0-8]
referenced by:
ARR
UPTO32:
UPTO32 ::= NonZeroDigit
| [1-2] Digit
| '3' [0-2]
referenced by:
GRP
WRS
UPTO16:
UPTO16 ::= NonZeroDigit
| '1' [0-6]
referenced by:
SYSPRG
UPTO8:
UPTO8 ::= [1-8]
referenced by:
ARS
UPTO4:
UPTO4 ::= [1-4]
referenced by:
TIMER
UPTO5:
UPTO5 ::= [1-5]
referenced by:
TABLENUMBER
... generated by Railroad Diagram Generator