BNF for DSigParser.jj

NON-TERMINALS

sigExt ::= AttributionInfo ( Signature )*
AttributionInfo ::= <L_PAREN> <DQUOTE> <ATTRIB_INFO> <DQUOTE> ( Certificate )* <R_PAREN>
Certificate ::= <L_PAREN> CertificateFamilyID CertificateData <R_PAREN>
CertificateFamilyID ::= quotedURL
CertificateData ::= quotedBase64String
| quotedURL
Signature ::= <L_PAREN> <DQUOTE> <SIGNATURE> <DQUOTE> SignatureSuiteID ( SigData )+ <R_PAREN>
SignatureSuiteID ::= quotedURL
SigData ::= <L_PAREN> SigTokenString SigInfo <R_PAREN>
SigTokenString ::= quotedName
SigInfo ::= SigInfoString
| SigInfoVector
SigInfoString ::= ( quotedISOdate | quotedBase64String | quotedURL | quotedName | number )
SigInfoVector ::= SigData
| ( <L_PAREN> ( SigInfo )+ <R_PAREN> )
quotedURL ::= <DQUOTE> URL <DQUOTE>
URL ::= ( urlchar )+
urlchar ::= ( <DOT> | <DOLLAR> | <COMMA> | <SEMI> | <COLON> | <AMP> | <EQUAL> | <QUES> | <BANG> | <STAR> | <TILDE> | <ATSIGN> | <POUND> | <USCORE> | <L_PAREN> | <R_PAREN> | <SLASH> | alphaNumPM | escape | reservedString )
alphaNumPM ::= ( alpha | sign )
| <DIGIT>
alpha ::= ( <LOWALPHA> | <HIGHALPHA> )
sign ::= ( <PLUS> | <MINUS> )
escape ::= ( <PERCENT> hex hex )
hex ::= ( <DIGIT> | <LOWALPHA> | <HIGHALPHA> )
reservedString ::= ( <ATTRIB_INFO> | <SIGNATURE> )
number ::= ( sign )? unsignedint ( <DOT> ( unsignedint )? )?
unsignedint ::= ( <DIGIT> )+
quotedBase64String ::= <DQUOTE> ( base64char )* <DQUOTE>
base64char ::= ( <HIGHALPHA> | <LOWALPHA> | <DIGIT> | <PLUS> | <SLASH> | <EQUAL> )
quotedISOdate ::= <DQUOTE> ISOyear ( <DOT> | <MINUS> ) ISOmonth ( <DOT> | <MINUS> ) ISOday ( <HIGHALPHA> | <LOWALPHA> ) ISOhour <COLON> ISOminute ( <COLON> ISOsecond ( <DOT> ISOdecimal )? )? sign ISOtimezone <DQUOTE>
ISOyear ::= <DIGIT> <DIGIT> <DIGIT> <DIGIT>
ISOmonth ::= <DIGIT> <DIGIT>
ISOday ::= <DIGIT> <DIGIT>
ISOhour ::= <DIGIT> <DIGIT>
ISOminute ::= <DIGIT> <DIGIT>
ISOsecond ::= <DIGIT> <DIGIT>
ISOdecimal ::= ( <DIGIT> )+
ISOtimezone ::= <DIGIT> <DIGIT> <DIGIT> <DIGIT>
quotedName ::= <DQUOTE> ( urlchar )+ <DQUOTE>
resInfo ::= ( resinfoData )+
resinfoData ::= <L_PAREN> HashAlogID resourceHash ( hashDate )? <R_PAREN>
HashAlogID ::= quotedURL
resourceHash ::= quotedBase64String
hashDate ::= quotedISOdate