Esempio n. 1
0
 private static void EmitGlobalIdentifierDeclaration(GlobalIdentifierDeclaration declaration, ILGenerator constructorIL)
 {
     foreach (IdentifierExpression identifier in declaration.Declaration.DeclaringIdentifiers)
     {
         FieldInfo field = Class.DefineField(identifier.Name, identifier.Type.GetEquivalence(), FieldAttributes.Private | FieldAttributes.Static);
         Fields.Add(field);
         if (declaration.Declaration.AssingningExpression != null)
         {
             EmitExpression(declaration.Declaration.AssingningExpression.AdressableExpression, constructorIL);
             constructorIL.Emit(OpCodes.Stsfld, field);
         }
     }
 }
Esempio n. 2
0
 public static void ResolveGlobalIdentifierDeclaration(GlobalIdentifierDeclaration declaration)
 {
     if (declaration.Declaration.AssingningExpression != null)
     {
         ResolveAssignmentStatement(declaration.Declaration.AssingningExpression, GlobalTable.Table);
     }
     else
     {
         foreach (IdentifierExpression identifier in declaration.Declaration.DeclaringIdentifiers)
         {
             ResolveIdentifierExpression(identifier, GlobalTable.Table, null);
         }
     }
 }