ProgramWithEOF:
ProgramWithEOF
::= Program EOF
no referencesProgram:
Program ::= Whitespaces? ( Expression ExpressionWithLeadingWS* Whitespaces? )?
referenced by:
Code
Label
LabelReset
List
Object
ProgramWithEOF
Expression:
Expression
::= NonWSSeparableExpression
| WSSeparableExpression
referenced by:
Program
ExpressionWithLeadingWS:
ExpressionWithLeadingWS
::= Whitespaces? NonWSSeparableExpression
| Whitespaces WSSeparableExpression
referenced by:
Program
WSSeparableExpression:
WSSeparableExpression
::= String
| Number
| Real
| Label
| LabelReset
| NameExpression
referenced by:
Expression
ExpressionWithLeadingWS
NonWSSeparableExpression:
NonWSSeparableExpression
::= Object
| List
| Code
| MemberNameExpression
| Comment
| ','
referenced by:
Expression
ExpressionWithLeadingWS
MemberNameExpression:
MemberNameExpression
::= NameMember
| NameReadMember
| NameWriteMember
referenced by:
NonWSSeparableExpression
NameExpression:
NameExpression
::= Name
| NameRead
| NameWrite
referenced by:
WSSeparableExpression
LabelReset:
LabelReset
::= Name ':!' Program ';'
referenced by:
WSSeparableExpression
Label:
Label ::= Name ':' Program ';'
referenced by:
WSSeparableExpression
Object:
Object ::= '{' Program '}'
referenced by:
NonWSSeparableExpression
List:
List ::= '(' Program ')'
referenced by:
NonWSSeparableExpression
Code:
Code ::= '[' Program ']'
referenced by:
NonWSSeparableExpression
EOF:
EOF ::= $
referenced by:
ProgramWithEOF
Comment:
Comment ::= '#' CommentContent*
referenced by:
NonWSSeparableExpression
CommentContent:
CommentContent
::= [^#x000A#x000D]
referenced by:
Comment
SpecialName:
SpecialName
::= '!'
| '@'
| '.'+
referenced by:
Name
Name:
Name ::= MemberName
| SpecialName
referenced by:
Label
LabelReset
NameExpression
NameRead
NameWrite
NameRead:
NameRead ::= '@' Name
referenced by:
NameExpression
NameWrite:
NameWrite
::= '!' Name
referenced by:
NameExpression
NameMember:
NameMember
::= '.' MemberName
referenced by:
MemberNameExpression
NameReadMember:
NameReadMember
::= '.' '@' MemberName
referenced by:
MemberNameExpression
NameWriteMember:
NameWriteMember
::= '.' '!' MemberName
referenced by:
MemberNameExpression
Letter:
Letter ::= [^+0123456789!@,.:;{}() #x2D#x0022#x0023#x005B#x005D#x0009#x000A#x000D]
referenced by:
MemberName
MemberName:
MemberName
::= Sign
| ( Letter | Sign ( Sign | Letter ) ) ( Letter | Digit | Sign )*
referenced by:
Name
NameMember
NameReadMember
NameWriteMember
Decimal:
Decimal ::= '.' Digit+
referenced by:
RealBody
Exponent:
Exponent ::= ( 'e' | 'E' ) DecNumber
referenced by:
RealBody
Real:
Real ::= Real32
| Real64
referenced by:
WSSeparableExpression
Real32:
Real32 ::= RealBody 'r32'
referenced by:
Real
Real64:
Real64 ::= RealBody 'r64'?
referenced by:
Real
RealBody:
RealBody ::= DecNumber ( Exponent | Decimal Exponent? )
referenced by:
Real32
Real64
Numberi8:
Numberi8 ::= NumberBody 'i8'
referenced by:
Number
Numberi16:
Numberi16
::= NumberBody 'i16'
referenced by:
Number
Numberi32:
Numberi32
::= NumberBody 'i32'?
referenced by:
Number
Numberi64:
Numberi64
::= NumberBody 'i64'
referenced by:
Number
Numberix:
Numberix ::= NumberBody 'ix'
referenced by:
Number
Numbern8:
Numbern8 ::= NumberBody 'n8'
referenced by:
Number
Numbern16:
Numbern16
::= NumberBody 'n16'
referenced by:
Number
Numbern32:
Numbern32
::= NumberBody 'n32'
referenced by:
Number
Numbern64:
Numbern64
::= NumberBody 'n64'
referenced by:
Number
Numbernx:
Numbernx ::= NumberBody 'nx'
referenced by:
Number
Number:
Number ::= Numberi8
| Numberi16
| Numberi32
| Numberi64
| Numberix
| Numbern8
| Numbern16
| Numbern32
| Numbern64
| Numbernx
referenced by:
WSSeparableExpression
String:
String ::= '"' ( '\\' | '\"' | [^"\] )* '"'
referenced by:
WSSeparableExpression
NumberBody:
NumberBody
::= DecNumber
| HexNumber
referenced by:
Numberi16
Numberi32
Numberi64
Numberi8
Numberix
Numbern16
Numbern32
Numbern64
Numbern8
Numbernx
DecNumber:
DecNumber
::= Sign? ( Digit | NZDigit Digit+ )
referenced by:
Exponent
NumberBody
RealBody
HexNumber:
HexNumber
::= '0x' HexDigit+
referenced by:
NumberBody
NZDigit:
NZDigit ::= [1-9]
referenced by:
DecNumber
Digit:
Digit ::= [0-9]
referenced by:
DecNumber
Decimal
MemberName
HexDigit:
HexDigit ::= [0-9a-fA-F]
referenced by:
HexNumber
Sign:
Sign ::= '-'
| '+'
referenced by:
DecNumber
MemberName
Whitespaces:
Whitespaces
::= [ #x0009#x000A#x000D]+
referenced by:
ExpressionWithLeadingWS
Program
... generated by Railroad Diagram Generator