Annotation of parser3/src/main/pa_symbols.C, revision 1.13
1.1 moko 1: /** @file
2: Parser: static symbols cache implementation.
1.12 moko 3: Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com)
1.11 moko 4: Authors: Konstantin Morshnev <moko@design.ru>
1.1 moko 5: */
6:
1.2 moko 7: #include "pa_symbols.h"
8: #include "pa_vstring.h"
1.1 moko 9:
1.13 ! moko 10: volatile const char * IDENT_PA_SYMBOLS_C="$Id: pa_symbols.C,v 1.12 2024/11/04 03:53:25 moko Exp $" IDENT_PA_SYMBOLS_H;
1.4 moko 11:
12: const String Symbols::SELF_SYMBOL("self");
13: const String Symbols::CALLER_SYMBOL("caller");
14: const String Symbols::RESULT_SYMBOL("result");
15:
1.5 moko 16: const String Symbols::CLASS_SYMBOL("CLASS");
17: const String Symbols::CLASS_NAME_SYMBOL("CLASS_NAME");
18:
1.7 moko 19: const String Symbols::METHOD_SYMBOL("method");
1.8 moko 20: const String Symbols::NAME_SYMBOL("name");
1.7 moko 21:
1.4 moko 22: const String Symbols::STATIC_SYMBOL("static");
23: const String Symbols::DYNAMIC_SYMBOL("dynamic");
24:
25: const String Symbols::LOCALS_SYMBOL("locals");
26: const String Symbols::PARTIAL_SYMBOL("partial");
27:
28: const String Symbols::REM_SYMBOL("rem");
1.1 moko 29:
1.6 moko 30: const String Symbols::FIELDS_SYMBOL("fields");
31: const String Symbols::_DEFAULT_SYMBOL("_default");
1.3 moko 32:
1.13 ! moko 33: const String Symbols::TABLES_SYMBOL("tables");
! 34: const String Symbols::FILES_SYMBOL("files");
! 35: const String Symbols::IMAP_SYMBOL("imap");
! 36: const String Symbols::ELEMENTS_SYMBOL("elements");
! 37:
1.3 moko 38: #ifdef SYMBOLS_CACHING
39:
40: Symbols *symbols=0;
1.1 moko 41:
42: void Symbols::add(const String &astring){
43: put_dont_replace(astring,new VString(astring));
44: }
45:
1.3 moko 46: void Symbols::set(const String &astring){
47: put(astring,new VString(astring));
1.1 moko 48: }
49:
50: Symbols &Symbols::instance(){
1.3 moko 51: static Symbols singleton;
52: return singleton;
53: }
54:
55: void Symbols::init(){
56: symbols=&instance();
57:
1.6 moko 58: symbols->set(SELF_SYMBOL);
59: symbols->set(CALLER_SYMBOL);
60: symbols->set(RESULT_SYMBOL);
1.4 moko 61:
1.6 moko 62: symbols->set(CLASS_SYMBOL);
63: symbols->set(CLASS_NAME_SYMBOL);
1.5 moko 64:
1.7 moko 65: symbols->set(METHOD_SYMBOL);
1.8 moko 66: symbols->set(NAME_SYMBOL);
1.7 moko 67:
1.6 moko 68: symbols->set(STATIC_SYMBOL);
69: symbols->set(DYNAMIC_SYMBOL);
1.4 moko 70:
1.6 moko 71: symbols->set(LOCALS_SYMBOL);
72: symbols->set(PARTIAL_SYMBOL);
1.4 moko 73:
1.6 moko 74: symbols->set(REM_SYMBOL);
75:
76: symbols->set(FIELDS_SYMBOL);
77: symbols->set(_DEFAULT_SYMBOL);
1.13 ! moko 78:
! 79: symbols->set(TABLES_SYMBOL);
! 80: symbols->set(FILES_SYMBOL);
! 81: symbols->set(IMAP_SYMBOL);
! 82: symbols->set(ELEMENTS_SYMBOL);
1.1 moko 83: }
1.3 moko 84:
85: #endif // SYMBOLS_CACHING
E-mail: