/usr/include/gpt/SemanticWalker.hpp is in libgportugol-dev 1.1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | #ifndef INC_SemanticWalker_hpp_
#define INC_SemanticWalker_hpp_
#include <antlr/config.hpp>
#include "SemanticWalkerTokenTypes.hpp"
/* $ANTLR 2.7.7 (20120126): "semantic.g" -> "SemanticWalker.hpp"$ */
#include <antlr/TreeParser.hpp>
#include "GPTDisplay.hpp"
#include "PortugolAST.hpp"
#include "SemanticEval.hpp"
#include "SymbolTable.hpp"
#include <list>
using namespace std;
class CUSTOM_API SemanticWalker : public ANTLR_USE_NAMESPACE(antlr)TreeParser, public SemanticWalkerTokenTypes
{
public:
SemanticWalker(SymbolTable& st)
: evaluator(st) {
}
private:
SemanticEval evaluator;
public:
#if 0
// constructor creation turned of with 'noConstructor' option
SemanticWalker();
#endif
static void initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory );
int getNumTokens() const
{
return SemanticWalker::NUM_TOKENS;
}
const char* getTokenName( int type ) const
{
if( type > getNumTokens() ) return 0;
return SemanticWalker::tokenNames[type];
}
const char* const* getTokenNames() const
{
return SemanticWalker::tokenNames;
}
public: void algoritmo(RefPortugolAST _t);
public: void variaveis(RefPortugolAST _t);
public: void func_proto(RefPortugolAST _t);
public: void inicio(RefPortugolAST _t);
public: void func_decl(RefPortugolAST _t);
public: pair<int, list<RefPortugolAST> > primitivo(RefPortugolAST _t);
public: pair< pair<int, list<int> >, list<RefPortugolAST> > matriz(RefPortugolAST _t);
public: int tipo_prim(RefPortugolAST _t);
public: pair<int, list<int> > tipo_matriz(RefPortugolAST _t);
public: void stm(RefPortugolAST _t);
public: void stm_attr(RefPortugolAST _t);
public: ExpressionValue fcall(RefPortugolAST _t);
public: void stm_ret(RefPortugolAST _t);
public: void stm_se(RefPortugolAST _t);
public: void stm_enquanto(RefPortugolAST _t);
public: void stm_repita(RefPortugolAST _t);
public: void stm_para(RefPortugolAST _t);
public: ExpressionValue lvalue(RefPortugolAST _t);
public: ExpressionValue expr(RefPortugolAST _t);
public: void passo(RefPortugolAST _t);
public: ExpressionValue element(RefPortugolAST _t);
public: ExpressionValue literal(RefPortugolAST _t);
public: void ret_type(RefPortugolAST _t,
Funcao& f
);
public:
ANTLR_USE_NAMESPACE(antlr)RefAST getAST()
{
return ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST);
}
protected:
RefPortugolAST returnAST;
RefPortugolAST _retTree;
private:
static const char* tokenNames[];
#ifndef NO_STATIC_CONSTS
static const int NUM_TOKENS = 91;
#else
enum {
NUM_TOKENS = 91
};
#endif
static const unsigned long _tokenSet_0_data_[];
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_0;
static const unsigned long _tokenSet_1_data_[];
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_1;
};
#endif /*INC_SemanticWalker_hpp_*/
|