Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs/ilasm
diff options
context:
space:
mode:
authorAlexander Köplinger <alex.koeplinger@outlook.com>2015-08-16 18:58:53 +0300
committerAlexander Köplinger <alex.koeplinger@outlook.com>2015-08-16 18:59:36 +0300
commitc8d474bef3dddd73e87e8a4144134bd6fbbaaa68 (patch)
treea8c2d87d264b66b2a960f67546c5c936c5f358e8 /mcs/ilasm
parente71bf630bcfcac6f1016047c534c2b140c880bea (diff)
[ilasm] Add stubs for the "legacy library" keyword in .assembly
Example IL: ".assembly extern legacy library mscorlib {}" ".assembly legacy library test {}"
Diffstat (limited to 'mcs/ilasm')
-rw-r--r--mcs/ilasm/parser/ILParser.jay22
-rw-r--r--mcs/ilasm/scanner/ILTables.cs2
2 files changed, 16 insertions, 8 deletions
diff --git a/mcs/ilasm/parser/ILParser.jay b/mcs/ilasm/parser/ILParser.jay
index 8f994051c9a..7001b0cca0b 100644
--- a/mcs/ilasm/parser/ILParser.jay
+++ b/mcs/ilasm/parser/ILParser.jay
@@ -480,6 +480,8 @@ namespace Mono.ILASM {
%token K_OFF
%token K_FORWARDER
%token K_CHARMAPERROR
+%token K_LEGACY
+%token K_LIBRARY
/* end generated */
@@ -3149,9 +3151,9 @@ assembly_all : assembly_head OPEN_BRACE assembly_decls CLOSE_BRACE
}
;
-assembly_head : D_ASSEMBLY asm_attr slashed_name
+assembly_head : D_ASSEMBLY legacylibrary_opt asm_attr slashed_name
{
- codegen.SetThisAssembly ((string) $3, (PEAPI.AssemAttr) $2);
+ codegen.SetThisAssembly ((string) $4, (PEAPI.AssemAttr) $3);
codegen.CurrentCustomAttrTarget = codegen.ThisAssembly;
codegen.CurrentDeclSecurityTarget = codegen.ThisAssembly;
}
@@ -3211,19 +3213,19 @@ asm_or_ref_decl : D_PUBLICKEY ASSIGN bytes_list
assemblyref_all : assemblyref_head OPEN_BRACE assemblyref_decls CLOSE_BRACE
;
-assemblyref_head : D_ASSEMBLY K_EXTERN asm_attr slashed_name
+assemblyref_head : D_ASSEMBLY K_EXTERN legacylibrary_opt asm_attr slashed_name
{
System.Reflection.AssemblyName asmb_name =
new System.Reflection.AssemblyName ();
- asmb_name.Name = (string) $4;
- codegen.BeginAssemblyRef ((string) $4, asmb_name, (PEAPI.AssemAttr) $3);
+ asmb_name.Name = (string) $5;
+ codegen.BeginAssemblyRef ((string) $5, asmb_name, (PEAPI.AssemAttr) $4);
}
- | D_ASSEMBLY K_EXTERN asm_attr slashed_name K_AS slashed_name
+ | D_ASSEMBLY K_EXTERN legacylibrary_opt asm_attr slashed_name K_AS slashed_name
{
System.Reflection.AssemblyName asmb_name =
new System.Reflection.AssemblyName ();
- asmb_name.Name = (string) $4;
- codegen.BeginAssemblyRef ((string) $6, asmb_name, (PEAPI.AssemAttr) $3);
+ asmb_name.Name = (string) $5;
+ codegen.BeginAssemblyRef ((string) $7, asmb_name, (PEAPI.AssemAttr) $4);
}
;
@@ -3424,6 +3426,10 @@ semicolon_opt
| SEMICOLON
;
+legacylibrary_opt : /* empty */
+ | K_LEGACY K_LIBRARY /* MS ilasm has these keywords for backwards compatibility, we just ignore them */
+ ;
+
%%
}
diff --git a/mcs/ilasm/scanner/ILTables.cs b/mcs/ilasm/scanner/ILTables.cs
index 628c9b44367..bc9c7dc9ab8 100644
--- a/mcs/ilasm/scanner/ILTables.cs
+++ b/mcs/ilasm/scanner/ILTables.cs
@@ -317,6 +317,8 @@ namespace Mono.ILASM {
keywords ["off"] = new ILToken (Token.K_OFF, "off");
keywords ["strict"] = new ILToken (Token.K_STRICT, "strict");
keywords ["forwarder"] = new ILToken (Token.K_FORWARDER, "forwarder");
+ keywords ["legacy"] = new ILToken (Token.K_LEGACY, "legacy");
+ keywords ["library"] = new ILToken (Token.K_LIBRARY, "library");
return keywords;
}