Annotation of parser3/src/types/pa_valiased.C, revision 1.7

1.2       paf         1: /** @file
                      2:        Parser: aliased class.
                      3: 
1.1       paf         4:        Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
1.2       paf         5: 
1.1       paf         6:        Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
                      7: 
1.7     ! paf         8:        $Id: pa_valiased.C,v 1.6 2001/04/02 16:00:16 paf Exp $
1.1       paf         9: */
                     10: 
                     11: #include "pa_valiased.h"
                     12: #include "pa_vstateless_class.h"
                     13: 
1.4       paf        14: /**
                     15:        uses VAliased::get_class_alias(), which default returns fclass_alias,
                     16:        but for only-dynamic classses it returns 0.
                     17: */
1.1       paf        18: Value *VAliased::get_element(const String& aname) {
                     19:        // $CLASS=my class=myself
1.4       paf        20:        if(aname==CLASS_NAME) {
1.6       paf        21:                if(hide_class())
1.5       paf        22:                        bark("(%s) has no "CLASS_NAME" element");
1.4       paf        23:                else
1.5       paf        24:                        return fclass_alias;                    
1.4       paf        25:        }
                     26: 
1.1       paf        27:        // $BASE=my parent
1.3       paf        28:        if(aname==BASE_NAME) {
1.6       paf        29:                if(hide_class()) 
1.5       paf        30:                        bark("%s has no "BASE_NAME" element");
                     31:                else {
1.7     ! paf        32:                        if(Value *result=fclass_alias->base())
1.4       paf        33:                                return result;
                     34:                        else
                     35:                                THROW(0, 0,
1.5       paf        36:                                        &aname,
                     37:                                        "undefined");
                     38:                }
1.3       paf        39:        }
1.4       paf        40:        
1.1       paf        41:        return 0;
                     42: }

E-mail: