Annotation of parser3/src/main/pa_symbols.C, revision 1.10
1.1 moko 1: /** @file
2: Parser: static symbols cache implementation.
1.10 ! moko 3: Copyright (c) 2001-2020 Art. Lebedev Studio (http://www.artlebedev.com)
1.1 moko 4: */
5:
1.2 moko 6: #include "pa_symbols.h"
7: #include "pa_vstring.h"
1.1 moko 8:
1.10 ! moko 9: volatile const char * IDENT_PA_SYMBOLS_C="$Id: pa_symbols.C,v 1.9 2017/02/07 22:00:44 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.7 moko 18: const String Symbols::METHOD_SYMBOL("method");
1.8 moko 19: const String Symbols::NAME_SYMBOL("name");
1.7 moko 20:
1.4 moko 21: const String Symbols::STATIC_SYMBOL("static");
22: const String Symbols::DYNAMIC_SYMBOL("dynamic");
23:
24: const String Symbols::LOCALS_SYMBOL("locals");
25: const String Symbols::PARTIAL_SYMBOL("partial");
26:
27: const String Symbols::REM_SYMBOL("rem");
1.1 moko 28:
1.6 moko 29: const String Symbols::FIELDS_SYMBOL("fields");
30: const String Symbols::_DEFAULT_SYMBOL("_default");
1.3 moko 31:
32: #ifdef SYMBOLS_CACHING
33:
34: Symbols *symbols=0;
1.1 moko 35:
36: void Symbols::add(const String &astring){
37: put_dont_replace(astring,new VString(astring));
38: }
39:
1.3 moko 40: void Symbols::set(const String &astring){
41: put(astring,new VString(astring));
1.1 moko 42: }
43:
44: Symbols &Symbols::instance(){
1.3 moko 45: static Symbols singleton;
46: return singleton;
47: }
48:
49: void Symbols::init(){
50: symbols=&instance();
51:
1.6 moko 52: symbols->set(SELF_SYMBOL);
53: symbols->set(CALLER_SYMBOL);
54: symbols->set(RESULT_SYMBOL);
1.4 moko 55:
1.6 moko 56: symbols->set(CLASS_SYMBOL);
57: symbols->set(CLASS_NAME_SYMBOL);
1.5 moko 58:
1.7 moko 59: symbols->set(METHOD_SYMBOL);
1.8 moko 60: symbols->set(NAME_SYMBOL);
1.7 moko 61:
1.6 moko 62: symbols->set(STATIC_SYMBOL);
63: symbols->set(DYNAMIC_SYMBOL);
1.4 moko 64:
1.6 moko 65: symbols->set(LOCALS_SYMBOL);
66: symbols->set(PARTIAL_SYMBOL);
1.4 moko 67:
1.6 moko 68: symbols->set(REM_SYMBOL);
69:
70: symbols->set(FIELDS_SYMBOL);
71: symbols->set(_DEFAULT_SYMBOL);
1.1 moko 72: }
1.3 moko 73:
74: #endif // SYMBOLS_CACHING
E-mail: