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: