-
Notifications
You must be signed in to change notification settings - Fork 0
/
err.h
52 lines (39 loc) · 1.83 KB
/
err.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
52
#ifndef IJF_ERR_H
#define IJF_ERR_H
#include <stdio.h>
typedef enum ErrCode {
LEX_ERR = 1, // 1 - chyba v programu v rámci lexikální analýzy
// (chybná struktura aktuálního lexému).
SYN_ERR,
/* 2 - chyba v programu v rámci syntaktické analýzy
* (chybná syntaxe struktury programu).*/
PROGRAM_SEM_ERR,
/* 3 - sémantická chyba v programu – nedefinovaná funkce/promenná,
* pokus o redefinici funkce/promenné, atd.*/
TYPE_COMP_SEM_ERR,
/* 4 - sémantická chyba typové kompatibility v aritmetických,
* retezcových a relacních výrazech, príp. špatný pocet
* ci typ parametru u volání funkce.*/
VAR_TYPE_ERR,
/* 5 - chyba pri odvozování datového typu promenné.*/
OTHER_SEM_ERR,
/* 6 - ostatní sémantické chyby*/
NUM_ERR,
/* 7 - behová chyba pri nacítání císelné hodnoty ze vstupu.*/
NONINIT_VAR_ERR,
/* 8 - behová chyba pri práci s neinicializovanou promennou.*/
ZERO_DIV_ERR,
/* 9 - behová chyba delení nulou.*/
OTHER_RUN_ERR,
/* 10 - ostatní behové chyby.*/
INTER_ERR = 99
/* 99 - interní chyba interpretu tj. neovlivnená vstupním programem
* (napr. chyba alokace pameti, chyba pri otvírání souboru
* s rídicím programem, špatné parametry príkazové rádky atd.)*/
}tErrCode;
int handle_err(tErrCode code);
void errorMessage_syntax(const char *message );
void errorMessage_lexical(const char *message );
void errorMessage_internal(const char *message );
void errorMessage_semantic(const char *message );
#endif //IJF_ERR_H