Bericht_Nr.465_T ... - TUHH
Bericht_Nr.465_T ... - TUHH
Bericht_Nr.465_T ... - TUHH
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
BNF-PROGRAMMIERBARER PARSER file: BL.C 10-MAR-1986 1~:22:19 P.sge<br />
1<br />
59: 0<br />
6Q,: ;.'i<br />
!:.1 : .-<br />
i ""').<br />
'_'~II<br />
G.,):<br />
64:<br />
65:<br />
.'::;./ :<br />
68:<br />
69:<br />
7i21:<br />
71 :<br />
7"".<br />
l.i-.<br />
i .~':<br />
74:<br />
I '...Ja<br />
! /.<br />
78:<br />
79:<br />
8i21:<br />
81 :<br />
8'")'<br />
O~.<br />
W__I"<br />
84:<br />
85:<br />
86:<br />
87:<br />
88:<br />
89:<br />
99:<br />
91 :<br />
92: )2J<br />
94:<br />
95:<br />
'=t6:<br />
97:<br />
98:<br />
9q.<br />
1!2@:<br />
1!211:<br />
1!2!2:<br />
1!2!3:<br />
1!214:<br />
1!2!5:<br />
U2J6:<br />
11217:<br />
1!218:<br />
1!2!9:<br />
lU2!:<br />
111:<br />
11'") .<br />
lL:<br />
114:<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
.-,<br />
..::.<br />
.,<br />
.....<br />
.,<br />
.....<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
} if GetSvm t!<br />
1* find - lookup nonterminal svmbol and ~~sert new one *1<br />
find (s~ h)<br />
char<br />
struct<br />
{<br />
struct<br />
*s.;<br />
Header Uh;<br />
#ifdef DEBUG<br />
fpl"intf (OutFile~<br />
#endif<br />
hl = list;<br />
Header *h 1;<br />
sentinel->svm = 5;<br />
while (strcmp (hl->sym~ SI)<br />
hl = hl->'succ;<br />
if (h1 == sentinel> { .. JiSert */<br />
#ifdef DEBUG<br />
fprintf (OutFile~ "hnsert*\nil);<br />
#endif<br />
'sentinel = alloc (sizeof (struct He=,cet-»;<br />
hl->succ = sentinei;<br />
hl->entry = NIL;<br />
*h = h 1 ;<br />
return<br />
)<br />
(NO>;<br />
"find symbol<br />
#ifdef DEBUG<br />
else<br />
i:)utc(>\n>~ OutFile);<br />
#endif<br />
*h = h 1 ;<br />
return (YE~3);<br />
}<br />
/* find t!<br />
/* error - report errors */<br />
void 2rror (msg)<br />
char *msg;<br />
{<br />
~ ".'._:C I!<br />
=:.<br />
'"<br />
~ -<br />
/* alreadv cefined and found ~:/<br />
fprintf (OutFile~ "\nincorrect synti:i.;.;: \s\n"~msg);<br />
fprintf (ERROUT~ "\nincorrect synt2.::-:: i:s\n"~msl::J);<br />
noerr = FALSE;<br />
} /* error */<br />
/* link - insert parse control tree links */<br />
void link (p~ q) /* (p~ q: NodePtr);<br />
*/<br />
struct Node *p~ *q;<br />
{ /* insert q in piaces indicated by linked chain p */<br />
struct Node *t;<br />
wh i I e<br />
(p<br />
~= NI U<br />
2 J'.<br />
}<br />
/* link */<br />
{<br />
t = p; P = t->suc; t->suc = q;<br />
65