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); } } }
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); } } }