This repository has been archived by the owner on Feb 1, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathexpr_list.h
64 lines (53 loc) · 2.04 KB
/
expr_list.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
53
54
55
56
57
58
59
60
61
62
63
/**
* Predmet: IFJ / IAL
* Projekt: Implementace interpretu imperativniho jazyka IFJ13
* Tym: 099
* Varianta: a/2/I
* Soubor: expr_list.h
* Autori: Vlcek Michael <[email protected]>
* Svacek Radim <[email protected]>
* Blanco Roman <[email protected]>
* Micka Vojtech <[email protected]>
* Wolfert Richard <[email protected]>
*/
#ifndef EXPR_LIST_H_INCLUDED
#define EXPR_LIST_H_INCLUDED
#include "ial.h"
#include "scanner.h"
#include <stdio.h>
#include <stdlib.h>
#define FALSE 0
#define TRUE 1
extern int errflg;
extern int solved;
typedef struct tDLElem { /* prvek dvouosměrně vázaného seznamu */
tInst data; /* užitečná data */
struct tDLElem *lptr; /* ukazatel na předchozí prvek seznamu */
struct tDLElem *rptr; /* ukazatel na následující prvek seznamu */
} *tDLElemPtr;
typedef struct { /* dvousměrně vázaný seznam */
tDLElemPtr First; /* ukazatel na první prvek seznamu */
tDLElemPtr Act; /* ukazatel na aktuální prvek seznamu */
tDLElemPtr Last; /* ukazatel na poslední prvek seznamu */
} tDLList;
/* prototypy jednotlivých funkcí */
void DLInitList (tDLList *);
void DLDisposeList (tDLList *);
void DLInsertFirst (tDLList *, int, void *, void *, void *);
void DLInsertLast(tDLList *, int, void *, void *, void *);
void DLFirst (tDLList *);
void DLLast (tDLList *);
void DLCopyFirst (tDLList *, tInst *);
void DLCopyLast (tDLList *, tInst *);
void DLDeleteFirst (tDLList *);
void DLDeleteLast (tDLList *);
void DLPostDelete (tDLList *);
void DLPreDelete (tDLList *);
void DLPostInsert (tDLList *, int, void *, void *, void *);
void DLPreInsert (tDLList *, int, void *, void *, void *);
void DLCopy (tDLList *, tInst *);
void DLActualize (tDLList *, int);
void DLSucc (tDLList *);
void DLPred (tDLList *);
int DLActive (tDLList *);
#endif