GnuCOBOL  2.0
A free COBOL compiler
tree.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2001-2012, 2014-2016 Free Software Foundation, Inc.
3  Written by Keisuke Nishida, Roger While, Simon Sobisch
4 
5  This file is part of GnuCOBOL.
6 
7  The GnuCOBOL compiler is free software: you can redistribute it
8  and/or modify it under the terms of the GNU General Public License
9  as published by the Free Software Foundation, either version 3 of the
10  License, or (at your option) any later version.
11 
12  GnuCOBOL is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with GnuCOBOL. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 
22 #ifndef CB_TREE_H
23 #define CB_TREE_H
24 
25 #define CB_BEFORE cb_int0
26 #define CB_AFTER cb_int1
27 
28 #define COB_MAX_SUBSCRIPTS 16
29 
30 #define CB_PREFIX_ATTR "a_" /* Field attribute (cob_field_attr) */
31 #define CB_PREFIX_BASE "b_" /* Base address (unsigned char *) */
32 #define CB_PREFIX_CONST "c_" /* Constant or literal (cob_field) */
33 #define CB_PREFIX_DECIMAL "d_" /* Decimal number (cob_decimal) */
34 #define CB_PREFIX_FIELD "f_" /* Field (cob_field) */
35 #define CB_PREFIX_FILE "h_" /* File (cob_file) */
36 #define CB_PREFIX_KEYS "k_" /* File keys (cob_file_key []) */
37 #define CB_PREFIX_LABEL "l_" /* Label */
38 #define CB_PREFIX_SEQUENCE "s_" /* Collating sequence */
39 #define CB_PREFIX_STRING "st_" /* String */
40 
41 #define CB_PROGRAM_TYPE 0
42 #define CB_FUNCTION_TYPE 1
43 
44 #define CB_CALL_BY_REFERENCE 1
45 #define CB_CALL_BY_CONTENT 2
46 #define CB_CALL_BY_VALUE 3
47 
48 #define CB_SIZE_AUTO 0
49 #define CB_SIZE_1 1
50 #define CB_SIZE_2 2
51 #define CB_SIZE_4 3
52 #define CB_SIZE_8 4
53 #define CB_SIZE_UNSIGNED 8
54 
55 /* Hash values */
56 /* Power of 2 - see hash function in tree.c */
57 #define CB_WORD_HASH_SIZE (1U << 11)
58 #define CB_WORD_HASH_MASK (CB_WORD_HASH_SIZE - 1U)
59 
60 /* Basic tree tag */
61 enum cb_tag {
62  /* Primitives */
63  CB_TAG_CONST = 0, /* 0 Constant value */
64  CB_TAG_INTEGER, /* 1 Integer constant */
65  CB_TAG_STRING, /* 2 String constant */
66  CB_TAG_ALPHABET_NAME, /* 3 Alphabet-name */
67  CB_TAG_CLASS_NAME, /* 4 Class-name */
68  CB_TAG_LOCALE_NAME, /* 5 Locale-name */
69  CB_TAG_SYSTEM_NAME, /* 6 System-name */
70  CB_TAG_LITERAL, /* 7 Numeric/alphanumeric literal */
71  CB_TAG_DECIMAL, /* 8 Decimal number */
72  CB_TAG_FIELD, /* 9 User-defined variable */
73  CB_TAG_FILE, /* 10 File description */
74  CB_TAG_REPORT, /* 11 Report description */
75  /* Expressions */
76  CB_TAG_REFERENCE, /* 12 Reference to a field, file, or label */
77  CB_TAG_BINARY_OP, /* 13 Binary operation */
78  CB_TAG_FUNCALL, /* 14 Run-time function call */
79  CB_TAG_CAST, /* 15 Type cast */
80  CB_TAG_INTRINSIC, /* 16 Intrinsic function */
81  /* Statements */
82  CB_TAG_LABEL, /* 17 Label statement */
83  CB_TAG_ASSIGN, /* 18 Assignment statement */
84  CB_TAG_INITIALIZE, /* 19 INITIALIZE statement */
85  CB_TAG_SEARCH, /* 20 SEARCH statement */
86  CB_TAG_CALL, /* 21 CALL statement */
87  CB_TAG_GOTO, /* 22 GO TO statement */
88  CB_TAG_IF, /* 23 IF statement */
89  CB_TAG_PERFORM, /* 24 PERFORM statement */
90  CB_TAG_STATEMENT, /* 25 General statement */
91  CB_TAG_CONTINUE, /* 26 CONTINUE statement */
92  CB_TAG_CANCEL, /* 27 CANCEL statement */
93  CB_TAG_ALTER, /* 28 ALTER statement */
94  CB_TAG_SET_ATTR, /* 29 SET ATTRIBUTE statement */
95  /* Miscellaneous */
96  CB_TAG_PERFORM_VARYING, /* 30 PERFORM VARYING parameter */
97  CB_TAG_PICTURE, /* 31 PICTURE clause */
98  CB_TAG_LIST, /* 32 List */
99  CB_TAG_DIRECT, /* 33 Code output or comment */
100  CB_TAG_DEBUG, /* 34 Debug item set */
101  CB_TAG_DEBUG_CALL, /* 35 Debug callback */
102  CB_TAG_PROGRAM, /* 36 Program */
103  CB_TAG_FUNC_PROTOTYPE /* 37 Function prototype */
104 };
105 
106 /* Alphabet type */
107 #define CB_ALPHABET_NATIVE 0
108 #define CB_ALPHABET_ASCII 1
109 #define CB_ALPHABET_EBCDIC 2
110 #define CB_ALPHABET_CUSTOM 3
111 
112 /* Call convention bits */
113 /* Bit number Meaning Value */
114 /* 0 Parameter order 0 - Right to left */
115 /* 1 - Left to right */
116 /* 1 Stack manipulation 0 - Caller removes params */
117 /* 1 - Callee removes params */
118 /* 2 RETURN-CODE update 0 - Updated */
119 /* 1 - Not updated */
120 /* 3 Linking behaviour 0 - Normal linking */
121 /* 1 - Static CALL linking */
122 /* 4 OS/2 Optlink 0 - ?? */
123 /* 1 - ?? */
124 /* 5 Thunked to 16 bit 0 - No thunk */
125 /* 1 - Thunk */
126 /* 6 STDCALL convention 0 - CDECL */
127 /* 1 - STDCALL */
128 
129 #define CB_CONV_L_TO_R (1 << 0)
130 #define CB_CONV_CALLEE_STACK (1 << 1)
131 #define CB_CONV_NO_RET_UPD (1 << 2)
132 #define CB_CONV_STATIC_LINK (1 << 3)
133 #define CB_CONV_OPT_LINK (1 << 4)
134 #define CB_CONV_THUNK_16 (1 << 5)
135 #define CB_CONV_STDCALL (1 << 6)
136 
137 /* System category */
149 };
150 
151 /* Mnemonic defines */
152 /* Devices */
153 #define CB_DEVICE_SYSIN 0
154 #define CB_DEVICE_SYSOUT 1
155 #define CB_DEVICE_SYSERR 2
156 #define CB_DEVICE_CONSOLE 3
157 /* Switches (max. must match COB_SWITCH_MAX) */
158 #define CB_SWITCH_0 0
159 #define CB_SWITCH_1 1
160 #define CB_SWITCH_2 2
161 #define CB_SWITCH_3 3
162 #define CB_SWITCH_4 4
163 #define CB_SWITCH_5 5
164 #define CB_SWITCH_6 6
165 #define CB_SWITCH_7 7
166 #define CB_SWITCH_8 8
167 #define CB_SWITCH_9 9
168 #define CB_SWITCH_10 10
169 #define CB_SWITCH_11 11
170 #define CB_SWITCH_12 12
171 #define CB_SWITCH_13 13
172 #define CB_SWITCH_14 14
173 #define CB_SWITCH_15 15
174 #define CB_SWITCH_16 16
175 #define CB_SWITCH_17 17
176 #define CB_SWITCH_18 18
177 #define CB_SWITCH_19 19
178 #define CB_SWITCH_20 20
179 #define CB_SWITCH_21 21
180 #define CB_SWITCH_22 22
181 #define CB_SWITCH_23 23
182 #define CB_SWITCH_24 24
183 #define CB_SWITCH_25 25
184 #define CB_SWITCH_26 26
185 #define CB_SWITCH_27 27
186 #define CB_SWITCH_28 28
187 #define CB_SWITCH_29 29
188 #define CB_SWITCH_30 30
189 #define CB_SWITCH_31 31
190 #define CB_SWITCH_32 32
191 #define CB_SWITCH_33 33
192 #define CB_SWITCH_34 34
193 #define CB_SWITCH_35 35
194 #define CB_SWITCH_36 36
195 /* Features */
196 #define CB_FEATURE_FORMFEED 0
197 #define CB_FEATURE_CONVENTION 1
198 #define CB_FEATURE_C01 2
199 #define CB_FEATURE_C02 3
200 #define CB_FEATURE_C03 4
201 #define CB_FEATURE_C04 5
202 #define CB_FEATURE_C05 6
203 #define CB_FEATURE_C06 7
204 #define CB_FEATURE_C07 8
205 #define CB_FEATURE_C08 9
206 #define CB_FEATURE_C09 10
207 #define CB_FEATURE_C10 11
208 #define CB_FEATURE_C11 12
209 #define CB_FEATURE_C12 13
210 
211 
212 /* Class category */
213 enum cb_class {
214  CB_CLASS_UNKNOWN = 0, /* 0 */
218  CB_CLASS_INDEX, /* 4 */
223 };
224 
225 /* Category */
227  CB_CATEGORY_UNKNOWN = 0, /* 0 */
240 };
241 
242 /* Storage sections */
244  CB_STORAGE_CONSTANT = 0, /* Constants */
245  CB_STORAGE_FILE, /* FILE SECTION */
246  CB_STORAGE_WORKING, /* WORKING-STORAGE SECTION */
247  CB_STORAGE_LOCAL, /* LOCAL-STORAGE SECTION */
248  CB_STORAGE_LINKAGE, /* LINKAGE SECTION */
249  CB_STORAGE_SCREEN, /* SCREEN SECTION */
250  CB_STORAGE_REPORT, /* REPORT SECTION */
251  CB_STORAGE_COMMUNICATION /* COMMUNICATION SECTION */
252 };
253 
254 /* Field types */
255 enum cb_usage {
256  CB_USAGE_BINARY = 0, /* 0 */
257  CB_USAGE_BIT, /* 1 */
261  CB_USAGE_FLOAT, /* 5 */
263  CB_USAGE_INDEX, /* 7 */
266  CB_USAGE_PACKED, /* 10 */
269  CB_USAGE_LENGTH, /* 13 */
279  CB_USAGE_COMP_6, /* 23 */
286 };
287 
288 
289 /* Cast type */
291  CB_CAST_INTEGER = 0, /* 0 */
295  CB_CAST_LENGTH, /* 4 */
297 };
298 
299 /* Intrinsic functions */
405 };
406 
407 /* Perform type */
414 };
415 
416 /* Reserved word list structure */
418  const char *name; /* Word */
419  unsigned short nodegen; /* Statement with END-xxx */
420  unsigned short context_sens; /* Context sensitive */
421  int token; /* Token */
422  unsigned int context_set; /* Set context sensitive */
423  unsigned int context_test; /* Test context sensitive */
424 };
425 
426 /* Basic common tree structure */
427 
429  enum cb_tag tag; /* TAG - see below */
430  enum cb_category category; /* Category */
431  const char *source_file; /* Source file */
432  int source_line; /* Line */
433  int source_column; /* Column */
434 };
435 
436 /* Define common cb_tree/CB_TREE for following defines */
437 
438 typedef struct cb_tree_common *cb_tree;
439 
440 #define CB_TREE(x) ((struct cb_tree_common *) (x))
441 #define CB_TREE_TAG(x) (CB_TREE (x)->tag)
442 #define CB_TREE_CLASS(x) cb_tree_class (CB_TREE (x))
443 #define CB_TREE_CATEGORY(x) cb_tree_category (CB_TREE (x))
444 
445 #define CB_VALID_TREE(x) (x && CB_TREE (x) != cb_error_node)
446 #define CB_INVALID_TREE(x) (!(x) || CB_TREE (x) == cb_error_node)
447 
448 #ifdef COB_TREE_DEBUG
449 
450 #ifdef COB_HAVE_STEXPR
451 #define CB_TREE_CAST(tg,ty,x) \
452 ({ \
453  cb_tree _x = (x); \
454  if (unlikely(!_x || CB_TREE_TAG (_x) != tg)) { \
455  cobc_tree_cast_error (_x, __FILE__, __LINE__, tg); \
456  } \
457  ((ty *) (_x)); \
458 })
459 #else
460 #define CB_TREE_CAST(tg,ty,x) \
461  ((ty *)cobc_tree_cast_check (x, __FILE__, __LINE__, tg))
462 #endif
463 
464 #else
465 #define CB_TREE_CAST(tg,ty,x) ((ty *) (x))
466 #endif
467 
468 
469 /* Constant */
470 
471 struct cb_const {
472  struct cb_tree_common common; /* Common values */
473  const char *val; /* Constant value */
474 };
475 
476 #define CB_CONST(x) (CB_TREE_CAST (CB_TAG_CONST, struct cb_const, x))
477 #define CB_CONST_P(x) (CB_TREE_TAG (x) == CB_TAG_CONST)
478 
479 /* Code output or comment */
480 
481 struct cb_direct {
482  struct cb_tree_common common; /* Common values */
483  const char *line; /* Line redirect */
484  cob_u32_t flag_is_direct; /* Is directed */
485  cob_u32_t flag_new_line; /* Need new line */
486 };
487 
488 #define CB_DIRECT(x) (CB_TREE_CAST (CB_TAG_DIRECT, struct cb_direct, x))
489 #define CB_DIRECT_P(x) (CB_TREE_TAG (x) == CB_TAG_DIRECT)
490 
491 /* DEBUG */
492 
493 struct cb_debug {
494  struct cb_tree_common common; /* Common values */
495  cb_tree target; /* Target for debug */
496  const char *value; /* Value for debug */
497  cb_tree fld; /* Reference */
498  size_t size; /* Size if relevant */
499 };
500 
501 #define CB_DEBUG(x) (CB_TREE_CAST (CB_TAG_DEBUG, struct cb_debug, x))
502 #define CB_DEBUG_P(x) (CB_TREE_TAG (x) == CB_TAG_DEBUG)
503 
504 /* DEBUG Callback */
505 
507  struct cb_tree_common common; /* Common values */
508  struct cb_label *target; /* Target label */
509 };
510 
511 #define CB_DEBUG_CALL(x) (CB_TREE_CAST (CB_TAG_DEBUG_CALL, struct cb_debug_call, x))
512 #define CB_DEBUG_CALL_P(x) (CB_TREE_TAG (x) == CB_TAG_DEBUG_CALL)
513 
514 /* Integer */
515 
516 struct cb_integer {
517  struct cb_tree_common common; /* Common values */
518  int val; /* Integer value */
519  unsigned int hexval; /* Output hex value */
520 };
521 
522 #define CB_INTEGER(x) (CB_TREE_CAST (CB_TAG_INTEGER, struct cb_integer, x))
523 #define CB_INTEGER_P(x) (CB_TREE_TAG (x) == CB_TAG_INTEGER)
524 
525 /* String */
526 
527 struct cb_string {
528  struct cb_tree_common common; /* Common values */
529  const unsigned char *data; /* Data */
530  size_t size; /* Data size */
531 };
532 
533 #define CB_STRING(x) (CB_TREE_CAST (CB_TAG_STRING, struct cb_string, x))
534 #define CB_STRING_P(x) (CB_TREE_TAG (x) == CB_TAG_STRING)
535 
536 /* Alphabet-name */
537 
539  struct cb_tree_common common; /* Common values */
540  const char *name; /* Original name */
541  char *cname; /* Name used in C */
542  cb_tree custom_list; /* Custom ALPHABET */
543  unsigned int alphabet_type; /* ALPHABET type */
544  int low_val_char; /* LOW-VALUE */
545  int high_val_char; /* HIGH-VALUE */
546  int values[256]; /* Collating values */
547  int alphachr[256]; /* Actual values */
548 };
549 
550 #define CB_ALPHABET_NAME(x) (CB_TREE_CAST (CB_TAG_ALPHABET_NAME, struct cb_alphabet_name, x))
551 #define CB_ALPHABET_NAME_P(x) (CB_TREE_TAG (x) == CB_TAG_ALPHABET_NAME)
552 
553 /* Class-name */
554 
556  struct cb_tree_common common; /* Common values */
557  const char *name; /* Original name */
558  char *cname; /* Name used in C */
559  cb_tree list; /* List of CLASS definitions */
560 };
561 
562 #define CB_CLASS_NAME(x) (CB_TREE_CAST (CB_TAG_CLASS_NAME, struct cb_class_name, x))
563 #define CB_CLASS_NAME_P(x) (CB_TREE_TAG (x) == CB_TAG_CLASS_NAME)
564 
565 /* Locale name */
566 
568  struct cb_tree_common common; /* Common values */
569  const char *name; /* Original name */
570  char *cname; /* Name used in C */
571  cb_tree list; /* List of locale definitions */
572 };
573 
574 #define CB_LOCALE_NAME(x) (CB_TREE_CAST (CB_TAG_LOCALE_NAME, struct cb_locale_name, x))
575 #define CB_LOCALE_NAME_P(x) (CB_TREE_TAG (x) == CB_TAG_LOCALE_NAME)
576 
577 /* System-name */
578 
580  struct cb_tree_common common; /* Common values */
581  cb_tree value; /* System value */
582  enum cb_system_name_category category; /* System category */
583  int token; /* Device attributes */
584 };
585 
586 #define CB_SYSTEM_NAME(x) (CB_TREE_CAST (CB_TAG_SYSTEM_NAME, struct cb_system_name, x))
587 #define CB_SYSTEM_NAME_P(x) (CB_TREE_TAG (x) == CB_TAG_SYSTEM_NAME)
588 
589 /* Literal */
590 
591 struct cb_literal {
592  struct cb_tree_common common; /* Common values */
593  unsigned char *data; /* Literal data */
594  cob_u32_t size; /* Literal size */
595  int scale; /* Numeric scale */
596  cob_u32_t llit; /* 'L' literal */
597  short sign; /* unsigned: 0 negative: -1 positive: 1 */
598  short all; /* ALL */
599 };
600 
601 #define CB_LITERAL(x) (CB_TREE_CAST (CB_TAG_LITERAL, struct cb_literal, x))
602 #define CB_LITERAL_P(x) (CB_TREE_TAG (x) == CB_TAG_LITERAL)
603 #define CB_NUMERIC_LITERAL_P(x) \
604  (CB_LITERAL_P (x) && CB_TREE_CATEGORY (x) == CB_CATEGORY_NUMERIC)
605 
606 /* Decimal */
607 
608 struct cb_decimal {
609  struct cb_tree_common common; /* Common values */
610  int id; /* Id for this decimal */
611 };
612 
613 #define CB_DECIMAL(x) (CB_TREE_CAST (CB_TAG_DECIMAL, struct cb_decimal, x))
614 #define CB_DECIMAL_P(x) (CB_TREE_TAG (x) == CB_TAG_DECIMAL)
615 
616 /* Picture */
617 
618 struct cb_picture {
619  struct cb_tree_common common; /* Common values */
620  char *orig; /* Original picture string */
621  char *str; /* Packed picture string */
622  int size; /* Byte size */
623  int lenstr; /* Length of picture string */
624  enum cb_category category; /* Field category */
625  cob_u32_t digits; /* Number of digit places */
626  int scale; /* 1/10^scale */
627  cob_u32_t have_sign; /* Have 'S' */
628  cob_u32_t real_digits; /* Real number of digits */
629 };
630 
631 #define CB_PICTURE(x) (CB_TREE_CAST (CB_TAG_PICTURE, struct cb_picture, x))
632 #define CB_PICTURE_P(x) (CB_TREE_TAG (x) == CB_TAG_PICTURE)
633 
634 /* Field */
635 
636 struct cb_key {
637  cb_tree key; /* KEY */
638  cb_tree ref; /* Reference used in SEARCH ALL */
639  cb_tree val; /* Value to be compared in SEARCH ALL */
640  int dir; /* ASCENDING or DESCENDING */
641 };
642 
643 struct cb_field {
644  struct cb_tree_common common; /* Common values */
645  const char *name; /* Original name */
646  const char *ename; /* Externalized name */
647  cb_tree depending; /* OCCURS ... DEPENDING ON */
648  cb_tree values; /* VALUE */
649  cb_tree false_88; /* 88 FALSE clause */
650  cb_tree index_list; /* INDEXED BY */
651  struct cb_field *parent; /* Upper level field (if any) */
652  struct cb_field *children; /* Top of lower level fields */
653  struct cb_field *sister; /* Fields at the same level */
654  struct cb_field *redefines; /* REDEFINES */
655  struct cb_field *rename_thru; /* RENAMES THRU */
656  struct cb_field *index_qual; /* INDEXED BY qualifier */
657  struct cb_file *file; /* FD section file name */
658  struct cb_key *keys; /* SEARCH key */
659  struct cb_picture *pic; /* PICTURE */
660  struct cb_field *vsize; /* Variable size cache */
661  struct cb_label *debug_section; /* DEBUG section */
662 
663  cb_tree screen_line; /* LINE */
664  cb_tree screen_column; /* COLUMN */
665  cb_tree screen_from; /* TO and USING */
666  cb_tree screen_to; /* FROM and USING */
667  cb_tree screen_foreg; /* FOREGROUND */
668  cb_tree screen_backg; /* BACKGROUND */
669  cb_tree screen_prompt; /* PROMPT */
670 
671  int id; /* Field id */
672  int size; /* Field size */
673  int level; /* Level number */
674  int memory_size; /* Memory size */
675  int offset; /* Byte offset from 01 level */
676  int occurs_min; /* OCCURS <max> (without <min> TO )*/
677  int occurs_max; /* OCCURS <min> TO <max> */
678  int indexes; /* Indices count (OCCURS) */
679 
680  int count; /* Reference count */
681  int mem_offset; /* Memory offset */
682  int nkeys; /* Number of keys */
683  int param_num; /* CHAINING param number */
684  int screen_flag; /* Flags used in SCREEN SECTION */
685  int step_count; /* STEP in REPORT */
686  unsigned int vaddr; /* Variable address cache */
687  unsigned int odo_level; /* ODO level (0 = no ODO item)
688  could be direct ODO (check via depending)
689  or via subordinate) */
690  cob_u32_t special_index; /* Special field */
691 
692  enum cb_storage storage; /* Storage section */
693  enum cb_usage usage; /* USAGE */
694 
695  /* Flags */
696  unsigned char flag_base; /* Has memory allocation */
697  unsigned char flag_external; /* EXTERNAL */
698  unsigned char flag_local_storage; /* LOCAL storage */
699  unsigned char flag_is_global; /* Is GLOBAL */
700 
701  unsigned int flag_local : 1; /* Has local scope */
702  unsigned int flag_occurs : 1; /* OCCURS */
703  unsigned int flag_sign_separate : 1; /* SIGN IS SEPARATE */
704  unsigned int flag_sign_leading : 1; /* SIGN IS LEADING */
705  unsigned int flag_blank_zero : 1; /* BLANK WHEN ZERO */
706  unsigned int flag_justified : 1; /* JUSTIFIED RIGHT */
707  unsigned int flag_binary_swap : 1; /* Binary byteswap */
708  unsigned int flag_real_binary : 1; /* BINARY-CHAR/SHORT/LONG/DOUBLE */
709 
710  unsigned int flag_is_pointer : 1; /* Is POINTER */
711  unsigned int flag_item_78 : 1; /* Is 78 level */
712  unsigned int flag_any_length : 1; /* Is ANY LENGTH */
713  unsigned int flag_item_based : 1; /* Is BASED */
714  unsigned int flag_filler : 1; /* Implicit/explicit filler */
715  unsigned int flag_synchronized : 1; /* SYNCHRONIZED */
716  unsigned int flag_invalid : 1; /* Is broken */
717  unsigned int flag_field : 1; /* Has been internally cached */
718 
719  unsigned int flag_chained : 1; /* CHAINING item */
720  unsigned int flag_anylen_done : 1; /* ANY LENGTH is set up */
721  unsigned int flag_indexed_by : 1; /* INDEXED BY item */
722  unsigned int flag_is_verified : 1; /* Has been verified */
723  unsigned int flag_is_c_long : 1; /* Is BINARY-C-LONG */
724  unsigned int flag_is_pdiv_parm : 1; /* Is PROC DIV USING */
725  unsigned int flag_is_pdiv_opt : 1; /* Is PROC DIV USING OPTIONAL */
726  unsigned int flag_local_alloced : 1; /* LOCAL storage is allocated */
727  unsigned int flag_no_init : 1; /* No initialize unless used */
728 
729  unsigned int flag_vsize_done : 1; /* Variable size cached */
730  unsigned int flag_vaddr_done : 1; /* Variable address cached */
731  unsigned int flag_odo_relative : 1; /* complex-odo: item address depends
732  on size of a different (ODO) item */
733  unsigned int flag_field_debug : 1; /* DEBUGGING */
734  unsigned int flag_all_debug : 1; /* DEBUGGING */
735  unsigned int flag_no_field : 1; /* SCREEN dummy field */
736  unsigned int flag_any_numeric : 1; /* Is ANY NUMERIC */
737  unsigned int flag_is_returning : 1; /* Is RETURNING item */
738 };
739 
740 #define CB_FIELD(x) (CB_TREE_CAST (CB_TAG_FIELD, struct cb_field, x))
741 #define CB_FIELD_P(x) (CB_TREE_TAG (x) == CB_TAG_FIELD)
742 
743 #define CB_REF_OR_FIELD_P(x) (CB_REFERENCE_P (x) || CB_FIELD_P (x))
744 
745 #define CB_FIELD_PTR(x) \
746  (CB_REFERENCE_P (x) ? CB_FIELD (cb_ref (x)) : CB_FIELD (x))
747 
748 /* Index */
749 
750 #define CB_INDEX_P(x) cb_check_index_p (x)
751 
752 /* Label */
753 
756  struct cb_label *para;
757 };
758 
759 struct cb_alter_id {
760  struct cb_alter_id *next;
761  int goto_id;
762 };
763 
764 struct cb_label {
765  struct cb_tree_common common; /* Common values */
766  const char *name; /* Name */
767  const char *orig_name; /* Original name */
768  struct cb_label *section; /* Parent SECTION */
769  struct cb_label *debug_section; /* DEBUG SECTION */
770  struct cb_para_label *para_label; /* SECTION Paragraphs */
771  cb_tree exit_label; /* EXIT label */
772  struct cb_alter_id *alter_gotos; /* ALTER ids */
773  int id; /* Unique id */
774  int section_id; /* SECTION id */
775  int segment; /* Segment number */
776 
777  unsigned int flag_section : 1; /* Section */
778  unsigned int flag_entry : 1; /* Entry */
779  unsigned int flag_begin : 1; /* Begin label */
780  unsigned int flag_return : 1; /* End label */
781  unsigned int flag_real_label : 1; /* Is real label */
782  unsigned int flag_global : 1; /* GLOBAL */
783  unsigned int flag_declarative_exit : 1; /* Final EXIT */
784  unsigned int flag_declaratives : 1; /* DECLARATIVES */
785 
786  unsigned int flag_fatal_check : 1; /* Fatal check */
787  unsigned int flag_dummy_section : 1; /* Dummy MAIN */
788  unsigned int flag_dummy_paragraph : 1; /* Dummy MAIN */
789  unsigned int flag_dummy_exit : 1; /* Dummy EXIT */
790  unsigned int flag_next_sentence : 1; /* NEXT SENTENCE */
791  unsigned int flag_default_handler : 1; /* Error handler */
792  unsigned int flag_statement : 1; /* Has statement */
793  unsigned int flag_first_is_goto : 1; /* 1st is GO TO */
794 
795  unsigned int flag_alter : 1; /* ALTER code */
796  unsigned int flag_debugging_mode : 1; /* DEBUGGING MODE */
797  unsigned int flag_is_debug_sect : 1; /* DEBUGGING sect */
798  unsigned int flag_skip_label : 1; /* Skip label gen */
799 };
800 
801 #define CB_LABEL(x) (CB_TREE_CAST (CB_TAG_LABEL, struct cb_label, x))
802 #define CB_LABEL_P(x) (CB_TREE_TAG (x) == CB_TAG_LABEL)
803 
805  struct cb_label *handler_label; /* Handler label */
806  struct cb_program *handler_prog; /* Handler program */
807 };
808 
809 /* File */
810 
811 struct cb_alt_key {
812  struct cb_alt_key *next; /* Pointer to next */
813  cb_tree key; /* Key item */
814  int duplicates; /* DUPLICATES */
815  int offset; /* Offset from start */
816 };
817 
818 struct cb_file {
819  struct cb_tree_common common; /* Common values */
820  const char *name; /* Original name */
821  char *cname; /* Name used in C */
822  /* SELECT */
823  cb_tree assign; /* ASSIGN */
824  cb_tree file_status; /* FILE STATUS */
825  cb_tree sharing; /* SHARING */
826  cb_tree key; /* RECORD KEY */
827  struct cb_alt_key *alt_key_list; /* ALTERNATE RECORD KEY */
828  /* FD/SD */
829  struct cb_field *record; /* Record descriptions */
830  cb_tree record_depending; /* RECORD DEPENDING */
831  cb_tree reports; /* REPORTS */
832  cb_tree linage; /* LINAGE */
833  cb_tree linage_ctr; /* LINAGE COUNTER */
834  cb_tree latfoot; /* LINAGE FOOTING */
835  cb_tree lattop; /* LINAGE TOP */
836  cb_tree latbot; /* LINAGE BOTTOM */
837  struct cb_label *handler; /* Error handler */
838  struct cb_program *handler_prog; /* Prog where defined */
839  struct cb_label *debug_section; /* DEBUG SECTION */
840  struct cb_alphabet_name *code_set; /* CODE-SET */
841  int record_min; /* RECORD CONTAINS */
842  int record_max; /* RECORD CONTAINS */
843  int optional; /* OPTIONAL */
844  int organization; /* ORGANIZATION */
845  int access_mode; /* ACCESS MODE */
846  int lock_mode; /* LOCK MODE */
847  int special; /* Special file */
848  int same_clause; /* SAME clause */
849  unsigned int flag_finalized : 1; /* Is finalized */
850  unsigned int flag_external : 1; /* Is EXTERNAL */
851  unsigned int flag_ext_assign : 1; /* ASSIGN EXTERNAL */
852  unsigned int flag_fileid : 1; /* ASSIGN DISK */
853  unsigned int flag_global : 1; /* Is GLOBAL */
854  unsigned int flag_fl_debug : 1; /* DEBUGGING */
855  unsigned int flag_line_adv : 1; /* LINE ADVANCING */
856 };
857 
858 #define CB_FILE(x) (CB_TREE_CAST (CB_TAG_FILE, struct cb_file, x))
859 #define CB_FILE_P(x) (CB_TREE_TAG (x) == CB_TAG_FILE)
860 
861 /* Reference */
862 
863 struct cb_word {
864  struct cb_word *next; /* Next word with the same hash value */
865  const char *name; /* Word name */
866  cb_tree items; /* Objects associated with this word */
867  int count; /* Number of words with the same name */
868  int error; /* Set to 1 if error detected */
869 };
870 
871 #define CB_WORD_TABLE_SIZE (CB_WORD_HASH_SIZE * sizeof (struct cb_word))
872 
873 struct cb_reference {
874  struct cb_tree_common common; /* Common values */
875  cb_tree chain; /* Next qualified name */
876  cb_tree value; /* Item referred to */
877  cb_tree subs; /* List of subscripts */
878  cb_tree offset; /* Reference mod offset */
879  cb_tree length; /* Reference mod length */
880  cb_tree check; /* Runtime checks */
881  struct cb_word *word; /* Pointer to word list */
882  struct cb_label *section; /* Current section */
883  struct cb_label *paragraph; /* Current paragraph */
884  struct cb_label *debug_section; /* Debug section */
885  size_t hashval; /* Hash value of name */
886 
887  unsigned int flag_receiving : 1; /* Reference target */
888  unsigned int flag_all : 1; /* ALL */
889  unsigned int flag_in_decl : 1; /* In DECLARATIVE */
890  unsigned int flag_decl_ok : 1; /* DECLARATIVE ref OK */
891  unsigned int flag_alter_code : 1; /* Needs ALTER code */
892  unsigned int flag_debug_code : 1; /* Needs DEBUG code */
893  unsigned int flag_all_debug : 1; /* Needs ALL DEBUG code */
894  unsigned int flag_target : 1; /* DEBUG item is target */
895 
896  unsigned int flag_optional : 1; /* Definition optional */
897  unsigned int flag_filler_ref : 1; /* Ref to FILLER */
898  unsigned int flag_duped : 1; /* Duplicate name */
899 };
900 
901 #define CB_REFERENCE(x) (CB_TREE_CAST (CB_TAG_REFERENCE, struct cb_reference, x))
902 #define CB_REFERENCE_P(x) (CB_TREE_TAG (x) == CB_TAG_REFERENCE)
903 
904 #define CB_NAME(x) (CB_REFERENCE (x)->word->name)
905 #define CB_WORD_COUNT(x) (CB_REFERENCE (x)->word->count)
906 #define CB_WORD_ITEMS(x) (CB_REFERENCE (x)->word->items)
907 
908 /* Binary operation */
909 
910 /*
911  '+' x + y
912  '-' x - y
913  '*' x * y
914  '/' x / y
915  '^' x ** y
916  '=' x = y
917  '>' x > y
918  '<' x < y
919  '[' x <= y
920  ']' x >= y
921  '~' x != y
922  '!' not x
923  '&' x and y
924  '|' x or y
925  '@' ( x )
926 */
927 
928 struct cb_binary_op {
929  struct cb_tree_common common; /* Common values */
930  cb_tree x; /* LHS */
931  cb_tree y; /* RHS */
932  int op; /* Operation */
933  unsigned int flag; /* Special usage */
934 };
935 
936 #define CB_BINARY_OP(x) (CB_TREE_CAST (CB_TAG_BINARY_OP, struct cb_binary_op, x))
937 #define CB_BINARY_OP_P(x) (CB_TREE_TAG (x) == CB_TAG_BINARY_OP)
938 
939 /* Function call */
940 
941 struct cb_funcall {
942  struct cb_tree_common common; /* Common values */
943  const char *name; /* Function name */
944  cb_tree argv[11]; /* Function arguments */
945  int argc; /* Number of arguments */
946  int varcnt; /* Variable argument count */
947  unsigned int screenptr; /* SCREEN usage */
948  unsigned int nolitcast; /* No cast for literals */
949 };
950 
951 #define CB_FUNCALL(x) (CB_TREE_CAST (CB_TAG_FUNCALL, struct cb_funcall, x))
952 #define CB_FUNCALL_P(x) (CB_TREE_TAG (x) == CB_TAG_FUNCALL)
953 
954 /* Type cast */
955 
956 struct cb_cast {
957  struct cb_tree_common common; /* Common values */
958  cb_tree val;
960 };
961 
962 #define CB_CAST(x) (CB_TREE_CAST (CB_TAG_CAST, struct cb_cast, x))
963 #define CB_CAST_P(x) (CB_TREE_TAG (x) == CB_TAG_CAST)
964 
965 /* Assign */
966 
967 struct cb_assign {
968  struct cb_tree_common common; /* Common values */
969  cb_tree var;
970  cb_tree val;
971 };
972 
973 #define CB_ASSIGN(x) (CB_TREE_CAST (CB_TAG_ASSIGN, struct cb_assign, x))
974 #define CB_ASSIGN_P(x) (CB_TREE_TAG (x) == CB_TAG_ASSIGN)
975 
976 /* Intrinsic FUNCTION */
977 
979  const char *name; /* FUNCTION NAME */
980  const char *intr_routine; /* Routine name */
981  const enum cb_intr_enum intr_enum; /* Enum intrinsic */
982  const int token; /* Token value */
983  const int implemented; /* Have we implemented it? */
984  const int args; /* Maximum number of arguments, -1 = unlimited */
985  const int min_args; /* Minimum number of arguments */
986  const enum cb_category category; /* Category */
987  const unsigned int refmod; /* Can be refmodded */
988 };
989 
990 struct cb_intrinsic {
991  struct cb_tree_common common; /* Common values */
992  cb_tree name; /* INTRINSIC name */
993  cb_tree args; /* Arguments */
994  cb_tree intr_field; /* Field to use */
995  struct cb_intrinsic_table *intr_tab; /* Table pointer */
996  cb_tree offset; /* Reference mod */
997  cb_tree length; /* Reference mod */
998  int isuser; /* User function */
999 };
1000 
1001 #define CB_INTRINSIC(x) (CB_TREE_CAST (CB_TAG_INTRINSIC, struct cb_intrinsic, x))
1002 #define CB_INTRINSIC_P(x) (CB_TREE_TAG (x) == CB_TAG_INTRINSIC)
1003 
1004 /* INITIALIZE */
1005 
1007  struct cb_tree_common common; /* Common values */
1008  cb_tree var; /* Field */
1009  cb_tree val; /* Value */
1010  cb_tree rep; /* Replacing */
1011  unsigned char flag_default; /* Default */
1012  unsigned char flag_init_statement; /* INITIALIZE statement */
1013  unsigned char flag_no_filler_init; /* No FILLER initialize */
1014  unsigned char padding; /* Padding */
1015 };
1016 
1017 #define CB_INITIALIZE(x) (CB_TREE_CAST (CB_TAG_INITIALIZE, struct cb_initialize, x))
1018 #define CB_INITIALIZE_P(x) (CB_TREE_TAG (x) == CB_TAG_INITIALIZE)
1019 
1020 /* SEARCH */
1021 
1022 struct cb_search {
1023  struct cb_tree_common common; /* Common values */
1024  cb_tree table; /* Table name */
1025  cb_tree var; /* Varying */
1026  cb_tree end_stmt; /* AT END */
1027  cb_tree whens; /* WHEN */
1028  int flag_all; /* SEARCH ALL */
1029 };
1030 
1031 #define CB_SEARCH(x) (CB_TREE_CAST (CB_TAG_SEARCH, struct cb_search, x))
1032 #define CB_SEARCH_P(x) (CB_TREE_TAG (x) == CB_TAG_SEARCH)
1033 
1034 /* CALL */
1035 
1036 struct cb_call {
1037  struct cb_tree_common common; /* Common values */
1038  cb_tree name; /* CALL name */
1039  cb_tree args; /* Arguments */
1040  cb_tree stmt1; /* ON EXCEPTION */
1041  cb_tree stmt2; /* NOT ON EXCEPTION */
1042  cb_tree call_returning; /* RETURNING */
1043  cob_u32_t is_system; /* System call */
1044  int convention; /* CALL convention */
1045 };
1046 
1047 #define CB_CALL(x) (CB_TREE_CAST (CB_TAG_CALL, struct cb_call, x))
1048 #define CB_CALL_P(x) (CB_TREE_TAG (x) == CB_TAG_CALL)
1049 
1050 /* CANCEL */
1051 
1052 struct cb_cancel {
1053  struct cb_tree_common common; /* Common values */
1054  cb_tree target; /* CANCEL target(s) */
1055 };
1056 
1057 #define CB_CANCEL(x) (CB_TREE_CAST (CB_TAG_CANCEL, struct cb_cancel, x))
1058 #define CB_CANCEL_P(x) (CB_TREE_TAG (x) == CB_TAG_CANCEL)
1059 
1060 /* ALTER */
1061 
1062 struct cb_alter {
1063  struct cb_tree_common common; /* Common values */
1064  cb_tree source; /* ALTER source paragraph */
1065  cb_tree target; /* ALTER target GO TO paragraph */
1066 };
1067 
1068 #define CB_ALTER(x) (CB_TREE_CAST (CB_TAG_ALTER, struct cb_alter, x))
1069 #define CB_ALTER_P(x) (CB_TREE_TAG (x) == CB_TAG_ALTER)
1070 
1071 /* GO TO */
1072 
1073 struct cb_goto {
1074  struct cb_tree_common common; /* Common values */
1075  cb_tree target; /* Procedure name(s) */
1076  cb_tree depending; /* DEPENDING */
1077 };
1078 
1079 #define CB_GOTO(x) (CB_TREE_CAST (CB_TAG_GOTO, struct cb_goto, x))
1080 #define CB_GOTO_P(x) (CB_TREE_TAG (x) == CB_TAG_GOTO)
1081 
1082 /* IF */
1083 
1084 struct cb_if {
1085  struct cb_tree_common common; /* Common values */
1086  cb_tree test; /* Condition */
1087  cb_tree stmt1; /* Statement list */
1088  cb_tree stmt2; /* ELSE/WHEN statement list */
1089  unsigned int is_if; /* From IF */
1090 };
1091 
1092 #define CB_IF(x) (CB_TREE_CAST (CB_TAG_IF, struct cb_if, x))
1093 #define CB_IF_P(x) (CB_TREE_TAG (x) == CB_TAG_IF)
1094 
1095 /* PERFORM */
1096 
1098  struct cb_tree_common common; /* Common values */
1099  cb_tree name; /* VARYING item */
1100  cb_tree from; /* FROM */
1101  cb_tree step; /* Increment */
1102  cb_tree until; /* UNTIL */
1103 };
1104 
1105 struct cb_perform {
1106  struct cb_tree_common common; /* Common values */
1107  cb_tree test; /* Condition */
1108  cb_tree body; /* Statements */
1109  cb_tree data; /* TIMES or procedure */
1110  cb_tree varying; /* VARYING */
1111  cb_tree exit_label; /* Implicit exit label */
1112  cb_tree cycle_label; /* EXIT PERFORM CYCLE */
1113  enum cb_perform_type perform_type; /* Perform type */
1114 };
1115 
1116 #define CB_PERFORM_VARYING(x) (CB_TREE_CAST (CB_TAG_PERFORM_VARYING, struct cb_perform_varying, x))
1117 
1118 #define CB_PERFORM(x) (CB_TREE_CAST (CB_TAG_PERFORM, struct cb_perform, x))
1119 #define CB_PERFORM_P(x) (CB_TREE_TAG (x) == CB_TAG_PERFORM)
1120 
1121 /* Struct for extended ACCEPT / DISPLAY */
1122 
1124  cb_tree fgc; /* FOREGROUND COLOR */
1125  cb_tree bgc; /* BACKGROUND COLOR */
1126  cb_tree scroll; /* SCROLL */
1127  cb_tree timeout; /* TIMEOUT */
1128  cb_tree prompt; /* PROMPT */
1129  cb_tree size_is; /* [PROTECTED] SIZE [IS] */
1130  int dispattrs; /* Attributes */
1131 };
1132 
1133 /* Statement */
1134 
1136  struct cb_tree_common common; /* Common values */
1137  const char *name; /* Statement name */
1138  const char *statement; /* Statement line */
1139  cb_tree body; /* Statement body */
1140  cb_tree file; /* File reference */
1141  cb_tree handler1; /* Exception handler */
1142  cb_tree handler2; /* Exception handler */
1143  cb_tree handler3; /* INTO clause */
1144  cb_tree null_check; /* NULL check */
1145  cb_tree debug_check; /* Field DEBUG */
1146  cb_tree debug_nodups; /* Field DEBUG dups */
1147  struct cb_attr_struct *attr_ptr; /* Attributes */
1148  int handler_id; /* Handler id */
1149  unsigned int flag_no_based : 1; /* Check BASED */
1150  unsigned int flag_in_debug : 1; /* In DEBUGGING */
1151  unsigned int flag_merge : 1; /* Is MERGE */
1152  unsigned int flag_callback : 1; /* DEBUG Callback */
1153 };
1154 
1155 #define CB_STATEMENT(x) (CB_TREE_CAST (CB_TAG_STATEMENT, struct cb_statement, x))
1156 #define CB_STATEMENT_P(x) (CB_TREE_TAG (x) == CB_TAG_STATEMENT)
1157 
1158 /* CONTINUE */
1159 
1160 struct cb_continue {
1161  struct cb_tree_common common; /* Common values */
1162 };
1163 
1164 #define CB_CONTINUE(x) (CB_TREE_CAST (CB_TAG_CONTINUE, struct cb_continue, x))
1165 #define CB_CONTINUE_P(x) (CB_TREE_TAG (x) == CB_TAG_CONTINUE)
1166 
1167 /* SET ATTRIBUTE */
1168 
1169 struct cb_set_attr {
1170  struct cb_tree_common common; /* Common values */
1171  struct cb_field *fld;
1172  int val_on;
1173  int val_off;
1174 };
1175 
1176 #define CB_SET_ATTR(x) (CB_TREE_CAST (CB_TAG_SET_ATTR, struct cb_set_attr, x))
1177 #define CB_SET_ATTR_P(x) (CB_TREE_TAG (x) == CB_TAG_SET_ATTR)
1178 
1179 /* List */
1180 
1181 struct cb_list {
1182  struct cb_tree_common common; /* Common values */
1183  cb_tree chain; /* Next in list */
1184  cb_tree value; /* Reference to item(s) */
1185  cb_tree purpose; /* Purpose */
1186  int sizes; /* BY VALUE SIZE */
1187 };
1188 
1189 #define CB_LIST(x) (CB_TREE_CAST (CB_TAG_LIST, struct cb_list, x))
1190 #define CB_LIST_P(x) (CB_TREE_TAG (x) == CB_TAG_LIST)
1191 
1192 #define CB_PURPOSE(x) (CB_LIST (x)->purpose)
1193 #define CB_VALUE(x) (CB_LIST (x)->value)
1194 #define CB_CHAIN(x) (CB_LIST (x)->chain)
1195 #define CB_SIZES(x) (CB_LIST (x)->sizes)
1196 
1197 #define CB_PURPOSE_INT(x) (CB_INTEGER (CB_PURPOSE (x))->val)
1198 
1199 #define CB_SIZES_INT(x) ((CB_LIST (x)->sizes) & 0x07)
1200 #define CB_SIZES_INT_UNSIGNED(x) ((CB_LIST (x)->sizes) & CB_SIZE_UNSIGNED)
1201 
1202 /* Pair */
1203 
1204 #define CB_PAIR_P(x) (CB_LIST_P (x) && CB_PAIR_X (x))
1205 #define CB_PAIR_X(x) CB_PURPOSE (x)
1206 #define CB_PAIR_Y(x) CB_VALUE (x)
1207 
1208 /* Report */
1209 
1210 struct cb_report {
1211  struct cb_tree_common common; /* Common values */
1212  const char *name; /* Original name */
1213  char *cname; /* Name used in C */
1214  struct cb_file *file; /* File */
1215  cb_tree line_counter; /* LINE-COUNTER */
1216  cb_tree page_counter; /* PAGE-COUNTER */
1217  cb_tree code_clause; /* CODE */
1218  cb_tree controls; /* CONTROLS */
1219  int lines; /* PAGE LIMIT LINES */
1220  int columns; /* PAGE LIMIT COLUMNS */
1221  int heading; /* HEADING */
1222  int first_detail; /* FIRST DE */
1223  int last_control; /* LAST CH */
1224  int last_detail; /* LAST DE */
1225  int footing; /* FOOTING */
1226 };
1227 
1228 #define CB_REPORT(x) (CB_TREE_CAST (CB_TAG_REPORT, struct cb_report, x))
1229 #define CB_REPORT_P(x) (CB_TREE_TAG (x) == CB_TAG_REPORT)
1230 
1231 /* Program */
1232 
1233 struct nested_list {
1236 };
1237 
1238 struct cb_program {
1239  struct cb_tree_common common; /* Common values */
1240 
1241  /* Program variables */
1242  struct cb_program *next_program; /* Nested/contained */
1243  const char *program_name; /* Internal program-name */
1244  const char *program_id; /* Demangled external PROGRAM-ID */
1245  char *source_name; /* Source name */
1246  char *orig_program_id; /* Original external PROGRAM-ID */
1247  struct cb_word **word_table; /* Name hash table */
1248  struct local_filename *local_include; /* Local include info */
1249  struct nested_list *nested_prog_list; /* Callable contained */
1250  struct nested_list *common_prog_list; /* COMMON contained */
1251  cb_tree entry_list; /* Entry point list */
1252  cb_tree file_list; /* File list */
1253  cb_tree exec_list; /* Executable statements */
1254  cb_tree label_list; /* Label list */
1255  cb_tree reference_list; /* Reference list */
1256  cb_tree alphabet_name_list; /* ALPHABET list */
1257  cb_tree symbolic_char_list; /* SYMBOLIC list */
1258  cb_tree class_name_list; /* CLASS list */
1259  cb_tree parameter_list; /* USING parameters */
1260  cb_tree locale_list; /* LOCALE list */
1261  cb_tree global_list; /* GLOBAL list */
1262  cb_tree report_list; /* REPORT list */
1263  cb_tree alter_list; /* ALTER list */
1264  cb_tree debug_list; /* DEBUG ref list */
1265  cb_tree cb_return_code; /* RETURN-CODE */
1266  cb_tree cb_sort_return; /* SORT-RETURN */
1267  cb_tree cb_call_params; /* Number of CALL params */
1268  cb_tree mnemonic_spec_list; /* MNEMONIC spec */
1269  cb_tree class_spec_list; /* CLASS spec */
1270  cb_tree interface_spec_list; /* INTERFACE spec */
1271  cb_tree function_spec_list; /* FUNCTION spec */
1272  cb_tree user_spec_list; /* User FUNCTION spec */
1273  cb_tree program_spec_list; /* PROGRAM spec */
1274  cb_tree property_spec_list; /* PROPERTY spec */
1275  struct cb_alter_id *alter_gotos; /* ALTER ids */
1276  struct cb_field *working_storage; /* WORKING-STORAGE */
1277  struct cb_field *local_storage; /* LOCAL-STORAGE */
1278  struct cb_field *linkage_storage; /* LINKAGE */
1279  struct cb_field *screen_storage; /* SCREEN */
1280  struct cb_field *report_storage; /* REPORT */
1281  cb_tree local_file_list; /* Local files */
1282  cb_tree global_file_list; /* Global files */
1283  struct handler_struct global_handler[5]; /* Global handlers */
1284  cb_tree collating_sequence; /* COLLATING */
1285  cb_tree classification; /* CLASSIFICATION */
1286  cb_tree cursor_pos; /* CURSOR */
1287  cb_tree crt_status; /* CRT STATUS */
1288  cb_tree returning; /* RETURNING */
1289  struct cb_label *all_procedure; /* DEBUGGING */
1290 
1291  /* Internal variables */
1292  int loop_counter; /* Loop counters */
1293  int decimal_index; /* cob_decimal count */
1294  int decimal_index_max; /* cob_decimal max */
1295  int nested_level; /* Nested program level */
1296  int num_proc_params; /* PROC DIV params */
1297  int toplev_count; /* Top level source count */
1298  int max_call_param; /* Max params */
1299 
1300  unsigned char decimal_point; /* '.' or ',' */
1301  unsigned char currency_symbol; /* '$' or user-specified */
1302  unsigned char numeric_separator; /* ',' or '.' */
1303  unsigned char prog_type; /* Program type */
1304 
1305  unsigned int flag_main : 1; /* Gen main function */
1306  unsigned int flag_common : 1; /* COMMON PROGRAM */
1307  unsigned int flag_initial : 1; /* INITIAL PROGRAM */
1308  unsigned int flag_recursive : 1; /* RECURSIVE PROGRAM */
1309  unsigned int flag_screen : 1; /* Have SCREEN SECTION */
1310  unsigned int flag_validated : 1; /* End program validate */
1311  unsigned int flag_chained : 1; /* PROCEDURE CHAINING */
1312  unsigned int flag_global_use : 1; /* USE GLOBAL */
1313 
1314  unsigned int flag_gen_error : 1; /* Gen error routine */
1315  unsigned int flag_file_global : 1; /* Global FD */
1316  unsigned int flag_has_external : 1; /* Has EXTERNAL */
1317  unsigned int flag_segments : 1; /* Has segments */
1318  unsigned int flag_trailing_separate : 1; /* TRAILING SEPARATE */
1319  unsigned int flag_console_is_crt : 1; /* CONSOLE IS CRT */
1320  unsigned int flag_debugging : 1; /* DEBUGGING MODE */
1321  unsigned int flag_gen_debug : 1; /* DEBUGGING MODE */
1322 
1323  unsigned int flag_save_exception : 1; /* Save execption code */
1324  unsigned int flag_report : 1; /* Have REPORT SECTION */
1325  unsigned int flag_void : 1; /* void return for subprogram */
1326 };
1327 
1328 #define CB_PROGRAM(x) (CB_TREE_CAST (CB_TAG_PROGRAM, struct cb_program, x))
1329 
1330 /* Function prototype */
1333  /* Name of prototype in the REPOSITORY */
1334  const char *name;
1335  /* External name of the prototype/definition */
1336  const char *ext_name;
1337 };
1338 
1339 #define CB_FUNC_PROTOTYPE(x) (CB_TREE_CAST (CB_TAG_FUNC_PROTOTYPE, struct cb_func_prototype, x))
1340 #define CB_FUNC_PROTOTYPE_P(x) (CB_TREE_TAG (x) == CB_TAG_FUNC_PROTOTYPE)
1341 
1342 /* Functions/variables */
1343 
1344 /* tree.c */
1345 
1346 extern cb_tree cb_any;
1347 extern cb_tree cb_true;
1348 extern cb_tree cb_false;
1349 extern cb_tree cb_null;
1350 extern cb_tree cb_zero;
1351 extern cb_tree cb_one;
1352 extern cb_tree cb_space;
1353 extern cb_tree cb_low;
1354 extern cb_tree cb_high;
1355 extern cb_tree cb_norm_low;
1356 extern cb_tree cb_norm_high;
1357 extern cb_tree cb_quote;
1358 extern cb_tree cb_int0;
1359 extern cb_tree cb_int1;
1360 extern cb_tree cb_int2;
1361 extern cb_tree cb_int3;
1362 extern cb_tree cb_int4;
1363 extern cb_tree cb_int5;
1364 extern cb_tree cb_i[COB_MAX_SUBSCRIPTS];
1365 extern cb_tree cb_error_node;
1366 
1367 extern cb_tree cb_intr_whencomp;
1368 
1369 extern cb_tree cb_standard_error_handler;
1370 extern cb_tree cb_depend_check;
1371 
1372 extern unsigned int gen_screen_ptr;
1373 
1374 extern char *cb_name (cb_tree);
1375 extern enum cb_class cb_tree_class (cb_tree);
1376 extern enum cb_category cb_tree_category (cb_tree);
1377 extern int cb_tree_type (const cb_tree,
1378  const struct cb_field *);
1379 extern int cb_category_is_alpha (cb_tree);
1380 extern int cb_fits_int (const cb_tree);
1381 extern int cb_fits_long_long (const cb_tree);
1382 extern int cb_get_int (const cb_tree);
1383 extern cob_s64_t cb_get_long_long (const cb_tree);
1384 extern cob_u64_t cb_get_u_long_long (const cb_tree);
1385 
1386 extern void cb_init_constants (void);
1387 
1388 extern cb_tree cb_int (const int);
1389 extern cb_tree cb_int_hex (const int);
1390 
1391 extern cb_tree cb_build_string (const void *, const size_t);
1392 
1393 extern cb_tree cb_build_class_name (cb_tree, cb_tree);
1394 
1395 extern cb_tree cb_build_locale_name (cb_tree, cb_tree);
1396 
1397 extern cb_tree cb_build_numeric_literal (const int,
1398  const void *,
1399  const int);
1400 extern cb_tree cb_build_alphanumeric_literal (const void *,
1401  const size_t);
1402 extern cb_tree cb_build_numsize_literal (const void *,
1403  const size_t,
1404  const int);
1405 extern cb_tree cb_concat_literals (const cb_tree,
1406  const cb_tree);
1407 
1408 extern cb_tree cb_build_decimal (const int);
1409 
1410 extern cb_tree cb_build_picture (const char *);
1411 extern cb_tree cb_build_comment (const char *);
1412 extern cb_tree cb_build_direct (const char *,
1413  const unsigned int);
1414 extern cb_tree cb_build_debug (const cb_tree, const char *,
1415  const cb_tree);
1416 extern cb_tree cb_build_debug_call (struct cb_label *);
1417 
1418 extern struct cb_picture *cb_build_binary_picture (const char *,
1419  const cob_u32_t,
1420  const cob_u32_t);
1421 
1422 extern cb_tree cb_build_field (cb_tree);
1423 extern cb_tree cb_build_implicit_field (cb_tree, const int);
1424 extern cb_tree cb_build_constant (cb_tree, cb_tree);
1425 
1426 extern void cb_build_symbolic_chars (const cb_tree,
1427  const cb_tree);
1428 
1429 extern struct cb_field *cb_field_add (struct cb_field *,
1430  struct cb_field *);
1431 extern struct cb_field *cb_field_founder (const struct cb_field *);
1432 extern struct cb_field *cb_field_variable_size (const struct cb_field *);
1433 extern unsigned int cb_field_variable_address (const struct cb_field *);
1434 extern int cb_field_subordinate (const struct cb_field *,
1435  const struct cb_field *);
1436 
1437 extern cb_tree cb_build_label (cb_tree, struct cb_label *);
1438 
1439 extern struct cb_file *build_file (cb_tree);
1440 extern void validate_file (struct cb_file *, cb_tree);
1441 extern void finalize_file (struct cb_file *,
1442  struct cb_field *);
1443 
1444 extern cb_tree cb_build_filler (void);
1445 extern cb_tree cb_build_reference (const char *);
1446 extern cb_tree cb_build_field_reference (struct cb_field *,
1447  cb_tree);
1448 extern const char *cb_define (cb_tree, cb_tree);
1449 extern char *cb_to_cname (const char *);
1450 extern void cb_set_system_names (void);
1451 extern cb_tree cb_ref (cb_tree);
1452 
1453 extern cb_tree cb_build_binary_op (cb_tree, const int,
1454  cb_tree);
1455 extern cb_tree cb_build_binary_list (cb_tree, const int);
1456 
1457 extern cb_tree cb_build_funcall (const char *, const int,
1458  const cb_tree, const cb_tree,
1459  const cb_tree, const cb_tree,
1460  const cb_tree, const cb_tree,
1461  const cb_tree, const cb_tree,
1462  const cb_tree, const cb_tree,
1463  const cb_tree);
1464 
1465 extern cb_tree cb_build_cast (const enum cb_cast_type,
1466  const cb_tree);
1467 extern cb_tree cb_build_cast_int (const cb_tree);
1468 extern cb_tree cb_build_cast_llint (const cb_tree);
1469 
1470 extern cb_tree cb_build_assign (const cb_tree, const cb_tree);
1471 
1472 extern cb_tree cb_build_intrinsic (cb_tree, cb_tree,
1473  cb_tree, const int);
1474 extern cb_tree cb_build_func_prototype (const cb_tree,
1475  const cb_tree);
1476 extern cb_tree cb_build_any_intrinsic (cb_tree);
1477 
1478 extern cb_tree cb_build_search (const int,
1479  const cb_tree, const cb_tree,
1480  const cb_tree, const cb_tree);
1481 
1482 extern cb_tree cb_build_call (const cb_tree, const cb_tree,
1483  const cb_tree, const cb_tree,
1484  const cb_tree, const cob_u32_t,
1485  const int);
1486 
1487 extern cb_tree cb_build_alter (const cb_tree, const cb_tree);
1488 
1489 extern cb_tree cb_build_cancel (const cb_tree);
1490 
1491 extern cb_tree cb_build_goto (const cb_tree, const cb_tree);
1492 
1493 extern cb_tree cb_build_if (const cb_tree, const cb_tree,
1494  const cb_tree, const unsigned int);
1495 
1496 extern cb_tree cb_build_perform (const enum cb_perform_type);
1497 extern cb_tree cb_build_perform_varying (cb_tree, cb_tree,
1498  cb_tree, cb_tree);
1499 
1500 extern struct cb_statement *cb_build_statement (const char *);
1501 
1502 extern cb_tree cb_build_continue (void);
1503 
1504 extern cb_tree cb_build_list (cb_tree, cb_tree, cb_tree);
1505 extern cb_tree cb_list_add (cb_tree, cb_tree);
1506 extern cb_tree cb_pair_add (cb_tree, cb_tree, cb_tree);
1507 extern cb_tree cb_list_append (cb_tree, cb_tree);
1508 extern cb_tree cb_list_reverse (cb_tree);
1509 extern int cb_list_length (cb_tree);
1510 
1511 extern struct cb_report *build_report (cb_tree);
1512 
1513 extern void cb_add_common_prog (struct cb_program *);
1514 extern void cb_insert_common_prog (struct cb_program *,
1515  struct cb_program *);
1516 
1517 
1518 extern struct cb_intrinsic_table *lookup_intrinsic (const char *,
1519  const int,
1520  const int);
1521 
1522 extern cb_tree cb_build_alphabet_name (cb_tree);
1523 
1524 extern cb_tree cb_build_initialize (const cb_tree, const cb_tree,
1525  const cb_tree,
1526  const unsigned int,
1527  const unsigned int,
1528  const unsigned int);
1529 
1530 struct cb_literal *build_literal (enum cb_category,
1531  const void *,
1532  const size_t);
1533 
1534 extern cb_tree cb_build_system_name (const enum cb_system_name_category,
1535  const int);
1536 
1537 /* parser.y */
1538 extern cb_tree cobc_printer_node;
1539 extern int non_const_word;
1540 extern unsigned int cobc_in_procedure;
1541 extern unsigned int cobc_in_repository;
1542 extern unsigned int cobc_force_literal;
1543 extern unsigned int cobc_cs_check;
1544 
1545 /* reserved.c */
1546 extern struct cobc_reserved *lookup_reserved_word (const char *);
1547 extern cb_tree lookup_system_name (const char *);
1548 extern void cb_list_reserved (void);
1549 extern void cb_list_intrinsics (void);
1550 extern void cb_list_mnemonics (void);
1551 extern void cb_list_system (void);
1552 extern void cb_list_map (cb_tree (*) (cb_tree), cb_tree);
1553 
1554 /* error.c */
1555 extern void cb_warning_x (cb_tree, const char *, ...) COB_A_FORMAT23;
1556 extern void cb_error_x (cb_tree, const char *, ...) COB_A_FORMAT23;
1557 
1558 extern void redefinition_error (cb_tree);
1559 extern void redefinition_warning (cb_tree, cb_tree);
1560 extern void undefined_error (cb_tree);
1561 extern void ambiguous_error (cb_tree);
1562 extern void group_error (cb_tree, const char *);
1563 extern void level_redundant_error (cb_tree, const char *);
1564 extern void level_require_error (cb_tree, const char *);
1565 extern void level_except_error (cb_tree, const char *);
1566 
1567 /* field.c */
1568 extern size_t cb_needs_01;
1569 extern int cb_get_level (cb_tree);
1570 extern cb_tree cb_build_field_tree (cb_tree, cb_tree, struct cb_field *,
1571  enum cb_storage, struct cb_file *,
1572  const int);
1573 extern struct cb_field *cb_resolve_redefines (struct cb_field *, cb_tree);
1574 extern void cb_validate_field (struct cb_field *);
1575 extern void cb_validate_88_item (struct cb_field *);
1576 extern struct cb_field *cb_validate_78_item (struct cb_field *, const cob_u32_t);
1577 extern struct cb_field *cb_get_real_field (void);
1578 extern void cb_clear_real_field (void);
1579 
1580 /* typeck.c */
1581 extern cb_tree cb_debug_item;
1582 extern cb_tree cb_debug_line;
1583 extern cb_tree cb_debug_name;
1584 extern cb_tree cb_debug_sub_1;
1585 extern cb_tree cb_debug_sub_2;
1586 extern cb_tree cb_debug_sub_3;
1587 extern cb_tree cb_debug_contents;
1588 
1589 extern struct cb_program *cb_build_program (struct cb_program *,
1590  const int);
1591 
1592 extern cb_tree cb_check_numeric_value (cb_tree);
1593 extern size_t cb_check_index_p (cb_tree x);
1594 
1595 extern void cb_build_registers (void);
1596 extern void cb_build_debug_item (void);
1597 extern void cb_check_field_debug (cb_tree);
1598 extern char *cb_encode_program_id (const char *);
1599 extern char *cb_build_program_id (cb_tree, cb_tree, const cob_u32_t);
1600 extern cb_tree cb_define_switch_name (cb_tree, cb_tree, const int);
1601 extern cb_tree cb_build_section_name (cb_tree, const int);
1602 extern cb_tree cb_build_assignment_name (struct cb_file *, cb_tree);
1603 extern cb_tree cb_build_index (cb_tree, cb_tree,
1604  const unsigned int, struct cb_field *);
1605 extern cb_tree cb_build_identifier (cb_tree, const int);
1606 extern cb_tree cb_build_length (cb_tree);
1607 extern cb_tree cb_build_const_length (cb_tree);
1608 extern cb_tree cb_build_address (cb_tree);
1609 extern cb_tree cb_build_ppointer (cb_tree);
1610 
1611 extern void cb_validate_program_environment (struct cb_program *);
1612 extern void cb_validate_program_data (struct cb_program *);
1613 extern void cb_validate_program_body (struct cb_program *);
1614 
1615 extern cb_tree cb_build_expr (cb_tree);
1616 extern cb_tree cb_build_cond (cb_tree);
1617 
1618 extern void cb_emit_arithmetic (cb_tree, const int, cb_tree);
1619 extern cb_tree cb_build_add (cb_tree, cb_tree, cb_tree);
1620 extern cb_tree cb_build_sub (cb_tree, cb_tree, cb_tree);
1621 extern void cb_emit_corresponding (
1622  cb_tree (*) (cb_tree, cb_tree, cb_tree),
1623  cb_tree, cb_tree, cb_tree);
1624 extern void cb_emit_move_corresponding (cb_tree, cb_tree);
1625 
1626 extern void cb_emit_accept (cb_tree, cb_tree,
1627  struct cb_attr_struct *);
1628 extern void cb_emit_accept_line_or_col (cb_tree, const int);
1629 extern void cb_emit_accept_escape_key (cb_tree);
1630 extern void cb_emit_accept_exception_status (cb_tree);
1631 extern void cb_emit_accept_user_name (cb_tree);
1632 extern void cb_emit_accept_date (cb_tree);
1633 extern void cb_emit_accept_date_yyyymmdd (cb_tree);
1634 extern void cb_emit_accept_day (cb_tree);
1635 extern void cb_emit_accept_day_yyyyddd (cb_tree);
1636 extern void cb_emit_accept_day_of_week (cb_tree);
1637 extern void cb_emit_accept_time (cb_tree);
1638 extern void cb_emit_accept_command_line (cb_tree);
1639 extern void cb_emit_accept_environment (cb_tree);
1640 extern void cb_emit_accept_mnemonic (cb_tree, cb_tree);
1641 extern void cb_emit_accept_name (cb_tree, cb_tree);
1642 extern void cb_emit_accept_arg_number (cb_tree);
1643 extern void cb_emit_accept_arg_value (cb_tree);
1644 extern void cb_emit_get_environment (cb_tree, cb_tree);
1645 
1646 extern void cb_emit_allocate (cb_tree, cb_tree,
1647  cb_tree, cb_tree);
1648 extern void cb_emit_alter (cb_tree, cb_tree);
1649 extern void cb_emit_free (cb_tree);
1650 
1651 extern void cb_emit_call (cb_tree, cb_tree, cb_tree, cb_tree,
1652  cb_tree, cb_tree);
1653 
1654 extern void cb_emit_cancel (cb_tree);
1655 extern void cb_emit_close (cb_tree, cb_tree);
1656 extern void cb_emit_commit (void);
1657 extern void cb_emit_continue (void);
1658 extern void cb_emit_delete (cb_tree);
1659 extern void cb_emit_delete_file (cb_tree);
1660 extern void cb_emit_display_omitted (cb_tree,
1661  struct cb_attr_struct *);
1662 extern void cb_emit_display (cb_tree, cb_tree,
1663  cb_tree, cb_tree,
1664  struct cb_attr_struct *);
1665 extern cb_tree cb_build_display_mnemonic (cb_tree);
1666 extern cb_tree cb_build_display_name (cb_tree);
1667 extern void cb_emit_env_name (cb_tree);
1668 extern void cb_emit_env_value (cb_tree);
1669 extern void cb_emit_arg_number (cb_tree);
1670 extern void cb_emit_command_line (cb_tree);
1671 
1672 extern void cb_emit_divide (cb_tree, cb_tree,
1673  cb_tree, cb_tree);
1674 
1675 extern void cb_emit_evaluate (cb_tree, cb_tree);
1676 
1677 extern void cb_emit_goto (cb_tree, cb_tree);
1678 extern void cb_emit_exit (const unsigned int);
1679 
1680 extern void cb_emit_if (cb_tree, cb_tree, cb_tree);
1681 extern cb_tree cb_build_if_check_break (cb_tree, cb_tree);
1682 
1683 extern void cb_emit_initialize (cb_tree, cb_tree,
1684  cb_tree, cb_tree,
1685  cb_tree);
1686 
1687 extern void cb_emit_inspect (cb_tree, cb_tree,
1688  cb_tree, const unsigned int);
1689 extern void cb_init_tallying (void);
1690 extern cb_tree cb_build_tallying_data (cb_tree);
1691 extern cb_tree cb_build_tallying_characters (cb_tree);
1692 extern cb_tree cb_build_tallying_all (void);
1693 extern cb_tree cb_build_tallying_leading (void);
1694 extern cb_tree cb_build_tallying_trailing (void);
1695 extern cb_tree cb_build_tallying_value (cb_tree, cb_tree);
1696 extern cb_tree cb_build_replacing_characters (cb_tree, cb_tree);
1697 extern cb_tree cb_build_replacing_all (cb_tree, cb_tree, cb_tree);
1698 extern cb_tree cb_build_replacing_leading (cb_tree, cb_tree, cb_tree);
1699 extern cb_tree cb_build_replacing_first (cb_tree, cb_tree, cb_tree);
1700 extern cb_tree cb_build_replacing_trailing (cb_tree, cb_tree, cb_tree);
1701 extern cb_tree cb_build_converting (cb_tree, cb_tree, cb_tree);
1702 extern cb_tree cb_build_inspect_region_start (void);
1703 
1704 extern int validate_move (cb_tree, cb_tree, const unsigned int);
1705 extern cb_tree cb_build_move (cb_tree, cb_tree);
1706 extern void cb_emit_move (cb_tree, cb_tree);
1707 
1708 extern void cb_emit_open (cb_tree, cb_tree, cb_tree);
1709 
1710 extern void cb_emit_perform (cb_tree, cb_tree);
1711 extern cb_tree cb_build_perform_once (cb_tree);
1712 extern cb_tree cb_build_perform_times (cb_tree);
1713 extern cb_tree cb_build_perform_until (cb_tree, cb_tree);
1714 extern cb_tree cb_build_perform_forever (cb_tree);
1715 extern cb_tree cb_build_perform_exit (struct cb_label *);
1716 
1717 extern void cb_emit_read (cb_tree, cb_tree, cb_tree,
1718  cb_tree, cb_tree);
1719 
1720 extern void cb_emit_ready_trace (void);
1721 extern void cb_emit_rewrite (cb_tree, cb_tree, cb_tree);
1722 
1723 extern void cb_emit_release (cb_tree, cb_tree);
1724 extern void cb_emit_reset_trace (void);
1725 extern void cb_emit_return (cb_tree, cb_tree);
1726 
1727 extern void cb_emit_rollback (void);
1728 
1729 extern void cb_emit_search (cb_tree, cb_tree,
1730  cb_tree, cb_tree);
1731 extern void cb_emit_search_all (cb_tree, cb_tree,
1732  cb_tree, cb_tree);
1733 
1734 extern void cb_emit_setenv (cb_tree, cb_tree);
1735 extern void cb_emit_set_to (cb_tree, cb_tree);
1736 extern void cb_emit_set_up_down (cb_tree, cb_tree, cb_tree);
1737 extern void cb_emit_set_on_off (cb_tree, cb_tree);
1738 extern void cb_emit_set_true (cb_tree);
1739 extern void cb_emit_set_false (cb_tree);
1740 extern void cb_emit_set_attribute (cb_tree, const int, const int);
1741 extern cb_tree cb_build_set_attribute (const struct cb_field *,
1742  const int, const int);
1743 extern void cb_emit_set_last_exception_to_off (void);
1744 
1745 extern void cb_emit_sort_init (cb_tree, cb_tree, cb_tree);
1746 extern void cb_emit_sort_using (cb_tree, cb_tree);
1747 extern void cb_emit_sort_input (cb_tree);
1748 extern void cb_emit_sort_giving (cb_tree, cb_tree);
1749 extern void cb_emit_sort_output (cb_tree);
1750 extern void cb_emit_sort_finish (cb_tree);
1751 
1752 extern void cb_emit_start (cb_tree, cb_tree, cb_tree, cb_tree);
1753 
1754 extern void cb_emit_stop_run (cb_tree);
1755 
1756 extern void cb_emit_string (cb_tree, cb_tree, cb_tree);
1757 
1758 extern void cb_emit_unlock (cb_tree);
1759 
1760 extern void cb_emit_unstring (cb_tree, cb_tree, cb_tree, cb_tree,
1761  cb_tree);
1762 extern cb_tree cb_build_unstring_delimited (cb_tree, cb_tree);
1763 extern cb_tree cb_build_unstring_into (cb_tree, cb_tree, cb_tree);
1764 
1765 extern void cb_emit_write (cb_tree, cb_tree, cb_tree, cb_tree);
1766 extern cb_tree cb_build_write_advancing_lines (cb_tree, cb_tree);
1767 extern cb_tree cb_build_write_advancing_mnemonic (cb_tree, cb_tree);
1768 extern cb_tree cb_build_write_advancing_page (cb_tree);
1769 
1770 DECLNORET extern void cobc_tree_cast_error (const cb_tree, const char *,
1771  const int,
1772  const enum cb_tag) COB_A_NORETURN;
1773 
1774 #if !defined(__GNUC__) && defined(COB_TREE_DEBUG)
1775 extern cb_tree cobc_tree_cast_check (const cb_tree, const char *,
1776  const int, const enum cb_tag);
1777 #endif
1778 
1779 
1780 /* codegen.c */
1781 extern void codegen (struct cb_program *, const int);
1782 
1783 /* scanner.l */
1784 extern void cb_unput_dot (void);
1785 extern void cb_add_78 (struct cb_field *);
1786 extern void cb_reset_78 (void);
1787 extern void cb_reset_global_78 (void);
1788 extern struct cb_field *check_level_78 (const char *);
1789 
1790 extern struct cb_program *cb_find_defined_program_by_name (const char *);
1791 extern struct cb_program *cb_find_defined_program_by_id (const char *);
1792 
1793 /* Function defines */
1794 
1795 #define CB_BUILD_FUNCALL_0(f) \
1796  cb_build_funcall (f, 0, NULL, NULL, NULL, NULL, NULL, \
1797  NULL, NULL, NULL, NULL, NULL, NULL)
1798 
1799 #define CB_BUILD_FUNCALL_1(f,a1) \
1800  cb_build_funcall (f, 1, a1, NULL, NULL, NULL, NULL, \
1801  NULL, NULL, NULL, NULL, NULL, NULL)
1802 
1803 #define CB_BUILD_FUNCALL_2(f,a1,a2) \
1804  cb_build_funcall (f, 2, a1, a2, NULL, NULL, NULL, \
1805  NULL, NULL, NULL, NULL, NULL, NULL)
1806 
1807 #define CB_BUILD_FUNCALL_3(f,a1,a2,a3) \
1808  cb_build_funcall (f, 3, a1, a2, a3, NULL, NULL, NULL, \
1809  NULL, NULL, NULL, NULL, NULL)
1810 
1811 #define CB_BUILD_FUNCALL_4(f,a1,a2,a3,a4) \
1812  cb_build_funcall (f, 4, a1, a2, a3, a4, NULL, \
1813  NULL, NULL, NULL, NULL, NULL, NULL)
1814 
1815 #define CB_BUILD_FUNCALL_5(f,a1,a2,a3,a4,a5) \
1816  cb_build_funcall (f, 5, a1, a2, a3, a4, a5, \
1817  NULL, NULL, NULL, NULL, NULL, NULL)
1818 
1819 #define CB_BUILD_FUNCALL_6(f,a1,a2,a3,a4,a5,a6) \
1820  cb_build_funcall (f, 6, a1, a2, a3, a4, a5, a6, \
1821  NULL, NULL, NULL, NULL, NULL)
1822 
1823 #define CB_BUILD_FUNCALL_7(f,a1,a2,a3,a4,a5,a6,a7) \
1824  cb_build_funcall (f, 7, a1, a2, a3, a4, a5, a6, a7, \
1825  NULL, NULL, NULL, NULL)
1826 
1827 #define CB_BUILD_FUNCALL_8(f,a1,a2,a3,a4,a5,a6,a7,a8) \
1828  cb_build_funcall (f, 8, a1, a2, a3, a4, a5, a6, a7, a8, \
1829  NULL, NULL, NULL)
1830 
1831 #define CB_BUILD_FUNCALL_9(f,a1,a2,a3,a4,a5,a6,a7,a8,a9) \
1832  cb_build_funcall (f, 9, a1, a2, a3, a4, a5, a6, a7, a8, \
1833  a9, NULL, NULL)
1834 
1835 #define CB_BUILD_FUNCALL_10(f,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) \
1836  cb_build_funcall (f, 10, a1, a2, a3, a4, a5, a6, a7, a8, \
1837  a9, a10, NULL)
1838 
1839 /* Miscellanous defines */
1840 
1841 #define CB_BUILD_CAST_ADDRESS(x) cb_build_cast (CB_CAST_ADDRESS, x)
1842 #define CB_BUILD_CAST_ADDR_OF_ADDR(x) cb_build_cast (CB_CAST_ADDR_OF_ADDR, x)
1843 #define CB_BUILD_CAST_LENGTH(x) cb_build_cast (CB_CAST_LENGTH, x)
1844 #define CB_BUILD_CAST_PPOINTER(x) cb_build_cast (CB_CAST_PROGRAM_POINTER, x)
1845 
1846 #define CB_BUILD_PARENTHESIS(x) cb_build_binary_op (x, '@', NULL)
1847 #define CB_BUILD_NEGATION(x) cb_build_binary_op (x, '!', NULL)
1848 
1849 #define CB_BUILD_STRING0(str) cb_build_string (str, strlen ((char *)(str)))
1850 
1851 #define CB_LIST_INIT(x) cb_build_list (NULL, x, NULL)
1852 #define CB_BUILD_CHAIN(x,y) cb_build_list (NULL, x, y)
1853 #define CB_BUILD_PAIR(x,y) cb_build_list (x, y, NULL)
1854 #define CB_ADD_TO_CHAIN(x,y) y = CB_BUILD_CHAIN (x, y)
1855 #define CB_CHAIN_PAIR(x,y,z) x = cb_pair_add (x, y, z)
1856 #define CB_FIELD_ADD(x,y) x = cb_field_add (x, y)
1857 
1858 
1859 #endif /* CB_TREE_H */
unsigned int flag_justified
Definition: tree.h:706
int optional
Definition: tree.h:843
cb_tree cb_zero
Definition: tree.c:125
int indexes
Definition: tree.h:678
cb_tree check
Definition: tree.h:880
struct cb_label * handler_label
Definition: tree.h:805
unsigned int nolitcast
Definition: tree.h:948
unsigned int flag_is_debug_sect
Definition: tree.h:797
const char * name
Definition: tree.h:645
cb_tree cb_list_add(cb_tree, cb_tree)
Definition: tree.c:1315
Definition: tree.h:1036
int convention
Definition: tree.h:1044
const char * cb_define(cb_tree, cb_tree)
Definition: tree.c:1367
const char * orig_name
Definition: tree.h:767
unsigned int flag_is_pointer
Definition: tree.h:710
Definition: tree.h:1181
int occurs_max
Definition: tree.h:677
enum cb_perform_type perform_type
Definition: tree.h:1113
void cb_emit_sort_using(cb_tree, cb_tree)
Definition: typeck.c:8293
unsigned int flag_real_binary
Definition: tree.h:708
cb_tree line_counter
Definition: tree.h:1215
cb_tree cb_i[16]
Definition: tree.c:139
cb_tree cb_build_cast_int(const cb_tree)
Definition: tree.c:2964
cb_tree returning
Definition: tree.h:1288
void level_except_error(cb_tree, const char *)
Definition: error.c:441
cb_tree intr_field
Definition: tree.h:994
cb_tree code_clause
Definition: tree.h:1217
cb_tree cb_false
Definition: tree.c:123
void undefined_error(cb_tree)
Definition: error.c:317
const char * name
Definition: tree.h:979
cb_tree end_stmt
Definition: tree.h:1026
unsigned int flag_optional
Definition: tree.h:896
int source_column
Definition: tree.h:433
void cb_error_x(cb_tree, const char *,...) COB_A_FORMAT23
Definition: error.c:233
struct cb_field * local_storage
Definition: tree.h:1277
#define COB_A_FORMAT23
Definition: common.h:368
short sign
Definition: tree.h:597
const char * name
Definition: tree.h:766
int size
Definition: tree.h:622
int record_max
Definition: tree.h:842
void cb_emit_search(cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:7965
void cb_emit_accept_date_yyyymmdd(cb_tree)
Definition: typeck.c:4521
cb_tree cb_build_perform_exit(struct cb_label *)
Definition: typeck.c:7574
cb_tree debug_check
Definition: tree.h:1145
cb_tree stmt2
Definition: tree.h:1041
struct cb_tree_common common
Definition: tree.h:1063
cb_tree cb_quote
Definition: tree.c:132
#define cob_u32_t
Definition: common.h:31
void cb_reset_78(void)
Definition: scanner.c:4771
void cb_emit_accept_exception_status(cb_tree)
Definition: typeck.c:4494
void group_error(cb_tree, const char *)
Definition: error.c:398
cb_tree fld
Definition: tree.h:497
cb_tree cb_space
Definition: tree.c:127
void level_redundant_error(cb_tree, const char *)
Definition: error.c:405
unsigned int flag_filler
Definition: tree.h:714
unsigned int flag_is_pdiv_opt
Definition: tree.h:725
cb_tree cb_debug_sub_3
Definition: typeck.c:87
int scale
Definition: tree.h:626
const int implemented
Definition: tree.h:983
unsigned int flag_gen_debug
Definition: tree.h:1321
unsigned int flag_line_adv
Definition: tree.h:855
unsigned int cb_field_variable_address(const struct cb_field *)
Definition: tree.c:2255
const char * name
Definition: tree.h:820
cb_tree val
Definition: tree.h:639
unsigned int odo_level
Definition: tree.h:687
struct cb_intrinsic_table * lookup_intrinsic(const char *, const int, const int)
Definition: reserved.c:2976
cb_tree cb_int4
Definition: tree.c:137
cb_tree report_list
Definition: tree.h:1262
int offset
Definition: tree.h:815
cb_tree mnemonic_spec_list
Definition: tree.h:1268
int toplev_count
Definition: tree.h:1297
unsigned int flag_any_length
Definition: tree.h:712
void cb_validate_program_body(struct cb_program *)
Definition: typeck.c:2554
unsigned int flag_global
Definition: tree.h:853
unsigned int flag_initial
Definition: tree.h:1307
int lenstr
Definition: tree.h:623
unsigned int flag_in_decl
Definition: tree.h:889
cb_tree cb_standard_error_handler
Definition: tree.c:144
struct cb_label * debug_section
Definition: tree.h:661
void cb_emit_set_on_off(cb_tree, cb_tree)
Definition: typeck.c:8124
cb_tree step
Definition: tree.h:1101
struct cb_field * sister
Definition: tree.h:653
cb_tree purpose
Definition: tree.h:1185
cob_u32_t real_digits
Definition: tree.h:628
unsigned int flag_local_alloced
Definition: tree.h:726
unsigned int flag_global_use
Definition: tree.h:1312
int cb_tree_type(const cb_tree, const struct cb_field *)
Definition: tree.c:849
cb_tree screen_backg
Definition: tree.h:668
int isuser
Definition: tree.h:998
void cb_emit_write(cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:8604
unsigned int flag_no_based
Definition: tree.h:1149
cb_tree cb_build_unstring_delimited(cb_tree, cb_tree)
Definition: typeck.c:8578
const int min_args
Definition: tree.h:985
struct cb_field * children
Definition: tree.h:652
cb_tree cb_int0
Definition: tree.c:133
struct cb_tree_common common
Definition: tree.h:472
cb_tree program_spec_list
Definition: tree.h:1273
int same_clause
Definition: tree.h:848
cb_tree cb_build_call(const cb_tree, const cb_tree, const cb_tree, const cb_tree, const cb_tree, const cob_u32_t, const int)
Definition: tree.c:3067
int lock_mode
Definition: tree.h:846
char * str
Definition: tree.h:621
struct cb_program * cb_build_program(struct cb_program *, const int)
Definition: tree.c:1400
int cb_get_level(cb_tree)
Definition: field.c:46
const char * value
Definition: tree.h:496
void cb_init_constants(void)
Definition: tree.c:1259
unsigned int flag_global
Definition: tree.h:782
void cb_set_system_names(void)
Definition: tree.c:2637
void cb_emit_move_corresponding(cb_tree, cb_tree)
Definition: typeck.c:4175
struct cb_tree_common common
Definition: tree.h:1170
int occurs_min
Definition: tree.h:676
void cb_emit_call(cb_tree, cb_tree, cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:4748
Definition: tree.h:88
cb_tree cb_build_continue(void)
Definition: tree.c:3214
unsigned short context_sens
Definition: tree.h:420
const int token
Definition: tree.h:982
cb_tree property_spec_list
Definition: tree.h:1274
cb_tree cb_int3
Definition: tree.c:136
cb_tree global_file_list
Definition: tree.h:1282
struct cb_tree_common common
Definition: tree.h:619
unsigned int flag_filler_ref
Definition: tree.h:897
void cb_emit_stop_run(cb_tree)
Definition: typeck.c:8482
unsigned int flag_odo_relative
Definition: tree.h:731
cb_tree body
Definition: tree.h:1108
unsigned int flag_anylen_done
Definition: tree.h:720
cb_tree value
Definition: tree.h:876
Definition: tree.h:493
cb_tree reference_list
Definition: tree.h:1255
cb_tree cb_build_func_prototype(const cb_tree, const cb_tree)
Definition: tree.c:3265
cb_tree cb_build_direct(const char *, const unsigned int)
Definition: tree.c:1553
cb_tree screen_from
Definition: tree.h:665
unsigned int flag_synchronized
Definition: tree.h:715
void cb_emit_move(cb_tree, cb_tree)
Definition: typeck.c:7416
struct cb_file * file
Definition: tree.h:1214
unsigned int flag_is_c_long
Definition: tree.h:723
cob_u32_t is_system
Definition: tree.h:1043
int val_off
Definition: tree.h:1173
struct cb_tree_common common
Definition: tree.h:482
void cb_emit_open(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:7461
unsigned int flag_fatal_check
Definition: tree.h:786
void cb_emit_set_false(cb_tree)
Definition: typeck.c:8171
unsigned int flag_real_label
Definition: tree.h:781
cb_tree exit_label
Definition: tree.h:771
cb_tree cb_build_alter(const cb_tree, const cb_tree)
Definition: tree.c:3101
unsigned int flag_is_returning
Definition: tree.h:737
struct cb_tree_common common
Definition: tree.h:1037
const char * val
Definition: tree.h:473
unsigned int flag_fileid
Definition: tree.h:852
const char * source_file
Definition: tree.h:431
void cb_emit_accept_mnemonic(cb_tree, cb_tree)
Definition: typeck.c:4614
cb_tree cb_build_expr(cb_tree)
Definition: typeck.c:3136
int cb_category_is_alpha(cb_tree)
Definition: tree.c:843
cb_tree ref
Definition: tree.h:638
unsigned int flag_save_exception
Definition: tree.h:1323
cb_cast_type
Definition: tree.h:290
cb_tree cb_build_write_advancing_lines(cb_tree, cb_tree)
Definition: typeck.c:8685
int nested_level
Definition: tree.h:1295
unsigned int is_if
Definition: tree.h:1089
enum cb_class cb_tree_class(cb_tree)
Definition: tree.c:836
void cb_emit_read(cb_tree, cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:7586
struct cb_picture * pic
Definition: tree.h:659
char * cname
Definition: tree.h:570
cob_u32_t digits
Definition: tree.h:625
cb_tree cb_build_numeric_literal(const int, const void *, const int)
Definition: tree.c:1681
unsigned int flag_target
Definition: tree.h:894
unsigned char flag_default
Definition: tree.h:1011
int max_call_param
Definition: tree.h:1298
cb_tree test
Definition: tree.h:1086
const char * name
Definition: tree.h:943
cb_tree scroll
Definition: tree.h:1126
struct cb_field * cb_field_add(struct cb_field *, struct cb_field *)
Definition: tree.c:2212
cb_tree stmt1
Definition: tree.h:1087
int argc
Definition: tree.h:945
struct cb_tree_common common
Definition: tree.h:1106
cb_tree cb_build_cond(cb_tree)
Definition: typeck.c:3737
cb_tree lattop
Definition: tree.h:835
cb_tree cb_build_address(cb_tree)
Definition: typeck.c:1357
cb_tree local_file_list
Definition: tree.h:1281
cb_tree crt_status
Definition: tree.h:1287
unsigned int flag_main
Definition: tree.h:1305
void cb_emit_accept(cb_tree, cb_tree, struct cb_attr_struct *)
Definition: typeck.c:4341
unsigned int flag_next_sentence
Definition: tree.h:790
struct nested_list * next
Definition: tree.h:1234
struct cb_literal * build_literal(enum cb_category, const void *, const size_t)
Definition: tree.c:722
struct cb_tree_common common
Definition: tree.h:1182
size_t cb_needs_01
Definition: field.c:37
cb_tree cb_build_tallying_characters(cb_tree)
Definition: typeck.c:5863
struct cb_alt_key * next
Definition: tree.h:812
cb_tree call_returning
Definition: tree.h:1042
cb_tree cb_build_system_name(const enum cb_system_name_category, const int)
Definition: tree.c:1667
void cb_emit_inspect(cb_tree, cb_tree, cb_tree, const unsigned int)
Definition: typeck.c:5805
void cb_emit_allocate(cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:4668
cb_tree size_is
Definition: tree.h:1129
void cb_emit_set_true(cb_tree)
Definition: typeck.c:8139
struct cb_tree_common common
Definition: tree.h:1211
unsigned int flag_field_debug
Definition: tree.h:733
int handler_id
Definition: tree.h:1148
struct cb_para_label * para_label
Definition: tree.h:770
struct local_filename * local_include
Definition: tree.h:1248
void cb_emit_accept_day(cb_tree)
Definition: typeck.c:4530
struct cb_attr_struct * attr_ptr
Definition: tree.h:1147
cb_tree linage
Definition: tree.h:832
void cb_emit_get_environment(cb_tree, cb_tree)
Definition: typeck.c:4575
void cb_emit_accept_day_of_week(cb_tree)
Definition: typeck.c:4548
char * cname
Definition: tree.h:1213
cb_tree file_list
Definition: tree.h:1252
cb_tree cb_build_any_intrinsic(cb_tree)
Definition: tree.c:3295
cb_category
Definition: tree.h:226
int cb_field_subordinate(const struct cb_field *, const struct cb_field *)
Definition: tree.c:2274
cb_tree cb_build_add(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:4015
cb_tree cb_int1
Definition: tree.c:134
struct cb_tree_common common
Definition: tree.h:1098
cb_tree cb_build_comment(const char *)
Definition: tree.c:1540
cob_u32_t special_index
Definition: tree.h:690
int decimal_index
Definition: tree.h:1293
int last_detail
Definition: tree.h:1224
char * cname
Definition: tree.h:541
struct cb_field * report_storage
Definition: tree.h:1280
unsigned char flag_init_statement
Definition: tree.h:1012
enum cb_category category
Definition: tree.h:430
int level
Definition: tree.h:673
unsigned char flag_is_global
Definition: tree.h:699
unsigned char flag_base
Definition: tree.h:696
cb_tree cb_build_set_attribute(const struct cb_field *, const int, const int)
Definition: tree.c:3226
unsigned int cobc_in_repository
Definition: parser.c:180
cb_tree cb_int(const int)
Definition: tree.c:1488
void cb_emit_continue(void)
Definition: typeck.c:5031
cb_tree cb_build_debug_call(struct cb_label *)
Definition: tree.c:1590
cb_tree cb_int5
Definition: tree.c:138
void redefinition_error(cb_tree)
Definition: error.c:284
struct cb_picture * cb_build_binary_picture(const char *, const cob_u32_t, const cob_u32_t)
Definition: tree.c:1783
struct cb_tree_common common
Definition: tree.h:929
unsigned int flag_ext_assign
Definition: tree.h:851
void cb_emit_command_line(cb_tree)
Definition: typeck.c:5133
cb_tree controls
Definition: tree.h:1218
unsigned int flag_vsize_done
Definition: tree.h:729
struct cb_tree_common common
Definition: tree.h:580
unsigned int flag_decl_ok
Definition: tree.h:890
cb_tree cb_build_perform_times(cb_tree)
Definition: typeck.c:7536
void cb_emit_accept_environment(cb_tree)
Definition: typeck.c:4587
char * orig
Definition: tree.h:620
const char * name
Definition: tree.h:1334
cb_tree interface_spec_list
Definition: tree.h:1270
cb_tree cb_build_perform_once(cb_tree)
Definition: typeck.c:7523
unsigned int flag_screen
Definition: tree.h:1309
struct cb_tree_common common
Definition: tree.h:528
cb_tree cb_build_intrinsic(cb_tree, cb_tree, cb_tree, const int)
Definition: tree.c:3304
void cb_emit_arg_number(cb_tree)
Definition: typeck.c:5124
unsigned char flag_local_storage
Definition: tree.h:698
cb_tree cb_build_const_length(cb_tree)
Definition: typeck.c:1730
cb_intr_enum
Definition: tree.h:300
void cb_validate_program_environment(struct cb_program *)
Definition: typeck.c:1891
cb_tree cb_intr_whencomp
Definition: tree.c:142
unsigned int flag_debugging
Definition: tree.h:1320
unsigned int flag_dummy_paragraph
Definition: tree.h:788
cb_tree cb_build_picture(const char *)
Definition: tree.c:1800
#define cob_s64_t
Definition: common.h:51
struct cb_label * debug_section
Definition: tree.h:839
struct cb_tree_common common
Definition: tree.h:556
cb_tree cb_build_cancel(const cb_tree)
Definition: tree.c:3088
cb_tree bgc
Definition: tree.h:1125
void cb_emit_delete_file(cb_tree)
Definition: typeck.c:5076
cb_tree data
Definition: tree.h:1109
unsigned int flag_file_global
Definition: tree.h:1315
const char * name
Definition: tree.h:540
cb_tree cb_build_perform_until(cb_tree, cb_tree)
Definition: typeck.c:7550
int id
Definition: tree.h:610
struct cb_field * vsize
Definition: tree.h:660
void ambiguous_error(cb_tree)
Definition: error.c:341
void cb_emit_sort_init(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:8237
short all
Definition: tree.h:598
unsigned int flag_no_field
Definition: tree.h:735
int cb_get_int(const cb_tree)
Definition: tree.c:1101
void validate_file(struct cb_file *, cb_tree)
Definition: tree.c:2360
const char * name
Definition: tree.h:1137
char * cname
Definition: tree.h:558
cb_tree debug_list
Definition: tree.h:1264
size_t size
Definition: tree.h:498
int val
Definition: tree.h:518
void cb_emit_accept_name(cb_tree, cb_tree)
Definition: typeck.c:4635
const char * name
Definition: tree.h:865
struct cb_tree_common common
Definition: tree.h:1053
struct cb_alter_id * alter_gotos
Definition: tree.h:1275
void cb_emit_set_to(cb_tree, cb_tree)
Definition: typeck.c:8019
int alphachr[256]
Definition: tree.h:547
void cb_emit_arithmetic(cb_tree, const int, cb_tree)
Definition: typeck.c:3465
int cb_list_length(cb_tree)
Definition: tree.c:1342
cb_tree alter_list
Definition: tree.h:1263
cb_tree cb_build_inspect_region_start(void)
Definition: typeck.c:5961
cb_tree cb_build_perform_forever(cb_tree)
Definition: typeck.c:7561
int count
Definition: tree.h:867
unsigned int flag_item_78
Definition: tree.h:711
void level_require_error(cb_tree, const char *)
Definition: error.c:423
void cb_emit_accept_command_line(cb_tree)
Definition: typeck.c:4566
cb_tree cb_build_initialize(const cb_tree, const cb_tree, const cb_tree, const unsigned int, const unsigned int, const unsigned int)
Definition: tree.c:3028
cb_tree cb_build_replacing_trailing(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:5947
int id
Definition: tree.h:671
int cb_fits_int(const cb_tree)
Definition: tree.c:914
unsigned int screenptr
Definition: tree.h:947
cb_tree cb_build_converting(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:5954
cb_tree cb_build_sub(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:4058
cb_tree cb_build_replacing_characters(cb_tree, cb_tree)
Definition: typeck.c:5916
struct cb_intrinsic_table * intr_tab
Definition: tree.h:995
struct cb_alphabet_name * code_set
Definition: tree.h:840
int record_min
Definition: tree.h:841
struct cb_tree_common common
Definition: tree.h:494
cb_tree cb_error_node
Definition: tree.c:140
struct cb_tree_common common
Definition: tree.h:517
void cb_emit_if(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:5665
void cb_emit_evaluate(cb_tree, cb_tree)
Definition: typeck.c:5571
unsigned int cobc_cs_check
Definition: parser.c:182
cb_tree depending
Definition: tree.h:647
size_t hashval
Definition: tree.h:885
unsigned int flag_section
Definition: tree.h:777
struct cb_program * nested_prog
Definition: tree.h:1235
unsigned int flag_all_debug
Definition: tree.h:734
cb_tree args
Definition: tree.h:993
const unsigned int refmod
Definition: tree.h:987
struct cb_file * file
Definition: tree.h:657
cob_u32_t flag_is_direct
Definition: tree.h:484
cb_tree cb_build_reference(const char *)
Definition: tree.c:2572
struct cb_tree_common common
Definition: tree.h:874
unsigned int flag_all
Definition: tree.h:888
unsigned int context_set
Definition: tree.h:422
unsigned int gen_screen_ptr
Definition: tree.c:146
int decimal_index_max
Definition: tree.h:1294
unsigned int flag_return
Definition: tree.h:780
unsigned int hexval
Definition: tree.h:519
struct cb_label * section
Definition: tree.h:768
cb_usage
Definition: tree.h:255
unsigned int flag_in_debug
Definition: tree.h:1150
cb_tree chain
Definition: tree.h:875
int offset
Definition: tree.h:675
cb_tree cb_build_perform(const enum cb_perform_type)
Definition: tree.c:3149
unsigned int flag_is_verified
Definition: tree.h:722
cb_tree name
Definition: tree.h:1038
int source_line
Definition: tree.h:432
struct cb_program * handler_prog
Definition: tree.h:838
enum cb_category category
Definition: tree.h:624
cb_tree function_spec_list
Definition: tree.h:1271
cb_tree cb_build_replacing_leading(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:5933
int lines
Definition: tree.h:1219
cb_tree screen_column
Definition: tree.h:664
cb_tree cb_build_assignment_name(struct cb_file *, cb_tree)
Definition: typeck.c:1276
unsigned int flag_sign_leading
Definition: tree.h:704
const char * name
Definition: tree.h:569
DECLNORET void cobc_tree_cast_error(const cb_tree, const char *, const int, const enum cb_tag) COB_A_NORETURN
Definition: cobc.c:619
cb_tree cb_build_binary_list(cb_tree, const int)
Definition: tree.c:2902
struct cb_label * paragraph
Definition: tree.h:883
cb_tree val
Definition: tree.h:970
int flag_all
Definition: tree.h:1028
cb_tree stmt1
Definition: tree.h:1040
unsigned int flag_is_pdiv_parm
Definition: tree.h:724
void cb_insert_common_prog(struct cb_program *, struct cb_program *)
Definition: tree.c:1479
void cb_emit_accept_time(cb_tree)
Definition: typeck.c:4557
cb_tree cb_check_numeric_value(cb_tree)
Definition: typeck.c:651
void cb_clear_real_field(void)
Definition: field.c:1439
Definition: tree.h:643
void cb_emit_initialize(cb_tree, cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:5682
struct cb_word * next
Definition: tree.h:864
cb_tree table
Definition: tree.h:1024
cb_tree cb_call_params
Definition: tree.h:1267
int footing
Definition: tree.h:1225
int high_val_char
Definition: tree.h:545
cb_tree cobc_printer_node
Definition: parser.c:176
struct cb_label * section
Definition: tree.h:882
cb_tree cb_build_numsize_literal(const void *, const size_t, const int)
Definition: tree.c:1699
cb_tree reports
Definition: tree.h:831
unsigned int flag_no_init
Definition: tree.h:727
cb_tree cb_build_tallying_trailing(void)
Definition: typeck.c:5896
struct cb_field * cb_validate_78_item(struct cb_field *, const cob_u32_t)
Definition: field.c:1415
void cb_init_tallying(void)
Definition: typeck.c:5849
unsigned int vaddr
Definition: tree.h:686
cb_system_name_category
Definition: tree.h:138
int scale
Definition: tree.h:595
Definition: tree.h:1084
int op
Definition: tree.h:932
size_t cb_check_index_p(cb_tree x)
Definition: typeck.c:887
cb_tree list
Definition: tree.h:571
cb_tree length
Definition: tree.h:997
cb_tree cb_build_ppointer(cb_tree)
Definition: typeck.c:1824
Definition: tree.h:636
unsigned int flag_external
Definition: tree.h:850
unsigned int flag_default_handler
Definition: tree.h:791
cb_tree value
Definition: tree.h:1184
struct cb_tree_common common
Definition: tree.h:1161
cob_u32_t llit
Definition: tree.h:596
cb_tree offset
Definition: tree.h:878
unsigned int flag_statement
Definition: tree.h:792
cb_tree cb_build_decimal(const int)
Definition: tree.c:1770
struct cb_file * build_file(cb_tree)
Definition: tree.c:2344
unsigned int flag_indexed_by
Definition: tree.h:721
void cb_emit_return(cb_tree, cb_tree)
Definition: typeck.c:7818
int error
Definition: tree.h:868
struct cb_field * fld
Definition: tree.h:1171
void cb_validate_field(struct cb_field *)
Definition: field.c:1338
struct cb_label * handler
Definition: tree.h:837
cb_tree cb_build_constant(cb_tree, cb_tree)
Definition: tree.c:2189
int screen_flag
Definition: tree.h:684
cb_tree cb_return_code
Definition: tree.h:1265
struct cb_tree_common common
Definition: tree.h:507
cb_tree timeout
Definition: tree.h:1127
cb_tree stmt2
Definition: tree.h:1088
cb_tree cb_debug_name
Definition: typeck.c:84
cb_tree locale_list
Definition: tree.h:1260
void cb_emit_start(cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:8414
void cb_emit_sort_input(cb_tree)
Definition: typeck.c:8309
struct cb_program * next_program
Definition: tree.h:1242
void cb_emit_free(cb_tree)
Definition: typeck.c:5588
void cb_emit_release(cb_tree, cb_tree)
Definition: typeck.c:7780
unsigned int flag_debugging_mode
Definition: tree.h:796
void cb_emit_ready_trace(void)
Definition: typeck.c:7690
cb_tree cb_debug_line
Definition: typeck.c:83
cb_tree latbot
Definition: tree.h:836
unsigned char prog_type
Definition: tree.h:1303
void cb_emit_rollback(void)
Definition: typeck.c:7844
struct cb_tree_common common
Definition: tree.h:568
enum cb_tag tag
Definition: tree.h:429
cb_tree page_counter
Definition: tree.h:1216
cb_tree cb_low
Definition: tree.c:128
int first_detail
Definition: tree.h:1222
cb_tree cb_int2
Definition: tree.c:135
int count
Definition: tree.h:680
int validate_move(cb_tree, cb_tree, const unsigned int)
Definition: typeck.c:6167
cb_tree cb_int_hex(const int)
Definition: tree.c:1514
cb_tree cb_build_if(const cb_tree, const cb_tree, const cb_tree, const unsigned int)
Definition: tree.c:3132
unsigned int flag_occurs
Definition: tree.h:702
unsigned int flag_invalid
Definition: tree.h:716
#define COB_A_NORETURN
Definition: common.h:366
cb_tree alphabet_name_list
Definition: tree.h:1256
void cb_build_debug_item(void)
Definition: typeck.c:2243
struct cb_tree_common common
Definition: tree.h:1085
int values[256]
Definition: tree.h:546
unsigned int flag_binary_swap
Definition: tree.h:707
cb_tree cb_build_locale_name(cb_tree, cb_tree)
Definition: tree.c:1645
unsigned char padding
Definition: tree.h:1014
struct cb_field * cb_field_variable_size(const struct cb_field *)
Definition: tree.c:2239
cb_class
Definition: tree.h:213
enum cb_category category
Definition: tree.h:986
Definition: tree.h:956
cb_tree from
Definition: tree.h:1100
struct cb_program * handler_prog
Definition: tree.h:806
int dir
Definition: tree.h:640
void cb_list_map(cb_tree(*)(cb_tree), cb_tree)
char * cb_name(cb_tree)
Definition: tree.c:735
int val_on
Definition: tree.h:1172
cb_tree cb_sort_return
Definition: tree.h:1266
int segment
Definition: tree.h:775
const int args
Definition: tree.h:984
cb_tree cb_build_perform_varying(cb_tree, cb_tree, cb_tree, cb_tree)
Definition: tree.c:3160
cb_tree exit_label
Definition: tree.h:1111
void cb_emit_reset_trace(void)
Definition: typeck.c:7699
cb_tree global_list
Definition: tree.h:1261
cb_tree cb_debug_sub_2
Definition: typeck.c:86
struct cb_tree_common * cb_tree
Definition: tree.h:438
struct cb_alter_id * next
Definition: tree.h:760
cb_tree cb_build_goto(const cb_tree, const cb_tree)
Definition: tree.c:3118
int loop_counter
Definition: tree.h:1292
struct cb_tree_common common
Definition: tree.h:644
cb_tree cb_build_if_check_break(cb_tree, cb_tree)
Definition: typeck.c:5671
cb_tree cb_build_funcall(const char *, const int, const cb_tree, const cb_tree, const cb_tree, const cb_tree, const cb_tree, const cb_tree, const cb_tree, const cb_tree, const cb_tree, const cb_tree, const cb_tree)
Definition: tree.c:2916
cb_tree items
Definition: tree.h:866
cb_tree file
Definition: tree.h:1140
unsigned int flag_duped
Definition: tree.h:898
void cb_emit_commit(void)
Definition: typeck.c:5023
void cb_emit_unstring(cb_tree, cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:8552
void cb_list_system(void)
Definition: typeck.c:833
unsigned int flag_all_debug
Definition: tree.h:893
cb_tree sharing
Definition: tree.h:825
struct cb_tree_common common
Definition: tree.h:1239
cb_tree linage_ctr
Definition: tree.h:833
unsigned int flag_console_is_crt
Definition: tree.h:1319
cb_tree lookup_system_name(const char *)
Definition: reserved.c:2860
struct cb_field * cb_get_real_field(void)
Definition: field.c:1445
cb_tree latfoot
Definition: tree.h:834
int size
Definition: tree.h:672
Definition: tree.h:818
const char * ext_name
Definition: tree.h:1336
int sizes
Definition: tree.h:1186
cb_tree entry_list
Definition: tree.h:1251
void cb_emit_accept_arg_value(cb_tree)
Definition: typeck.c:4605
size_t size
Definition: tree.h:530
unsigned char * data
Definition: tree.h:593
unsigned char currency_symbol
Definition: tree.h:1301
struct cb_tree_common common
Definition: tree.h:1332
cb_tree cb_build_tallying_all(void)
Definition: typeck.c:5874
cb_tree args
Definition: tree.h:1039
unsigned int flag_any_numeric
Definition: tree.h:736
int duplicates
Definition: tree.h:814
unsigned short nodegen
Definition: tree.h:419
struct cb_field * rename_thru
Definition: tree.h:655
cb_tree screen_to
Definition: tree.h:666
cb_tree test
Definition: tree.h:1107
void cb_emit_search_all(cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:7985
struct cb_field * cb_field_founder(const struct cb_field *)
Definition: tree.c:2227
struct cb_tree_common common
Definition: tree.h:609
cb_tree cb_build_field_reference(struct cb_field *, cb_tree)
Definition: tree.c:2604
int param_num
Definition: tree.h:683
enum cb_system_name_category category
Definition: tree.h:582
cb_tree cb_build_display_name(cb_tree)
Definition: typeck.c:5362
struct cb_field * parent
Definition: tree.h:651
void cb_emit_sort_finish(cb_tree)
Definition: typeck.c:8356
cb_tree cb_build_write_advancing_mnemonic(cb_tree, cb_tree)
Definition: typeck.c:8701
cb_tree cb_build_tallying_data(cb_tree)
Definition: typeck.c:5856
void cb_emit_delete(cb_tree)
Definition: typeck.c:5039
cb_tree y
Definition: tree.h:931
const unsigned char * data
Definition: tree.h:529
void cb_add_78(struct cb_field *)
Definition: scanner.c:4810
const char * program_id
Definition: tree.h:1244
void cb_emit_perform(cb_tree, cb_tree)
Definition: typeck.c:7509
cb_tree class_name_list
Definition: tree.h:1258
unsigned int flag_segments
Definition: tree.h:1317
void cb_emit_goto(cb_tree, cb_tree)
Definition: typeck.c:5629
unsigned int flag_blank_zero
Definition: tree.h:705
void cb_emit_set_up_down(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:8106
unsigned int flag_report
Definition: tree.h:1324
unsigned int flag_receiving
Definition: tree.h:887
struct cb_tree_common common
Definition: tree.h:539
cb_tree index_list
Definition: tree.h:650
cb_tree cb_build_replacing_all(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:5926
int cb_fits_long_long(const cb_tree)
Definition: tree.c:991
cb_tree cb_build_filler(void)
Definition: tree.c:2591
cb_tree cb_build_implicit_field(cb_tree, const int)
Definition: tree.c:2175
unsigned int flag_recursive
Definition: tree.h:1308
enum cb_cast_type cast_type
Definition: tree.h:959
struct cb_para_label * next
Definition: tree.h:755
int access_mode
Definition: tree.h:845
unsigned int flag_entry
Definition: tree.h:778
cb_tree offset
Definition: tree.h:996
cb_tree name
Definition: tree.h:1099
const char * program_name
Definition: tree.h:1243
cb_tree label_list
Definition: tree.h:1254
cb_tree target
Definition: tree.h:495
unsigned int flag_vaddr_done
Definition: tree.h:730
unsigned int flag_chained
Definition: tree.h:1311
char * cb_encode_program_id(const char *)
Definition: typeck.c:1132
cb_tree source
Definition: tree.h:1064
char * cb_to_cname(const char *)
Definition: tree.c:705
unsigned int cobc_force_literal
Definition: parser.c:181
char * source_name
Definition: tree.h:1245
cb_tree file_status
Definition: tree.h:824
struct cb_statement * cb_build_statement(const char *)
Definition: tree.c:3201
struct cb_word ** word_table
Definition: tree.h:1247
cb_tree depending
Definition: tree.h:1076
cb_tree cb_list_reverse(cb_tree)
Definition: tree.c:1327
cb_tree cb_list_append(cb_tree, cb_tree)
Definition: tree.c:1305
cb_storage
Definition: tree.h:243
unsigned int flag_field
Definition: tree.h:717
cb_tree cb_build_field(cb_tree)
Definition: tree.c:2159
cb_tree cb_norm_high
Definition: tree.c:131
cb_tree cb_build_debug(const cb_tree, const char *, const cb_tree)
Definition: tree.c:1566
const char * name
Definition: tree.h:557
int special
Definition: tree.h:847
cb_tree var
Definition: tree.h:1025
unsigned int flag_fl_debug
Definition: tree.h:854
cb_tree assign
Definition: tree.h:823
unsigned int flag_common
Definition: tree.h:1306
unsigned int flag_alter
Definition: tree.h:795
struct nested_list * common_prog_list
Definition: tree.h:1250
void cb_emit_set_attribute(cb_tree, const int, const int)
Definition: typeck.c:8207
int low_val_char
Definition: tree.h:544
cb_tree parameter_list
Definition: tree.h:1259
char * cname
Definition: tree.h:821
cob_u64_t cb_get_u_long_long(const cb_tree)
Definition: tree.c:1223
cb_tree key
Definition: tree.h:813
void cb_validate_88_item(struct cb_field *)
Definition: field.c:1386
cb_tree cb_ref(cb_tree)
Definition: tree.c:2653
enum cb_category cb_tree_category(cb_tree)
Definition: tree.c:745
cb_tree cb_build_unstring_into(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:8587
void cb_emit_display(cb_tree, cb_tree, cb_tree, cb_tree, struct cb_attr_struct *)
Definition: typeck.c:5236
cb_tree screen_prompt
Definition: tree.h:669
cb_tree collating_sequence
Definition: tree.h:1284
struct handler_struct global_handler[5]
Definition: tree.h:1283
cb_tree screen_line
Definition: tree.h:663
const char * ename
Definition: tree.h:646
cb_tree classification
Definition: tree.h:1285
struct cb_alter_id * alter_gotos
Definition: tree.h:772
cb_tree chain
Definition: tree.h:1183
cb_tree cb_build_display_mnemonic(cb_tree)
Definition: typeck.c:5340
cb_tree cursor_pos
Definition: tree.h:1286
cob_u32_t have_sign
Definition: tree.h:627
unsigned int flag_alter_code
Definition: tree.h:891
cb_tree cb_build_class_name(cb_tree, cb_tree)
Definition: tree.c:1622
void cb_emit_display_omitted(cb_tree, struct cb_attr_struct *)
Definition: typeck.c:5217
unsigned int flag_declaratives
Definition: tree.h:784
const char * name
Definition: tree.h:1212
void cb_unput_dot(void)
Definition: scanner.c:4765
unsigned char flag_no_filler_init
Definition: tree.h:1013
cb_tree cb_build_tallying_leading(void)
Definition: typeck.c:5885
unsigned int flag_sign_separate
Definition: tree.h:703
void cb_check_field_debug(cb_tree)
Definition: typeck.c:904
void cb_emit_set_last_exception_to_off(void)
Definition: typeck.c:8229
struct cb_field * record
Definition: tree.h:829
struct nested_list * nested_prog_list
Definition: tree.h:1249
cb_tree cb_build_identifier(cb_tree, const int)
Definition: typeck.c:1426
int mem_offset
Definition: tree.h:681
cb_tree whens
Definition: tree.h:1027
int organization
Definition: tree.h:844
cb_tree key
Definition: tree.h:637
cob_u32_t flag_new_line
Definition: tree.h:485
cb_tree x
Definition: tree.h:930
cb_tree prompt
Definition: tree.h:1128
Definition: tree.h:471
void cb_emit_accept_escape_key(cb_tree)
Definition: typeck.c:4485
struct cb_label * target
Definition: tree.h:508
cb_tree class_spec_list
Definition: tree.h:1269
cb_tree argv[11]
Definition: tree.h:944
unsigned int flag_declarative_exit
Definition: tree.h:783
#define DECLNORET
Definition: common.h:376
int token
Definition: tree.h:583
cb_tree subs
Definition: tree.h:877
void cb_emit_sort_giving(cb_tree, cb_tree)
Definition: typeck.c:8319
cb_tree cb_build_tallying_value(cb_tree, cb_tree)
Definition: typeck.c:5907
Definition: tree.h:764
void cb_emit_exit(const unsigned int)
Definition: typeck.c:5653
int token
Definition: tree.h:421
const char * intr_routine
Definition: tree.h:980
struct cb_label * all_procedure
Definition: tree.h:1289
struct cb_field * linkage_storage
Definition: tree.h:1278
const char * name
Definition: tree.h:418
struct cb_label * para
Definition: tree.h:756
const char * line
Definition: tree.h:483
unsigned int flag_callback
Definition: tree.h:1152
#define COB_MAX_SUBSCRIPTS
Definition: tree.h:28
unsigned char numeric_separator
Definition: tree.h:1302
cb_tree cb_build_assign(const cb_tree, const cb_tree)
Definition: tree.c:3014
int non_const_word
Definition: parser.c:178
cb_tree cb_build_move(cb_tree, cb_tree)
Definition: typeck.c:7333
unsigned int flag_trailing_separate
Definition: tree.h:1318
cb_tree exec_list
Definition: tree.h:1253
void cb_emit_accept_date(cb_tree)
Definition: typeck.c:4512
void cb_emit_env_value(cb_tree)
Definition: typeck.c:5115
cb_tree null_check
Definition: tree.h:1144
cb_tree handler3
Definition: tree.h:1143
cb_tree cb_debug_item
Definition: typeck.c:82
struct cb_field * working_storage
Definition: tree.h:1276
cb_tag
Definition: tree.h:61
void cb_emit_corresponding(cb_tree(*)(cb_tree, cb_tree, cb_tree), cb_tree, cb_tree, cb_tree)
void cb_list_reserved(void)
Definition: reserved.c:2989
cb_tree cb_build_binary_op(cb_tree, const int, cb_tree)
Definition: tree.c:2827
int memory_size
Definition: tree.h:674
struct cb_tree_common common
Definition: tree.h:1074
cb_tree cb_build_cast(const enum cb_cast_type, const cb_tree)
Definition: tree.c:2947
struct cb_field * check_level_78(const char *)
Definition: scanner.c:4858
void cb_emit_unlock(cb_tree)
Definition: typeck.c:8535
cb_tree cb_true
Definition: tree.c:122
cb_tree debug_nodups
Definition: tree.h:1146
void cb_emit_cancel(cb_tree)
Definition: typeck.c:4977
int goto_id
Definition: tree.h:761
char * cb_build_program_id(cb_tree, cb_tree, const cob_u32_t)
Definition: typeck.c:1190
unsigned int flag_local
Definition: tree.h:701
cb_tree cb_debug_sub_1
Definition: typeck.c:85
struct cb_field * index_qual
Definition: tree.h:656
cb_tree val
Definition: tree.h:958
unsigned int flag_begin
Definition: tree.h:779
int last_control
Definition: tree.h:1223
void cb_emit_accept_line_or_col(cb_tree, const int)
Definition: typeck.c:4476
void cb_emit_close(cb_tree, cb_tree)
Definition: typeck.c:4988
cb_tree cb_build_write_advancing_page(cb_tree)
Definition: typeck.c:8738
unsigned int flag_validated
Definition: tree.h:1310
struct cb_tree_common common
Definition: tree.h:942
cb_tree cycle_label
Definition: tree.h:1112
void cb_list_intrinsics(void)
Definition: reserved.c:3052
cb_perform_type
Definition: tree.h:408
cb_tree length
Definition: tree.h:879
struct cb_tree_common common
Definition: tree.h:968
unsigned int flag_void
Definition: tree.h:1325
unsigned int flag_dummy_exit
Definition: tree.h:789
cb_tree val
Definition: tree.h:1009
int heading
Definition: tree.h:1221
cob_s64_t cb_get_long_long(const cb_tree)
Definition: tree.c:1175
cb_tree key
Definition: tree.h:826
void cb_build_registers(void)
Definition: typeck.c:1051
void cb_emit_divide(cb_tree, cb_tree, cb_tree, cb_tree)
Definition: typeck.c:5399
unsigned int flag_skip_label
Definition: tree.h:798
unsigned int flag_dummy_section
Definition: tree.h:787
void cb_emit_string(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:8490
struct cb_tree_common common
Definition: tree.h:991
cb_tree user_spec_list
Definition: tree.h:1272
unsigned int flag
Definition: tree.h:933
void cb_emit_sort_output(cb_tree)
Definition: typeck.c:8340
struct cb_tree_common common
Definition: tree.h:1023
Definition: tree.h:1073
cb_tree handler1
Definition: tree.h:1141
struct cb_report * build_report(cb_tree)
Definition: tree.c:2324
const char * statement
Definition: tree.h:1138
cb_tree cb_build_length(cb_tree)
Definition: typeck.c:1781
struct cb_field * redefines
Definition: tree.h:654
int dispattrs
Definition: tree.h:1130
cb_tree cb_any
Definition: tree.c:121
void codegen(struct cb_program *, const int)
Definition: codegen.c:7448
cb_tree var
Definition: tree.h:1008
cb_tree values
Definition: tree.h:648
cb_tree rep
Definition: tree.h:1010
#define cob_u64_t
Definition: common.h:52
cb_tree cb_build_section_name(cb_tree, const int)
Definition: typeck.c:1251
unsigned int flag_chained
Definition: tree.h:719
cb_tree value
Definition: tree.h:581
cob_u32_t size
Definition: tree.h:594
struct cb_tree_common common
Definition: tree.h:819
int section_id
Definition: tree.h:774
cb_tree cb_concat_literals(const cb_tree, const cb_tree)
Definition: tree.c:1729
unsigned int cobc_in_procedure
Definition: parser.c:179
cb_tree screen_foreg
Definition: tree.h:667
cb_tree cb_build_alphanumeric_literal(const void *, const size_t)
Definition: tree.c:1716
cb_tree cb_build_search(const int, const cb_tree, const cb_tree, const cb_tree, const cb_tree)
Definition: tree.c:3049
int step_count
Definition: tree.h:685
cb_tree cb_build_cast_llint(const cb_tree)
Definition: tree.c:2975
unsigned int flag_debug_code
Definition: tree.h:892
Definition: tree.h:863
cb_tree var
Definition: tree.h:969
unsigned int flag_finalized
Definition: tree.h:849
struct cb_tree_common common
Definition: tree.h:1136
cb_tree name
Definition: tree.h:992
struct cb_tree_common common
Definition: tree.h:592
cb_tree cb_depend_check
Definition: field.c:36
cb_tree target
Definition: tree.h:1075
struct cb_alt_key * alt_key_list
Definition: tree.h:827
struct cb_label * debug_section
Definition: tree.h:884
unsigned int flag_has_external
Definition: tree.h:1316
int id
Definition: tree.h:773
struct cb_tree_common common
Definition: tree.h:1007
enum cb_intr_enum intr_enum
Definition: tree.h:981
cb_tree fgc
Definition: tree.h:1124
struct cb_program * cb_find_defined_program_by_id(const char *)
Definition: scanner.c:4905
cb_tree cb_pair_add(cb_tree, cb_tree, cb_tree)
Definition: tree.c:1321
unsigned int alphabet_type
Definition: tree.h:543
enum cb_usage usage
Definition: tree.h:693
unsigned int flag_merge
Definition: tree.h:1151
struct cb_program * cb_find_defined_program_by_name(const char *)
Definition: scanner.c:4882
unsigned int flag_gen_error
Definition: tree.h:1314
cb_tree cb_build_field_tree(cb_tree, cb_tree, struct cb_field *, enum cb_storage, struct cb_file *, const int)
Definition: field.c:90
cb_tree cb_build_label(cb_tree, struct cb_label *)
Definition: tree.c:2988
cb_tree until
Definition: tree.h:1102
cb_tree record_depending
Definition: tree.h:830
cb_tree cb_null
Definition: tree.c:124
cb_tree cb_norm_low
Definition: tree.c:130
cb_tree cb_debug_contents
Definition: typeck.c:88
struct cb_key * keys
Definition: tree.h:658
struct cobc_reserved * lookup_reserved_word(const char *)
Definition: reserved.c:2910
enum cb_storage storage
Definition: tree.h:692
cb_tree cb_build_alphabet_name(cb_tree)
Definition: tree.c:1605
void cb_reset_global_78(void)
Definition: scanner.c:4794
int nkeys
Definition: tree.h:682
struct cb_field * cb_resolve_redefines(struct cb_field *, cb_tree)
Definition: field.c:247
cb_tree cb_build_replacing_first(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:5940
cb_tree cb_build_list(cb_tree, cb_tree, cb_tree)
Definition: tree.c:1293
void cb_list_mnemonics(void)
Definition: reserved.c:3101
cb_tree target
Definition: tree.h:1065
struct cb_tree_common common
Definition: tree.h:765
cb_tree cb_define_switch_name(cb_tree, cb_tree, const int)
Definition: typeck.c:1228
void cb_warning_x(cb_tree, const char *,...) COB_A_FORMAT23
Definition: error.c:222
void redefinition_warning(cb_tree, cb_tree)
Definition: error.c:297
cb_tree symbolic_char_list
Definition: tree.h:1257
void cb_add_common_prog(struct cb_program *)
Definition: tree.c:1469
unsigned char decimal_point
Definition: tree.h:1300
cb_tree cb_one
Definition: tree.c:126
struct cb_field * screen_storage
Definition: tree.h:1279
unsigned int flag_first_is_goto
Definition: tree.h:793
cb_tree varying
Definition: tree.h:1110
void cb_build_symbolic_chars(const cb_tree, const cb_tree)
Definition: tree.c:2289
unsigned int context_test
Definition: tree.h:423
struct cb_label * debug_section
Definition: tree.h:769
void cb_emit_accept_day_yyyyddd(cb_tree)
Definition: typeck.c:4539
cb_tree body
Definition: tree.h:1139
cb_tree cb_build_string(const void *, const size_t)
Definition: tree.c:1526
void finalize_file(struct cb_file *, struct cb_field *)
Definition: tree.c:2409
cb_tree cb_build_index(cb_tree, cb_tree, const unsigned int, struct cb_field *)
Definition: typeck.c:1337
cb_tree cb_high
Definition: tree.c:129
char * orig_program_id
Definition: tree.h:1246
int varcnt
Definition: tree.h:946
void cb_emit_setenv(cb_tree, cb_tree)
Definition: typeck.c:8013
int num_proc_params
Definition: tree.h:1296
int columns
Definition: tree.h:1220
unsigned char flag_external
Definition: tree.h:697
struct cb_tree_common common
Definition: tree.h:957
struct cb_word * word
Definition: tree.h:881
cb_tree custom_list
Definition: tree.h:542
void cb_emit_accept_arg_number(cb_tree)
Definition: typeck.c:4596
void cb_emit_accept_user_name(cb_tree)
Definition: typeck.c:4503
void cb_emit_alter(cb_tree, cb_tree)
Definition: typeck.c:4733
cb_tree handler2
Definition: tree.h:1142
cb_tree list
Definition: tree.h:559
void cb_validate_program_data(struct cb_program *)
Definition: typeck.c:2344
cb_tree target
Definition: tree.h:1054
unsigned int flag_item_based
Definition: tree.h:713
void cb_emit_env_name(cb_tree)
Definition: typeck.c:5106
void cb_emit_rewrite(cb_tree, cb_tree, cb_tree)
Definition: typeck.c:7707
cb_tree false_88
Definition: tree.h:649