Spectra
formulaAnalyser.h
1 
8 #ifndef DP_FORMULAANALYSER_H
9 #define DP_FORMULAANALYSER_H
10 
11 #include <string>
12 #include <set>
13 #include <map>
14 #include <vector>
15 #include <stack>
16 #include <climits>
17 #include <fstream>
18 #include <iostream>
19 #include <algorithm>
20 #include <regex>
21 #include "formula.h"
22 
23 
30 private:
31  std::set<std::string> varNames; /*< All names of variables appearing in parsed formulae */
32 
33  std::vector<std::string> varDefinitions;
34 
35  std::vector<std::string> srcList;
36 
37  std::vector<formula> formulae; /*< All parsed formulae divided into subformulae.
38  *< Together building a tree given by ids in the 'operands' list*/
39 
40  std::vector<std::string> contents; /*< String representation of each formula from previous list */
41 
42  int maxChildCnt;
43  bool addedRoot;
44 
45 public:
53  bool parseFormula(std::string filename);
54 
64  bool finalizeFormulaeParsing(formula *currentFormula, std::stack<formula> &formulaStack,
65  std::vector<int> &activeFormulae);
66 
79  bool generateAtom(std::string &word, int &nextId, formula *&currentFormula,
80  std::stack<formula> &formulaStack, std::vector<int> &activeFormulae, int line,
81  int column, std::string &filename);
82 
92  bool finalizeCurrentFormula(formula *currentFormula, std::stack<formula> *formulaStack,
93  std::vector<int> *activeFormulae);
94 
106  bool addNewFormula(std::stack<formula> &formulaStack, std::vector<int> &activeFormulae, int &nextId,
107  formula *&currentFormula);
108 
109 
116  OpType decodeType(const std::string &op);
117 
124  void noteVar(std::string name);
125 
134  int getIndexOfVarName(std::string name);
135 
136  std::vector<formula> getFormulae();
137 
138  std::set<std::string> getVarNames();
139 
140  unsigned getFormulaeCnt();
141 
142  std::vector<std::string> getVarDefinitions();
143 
144  std::vector<std::string> getFormulaeContents();
145 
146 
147  int getMaxChildCnt() const;
148 
149  std::vector<std::string> getSrcList();
150 };
151 
152 
153 #endif //DP_FORMULAANALYSER_H
bool finalizeFormulaeParsing(formula *currentFormula, std::stack< formula > &formulaStack, std::vector< int > &activeFormulae)
Definition: formulaAnalyser.cpp:293
void noteVar(std::string name)
Definition: formulaAnalyser.cpp:456
Definition: formulaAnalyser.h:29
bool addNewFormula(std::stack< formula > &formulaStack, std::vector< int > &activeFormulae, int &nextId, formula *&currentFormula)
Definition: formulaAnalyser.cpp:378
bool finalizeCurrentFormula(formula *currentFormula, std::stack< formula > *formulaStack, std::vector< int > *activeFormulae)
Definition: formulaAnalyser.cpp:351
int getIndexOfVarName(std::string name)
Definition: formulaAnalyser.cpp:476
OpType decodeType(const std::string &op)
Definition: formulaAnalyser.cpp:417
Definition: formula.h:59
bool generateAtom(std::string &word, int &nextId, formula *&currentFormula, std::stack< formula > &formulaStack, std::vector< int > &activeFormulae, int line, int column, std::string &filename)
Definition: formulaAnalyser.cpp:326
bool parseFormula(std::string filename)
Definition: formulaAnalyser.cpp:17