This file is indexed.

/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_*/