00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 #ifdef DELTA_COMPILER
00025 
00026 
00027 
00028 
00029 class OldCodeGenerator: public NodeVisitor {
00030  public:
00031   
00032   void beginOfBasicBlock(Node* node);
00033   void endOfBasicBlock(Node* node);
00034   
00035  public:
00036   
00037   void beginOfNode(Node* node);
00038   void endOfNode(Node* node);
00039 
00040  public:
00041   
00042   void aPrologueNode(PrologueNode* node);
00043 
00044   void aLoadIntNode(LoadIntNode* node);
00045   void aLoadOffsetNode(LoadOffsetNode* node);
00046   void aLoadUplevelNode(LoadUplevelNode* node);
00047 
00048   void anAssignNode(AssignNode* node);
00049   void aStoreOffsetNode(StoreOffsetNode* node);
00050   void aStoreUplevelNode(StoreUplevelNode* node);
00051   
00052   void anArithRRNode(ArithRRNode* node);
00053   void aFloatArithRRNode(FloatArithRRNode* node);
00054   void aFloatUnaryArithNode(FloatUnaryArithNode* node);
00055   void anArithRCNode(ArithRCNode* node);
00056   void aTArithRRNode(TArithRRNode* node);
00057   
00058   void aContextCreateNode(ContextCreateNode* node);
00059   void aContextInitNode(ContextInitNode* node);
00060   void aContextZapNode(ContextZapNode* node);
00061 
00062   void aBlockCreateNode(BlockCreateNode* node);
00063   void aBlockMaterializeNode(BlockMaterializeNode* node);
00064   
00065   void aSendNode(SendNode* node);
00066   void aPrimNode(PrimNode* node);
00067   void aDLLNode(DLLNode* node);
00068 
00069   void aLoopHeaderNode(LoopHeaderNode* node);
00070 
00071   void aReturnNode(ReturnNode* node);
00072   void aNLRSetupNode(NLRSetupNode* node);
00073   void anInlinedReturnNode(InlinedReturnNode* node);
00074   void aNLRContinuationNode(NLRContinuationNode* node);
00075   
00076   void aBranchNode(BranchNode* node);
00077   void aTypeTestNode(TypeTestNode* node);
00078   void aNLRTestNode(NLRTestNode* node);
00079   void aMergeNode(MergeNode* node);
00080   
00081   void anArrayAtNode(ArrayAtNode* node);
00082   void anArrayAtPutNode(ArrayAtPutNode* node);
00083 
00084   void anInlinedPrimitiveNode(InlinedPrimitiveNode* node);
00085   void anUncommonNode(UncommonNode* node);
00086   void aFixedCodeNode(FixedCodeNode* node);
00087 
00088   void aNopNode(NopNode* node);
00089   void aCommentNode(CommentNode* node);
00090 };
00091 
00092 #endif