BNF for Maker.jj

NON-TERMINALS

Specification ::= ( TestModule )+ <EOF>
TestModule ::= MessageDigestTest
| CipherTest
| IncludedTest
MessageDigestTest ::= <MESSAGE_DIGEST> Identifier ( ( MessageDigestProperties )? <DATA> ( MessageDigestData )+ )+
MessageDigestProperties ::= <PROPERTIES> ( AlgorithmSpecificProperty )+
MessageDigestData ::= SingleIterationData
| MultiIterationData
SingleIterationData ::= HexOrASCIIData HexadecimalData
MultiIterationData ::= LongValue "*" HexOrASCIIData HexadecimalData
CipherTest ::= <CIPHER> Identifier ( ( CipherProperties )? <DATA> ( CipherData )+ )+
CipherProperties ::= <PROPERTIES> ( <MODE> Identifier )? ( <PADDING> Identifier )? ( <IV> HexadecimalData )? ( ( AlgorithmSpecificProperty )+ )?
CipherData ::= TwoWayTestData
| SymmetricTestData
| SpeedTestData
TwoWayTestData ::= HexadecimalData HexOrASCIIData HexadecimalData
SymmetricTestData ::= HexadecimalData HexOrASCIIData <AUTO>
SpeedTestData ::= HexadecimalData HexOrASCIIData <SPEED>
AlgorithmSpecificProperty ::= Identifier "=" ( IntegerValue | StringValue | HexadecimalData )
Identifier ::= <ID>
StringValue ::= <STRING_LITERAL>
IntegerValue ::= <NUMBER>
LongValue ::= <NUMBER>
HexadecimalData ::= <HEX_LITERAL>
HexOrASCIIData ::= ( HexadecimalData | StringValue )
IncludedTest ::= <INCLUDE> ( StringValue | Identifier )