Manifest Declarations
<moduleHead> ::= .module .module <compName> .module extern <compName> <fileDecl> ::= .file <fileAttr> <compName> <fileEntry> .hash = ( <bytes> ) <fileEntry> .file <fileAttr> <compName> <fileEntry> <fileAttr> ::= /* EMPTY */ <fileAttr> nometadata <fileEntry> ::= /* EMPTY */ .entrypoint <assemblyHead> ::= .assembly <asmAttr> <compName> <asmAttr> ::= /* EMPTY */ <asmAttr> noappdomain <asmAttr> noprocess <asmAttr> nomachine <assemblyDecls> ::= /* EMPTY */ <assemblyDecls> <assemblyDecl> <assemblyDecl> ::= .hash algorithm <int32> <secDecl> <asmOrRefDecl> <asmOrRefDecl> ::= .publickey = ( <bytes> ) .ver <int32>:<int32>:<int32>:<int32> .locale <compQstring> .locale = ( <bytes> ) <customAttrDecl> <assemblyRefHead> ::= .assembly extern <compName> .assembly extern <compName> as <compName> <assemblyRefDecls> ::= /* EMPTY */ <assemblyRefDecls> <assemblyRefDecl> <assemblyRefDecl> ::= .hash = ( <bytes> ) <asmOrRefDecl> .publickeytoken = ( <bytes> ) <expTypeHead> ::= .class extern <exptAttr> <compName> <exptAttr> ::= /* EMPTY */ <exptAttr> private <exptAttr> public <exptAttr> nested public <exptAttr> nested private <exptAttr> nested family <exptAttr> nested assembly <exptAttr> nested famandassem <exptAttr> nested famorassem <expTypeDecls> ::= /* EMPTY */ <expTypeDecls> <expTypeDecl> <expTypeDecl> ::= .file <compName> .class extern <compName> .class <int32> <customAttrDecl> <manifestResHead> ::= .mresource <manresAttr> <compName> <manresAttr> ::= /* EMPTY */ <manresAttr> public <manresAttr> private <manifestResDecls> ::= /* EMPTY */ <manifestResDecls> <manifestResDecl> <manifestResDecl> ::= .file <compName> at <int32> .assembly extern <compName> <customAttrDecl>