File indexing completed on 2024-05-19 08:27:45
0001 #ifndef COOL_DECODER_H 0002 #define COOL_DECODER_H 0003 0004 #include "coolparser.h" 0005 0006 #include <string> 0007 #include <cstdlib> 0008 0009 namespace cool 0010 { 0011 0012 class decoder 0013 { 0014 KDevPG::TokenStream *_M_token_stream; 0015 Parser * p; 0016 public: 0017 decoder(KDevPG::TokenStream *token_stream, Parser * parser) 0018 : _M_token_stream(token_stream), p(parser) {} 0019 0020 int decode_op(std::size_t index) const 0021 { 0022 Parser::Token const &tk = _M_token_stream->at(index); 0023 return tk.kind; 0024 } 0025 0026 QString decode_id(std::size_t index) const 0027 { 0028 Parser::Token const &tk = _M_token_stream->at(index); 0029 return p->tokenText(tk.begin,tk.end); 0030 } 0031 0032 long decode_number(std::size_t index) const 0033 { 0034 Parser::Token const &tk = _M_token_stream->at(index); 0035 return p->tokenText(tk.begin,tk.end).toLong(); 0036 } 0037 }; 0038 0039 } // end of namespace cool 0040 0041 #endif // COOL_DECODER_H