Mercurial > ~dholland > hg > ag > index.cgi
comparison tests/agcl/oldagsrc/scr4d.syn @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:13d2b8934445 |
---|---|
1 { | |
2 /* | |
3 AnaGram Syntax Analyzer. Copyright (c) Jerome T. Holland, 1989, 1990, 1991. | |
4 All Rights Reserved. | |
5 */ | |
6 | |
7 #include HEADERS | |
8 #include PF | |
9 | |
10 #include STDLIB | |
11 #include DATA | |
12 #include ASSERT | |
13 #include MYALLOC | |
14 #include ARRAYS | |
15 #include SP | |
16 #include SCREEN | |
17 #include STK | |
18 #include SCR4D | |
19 #include SETJMP | |
20 #include STDARG | |
21 #include STDIO | |
22 #include WIN | |
23 /* #include DIRECT */ | |
24 #include DEMO | |
25 | |
26 dc *activate_window(dc *); | |
27 void bury_top_image(void); | |
28 int chdir_s1(char*); | |
29 dc *check_selection(dc *); | |
30 dc *clear_mode(dc *); | |
31 int display_line_number(int); | |
32 extern dc *edit_window; | |
33 void force_screen_real(void); | |
34 void hide_cursor(void); | |
35 dc *prt(dc*); | |
36 extern dc *quick_ref_display; | |
37 void remove_ghost(dc *); | |
38 dc *open_windows(dc *); | |
39 dc *resize_window_mode(dc *); | |
40 void set_work_dir(void); | |
41 void update_screen(dc *); | |
42 dc *window_move(dc *); | |
43 int wkb(void); | |
44 void xeq_qa(void); | |
45 | |
46 extern long current_date, expiration_date; | |
47 | |
48 | |
49 scr_pcb_type scr_pcb; | |
50 #define PCB scr_pcb | |
51 | |
52 #define GET_INPUT PCB.input_code = wkb() | |
53 #define PARSE_STACK_OVERFLOW myabort(); | |
54 #define SYNTAX_ERROR | |
55 | |
56 | |
57 extern rect mode_area; | |
58 extern rect position_area; | |
59 extern cint current_cursor; | |
60 | |
61 extern dc *active_dc; | |
62 extern dc *cmnd_map_display; | |
63 extern dc *file_pick_display; | |
64 extern dc *help_index; | |
65 extern dc *pick_list_display; | |
66 extern dc *quick_ref_display; | |
67 extern dc *window_menu_display; | |
68 | |
69 extern int n_windows; | |
70 extern char *string_base; | |
71 | |
72 extern char *current_mode_string; | |
73 | |
74 void sbeep(void); | |
75 | |
76 } | |
77 | |
78 [ | |
79 ~declare pcb | |
80 ~diagnose errors | |
81 ~lines and columns | |
82 ~error frame | |
83 ~default reductions | |
84 line numbers | |
85 parser name = scr | |
86 test range | |
87 default token type = int | |
88 nest comments | |
89 event driven | |
90 near functions | |
91 ] | |
92 | |
93 CURSOR UP = 328 | |
94 page up = 329 | |
95 CURSOR LEFT = 331 | |
96 CURSOR RIGHT = 333 | |
97 CURSOR DOWN = 336 | |
98 page down = 337 | |
99 control page up = 388 | |
100 control page down = 374 | |
101 control left = 371 | |
102 control right = 372 | |
103 home = 327 | |
104 control home = 375 | |
105 end = 335 | |
106 control end = 373 | |
107 escape = 27 | |
108 return = '\r' | |
109 control w =23 | |
110 control z =26 | |
111 | |
112 F1 = 315 | |
113 F2 = 316 | |
114 F3 = 317 | |
115 F4 = 318 | |
116 F5 = 319 | |
117 F6 = 320 | |
118 F7 = 321 | |
119 F8 = 322 | |
120 F9 = 323 | |
121 F10 = 324 | |
122 | |
123 SHFT F1 = 340 | |
124 SHFT F2 = 341 | |
125 SHFT F3 = 342 | |
126 SHFT F4 = 343 | |
127 SHFT F5 = 344 | |
128 SHFT F6 = 345 | |
129 SHFT F7 = 346 | |
130 SHFT F8 = 347 | |
131 SHFT F9 = 348 | |
132 SHFT F10 = 349 | |
133 | |
134 CTRL F1 = 350 | |
135 CTRL F2 = 351 | |
136 CTRL F3 = 352 | |
137 CTRL F4 = 353 | |
138 CTRL F5 = 354 | |
139 CTRL F6 = 355 | |
140 CTRL F7 = 356 | |
141 CTRL F8 = 357 | |
142 CTRL F9 = 358 | |
143 CTRL F10 = 359 | |
144 | |
145 ALT F1 = 360 | |
146 ALT F2 = 361 | |
147 ALT F3 = 362 | |
148 ALT F4 = 363 | |
149 ALT F5 = 364 | |
150 ALT F6 = 365 | |
151 ALT F7 = 366 | |
152 ALT F8 = 367 | |
153 ALT F9 = 368 | |
154 ALT F10 = 369 | |
155 | |
156 ALT 3 = 378 | |
157 | |
158 ALT G = 290 | |
159 ALT L = 294 | |
160 ALT N = 305 | |
161 ALT P = 281 | |
162 ALT R = 275 | |
163 ALT S = 287 | |
164 ALT T = 276 | |
165 ALT X = 301 | |
166 delete = 339 | |
167 | |
168 pick file = 256 | |
169 init string edit = 257 | |
170 out of time = 258 | |
171 | |
172 up = CURSOR UP | |
173 down = CURSOR DOWN | |
174 left = CURSOR LEFT | |
175 right = CURSOR RIGHT | |
176 | |
177 move = F2 | |
178 reduce = ALT F2 | |
179 | |
180 backspace = '\b' | |
181 | |
182 enter line number = ALT L | |
183 help = F1 | |
184 req help index = ALT F1 | |
185 req key assign = SHFT F1 | |
186 req cursor assign = CTRL F1 | |
187 print table = ALT P | |
188 exit = ALT X | |
189 search previous = F3 | |
190 create key = ALT S | |
191 | |
192 search next = F4 | |
193 bury = F5 | |
194 bottom = F6 | |
195 clone window = F7 | |
196 cycle clone = ALT F7 | |
197 req plane menu = ALT F8 | |
198 previous = F8 | |
199 req w menu = F9 | |
200 req c menu = F10 | |
201 req aux win menu = ALT F9 | |
202 req aux cmnd menu = ALT F10 | |
203 { | |
204 #define F1 315 | |
205 #define F2 316 | |
206 #define F3 317 | |
207 #define F4 318 | |
208 #define F5 319 | |
209 #define F6 320 | |
210 #define F7 321 | |
211 #define F8 322 | |
212 #define F9 323 | |
213 #define F10 324 | |
214 #define ALT_F1 360 | |
215 #define ALT_F2 361 | |
216 #define ALT_F3 362 | |
217 #define ALT_F4 363 | |
218 #define ALT_F5 364 | |
219 #define ALT_F6 365 | |
220 #define ALT_F7 366 | |
221 #define ALT_F8 367 | |
222 #define ALT_F9 368 | |
223 #define ALT_F10 369 | |
224 | |
225 #define move_code F2 | |
226 #define reduce ALT_F2 | |
227 #define left 331 | |
228 #define right 333 | |
229 | |
230 } | |
231 | |
232 text char = 32..127 | |
233 digit = '0-9' | |
234 | |
235 [ | |
236 default token type = dc * | |
237 default input type = int | |
238 ] | |
239 | |
240 (void) edit session $ | |
241 -> any window, quit | |
242 -> change directory, any edit string, exit | |
243 -> session complete | |
244 -> quit =naughty(); | |
245 | |
246 (void) quit | |
247 -> exit | |
248 -> any search key, exit | |
249 -> line number, exit | |
250 | |
251 begin | |
252 -> req c menu =check_expiration(); | |
253 | |
254 any search key | |
255 -> search key | |
256 -> adjust search key | |
257 | |
258 any edit string | |
259 -> edit string | |
260 -> adjust edit string | |
261 | |
262 { | |
263 | |
264 #ifdef DEMO_FLAG | |
265 void restrict_usage(void); | |
266 | |
267 dc *check_expiration(void) { | |
268 long *ex = &expiration_date + 47; | |
269 long *cd = ¤t_date + 252; | |
270 if (ex[-47] < cd[-252]) restrict_usage(); | |
271 return NULL; | |
272 } | |
273 #else | |
274 dc *check_expiration(void) {return NULL;} | |
275 #endif | |
276 | |
277 } | |
278 | |
279 window | |
280 -> begin =activate_cmnd_menu(); | |
281 -> any window, req c menu =pop_up_window(cmnd_map_display); | |
282 -> any window, req w menu =pop_up_window(window_menu_display); | |
283 -> any window, '?' =pop_up_window(quick_ref_display); | |
284 -> change directory, | |
285 edit string:w, escape =rcs(), search_flag--, quit_window(w); | |
286 | |
287 any window | |
288 -> window:w =check_expiration(),w; | |
289 -> adjust window:w =check_expiration(),w; | |
290 | |
291 window, session complete, change directory | |
292 -> any window:d, return =(*d->enter)(d); | |
293 | |
294 { | |
295 void set_mode(char *); | |
296 | |
297 dc *replace_window(dc *d, dc *new); | |
298 dc *pop_up_window(dc *d); | |
299 | |
300 } | |
301 | |
302 (int) specify line number | |
303 -> line number:n, return =end_line_number_mode(n); | |
304 | |
305 { | |
306 static int end_line_number_mode(int n){ | |
307 flash_str_fill(mode_area.pos,current_mode_string,0,mode_area.size.x); | |
308 return n; | |
309 } | |
310 } | |
311 | |
312 (int) specify lines back | |
313 -> line number:n, up + '-' =end_line_number_mode(n); | |
314 | |
315 | |
316 (int) specify lines forward | |
317 -> line number:n, down + '+' =end_line_number_mode(n); | |
318 | |
319 (int) line number | |
320 -> enter line number =line_number_1(); | |
321 -> line number:n, digit:d =line_number_2(n,d); | |
322 -> line number:n, backspace =line_number_3(n); | |
323 -> line number:n, delete =line_number_3(n); | |
324 { | |
325 static dc *reset_position_window(dc *d) { | |
326 flash_str_fill(mode_area.pos,current_mode_string,0,mode_area.size.x); | |
327 current_cursor.x = -1; | |
328 return d; | |
329 } | |
330 | |
331 static int line_number_1(void) { | |
332 flash_str_fill(mode_area.pos,"Line Number",0,mode_area.size.x); | |
333 return 0; | |
334 } | |
335 | |
336 static int line_number_2(int n, int d) { | |
337 return display_line_number(10*n+d-48); | |
338 } | |
339 static int line_number_3(int n) { | |
340 return display_line_number(n/10); | |
341 } | |
342 | |
343 dc *find_help(char *); | |
344 dc *pop_up_window(dc *); | |
345 | |
346 static dc *key_assign(dc *dm, char *title) { | |
347 dc *d = find_help(title); | |
348 if (d == NULL) return beep(dm); | |
349 return pop_up_window(d); | |
350 } | |
351 } | |
352 | |
353 window | |
354 -> window:w, escape =quit_window(w); | |
355 -> any window:w, help =help_window(w); | |
356 -> any window, req help index =pop_up_window(help_index); | |
357 -> any window:w, req key assign =key_assign(w,"Function Keys"); | |
358 -> any window:w, req cursor assign =key_assign(w,"Cursor Keys"); | |
359 -> any window:w, print table =prt(w); | |
360 | |
361 -> window:w, control key:k =cursor(w,k); | |
362 -> previous window | |
363 -> bottom window | |
364 -> bury window | |
365 -> adjust window, escape | |
366 -> adjust window:w, non cursor key:k =control(w,k); | |
367 -> any window:w, search forward =search_forward(w); | |
368 -> any window:w, search reverse =search_reverse(w); | |
369 -> any window:w, text char - '?':c =alpha_access(w,c); | |
370 -> any window, edit search key | |
371 | |
372 -> any window:w, specify line number:n =reposition_cursor(w,n); | |
373 -> any window:w, specify lines back:n =backup_cursor(w,n); | |
374 -> any window:w, specify lines forward:n =advance_cursor(w,n); | |
375 -> any window:w, line number, escape =reset_position_window(w); | |
376 | |
377 -> any window:w, clone window =clone_window(w); | |
378 | |
379 -> any window:w, cycle clone =cycle_clone(w); | |
380 -> any window:w, req aux win menu =pop_up_aux_win_menu(w); | |
381 -> any window:w, req aux cmnd menu =pop_up_aux_cmnd_menu(w); | |
382 -> any window:w, req plane menu =open_windows(w); | |
383 | |
384 { | |
385 dc *pop_up_aux_win_menu(dc *); | |
386 dc *pop_up_aux_cmnd_menu(dc *); | |
387 | |
388 dc *first_clone(dc *); | |
389 | |
390 static dc *cycle_clone(dc *d) { | |
391 dc *c; | |
392 if (d->no_clone) return beep(d); | |
393 c = first_clone(d); | |
394 if (c != NULL) return pop_up_window(c); | |
395 return beep(d); | |
396 } | |
397 } | |
398 previous window | |
399 -> any window:w, previous =previous_window(w); | |
400 | |
401 bottom window | |
402 -> any window:w, bottom =bottom_window(w); | |
403 | |
404 bury window | |
405 -> any window:w, bury =bury_window(w); | |
406 | |
407 search forward | |
408 -> search next | |
409 -> any search key:sk, search next + return =save_search_key(sk); | |
410 -> search key:sk, down =save_search_key(sk); | |
411 | |
412 search reverse | |
413 -> search previous | |
414 -> any search key:sk, search previous =save_search_key(sk); | |
415 -> search key:sk, up =save_search_key(sk); | |
416 | |
417 edit search key | |
418 -> search key:sk, escape =quit_search(sk); | |
419 | |
420 { | |
421 extern char *search_key; | |
422 char *old_string; | |
423 int search_key_index; | |
424 | |
425 char *build_string(void); | |
426 extern int search_flag; | |
427 | |
428 static dc *save_search_key(dc *d) { | |
429 if (search_key != NULL) free(search_key); | |
430 search_flag--; | |
431 search_key = build_string(); | |
432 close_window(d); | |
433 hide_cursor(); | |
434 activate_window(map_window_plane[--nplanes].d); | |
435 return active_dc; | |
436 } | |
437 | |
438 extern char work_dir_name[]; | |
439 | |
440 void set_work_dir(void); | |
441 | |
442 static dc *chdir_s2(dc *d) { | |
443 tss(); | |
444 if (chdir_s1(string_base)) return beep(d); | |
445 rcs(); | |
446 search_flag--; | |
447 CHANGE_REDUCTION(new_directory); | |
448 set_work_dir(); | |
449 /* getcwd(work_dir_name, MAXPATH); */ | |
450 set_work_dir(); | |
451 close_window(d); | |
452 hide_cursor(); | |
453 activate_window(map_window_plane[--nplanes].d); | |
454 return active_dc; | |
455 } | |
456 | |
457 static dc *quit_search(dc *d) { | |
458 close_window(d); | |
459 rcs(); | |
460 search_flag--; | |
461 hide_cursor(); | |
462 activate_window(map_window_plane[--nplanes].d); | |
463 ok_ptr(active_dc->des); | |
464 active_dc->des->c_loc_doc.x = 0; | |
465 return active_dc; | |
466 } | |
467 } | |
468 | |
469 search key | |
470 -> create key =init_search_window(); | |
471 -> search key:sk, left:k =fiddle_window(sk,k); | |
472 -> search key:sk, right =search_key_right(sk); | |
473 -> any search key:sk, text char:c =insert_text(sk,c); | |
474 -> any search key:sk, backspace =backspace_char(sk); | |
475 -> any search key:sk, delete =delete_char(sk); | |
476 -> search key:sk, home:k =fiddle_window(sk,k); | |
477 -> search key:sk, end =search_key_end(sk); | |
478 -> any search key:sk, control left:k =fiddle_window(sk,k); | |
479 -> any search key:sk, control right:k =fiddle_window(sk,k); | |
480 -> adjust search key, escape | |
481 | |
482 window | |
483 -> change directory, new directory:d =d; | |
484 | |
485 edit string, new directory | |
486 -> edit string:d, return =chdir_s2(d); | |
487 | |
488 edit string | |
489 -> init string edit =edit_window; | |
490 -> edit string:sk, left:k =fiddle_window(sk,k); | |
491 -> edit string:sk, right =search_key_right(sk); | |
492 -> edit string:sk, home:k =fiddle_window(sk,k); | |
493 -> edit string:sk, end =search_key_end(sk); | |
494 -> adjust edit string, escape | |
495 -> any edit string:sk, text char:c =insert_text(sk,c); | |
496 -> any edit string:sk, backspace =backspace_char(sk); | |
497 -> any edit string:sk, delete =delete_char(sk); | |
498 -> any edit string:sk, control left:k =fiddle_window(sk,k); | |
499 -> any edit string:sk, control right:k =fiddle_window(sk,k); | |
500 | |
501 { | |
502 void search_key_line(void) { | |
503 tss(); | |
504 sss(string_base); | |
505 } | |
506 | |
507 static dc *search_key_right(dc *d) { | |
508 if( tis() <= d->des->c_loc_doc.x) { | |
509 int c; | |
510 if (search_key == NULL) return d; | |
511 c = old_string[search_key_index]; | |
512 if (c == 0) return d; | |
513 acs(c); | |
514 search_key_index++; | |
515 ok_ptr(d->des); | |
516 d->des->refresh++; | |
517 } | |
518 fiddle_window(d,right); | |
519 return d; | |
520 } | |
521 static dc *search_key_end(dc *d) { | |
522 ok_ptr(d->des); | |
523 | |
524 if( tis() <= d->des->c_loc_doc.x) { | |
525 int c = old_string[search_key_index]; | |
526 while (c) { | |
527 acs(c); | |
528 c = old_string[++search_key_index]; | |
529 } | |
530 d->des->refresh++; | |
531 } | |
532 d->des->c_loc_doc.x = tis(); | |
533 bound_cursor_hor(d->des); | |
534 return d; | |
535 } | |
536 | |
537 static dc *insert_text(dc *d, int c) { | |
538 wd *w; | |
539 | |
540 w = d->des; | |
541 ok_ptr(w); | |
542 its(c, w->c_loc_doc.x); | |
543 fiddle_window(d,right); | |
544 w->refresh++; | |
545 return d; | |
546 } | |
547 static dc *delete_char(dc *d) { | |
548 ok_ptr(d->des); | |
549 dcs(d->des->c_loc_doc.x); | |
550 d->des->refresh++; | |
551 return d; | |
552 } | |
553 | |
554 static dc *backspace_char(dc *d) { | |
555 wd *w; | |
556 | |
557 w = d->des; | |
558 if (w->c_loc_doc.x == 0) return d; | |
559 fiddle_window(d,left); | |
560 delete_char(d); | |
561 return d; | |
562 } | |
563 | |
564 } | |
565 adjust edit string | |
566 -> {reduce edit string | move edit string}: sk =clear_mode(sk); | |
567 | |
568 adjust search key | |
569 -> {reduce search key | move search key}:sk =clear_mode(sk); | |
570 | |
571 adjust window | |
572 -> {resize window | move window}:sk =clear_mode(sk); | |
573 | |
574 move search key | |
575 -> any search key:sk, move:k =show_mode(sk,k); | |
576 -> move search key:sk, cursor control:k =move(sk,k); | |
577 | |
578 reduce search key | |
579 // -> {search key | adjust search key}:sk, reduce:k =show_mode(sk,k); | |
580 -> any search key:sk, reduce:k =show_mode(sk,k); | |
581 -> reduce search key:sk, cursor control:k =resize(sk,k); | |
582 | |
583 move edit string | |
584 -> any edit string:sk, move:k =show_mode(sk,k); | |
585 -> move edit string:sk, cursor control:k =move(sk,k); | |
586 | |
587 reduce edit string | |
588 -> any edit string:sk, reduce:k =show_mode(sk,k); | |
589 -> reduce edit string:sk, cursor control:k =resize(sk,k); | |
590 | |
591 move window | |
592 -> any window:w, move:k =show_mode(w,k); | |
593 -> move window:w, cursor control:k =move(w,k); | |
594 | |
595 resize window //, window | |
596 -> any window:w, reduce:k =show_mode(w,k); | |
597 -> resize window:w, cursor control:k =resize(w,k); | |
598 | |
599 { | |
600 static dc *show_mode(dc *d, int t) { | |
601 char *ms = ""; | |
602 | |
603 ok_ptr(d); | |
604 switch (t) { | |
605 case move_code: | |
606 /* | |
607 if (d->move == NULL) { | |
608 PCB.reduction_token = scr_window_token; | |
609 beep(d); | |
610 break; | |
611 } | |
612 */ | |
613 ms = "Move Window"; | |
614 break; | |
615 case reduce: | |
616 /* | |
617 if (d->resize == NULL) { | |
618 beep(d); | |
619 PCB.reduction_token = scr_window_token; | |
620 break; | |
621 } | |
622 */ | |
623 ms = "Resize Window"; | |
624 break; | |
625 } | |
626 flash_str_fill(mode_area.pos,ms,0,mode_area.size.x); | |
627 return d; | |
628 } | |
629 | |
630 } | |
631 | |
632 (int) cursor control | |
633 -> up | |
634 -> down | |
635 -> left | |
636 -> right | |
637 -> page up | |
638 -> page down | |
639 -> home | |
640 -> end | |
641 | |
642 (int) control key | |
643 -> cursor control | |
644 -> non cursor key | |
645 | |
646 (int) non cursor key | |
647 -> control home | |
648 -> control end | |
649 -> control page up | |
650 -> control page down | |
651 -> control right | |
652 -> control left | |
653 -> control w | |
654 -> control z | |
655 | |
656 { | |
657 | |
658 cint ci(); | |
659 cint aci(); | |
660 cint sci(); | |
661 cint ulci(); | |
662 | |
663 extern int start_keys[]; | |
664 extern dc *error_display; | |
665 | |
666 void log_error(void); | |
667 | |
668 void pop_up_code_segment(char *, char *); | |
669 | |
670 dc *resize_window_mode(dc *d) { | |
671 set_mode("Resize Window"); | |
672 CHANGE_REDUCTION(resize_window); | |
673 return d; | |
674 } | |
675 | |
676 dc *window_move(dc *d) { | |
677 set_mode("Move Window"); | |
678 CHANGE_REDUCTION(move_window); | |
679 return d; | |
680 } | |
681 | |
682 static dc *naughty(void) { | |
683 force_screen_real(); | |
684 pop_up_code_segment("birb", ""); | |
685 wkb(); | |
686 return NULL; | |
687 } | |
688 | |
689 void deactivate_window(dc *); | |
690 | |
691 static dc *activate_cmnd_menu(void) { | |
692 dc *new; | |
693 force_screen_real(); | |
694 if (active_dc != NULL) { | |
695 if (active_dc != quick_ref_display) return active_dc; | |
696 deactivate_window(active_dc); | |
697 } | |
698 new = activate_window(cmnd_map_display); | |
699 if (nerrors) new = pop_up_window(error_display); | |
700 return new; | |
701 } | |
702 | |
703 | |
704 extern dc *search_key_window; | |
705 | |
706 | |
707 static dc *edit_search(void) { | |
708 cint loc; | |
709 cint corner; | |
710 dc *d; | |
711 rect w; | |
712 | |
713 d = active_dc; | |
714 loc = aci(d->act->c_loc_scr, ci(1,1)); | |
715 deactivate_window(d); | |
716 w = place_rect(display_area, search_key_window->des->b_size,22); | |
717 corner = w.pos; | |
718 search_key_window->des->b_loc_scr = ulci(loc,corner); | |
719 search_key_window->des->b_size = w.size; | |
720 activate_window(search_key_window); | |
721 return active_dc; | |
722 } | |
723 | |
724 static dc *init_search_window(void) { | |
725 ics(); | |
726 search_flag++; | |
727 ok_ptr(search_key_window->des); | |
728 search_key_window->des->c_loc_doc.x = 0; | |
729 search_key_index = 0; | |
730 old_string = search_key; | |
731 | |
732 return edit_search(); | |
733 } | |
734 | |
735 | |
736 int do_key(int x) { | |
737 PCB.input_code = x; | |
738 scr(); | |
739 if (PCB.exit_flag == AG_SYNTAX_ERROR_CODE) { | |
740 sbeep(); | |
741 PCB.exit_flag = AG_RUNNING_CODE; | |
742 } | |
743 return (PCB.exit_flag == AG_RUNNING_CODE); | |
744 } | |
745 | |
746 } |