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