-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathp.h
58 lines (52 loc) · 1.37 KB
/
p.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
#ifndef P_H
#define P_H
#include "node.h"
#define T000 0 /* $a */
#define T001 1 /* ss */
#define T002 2 /* sz */
#define T003 3 /* s */
#define T004 4 /* se */
#define T005 5 /* e */
#define T006 6 /* ez */
#define T007 7 /* o */
#define T008 8 /* av */
#define T009 9 /* plist */
#define T010 10 /* pz */
#define T011 11 /* pz2 */
#define T012 12 /* klist */
#define T013 13 /* elist */
#define T014 14 /* elistz */
#define T015 15 /* ee */
#define T016 16 /* ';' */
#define T017 17 /* '\n' */
#define T018 18 /* N */
#define T019 19 /* V */
#define T020 20 /* AV */
#define T021 21 /* '[' */
#define T022 22 /* ']' */
#define T023 23 /* '(' */
#define T024 24 /* ')' */
#define T025 25 /* $e */
extern int quiet,quiet2,btime;
extern char **lines;
extern int linei,linem,*linef,*linefn;
extern char **fnames;
extern int fnamesi,fnamesm;
typedef struct {
char *p; /* buffer */
int *S; /* state */
int *R; /* rules */
node **V; /* values */
int si,ri,vi; /* index */
int *t,ti,tc; /* tokens, index, count */
node **v; /* token values */
int lt; /* last token */
int ffli; /* function first line index */
int fni; /* filename index */
int Sm,Rm,Vm; /* max for S R V */
int tm,vm; /* max for t v */
} pgs;
pgs* pgnew(void);
void pgfree(pgs *s);
node* pgparse(pgs *s);
#endif /* P_H */