Annotation of parser3/src/main/pa_symbols.C, revision 1.4

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.4     ! moko        9: volatile const char * IDENT_PA_SYMBOLS_C="$Id: pa_symbols.C,v 1.3 2016/05/24 14:28:24 moko Exp $" IDENT_PA_SYMBOLS_H;
        !            10: 
        !            11: const String Symbols::SELF_SYMBOL("self");
        !            12: const String Symbols::CALLER_SYMBOL("caller");
        !            13: const String Symbols::RESULT_SYMBOL("result");
        !            14: 
        !            15: const String Symbols::STATIC_SYMBOL("static");
        !            16: const String Symbols::DYNAMIC_SYMBOL("dynamic");
        !            17: 
        !            18: const String Symbols::LOCALS_SYMBOL("locals");
        !            19: const String Symbols::PARTIAL_SYMBOL("partial");
        !            20: 
        !            21: const String Symbols::REM_SYMBOL("rem");
1.1       moko       22: 
1.3       moko       23: 
                     24: #ifdef SYMBOLS_CACHING
                     25: 
                     26: Symbols *symbols=0;
1.1       moko       27: 
                     28: void Symbols::add(const String &astring){
                     29:        put_dont_replace(astring,new VString(astring));
                     30: }
                     31: 
1.3       moko       32: void Symbols::set(const String &astring){
                     33:        put(astring,new VString(astring));
1.1       moko       34: }
                     35: 
                     36: Symbols &Symbols::instance(){
1.3       moko       37:        static Symbols singleton;
                     38:        return singleton;
                     39: }
                     40: 
                     41: void Symbols::init(){
                     42:        symbols=&instance();
                     43: 
1.4     ! moko       44:        symbols->add(SELF_SYMBOL);
        !            45:        symbols->add(CALLER_SYMBOL);
        !            46:        symbols->add(RESULT_SYMBOL);
        !            47: 
        !            48:        symbols->add(STATIC_SYMBOL);
        !            49:        symbols->add(DYNAMIC_SYMBOL);
        !            50: 
        !            51:        symbols->add(LOCALS_SYMBOL);
        !            52:        symbols->add(PARTIAL_SYMBOL);
        !            53: 
        !            54:        symbols->add(REM_SYMBOL);
1.1       moko       55: }
1.3       moko       56: 
                     57: #endif // SYMBOLS_CACHING

E-mail: