-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGramErr.h
51 lines (32 loc) · 1.17 KB
/
GramErr.h
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
//----------------------------------------------------------------
#pragma once
//----------------------------------------------------------------
#include <iostream>
#include <string>
//----------------------------------------------------------------
#include "Macros.h"
//----------------------------------------------------------------
namespace Grammars {
//----------------------------------------------------------------
class Errors {
public:
// All the possible errors that can be caused
// using namespace Grammars
enum class ErrorType {
fileNotFound, nTermSymbolsError, duplicateTermSymbol,
nNonTermSymbolsError, duplicateNonTermSymbol,
initialSymbolError, nRulesError, rulesError
};
// Construct the error by providing the line and the type
// Use Errors::ErrorType to get the possible errors
Errors(std::string infile, int line, ErrorType error);
// What happened
std::string what() const;
private:
std::string filename;
int eLine;
ErrorType eType;
}; // of class Errors
//----------------------------------------------------------------
} // of namespace Grammars
//----------------------------------------------------------------