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: