-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexpression.h
More file actions
73 lines (54 loc) · 1.33 KB
/
expression.h
File metadata and controls
73 lines (54 loc) · 1.33 KB
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
/********************************************************************/
/*Projekt:Implementace interpretu imperativního jazyka IFJ16 */
/*Jména řešitelů: Sebastián Kisela, Ondrej Svoreň, Daniel Rudík, */
/* Patrik Roman, Martin Chudý */
/*Loginy řešitelů: xkisel02, xsvore01, xrudik00, xroman10, xchudy04 */
/********************************************************************/
#ifndef EXPRESSION_H
#define EXPRESSION_H
#include "defs.h"
#include "lex.h"
#include "parser.h"
// #include "stack.h"
// #include "ial.h"
#define TABLESIZE 17
extern char predence_table[TABLESIZE][TABLESIZE];
typedef struct{
int data;
void *ptr;
}TIData;
typedef struct{
TIData *data[1000];
int top;
}TIStack;
void expression(TVariable *var);
TVariable *generate_var();
int isFunctionCall();
int isFunctionFullNameCall();
int isFullNameVar();
void finish_expression();
enum{
OP_PLUS,//0
OP_MINUS,//1
OP_MUL,//2
OP_DIV,//3
OP_LESS,//4
OP_LEQUAL,//5
OP_GREATER,//6
OP_GREQUAL,//7
OP_EQUAL,//8
OP_NOTEQUAL,//9
OP_LROUND,//10
OP_RROUND,//11
OP_FUNC,//12
OP_I,//13
OP_COMA,//14
OP_DOLAR,//15
OP_NONTERM,//16
R_LESS,
SIGN_LESS,//17
SIGN_GREATER,//18
SIGN_EQUALS,//19
SIGN_FAIL,//20
};
#endif