IMPLEMENTATION MODULE YaflGClass;

FROM YaflClImplementation  IMPORT ClassImplementation;
FROM YaflGC                IMPORT YaflGC;
FROM YaflMethods           IMPORT MethodDeclaration;
FROM YaflType              IMPORT Type;
FROM YaflDeclarations      IMPORT SingleDataItem;
FROM YaflMetImplementation IMPORT MethodImplementation;
FROM YaflMetDefinition     IMPORT MethodDefinition;
FROM YaflParamClasses      IMPORT ClassFormal, 
                                  ClassActual;
FROM YaflPredefined        IMPORT ThisDataItem;
FROM List                  IMPORT List;
FROM YaflModules           IMPORT CompilationUnit;
FROM YaflIdentifiers       IMPORT Ident;
FROM YaflCfg               IMPORT CurrentSpot,
                                  YaflCfg;
FROM YaflNTList            IMPORT DeclList, 
                                  NTList, 
                                  MethodList;
FROM YaflPredefined        IMPORT PredefItems;
FROM Conversions           IMPORT IntConversions;
FROM YaflDictionary        IMPORT MethodReference;
IMPORT SYSTEM;

  CLASS ClassDeclCodeGenerator(ObjType IN ClassDeclaration, CtxType IN GcContext);
    INHERITS DeclarationCodeGenerator(ObjType, CtxType);
    
  END ClassDeclCodeGenerator;
   
---------------------------------------------------   

  CLASS DummyClDeclCodeGenerator(CtxType IN GcContext);
    INHERITS ClassDeclCodeGenerator(ClassDeclaration, CtxType);
     
  END DummyClDeclCodeGenerator;
  
---------------------------------------------------   

  CLASS VirtualClassDeclCodeGenerator(CtxType IN GcContext);
    INHERITS ClassDeclCodeGenerator(VirtualClassDecl, CtxType);
                        
  END VirtualClassDeclCodeGenerator;
   
---------------------------------------------------   
   
  CLASS ClassDefCodeGenerator(ObjType IN ClassDefinition, CtxType IN GcContext);
    INHERITS ClassDeclCodeGenerator(ObjType, CtxType);
     
  END ClassDefCodeGenerator;
  
---------------------------------------------------   

  CLASS InstClassDefCodeGenerator(CtxType IN GcContext);
    INHERITS ClassDefCodeGenerator(InstClassDefinition, CtxType);
     
  END InstClassDefCodeGenerator;
  
---------------------------------------------------   
   
  CLASS PredefClassCodeGenerator(CtxType IN GcContext);
    INHERITS ClassDefCodeGenerator(PredefClass, CtxType);
     
  END PredefClassCodeGenerator;
  
---------------------------------------------------   

  CLASS ClassImplCodeGenerator(CtxType IN GcContext);
    INHERITS ClassDeclCodeGenerator(ClassImplementation, CtxType);

  END ClassImplCodeGenerator; 
           
   
END YaflGClass;



