Annotation of parser3/src/main/pa_symbols.C, revision 1.5
1.1 moko 1: /** @file
2: Parser: static symbols cache implementation.
3: Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com)
4: */
5:
1.2 moko 6: #include "pa_symbols.h"
7: #include "pa_vstring.h"
1.1 moko 8:
1.5 ! moko 9: volatile const char * IDENT_PA_SYMBOLS_C="$Id: pa_symbols.C,v 1.4 2016/05/24 15:42:43 moko Exp $" IDENT_PA_SYMBOLS_H;
1.4 moko 10:
11: const String Symbols::SELF_SYMBOL("self");
12: const String Symbols::CALLER_SYMBOL("caller");
13: const String Symbols::RESULT_SYMBOL("result");
14:
1.5 ! moko 15: const String Symbols::CLASS_SYMBOL("CLASS");
! 16: const String Symbols::CLASS_NAME_SYMBOL("CLASS_NAME");
! 17:
1.4 moko 18: const String Symbols::STATIC_SYMBOL("static");
19: const String Symbols::DYNAMIC_SYMBOL("dynamic");
20:
21: const String Symbols::LOCALS_SYMBOL("locals");
22: const String Symbols::PARTIAL_SYMBOL("partial");
23:
24: const String Symbols::REM_SYMBOL("rem");
1.1 moko 25:
1.3 moko 26:
27: #ifdef SYMBOLS_CACHING
28:
29: Symbols *symbols=0;
1.1 moko 30:
31: void Symbols::add(const String &astring){
32: put_dont_replace(astring,new VString(astring));
33: }
34:
1.3 moko 35: void Symbols::set(const String &astring){
36: put(astring,new VString(astring));
1.1 moko 37: }
38:
39: Symbols &Symbols::instance(){
1.3 moko 40: static Symbols singleton;
41: return singleton;
42: }
43:
44: void Symbols::init(){
45: symbols=&instance();
46:
1.4 moko 47: symbols->add(SELF_SYMBOL);
48: symbols->add(CALLER_SYMBOL);
49: symbols->add(RESULT_SYMBOL);
50:
1.5 ! moko 51: symbols->add(CLASS_SYMBOL);
! 52: symbols->add(CLASS_NAME_SYMBOL);
! 53:
1.4 moko 54: symbols->add(STATIC_SYMBOL);
55: symbols->add(DYNAMIC_SYMBOL);
56:
57: symbols->add(LOCALS_SYMBOL);
58: symbols->add(PARTIAL_SYMBOL);
59:
60: symbols->add(REM_SYMBOL);
1.1 moko 61: }
1.3 moko 62:
63: #endif // SYMBOLS_CACHING
E-mail: