Annotation of parser3/src/main/pa_symbols.C, revision 1.6
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.6 ! moko 9: volatile const char * IDENT_PA_SYMBOLS_C="$Id: pa_symbols.C,v 1.5 2016/05/24 16:38:40 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.6 ! moko 26: const String Symbols::FIELDS_SYMBOL("fields");
! 27: const String Symbols::_DEFAULT_SYMBOL("_default");
1.3 moko 28:
29: #ifdef SYMBOLS_CACHING
30:
31: Symbols *symbols=0;
1.1 moko 32:
33: void Symbols::add(const String &astring){
34: put_dont_replace(astring,new VString(astring));
35: }
36:
1.3 moko 37: void Symbols::set(const String &astring){
38: put(astring,new VString(astring));
1.1 moko 39: }
40:
41: Symbols &Symbols::instance(){
1.3 moko 42: static Symbols singleton;
43: return singleton;
44: }
45:
46: void Symbols::init(){
47: symbols=&instance();
48:
1.6 ! moko 49: symbols->set(SELF_SYMBOL);
! 50: symbols->set(CALLER_SYMBOL);
! 51: symbols->set(RESULT_SYMBOL);
1.4 moko 52:
1.6 ! moko 53: symbols->set(CLASS_SYMBOL);
! 54: symbols->set(CLASS_NAME_SYMBOL);
1.5 moko 55:
1.6 ! moko 56: symbols->set(STATIC_SYMBOL);
! 57: symbols->set(DYNAMIC_SYMBOL);
1.4 moko 58:
1.6 ! moko 59: symbols->set(LOCALS_SYMBOL);
! 60: symbols->set(PARTIAL_SYMBOL);
1.4 moko 61:
1.6 ! moko 62: symbols->set(REM_SYMBOL);
! 63:
! 64: symbols->set(FIELDS_SYMBOL);
! 65: symbols->set(_DEFAULT_SYMBOL);
1.1 moko 66: }
1.3 moko 67:
68: #endif // SYMBOLS_CACHING
E-mail: