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: