-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patherrorHandler.h
More file actions
41 lines (40 loc) · 990 Bytes
/
errorHandler.h
File metadata and controls
41 lines (40 loc) · 990 Bytes
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
#pragma once
#include<map>
#include<string>
#include<vector>
#include<tuple>
#include<algorithm>
#include "outputHandler.h"
using namespace std;
class errorHandler
{
public:
errorHandler(bool mode,string targetfile);
enum type {
illegalSymbolOrLexicalInconformity,
nameRedefinition,
undefinedName,
numberOfArgumentsNotMatch,
typeOfArgumentsNotMatch,
illegalTypesInCondition,
functionWithoutReturnValueMismatch,
functionWithReturnValueMismatchOrLose,
indexOfArrayCanOnlyBeIntegerExpresion,
cannotChangeValueOfConstant,
shouldBeSemicolon,
shouldBeRparent,
shouldBeRbrack,
loseWhileIn_DoWhile,
constantCanOnlyBeFollowedByIntegerOrCharacter
};
void newError(int row,int col,type T);
void output();
private:
bool mode;//true while judge
static bool cmp(tuple<int, int, string> a, tuple<int, int, string> b);
map<type, string> naiveHandler;
vector<tuple<int,int,string>> errorsList;
vector<string> outputList;
string targetfile;
void initNaiveMap();
};