Annotation of parser3/src/types/pa_venv.h, revision 1.6
1.2 paf 1: /*
2: Parser
3: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
4: Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
5:
1.6 ! paf 6: $Id: pa_venv.h,v 1.5 2001/03/13 14:11:08 paf Exp $
1.2 paf 7: */
8:
9: #ifndef PA_VENV_H
10: #define PA_VENV_H
11:
1.3 paf 12: #include "pa_vstateless_class.h"
13: #include "pa_string.h"
14: #include "_env.h"
1.5 paf 15: #include "pa_common.h"
1.2 paf 16:
1.3 paf 17: class VEnv : public VStateless_class {
1.2 paf 18: public: // Value
19:
20: // all: for error reporting after fail(), etc
21: const char *type() const { return "env"; }
22:
23: // env: CLASS,BASE,method,field
24: Value *get_element(const String& aname) {
25: // $CLASS,$BASE,$method
1.3 paf 26: if(Value *result=VStateless_class::get_element(aname))
1.2 paf 27: return result;
28:
1.5 paf 29: // getenv
1.3 paf 30: String& string=*NEW String(pool());
1.5 paf 31: string.APPEND_TAINTED(getenv(aname.cstr()), 0, "environment", 0);
1.3 paf 32: return NEW VString(string);
1.2 paf 33: }
34:
35: public: // usage
36:
1.6 ! paf 37: VEnv(Pool& apool) : VStateless_class(apool, env_base_class) {
1.2 paf 38: }
39:
40: };
41:
42: #endif
E-mail: