An input to ilasm is a sequence of top-level declarations, defined as follows:
ILFile ::= | Reference |
---|---|
Decl* | §II.5.10 |
The complete grammar for a top-level declaration is shown below. The reference subclauses contain details of the corresponding productions of this grammar. These productions begin with a name having a '.'
prefix. Such a name is referred to as a directive.
Decl ::= | Reference |
---|---|
.assembly DottedName '{' AsmDecl* '}' |
§II.6.2 |
| .assembly extern DottedName '{' AsmRefDecl* '}' |
§II.6.3 |
| .class ClassHeader '{' ClassMember* '}' |
§II.10 |
| .class extern ExportAttr DottedName '{' ExternClassDecl* '}' |
§II.6.7 |
| .corflags Int32 |
§II.6.2 |
| .custom CustomDecl |
§II.21 |
| .data DataDecl |
§II.16.3.1 |
| .field FieldDecl |
§II.16 |
| .file [ nometadata ] Filename .hash '=' '(' Bytes ')' [ .entrypoint ] |
§II.6.2.3 |
| .method MethodHeader '{' MethodBodyItem* '}' |
§II.15 |
| .module [ Filename ] |
§II.6.4 |
| .module extern Filename |
§II.6.5 |
| .mresource [ public | private ] DottedName '{' ManResDecl* '}' |
§II.6.2.2 |
| .subsystem Int32 |
§II.6.2 |
| .vtfixup VTFixupDecl |
§II.15.5.1 |
| ExternSourceDecl | §II.5.7 |
| SecurityDecl | §II.20 |