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 ::= <STRING_LITERAL> HexadecimalData
MultiIterationData ::= <NUMBER> "*" <STRING_LITERAL> HexadecimalData
CipherTest ::= <CIPHER> Identifier ( ( CipherProperties )? <DATA> ( CipherData )+ )+
CipherProperties ::= <PROPERTIES> ( <MODE> Identifier )? ( <PADDING> Identifier )? ( <IV> HexadecimalData )? ( ( AlgorithmSpecificProperty )+ )?
CipherData ::= TwoWayTestData
| SymmetricTestData
| SpeedTestData
TwoWayTestData ::= HexadecimalData HexadecimalData HexadecimalData
SymmetricTestData ::= HexadecimalData HexadecimalData <AUTO>
SpeedTestData ::= HexadecimalData HexadecimalData <SPEED>
AlgorithmSpecificProperty ::= <PROPERTY> "=" ( <NUMBER> | <STRING_LITERAL> )
Identifier ::= <ID>
HexadecimalData ::= <HEX_LITERAL>
IncludedTest ::= <INCLUDE> <STRING_LITERAL>