25 #define CB_BEFORE cb_int0
26 #define CB_AFTER cb_int1
28 #define COB_MAX_SUBSCRIPTS 16
30 #define CB_PREFIX_ATTR "a_"
31 #define CB_PREFIX_BASE "b_"
32 #define CB_PREFIX_CONST "c_"
33 #define CB_PREFIX_DECIMAL "d_"
34 #define CB_PREFIX_FIELD "f_"
35 #define CB_PREFIX_FILE "h_"
36 #define CB_PREFIX_KEYS "k_"
37 #define CB_PREFIX_LABEL "l_"
38 #define CB_PREFIX_SEQUENCE "s_"
39 #define CB_PREFIX_STRING "st_"
41 #define CB_PROGRAM_TYPE 0
42 #define CB_FUNCTION_TYPE 1
44 #define CB_CALL_BY_REFERENCE 1
45 #define CB_CALL_BY_CONTENT 2
46 #define CB_CALL_BY_VALUE 3
48 #define CB_SIZE_AUTO 0
53 #define CB_SIZE_UNSIGNED 8
57 #define CB_WORD_HASH_SIZE (1U << 11)
58 #define CB_WORD_HASH_MASK (CB_WORD_HASH_SIZE - 1U)
107 #define CB_ALPHABET_NATIVE 0
108 #define CB_ALPHABET_ASCII 1
109 #define CB_ALPHABET_EBCDIC 2
110 #define CB_ALPHABET_CUSTOM 3
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)
153 #define CB_DEVICE_SYSIN 0
154 #define CB_DEVICE_SYSOUT 1
155 #define CB_DEVICE_SYSERR 2
156 #define CB_DEVICE_CONSOLE 3
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
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
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))
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)
448 #ifdef COB_TREE_DEBUG
450 #ifdef COB_HAVE_STEXPR
451 #define CB_TREE_CAST(tg,ty,x) \
454 if (unlikely(!_x || CB_TREE_TAG (_x) != tg)) { \
455 cobc_tree_cast_error (_x, __FILE__, __LINE__, tg); \
460 #define CB_TREE_CAST(tg,ty,x) \
461 ((ty *)cobc_tree_cast_check (x, __FILE__, __LINE__, tg))
465 #define CB_TREE_CAST(tg,ty,x) ((ty *) (x))
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
743 #define CB_REF_OR_FIELD_P(x) (CB_REFERENCE_P (x) || CB_FIELD_P (x))
745 #define CB_FIELD_PTR(x) \
746 (CB_REFERENCE_P (x) ? CB_FIELD (cb_ref (x)) : CB_FIELD (x))
750 #define CB_INDEX_P(x) cb_check_index_p (x)
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)
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)
871 #define CB_WORD_TABLE_SIZE (CB_WORD_HASH_SIZE * sizeof (struct cb_word))
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
1116 #define CB_PERFORM_VARYING(x) (CB_TREE_CAST (CB_TAG_PERFORM_VARYING, struct cb_perform_varying, x))
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)
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)
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)
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)
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)
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)
1197 #define CB_PURPOSE_INT(x) (CB_INTEGER (CB_PURPOSE (x))->val)
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)
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)
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)
1328 #define CB_PROGRAM(x) (CB_TREE_CAST (CB_TAG_PROGRAM, struct cb_program, x))
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)
1374 extern char *
cb_name (cb_tree);
1388 extern cb_tree
cb_int (
const int);
1413 const unsigned int);
1448 extern const char *
cb_define (cb_tree, cb_tree);
1451 extern cb_tree
cb_ref (cb_tree);
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,
1473 cb_tree,
const int);
1479 const cb_tree,
const cb_tree,
1480 const cb_tree,
const cb_tree);
1483 const cb_tree,
const cb_tree,
1491 extern cb_tree
cb_build_goto (
const cb_tree,
const cb_tree);
1493 extern cb_tree
cb_build_if (
const cb_tree,
const cb_tree,
1494 const cb_tree,
const unsigned int);
1506 extern cb_tree
cb_pair_add (cb_tree, cb_tree, cb_tree);
1528 const unsigned int);
1552 extern void cb_list_map (cb_tree (*) (cb_tree), cb_tree);
1604 const
unsigned int, struct cb_field *);
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);
1622 cb_tree (*) (cb_tree, cb_tree, cb_tree),
1623 cb_tree, cb_tree, cb_tree);
1651 extern
void cb_emit_call (cb_tree, cb_tree, cb_tree, cb_tree,
1661 struct cb_attr_struct *);
1664 struct cb_attr_struct *);
1680 extern
void cb_emit_if (cb_tree, cb_tree, cb_tree);
1688 cb_tree, const
unsigned int);
1704 extern
int validate_move (cb_tree, cb_tree, const
unsigned int);
1742 const
int, const
int);
1752 extern
void cb_emit_start (cb_tree, cb_tree, cb_tree, cb_tree);
1765 extern
void cb_emit_write (cb_tree, cb_tree, cb_tree, cb_tree);
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);
1781 extern void codegen (
struct cb_program *,
const int);
1785 extern void cb_add_78 (
struct cb_field *);
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)
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)
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)
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)
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)
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)
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)
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)
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, \
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, \
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, \
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)
1846 #define CB_BUILD_PARENTHESIS(x) cb_build_binary_op (x, '@', NULL)
1847 #define CB_BUILD_NEGATION(x) cb_build_binary_op (x, '!', NULL)
1849 #define CB_BUILD_STRING0(str) cb_build_string (str, strlen ((char *)(str)))
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)
unsigned int flag_justified
struct cb_label * handler_label
unsigned int flag_is_debug_sect
cb_tree cb_list_add(cb_tree, cb_tree)
const char * cb_define(cb_tree, cb_tree)
unsigned int flag_is_pointer
void cb_emit_sort_using(cb_tree, cb_tree)
unsigned int flag_real_binary
cb_tree cb_build_cast_int(const cb_tree)
void level_except_error(cb_tree, const char *)
void undefined_error(cb_tree)
unsigned int flag_optional
void cb_error_x(cb_tree, const char *,...) COB_A_FORMAT23
struct cb_field * local_storage
void cb_emit_search(cb_tree, cb_tree, cb_tree, cb_tree)
void cb_emit_accept_date_yyyymmdd(cb_tree)
cb_tree cb_build_perform_exit(struct cb_label *)
struct cb_tree_common common
void cb_emit_accept_exception_status(cb_tree)
void group_error(cb_tree, const char *)
void level_redundant_error(cb_tree, const char *)
unsigned int flag_is_pdiv_opt
unsigned int flag_gen_debug
unsigned int flag_line_adv
unsigned int cb_field_variable_address(const struct cb_field *)
struct cb_intrinsic_table * lookup_intrinsic(const char *, const int, const int)
cb_tree mnemonic_spec_list
unsigned int flag_any_length
void cb_validate_program_body(struct cb_program *)
unsigned int flag_initial
unsigned int flag_in_decl
cb_tree cb_standard_error_handler
struct cb_label * debug_section
void cb_emit_set_on_off(cb_tree, cb_tree)
unsigned int flag_local_alloced
unsigned int flag_global_use
int cb_tree_type(const cb_tree, const struct cb_field *)
void cb_emit_write(cb_tree, cb_tree, cb_tree, cb_tree)
unsigned int flag_no_based
cb_tree cb_build_unstring_delimited(cb_tree, cb_tree)
struct cb_field * children
struct cb_tree_common common
cb_tree program_spec_list
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)
struct cb_program * cb_build_program(struct cb_program *, const int)
int cb_get_level(cb_tree)
void cb_init_constants(void)
void cb_set_system_names(void)
void cb_emit_move_corresponding(cb_tree, cb_tree)
struct cb_tree_common common
void cb_emit_call(cb_tree, cb_tree, cb_tree, cb_tree, cb_tree, cb_tree)
cb_tree cb_build_continue(void)
unsigned short context_sens
cb_tree property_spec_list
struct cb_tree_common common
unsigned int flag_filler_ref
void cb_emit_stop_run(cb_tree)
unsigned int flag_odo_relative
unsigned int flag_anylen_done
cb_tree cb_build_func_prototype(const cb_tree, const cb_tree)
cb_tree cb_build_direct(const char *, const unsigned int)
unsigned int flag_synchronized
void cb_emit_move(cb_tree, cb_tree)
unsigned int flag_is_c_long
struct cb_tree_common common
void cb_emit_open(cb_tree, cb_tree, cb_tree)
unsigned int flag_fatal_check
void cb_emit_set_false(cb_tree)
unsigned int flag_real_label
cb_tree cb_build_alter(const cb_tree, const cb_tree)
unsigned int flag_is_returning
struct cb_tree_common common
void cb_emit_accept_mnemonic(cb_tree, cb_tree)
cb_tree cb_build_expr(cb_tree)
int cb_category_is_alpha(cb_tree)
unsigned int flag_save_exception
cb_tree cb_build_write_advancing_lines(cb_tree, cb_tree)
enum cb_class cb_tree_class(cb_tree)
void cb_emit_read(cb_tree, cb_tree, cb_tree, cb_tree, cb_tree)
cb_tree cb_build_numeric_literal(const int, const void *, const int)
unsigned char flag_default
struct cb_field * cb_field_add(struct cb_field *, struct cb_field *)
cb_tree cb_build_cond(cb_tree)
cb_tree cb_build_address(cb_tree)
void cb_emit_accept(cb_tree, cb_tree, struct cb_attr_struct *)
unsigned int flag_next_sentence
struct nested_list * next
struct cb_literal * build_literal(enum cb_category, const void *, const size_t)
struct cb_tree_common common
cb_tree cb_build_tallying_characters(cb_tree)
cb_tree cb_build_system_name(const enum cb_system_name_category, const int)
void cb_emit_inspect(cb_tree, cb_tree, cb_tree, const unsigned int)
void cb_emit_allocate(cb_tree, cb_tree, cb_tree, cb_tree)
void cb_emit_set_true(cb_tree)
struct cb_tree_common common
unsigned int flag_field_debug
struct cb_para_label * para_label
struct local_filename * local_include
void cb_emit_accept_day(cb_tree)
struct cb_attr_struct * attr_ptr
void cb_emit_get_environment(cb_tree, cb_tree)
void cb_emit_accept_day_of_week(cb_tree)
cb_tree cb_build_any_intrinsic(cb_tree)
int cb_field_subordinate(const struct cb_field *, const struct cb_field *)
cb_tree cb_build_add(cb_tree, cb_tree, cb_tree)
cb_tree cb_build_comment(const char *)
struct cb_field * report_storage
unsigned char flag_init_statement
enum cb_category category
unsigned char flag_is_global
cb_tree cb_build_set_attribute(const struct cb_field *, const int, const int)
unsigned int cobc_in_repository
cb_tree cb_int(const int)
void cb_emit_continue(void)
cb_tree cb_build_debug_call(struct cb_label *)
void redefinition_error(cb_tree)
struct cb_picture * cb_build_binary_picture(const char *, const cob_u32_t, const cob_u32_t)
struct cb_tree_common common
unsigned int flag_ext_assign
void cb_emit_command_line(cb_tree)
unsigned int flag_vsize_done
struct cb_tree_common common
unsigned int flag_decl_ok
cb_tree cb_build_perform_times(cb_tree)
void cb_emit_accept_environment(cb_tree)
cb_tree interface_spec_list
cb_tree cb_build_perform_once(cb_tree)
struct cb_tree_common common
cb_tree cb_build_intrinsic(cb_tree, cb_tree, cb_tree, const int)
void cb_emit_arg_number(cb_tree)
unsigned char flag_local_storage
cb_tree cb_build_const_length(cb_tree)
void cb_validate_program_environment(struct cb_program *)
unsigned int flag_debugging
unsigned int flag_dummy_paragraph
cb_tree cb_build_picture(const char *)
struct cb_label * debug_section
struct cb_tree_common common
cb_tree cb_build_cancel(const cb_tree)
void cb_emit_delete_file(cb_tree)
unsigned int flag_file_global
cb_tree cb_build_perform_until(cb_tree, cb_tree)
void ambiguous_error(cb_tree)
void cb_emit_sort_init(cb_tree, cb_tree, cb_tree)
unsigned int flag_no_field
int cb_get_int(const cb_tree)
void validate_file(struct cb_file *, cb_tree)
void cb_emit_accept_name(cb_tree, cb_tree)
struct cb_tree_common common
struct cb_alter_id * alter_gotos
void cb_emit_set_to(cb_tree, cb_tree)
void cb_emit_arithmetic(cb_tree, const int, cb_tree)
int cb_list_length(cb_tree)
cb_tree cb_build_inspect_region_start(void)
cb_tree cb_build_perform_forever(cb_tree)
unsigned int flag_item_78
void level_require_error(cb_tree, const char *)
void cb_emit_accept_command_line(cb_tree)
cb_tree cb_build_initialize(const cb_tree, const cb_tree, const cb_tree, const unsigned int, const unsigned int, const unsigned int)
cb_tree cb_build_replacing_trailing(cb_tree, cb_tree, cb_tree)
int cb_fits_int(const cb_tree)
cb_tree cb_build_converting(cb_tree, cb_tree, cb_tree)
cb_tree cb_build_sub(cb_tree, cb_tree, cb_tree)
cb_tree cb_build_replacing_characters(cb_tree, cb_tree)
struct cb_intrinsic_table * intr_tab
struct cb_alphabet_name * code_set
struct cb_tree_common common
struct cb_tree_common common
void cb_emit_if(cb_tree, cb_tree, cb_tree)
void cb_emit_evaluate(cb_tree, cb_tree)
unsigned int cobc_cs_check
unsigned int flag_section
struct cb_program * nested_prog
unsigned int flag_all_debug
const unsigned int refmod
cb_tree cb_build_reference(const char *)
struct cb_tree_common common
unsigned int gen_screen_ptr
struct cb_label * section
unsigned int flag_in_debug
cb_tree cb_build_perform(const enum cb_perform_type)
unsigned int flag_is_verified
struct cb_program * handler_prog
enum cb_category category
cb_tree function_spec_list
cb_tree cb_build_replacing_leading(cb_tree, cb_tree, cb_tree)
cb_tree cb_build_assignment_name(struct cb_file *, cb_tree)
unsigned int flag_sign_leading
DECLNORET void cobc_tree_cast_error(const cb_tree, const char *, const int, const enum cb_tag) COB_A_NORETURN
cb_tree cb_build_binary_list(cb_tree, const int)
struct cb_label * paragraph
unsigned int flag_is_pdiv_parm
void cb_insert_common_prog(struct cb_program *, struct cb_program *)
void cb_emit_accept_time(cb_tree)
cb_tree cb_check_numeric_value(cb_tree)
void cb_clear_real_field(void)
void cb_emit_initialize(cb_tree, cb_tree, cb_tree, cb_tree, cb_tree)
cb_tree cobc_printer_node
struct cb_label * section
cb_tree cb_build_numsize_literal(const void *, const size_t, const int)
unsigned int flag_no_init
cb_tree cb_build_tallying_trailing(void)
struct cb_field * cb_validate_78_item(struct cb_field *, const cob_u32_t)
void cb_init_tallying(void)
size_t cb_check_index_p(cb_tree x)
cb_tree cb_build_ppointer(cb_tree)
unsigned int flag_external
unsigned int flag_default_handler
struct cb_tree_common common
unsigned int flag_statement
cb_tree cb_build_decimal(const int)
struct cb_file * build_file(cb_tree)
unsigned int flag_indexed_by
void cb_emit_return(cb_tree, cb_tree)
void cb_validate_field(struct cb_field *)
struct cb_label * handler
cb_tree cb_build_constant(cb_tree, cb_tree)
struct cb_tree_common common
void cb_emit_start(cb_tree, cb_tree, cb_tree, cb_tree)
void cb_emit_sort_input(cb_tree)
struct cb_program * next_program
void cb_emit_free(cb_tree)
void cb_emit_release(cb_tree, cb_tree)
unsigned int flag_debugging_mode
void cb_emit_ready_trace(void)
void cb_emit_rollback(void)
struct cb_tree_common common
int validate_move(cb_tree, cb_tree, const unsigned int)
cb_tree cb_int_hex(const int)
cb_tree cb_build_if(const cb_tree, const cb_tree, const cb_tree, const unsigned int)
unsigned int flag_invalid
cb_tree alphabet_name_list
void cb_build_debug_item(void)
struct cb_tree_common common
unsigned int flag_binary_swap
cb_tree cb_build_locale_name(cb_tree, cb_tree)
struct cb_field * cb_field_variable_size(const struct cb_field *)
enum cb_category category
struct cb_program * handler_prog
void cb_list_map(cb_tree(*)(cb_tree), cb_tree)
cb_tree cb_build_perform_varying(cb_tree, cb_tree, cb_tree, cb_tree)
void cb_emit_reset_trace(void)
struct cb_tree_common * cb_tree
struct cb_alter_id * next
cb_tree cb_build_goto(const cb_tree, const cb_tree)
struct cb_tree_common common
cb_tree cb_build_if_check_break(cb_tree, cb_tree)
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)
void cb_emit_commit(void)
void cb_emit_unstring(cb_tree, cb_tree, cb_tree, cb_tree, cb_tree)
void cb_list_system(void)
unsigned int flag_all_debug
struct cb_tree_common common
unsigned int flag_console_is_crt
cb_tree lookup_system_name(const char *)
struct cb_field * cb_get_real_field(void)
void cb_emit_accept_arg_value(cb_tree)
unsigned char currency_symbol
struct cb_tree_common common
cb_tree cb_build_tallying_all(void)
unsigned int flag_any_numeric
struct cb_field * rename_thru
void cb_emit_search_all(cb_tree, cb_tree, cb_tree, cb_tree)
struct cb_field * cb_field_founder(const struct cb_field *)
struct cb_tree_common common
cb_tree cb_build_field_reference(struct cb_field *, cb_tree)
enum cb_system_name_category category
cb_tree cb_build_display_name(cb_tree)
void cb_emit_sort_finish(cb_tree)
cb_tree cb_build_write_advancing_mnemonic(cb_tree, cb_tree)
cb_tree cb_build_tallying_data(cb_tree)
void cb_emit_delete(cb_tree)
const unsigned char * data
void cb_add_78(struct cb_field *)
void cb_emit_perform(cb_tree, cb_tree)
unsigned int flag_segments
void cb_emit_goto(cb_tree, cb_tree)
unsigned int flag_blank_zero
void cb_emit_set_up_down(cb_tree, cb_tree, cb_tree)
unsigned int flag_receiving
struct cb_tree_common common
cb_tree cb_build_replacing_all(cb_tree, cb_tree, cb_tree)
int cb_fits_long_long(const cb_tree)
cb_tree cb_build_filler(void)
cb_tree cb_build_implicit_field(cb_tree, const int)
unsigned int flag_recursive
enum cb_cast_type cast_type
struct cb_para_label * next
const char * program_name
unsigned int flag_vaddr_done
unsigned int flag_chained
char * cb_encode_program_id(const char *)
char * cb_to_cname(const char *)
unsigned int cobc_force_literal
struct cb_statement * cb_build_statement(const char *)
struct cb_word ** word_table
cb_tree cb_list_reverse(cb_tree)
cb_tree cb_list_append(cb_tree, cb_tree)
cb_tree cb_build_field(cb_tree)
cb_tree cb_build_debug(const cb_tree, const char *, const cb_tree)
unsigned int flag_fl_debug
struct nested_list * common_prog_list
void cb_emit_set_attribute(cb_tree, const int, const int)
cob_u64_t cb_get_u_long_long(const cb_tree)
void cb_validate_88_item(struct cb_field *)
enum cb_category cb_tree_category(cb_tree)
cb_tree cb_build_unstring_into(cb_tree, cb_tree, cb_tree)
void cb_emit_display(cb_tree, cb_tree, cb_tree, cb_tree, struct cb_attr_struct *)
cb_tree collating_sequence
struct handler_struct global_handler[5]
struct cb_alter_id * alter_gotos
cb_tree cb_build_display_mnemonic(cb_tree)
unsigned int flag_alter_code
cb_tree cb_build_class_name(cb_tree, cb_tree)
void cb_emit_display_omitted(cb_tree, struct cb_attr_struct *)
unsigned int flag_declaratives
unsigned char flag_no_filler_init
cb_tree cb_build_tallying_leading(void)
unsigned int flag_sign_separate
void cb_check_field_debug(cb_tree)
void cb_emit_set_last_exception_to_off(void)
struct nested_list * nested_prog_list
cb_tree cb_build_identifier(cb_tree, const int)
void cb_emit_accept_escape_key(cb_tree)
unsigned int flag_declarative_exit
void cb_emit_sort_giving(cb_tree, cb_tree)
cb_tree cb_build_tallying_value(cb_tree, cb_tree)
void cb_emit_exit(const unsigned int)
const char * intr_routine
struct cb_label * all_procedure
struct cb_field * linkage_storage
unsigned int flag_callback
#define COB_MAX_SUBSCRIPTS
unsigned char numeric_separator
cb_tree cb_build_assign(const cb_tree, const cb_tree)
cb_tree cb_build_move(cb_tree, cb_tree)
unsigned int flag_trailing_separate
void cb_emit_accept_date(cb_tree)
void cb_emit_env_value(cb_tree)
struct cb_field * working_storage
void cb_emit_corresponding(cb_tree(*)(cb_tree, cb_tree, cb_tree), cb_tree, cb_tree, cb_tree)
void cb_list_reserved(void)
cb_tree cb_build_binary_op(cb_tree, const int, cb_tree)
struct cb_tree_common common
cb_tree cb_build_cast(const enum cb_cast_type, const cb_tree)
struct cb_field * check_level_78(const char *)
void cb_emit_unlock(cb_tree)
void cb_emit_cancel(cb_tree)
char * cb_build_program_id(cb_tree, cb_tree, const cob_u32_t)
struct cb_field * index_qual
void cb_emit_accept_line_or_col(cb_tree, const int)
void cb_emit_close(cb_tree, cb_tree)
cb_tree cb_build_write_advancing_page(cb_tree)
unsigned int flag_validated
struct cb_tree_common common
void cb_list_intrinsics(void)
struct cb_tree_common common
unsigned int flag_dummy_exit
cob_s64_t cb_get_long_long(const cb_tree)
void cb_build_registers(void)
void cb_emit_divide(cb_tree, cb_tree, cb_tree, cb_tree)
unsigned int flag_skip_label
unsigned int flag_dummy_section
void cb_emit_string(cb_tree, cb_tree, cb_tree)
struct cb_tree_common common
void cb_emit_sort_output(cb_tree)
struct cb_tree_common common
struct cb_report * build_report(cb_tree)
cb_tree cb_build_length(cb_tree)
struct cb_field * redefines
void codegen(struct cb_program *, const int)
cb_tree cb_build_section_name(cb_tree, const int)
unsigned int flag_chained
struct cb_tree_common common
cb_tree cb_concat_literals(const cb_tree, const cb_tree)
unsigned int cobc_in_procedure
cb_tree cb_build_alphanumeric_literal(const void *, const size_t)
cb_tree cb_build_search(const int, const cb_tree, const cb_tree, const cb_tree, const cb_tree)
cb_tree cb_build_cast_llint(const cb_tree)
unsigned int flag_debug_code
unsigned int flag_finalized
struct cb_tree_common common
struct cb_tree_common common
struct cb_alt_key * alt_key_list
struct cb_label * debug_section
unsigned int flag_has_external
struct cb_tree_common common
enum cb_intr_enum intr_enum
struct cb_program * cb_find_defined_program_by_id(const char *)
cb_tree cb_pair_add(cb_tree, cb_tree, cb_tree)
unsigned int alphabet_type
struct cb_program * cb_find_defined_program_by_name(const char *)
unsigned int flag_gen_error
cb_tree cb_build_field_tree(cb_tree, cb_tree, struct cb_field *, enum cb_storage, struct cb_file *, const int)
cb_tree cb_build_label(cb_tree, struct cb_label *)
cb_tree cb_debug_contents
struct cobc_reserved * lookup_reserved_word(const char *)
cb_tree cb_build_alphabet_name(cb_tree)
void cb_reset_global_78(void)
struct cb_field * cb_resolve_redefines(struct cb_field *, cb_tree)
cb_tree cb_build_replacing_first(cb_tree, cb_tree, cb_tree)
cb_tree cb_build_list(cb_tree, cb_tree, cb_tree)
void cb_list_mnemonics(void)
struct cb_tree_common common
cb_tree cb_define_switch_name(cb_tree, cb_tree, const int)
void cb_warning_x(cb_tree, const char *,...) COB_A_FORMAT23
void redefinition_warning(cb_tree, cb_tree)
cb_tree symbolic_char_list
void cb_add_common_prog(struct cb_program *)
unsigned char decimal_point
struct cb_field * screen_storage
unsigned int flag_first_is_goto
void cb_build_symbolic_chars(const cb_tree, const cb_tree)
unsigned int context_test
struct cb_label * debug_section
void cb_emit_accept_day_yyyyddd(cb_tree)
cb_tree cb_build_string(const void *, const size_t)
void finalize_file(struct cb_file *, struct cb_field *)
cb_tree cb_build_index(cb_tree, cb_tree, const unsigned int, struct cb_field *)
void cb_emit_setenv(cb_tree, cb_tree)
unsigned char flag_external
struct cb_tree_common common
void cb_emit_accept_arg_number(cb_tree)
void cb_emit_accept_user_name(cb_tree)
void cb_emit_alter(cb_tree, cb_tree)
void cb_validate_program_data(struct cb_program *)
unsigned int flag_item_based
void cb_emit_env_name(cb_tree)
void cb_emit_rewrite(cb_tree, cb_tree, cb_tree)