GnuCOBOL
2.0
A free COBOL compiler
|
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <limits.h>
#include "tarstamp.h"
#include "cobc.h"
#include "tree.h"
#include "libcob/system.def"
Go to the source code of this file.
Data Structures | |
struct | sort_list |
struct | system_table |
struct | label_list |
struct | string_list |
struct | attr_list |
struct | literal_list |
struct | field_list |
struct | call_list |
struct | base_list |
Macros | |
#define | COB_ALIGN "" |
#define | COB_MAX_SUBSCRIPTS 16 |
#define | COB_MALLOC_ALIGN 15 |
#define | COB_INSIDE_SIZE 64 |
#define | INITIALIZE_NONE 0 |
#define | INITIALIZE_ONE 1 |
#define | INITIALIZE_DEFAULT 2 |
#define | INITIALIZE_COMPOUND 3 |
#define | CB_NEED_HIGH (1U << 0) |
#define | CB_NEED_LOW (1U << 1) |
#define | CB_NEED_QUOTE (1U << 2) |
#define | CB_NEED_SPACE (1U << 3) |
#define | CB_NEED_ZERO (1U << 4) |
#define | COB_SYSTEM_GEN(x, y, z) { x, #z }, |
Functions | |
static void | output (const char *,...) |
static int | lookup_string (const char *p) |
static void | lookup_call (const char *p) |
static void | lookup_func_call (const char *p) |
static struct attr_list * | attr_list_reverse (struct attr_list *p) |
static struct string_list * | string_list_reverse (struct string_list *p) |
static struct literal_list * | literal_list_reverse (struct literal_list *p) |
static int | field_cache_cmp (const void *mp1, const void *mp2) |
static int | base_cache_cmp (const void *mp1, const void *mp2) |
static void * | list_cache_sort (void *inlist, int(*cmpfunc)(const void *mp1, const void *mp2)) |
static void | output_newline (void) |
static void | output_prefix (void) |
static void | output_line (const char *fmt,...) |
static void | output_indent (const char *str) |
static void | output_string (const unsigned char *s, const int size, const cob_u32_t llit) |
static void | output_storage (const char *fmt,...) |
static void | output_local (const char *fmt,...) |
static struct cb_field * | real_field_founder (const struct cb_field *f) |
static struct cb_field * | chk_field_variable_size (struct cb_field *f) |
static unsigned int | chk_field_variable_address (struct cb_field *fld) |
static void | output_base (struct cb_field *f, const cob_u32_t no_output) |
static void | output_data (cb_tree x) |
static void | output_size (const cb_tree x) |
static int | lookup_attr (const int type, const cob_u32_t digits, const int scale, const cob_u32_t flags, unsigned char *pic, const int lenstr) |
static char * | user_func_upper (const char *func) |
static void | output_attr (const cb_tree x) |
static void | output_field (cb_tree x) |
static int | lookup_literal (cb_tree x) |
static void | output_integer (cb_tree x) |
static void | output_long_integer (cb_tree x) |
static void | output_index (cb_tree x) |
static void | output_param (cb_tree x, int id) |
static void | output_funcall (cb_tree x) |
static void | output_func_1 (const char *name, cb_tree x) |
static void | output_cond (cb_tree x, const int save_flag) |
static void | output_move (cb_tree src, cb_tree dst) |
static int | initialize_type (struct cb_initialize *p, struct cb_field *f, const int topfield) |
static int | initialize_uniform_char (const struct cb_field *f, const struct cb_initialize *p) |
static void | output_figurative (cb_tree x, const struct cb_field *f, const int value, const int init_occurs) |
static void | output_initialize_literal (cb_tree x, struct cb_field *f, struct cb_literal *l, const int init_occurs) |
static void | output_initialize_fp_bindec (cb_tree x, struct cb_field *f) |
static void | output_initialize_fp (cb_tree x, struct cb_field *f) |
static void | output_initialize_uniform (cb_tree x, const int c, const int size) |
static void | output_initialize_one (struct cb_initialize *p, cb_tree x) |
static void | output_initialize_compound (struct cb_initialize *p, cb_tree x) |
static void | output_initialize (struct cb_initialize *p) |
static void | output_occurs (struct cb_field *p) |
static void | output_search_whens (cb_tree table, cb_tree var, cb_tree stmt, cb_tree whens) |
static void | output_search_all (cb_tree table, cb_tree stmt, cb_tree cond, cb_tree when) |
static void | output_search (struct cb_search *p) |
static void | output_call_by_value_args (cb_tree x, cb_tree l) |
static void | output_bin_field (const cb_tree x, const cob_u32_t id) |
static void | output_call (struct cb_call *p) |
static void | output_set_attribute (const struct cb_field *f, int val_on, int val_off) |
static void | output_cancel (struct cb_cancel *p) |
static void | output_perform_call (struct cb_label *lb, struct cb_label *le) |
static void | output_perform_exit (struct cb_label *l) |
static void | output_funcall_debug (cb_tree x) |
static void | output_cond_debug (cb_tree x) |
static void | output_perform_once (struct cb_perform *p) |
static void | output_perform_until (struct cb_perform *p, cb_tree l) |
static void | output_perform (struct cb_perform *p) |
static void | output_file_error (struct cb_file *pfile) |
static void | output_goto_1 (cb_tree x) |
static void | output_goto (struct cb_goto *p) |
static void | output_alter (struct cb_alter *p) |
static void | output_ferror_stmt (struct cb_statement *p, const int code) |
static void | output_section_info (struct cb_label *lp) |
static void | output_trace_info (cb_tree x, struct cb_statement *p) |
static void | output_label_info (cb_tree x, struct cb_label *lp) |
static void | output_alter_check (struct cb_label *lp) |
static void | output_stmt (cb_tree x) |
static int | output_file_allocation (struct cb_file *f) |
static void | output_file_initialization (struct cb_file *f) |
static void | output_screen_definition (struct cb_field *p) |
static void | output_screen_init (struct cb_field *p, struct cb_field *previous) |
static int | literal_value (cb_tree x) |
static void | output_alphabet_name_definition (struct cb_alphabet_name *p) |
static void | output_class_name_definition (struct cb_class_name *p) |
static void | output_initial_values (struct cb_field *f) |
static void | output_error_handler (struct cb_program *prog) |
static void | output_module_init (struct cb_program *prog) |
static void | output_internal_function (struct cb_program *prog, cb_tree parameter_list) |
static void | output_entry_function (struct cb_program *prog, cb_tree entry, cb_tree parameter_list, const int gencode) |
static void | output_main_function (struct cb_program *prog) |
static void | output_header (FILE *fp, const char *locbuff, const struct cb_program *cp) |
void | codegen (struct cb_program *prog, const int nested) |
Variables | |
static struct attr_list * | attr_cache = ((void*)0) |
static struct literal_list * | literal_cache = ((void*)0) |
static struct field_list * | field_cache = ((void*)0) |
static struct field_list * | local_field_cache = ((void*)0) |
static struct call_list * | call_cache = ((void*)0) |
static struct call_list * | func_call_cache = ((void*)0) |
static struct base_list * | base_cache = ((void*)0) |
static struct base_list * | globext_cache = ((void*)0) |
static struct base_list * | local_base_cache = ((void*)0) |
static struct string_list * | string_cache = ((void*)0) |
static char * | string_buffer = ((void*)0) |
static struct label_list * | label_cache = ((void*)0) |
static FILE * | output_target = ((void*)0) |
static FILE * | cb_local_file = ((void*)0) |
static const char * | excp_current_program_id = ((void*)0) |
static const char * | excp_current_section = ((void*)0) |
static const char * | excp_current_paragraph = ((void*)0) |
static struct cb_program * | current_prog = ((void*)0) |
static struct cb_label * | last_section = ((void*)0) |
static unsigned char * | litbuff = ((void*)0) |
static int | litsize = 0 |
static unsigned int | needs_exit_prog = 0 |
static unsigned int | needs_unifunc = 0 |
static unsigned int | need_save_exception = 0 |
static unsigned int | gen_nested_tab = 0 |
static unsigned int | gen_alt_ebcdic = 0 |
static unsigned int | gen_ebcdic_ascii = 0 |
static unsigned int | gen_full_ebcdic = 0 |
static unsigned int | gen_native = 0 |
static unsigned int | gen_custom = 0 |
static unsigned int | gen_figurative = 0 |
static unsigned int | gen_dynamic = 0 |
static int | param_id = 0 |
static int | stack_id = 0 |
static int | string_id |
static int | num_cob_fields = 0 |
static int | non_nested_count = 0 |
static int | loop_counter = 0 |
static int | progid = 0 |
static int | last_line = 0 |
static cob_u32_t | field_iteration = 0 |
static int | screenptr = 0 |
static int | local_mem = 0 |
static int | working_mem = 0 |
static int | local_working_mem = 0 |
static int | output_indent_level = 0 |
static int | last_segment = 0 |
static int | gen_if_level = 0 |
static unsigned int | nolitcast = 0 |
static unsigned int | inside_check = 0 |
static unsigned int | inside_stack [64] |
static unsigned int | i_counters [16] |
static const struct system_table | system_tab [] |
#define CB_NEED_HIGH (1U << 0) |
Definition at line 55 of file codegen.c.
Referenced by codegen(), and output_param().
#define CB_NEED_LOW (1U << 1) |
Definition at line 56 of file codegen.c.
Referenced by codegen(), and output_param().
#define CB_NEED_QUOTE (1U << 2) |
Definition at line 57 of file codegen.c.
Referenced by codegen(), and output_param().
#define CB_NEED_SPACE (1U << 3) |
Definition at line 58 of file codegen.c.
Referenced by codegen(), and output_param().
#define CB_NEED_ZERO (1U << 4) |
Definition at line 59 of file codegen.c.
Referenced by codegen(), and output_param().
#define COB_INSIDE_SIZE 64 |
Definition at line 48 of file codegen.c.
Referenced by codegen(), output_cond(), and output_param().
#define COB_MALLOC_ALIGN 15 |
Definition at line 46 of file codegen.c.
Referenced by output_internal_function().
#define COB_MAX_SUBSCRIPTS 16 |
Definition at line 44 of file codegen.c.
Referenced by cb_init_constants(), codegen(), and yyparse().
#define INITIALIZE_COMPOUND 3 |
Definition at line 53 of file codegen.c.
Referenced by initialize_type(), and output_initialize().
#define INITIALIZE_DEFAULT 2 |
Definition at line 52 of file codegen.c.
Referenced by initialize_type(), output_initialize(), and output_initialize_compound().
#define INITIALIZE_NONE 0 |
Definition at line 50 of file codegen.c.
Referenced by initialize_type(), output_initialize(), and output_initialize_compound().
#define INITIALIZE_ONE 1 |
Definition at line 51 of file codegen.c.
Referenced by initialize_type(), output_initialize(), and output_initialize_compound().
Definition at line 269 of file codegen.c.
References attr_list::next, and NULL.
Referenced by codegen().
|
static |
Definition at line 327 of file codegen.c.
References base_list::f, and cb_field::id.
Referenced by codegen().
|
static |
Definition at line 582 of file codegen.c.
References cb_field::children, chk_field_variable_size(), cb_field::depending, cb_field::flag_vaddr_done, cb_field::parent, cb_field::sister, and cb_field::vaddr.
Referenced by output_base(), and output_param().
Definition at line 556 of file codegen.c.
References cb_field::children, cb_field::depending, cb_field::flag_vsize_done, NULL, cb_field::sister, and cb_field::vsize.
Referenced by chk_field_variable_address(), output_base(), output_param(), and output_size().
void codegen | ( | struct cb_program * | prog, |
const int | nested | ||
) |
Definition at line 7448 of file codegen.c.
References _, cb_program::alphabet_name_list, attr_list_reverse(), base_cache_cmp(), call_list::callname, CB_CHAIN, CB_CLASS_NAME, CB_CLASS_NUMERIC, CB_FUNCTION_TYPE, cb_list_add(), CB_LITERAL, cb_local_file, CB_NEED_HIGH, CB_NEED_LOW, CB_NEED_QUOTE, CB_NEED_SPACE, CB_NEED_ZERO, CB_PREFIX_ATTR, CB_PREFIX_BASE, CB_PREFIX_CONST, CB_PREFIX_FIELD, CB_PREFIX_STRING, CB_PROGRAM_TYPE, cb_source_file, cb_storage_file, cb_storage_file_name, CB_TREE_CLASS, CB_VALUE, CB_XSTRINGIFY, cb_program::class_name_list, COB_ALIGN, cob_gen_optim(), COB_INSIDE_SIZE, COB_KEYWORD_INLINE, COB_MAX_SUBSCRIPTS, COB_MINI_BUFF, COB_MINI_MAX, COB_OPTIM_MAX, COB_OPTIM_MIN, COB_TYPE_ALPHANUMERIC, COB_TYPE_ALPHANUMERIC_ALL, cob_u32_t, cobc_flag_main, cobc_main_malloc(), codegen(), field_list::curr_prog, base_list::curr_prog, cb_literal::data, attr_list::digits, cb_program::entry_list, excp_current_paragraph, excp_current_program_id, excp_current_section, field_list::f, base_list::f, field_cache_cmp(), cb_program::flag_chained, cb_program::flag_debugging, cb_field::flag_filler, cb_program::flag_global_use, cb_field::flag_local, cb_program::flag_main, cb_program::flag_recursive, attr_list::flags, gen_alt_ebcdic, gen_custom, gen_dynamic, gen_ebcdic_ascii, gen_figurative, gen_full_ebcdic, gen_if_level, gen_native, gen_nested_tab, i_counters, string_list::id, attr_list::id, literal_list::id, cb_field::id, inside_check, inside_stack, last_line, last_segment, list_cache_sort(), literal_list_reverse(), cb_literal::llit, local_filename::local_fp, cb_program::local_include, local_mem, cb_program::local_storage, local_working_mem, lookup_attr(), loop_counter, cb_program::max_call_param, cb_field::memory_size, cb_field::name, need_save_exception, needs_exit_prog, needs_unifunc, cb_program::nested_level, nested_list::nested_prog, cb_program::nested_prog_list, string_list::next, attr_list::next, literal_list::next, field_list::next, call_list::next, base_list::next, nested_list::next, cb_program::next_program, non_nested_count, NULL, num_cob_fields, optimize_defs, cb_program::orig_program_id, output(), output_attr(), output_class_name_definition(), output_entry_function(), output_field(), output_header(), output_indent_level, output_internal_function(), output_local(), output_main_function(), output_newline(), output_size(), output_storage(), output_string(), output_target, PACKAGE_VERSION, param_id, cb_program::parameter_list, PATCH_LEVEL, attr_list::pic, cb_program::prog_type, progid, cb_program::program_id, attr_list::scale, cb_literal::sign, cb_literal::size, cb_field::special_index, stack_id, string_buffer, string_id, string_list_reverse(), string_list::text, cb_program::toplev_count, attr_list::type, working_mem, literal_list::x, field_list::x, and yyout.
Referenced by codegen(), and process_translate().
|
static |
Definition at line 313 of file codegen.c.
References field_list::curr_prog, field_list::f, and cb_field::id.
Referenced by codegen().
|
static |
Definition at line 2251 of file codegen.c.
References _, CB_CATEGORY_ALPHANUMERIC_EDITED, CB_CATEGORY_NATIONAL_EDITED, CB_CATEGORY_NUMERIC_EDITED, CB_CHAIN, CB_PURPOSE_INT, CB_TREE, CB_TREE_CATEGORY, cb_tree_type(), CB_USAGE_DOUBLE, CB_USAGE_FLOAT, CB_USAGE_FP_BIN128, CB_USAGE_FP_BIN32, CB_USAGE_FP_BIN64, CB_USAGE_FP_DEC128, CB_USAGE_FP_DEC64, CB_USAGE_LONG_DOUBLE, cb_field::children, COB_TYPE_NUMERIC_PACKED, COBC_ABORT, cobc_abort_pr(), cb_field::flag_chained, cb_initialize::flag_default, cb_field::flag_external, cb_field::flag_filler, cb_initialize::flag_init_statement, cb_field::flag_item_78, cb_initialize::flag_no_filler_init, INITIALIZE_COMPOUND, INITIALIZE_DEFAULT, INITIALIZE_NONE, INITIALIZE_ONE, cb_field::redefines, cb_initialize::rep, cb_field::sister, cb_field::usage, cb_initialize::val, and cb_field::values.
Referenced by output_initialize(), and output_initialize_compound().
|
static |
Definition at line 2335 of file codegen.c.
References CB_TREE, cb_tree_type(), cb_field::children, COB_TYPE_ALPHANUMERIC, COB_TYPE_NUMERIC_BINARY, COB_TYPE_NUMERIC_DISPLAY, cb_initialize::flag_init_statement, cb_field::redefines, and cb_field::sister.
Referenced by output_initialize(), and output_initialize_compound().
|
static |
Definition at line 340 of file codegen.c.
References sort_list::next, and NULL.
Referenced by codegen().
|
static |
Definition at line 299 of file codegen.c.
References literal_list::next, and NULL.
Referenced by codegen().
|
static |
Definition at line 5489 of file codegen.c.
References CB_CLASS_NUMERIC, cb_get_int(), CB_LITERAL, cb_norm_high, cb_norm_low, cb_null, cb_quote, cb_space, CB_TREE_CLASS, and cb_zero.
Referenced by output_class_name_definition().
|
static |
Definition at line 880 of file codegen.c.
References attr_cache, cb_attr_id, cobc_parse_malloc(), attr_list::digits, attr_list::flags, attr_list::id, attr_list::lenstr, attr_list::next, attr_list::pic, attr_list::scale, and attr_list::type.
Referenced by codegen(), output_alphabet_name_definition(), output_attr(), and output_bin_field().
|
static |
Definition at line 237 of file codegen.c.
References call_cache, call_list::callname, cobc_parse_malloc(), and call_list::next.
Referenced by output_call().
|
static |
Definition at line 253 of file codegen.c.
References call_list::callname, cobc_parse_malloc(), func_call_cache, and call_list::next.
Referenced by output_param().
|
static |
Definition at line 1059 of file codegen.c.
References cb_literal::all, CB_LITERAL, cb_literal_id, CB_TREE_CLASS, cobc_parse_malloc(), cb_literal::data, literal_list::id, literal_list::literal, literal_cache, literal_list::next, NULL, output_field(), output_target, cb_literal::scale, cb_literal::sign, cb_literal::size, and literal_list::x.
Referenced by output_param().
|
static |
Definition at line 219 of file codegen.c.
References cobc_parse_malloc(), cobc_parse_strdup(), string_list::id, string_list::next, string_cache, string_id, and string_list::text.
Referenced by output_internal_function(), output_section_info(), output_stmt(), and output_trace_info().
|
static |
Definition at line 192 of file codegen.c.
References CB_FIELD, cb_ref(), CB_REFERENCE, CB_REFERENCE_P, likely, unlikely, and value.
Referenced by codegen(), output_attr(), output_base(), output_call(), output_call_by_value_args(), output_cancel(), output_cond(), output_data(), output_entry_function(), output_error_handler(), output_field(), output_figurative(), output_file_initialization(), output_func_1(), output_funcall(), output_goto(), output_index(), output_initialize_fp(), output_initialize_fp_bindec(), output_initialize_literal(), output_initialize_one(), output_initialize_uniform(), output_integer(), output_internal_function(), output_label_info(), output_long_integer(), output_module_init(), output_occurs(), output_param(), output_perform(), output_perform_until(), output_screen_init(), output_search_all(), output_search_whens(), output_size(), output_stmt(), output_string(), and output_trace_info().
|
static |
Definition at line 5511 of file codegen.c.
References cb_alphabet_name::alphabet_type, CB_ALPHABET_CUSTOM, CB_PREFIX_ATTR, CB_PREFIX_FIELD, CB_PREFIX_SEQUENCE, cb_alphabet_name::cname, COB_TYPE_ALPHANUMERIC, lookup_attr(), NULL, output_local(), and cb_alphabet_name::values.
Referenced by output_internal_function().
|
static |
Definition at line 4460 of file codegen.c.
References cb_program::all_procedure, cb_build_debug(), cb_debug_contents, cb_debug_name, CB_LABEL, CB_PREFIX_LABEL, CB_REFERENCE, cb_label::debug_section, cb_label::flag_debugging_mode, cb_program::flag_gen_debug, cb_label::flag_real_label, cb_label::id, cb_label::name, NULL, output_line(), output_perform_call(), output_stmt(), cb_alter::source, and cb_alter::target.
Referenced by output_stmt().
|
static |
Definition at line 4636 of file codegen.c.
References cb_label::alter_gotos, CB_PREFIX_LABEL, cb_program::flag_segments, cb_alter_id::goto_id, cb_label::id, cb_alter_id::next, output_indent(), output_line(), output_local(), and output_newline().
Referenced by output_stmt().
|
static |
Definition at line 929 of file codegen.c.
References _, cb_literal::all, CB_CLASS_NUMERIC, CB_FIELD, CB_LITERAL, CB_PREFIX_ATTR, CB_REFERENCE, CB_TAG_ALPHABET_NAME, CB_TAG_LITERAL, CB_TAG_REFERENCE, CB_TREE_CLASS, CB_TREE_TAG, cb_tree_type(), CB_USAGE_BINARY, CB_USAGE_COMP_6, CB_USAGE_DOUBLE, CB_USAGE_FLOAT, CB_USAGE_FP_BIN128, CB_USAGE_FP_BIN32, CB_USAGE_FP_BIN64, CB_USAGE_FP_DEC128, CB_USAGE_FP_DEC64, CB_USAGE_LONG_DOUBLE, COB_FLAG_BINARY_SWAP, COB_FLAG_BINARY_TRUNC, COB_FLAG_BLANK_ZERO, COB_FLAG_HAVE_SIGN, COB_FLAG_IS_FP, COB_FLAG_IS_POINTER, COB_FLAG_JUSTIFIED, COB_FLAG_NO_SIGN_NIBBLE, COB_FLAG_REAL_BINARY, COB_FLAG_SIGN_LEADING, COB_FLAG_SIGN_SEPARATE, COB_TYPE_ALPHANUMERIC, COB_TYPE_ALPHANUMERIC_ALL, COB_TYPE_GROUP, COB_TYPE_NUMERIC_DISPLAY, cob_u32_t, cob_u8_ptr, COBC_ABORT, cobc_abort_pr(), cb_picture::digits, cb_field::flag_binary_swap, cb_field::flag_blank_zero, cb_field::flag_is_pointer, cb_field::flag_justified, cb_field::flag_real_binary, cb_field::flag_sign_leading, cb_field::flag_sign_separate, cb_picture::have_sign, cb_field::id, cb_picture::lenstr, lookup_attr(), NULL, cb_reference::offset, output(), cb_field::pic, cb_literal::scale, cb_picture::scale, cb_literal::sign, cb_literal::size, cb_picture::str, cb_field::usage, and cb_reference::value.
Referenced by codegen(), output_field(), and output_param().
Definition at line 606 of file codegen.c.
References _, base_cache, CB_PREFIX_BASE, cb_field::children, chk_field_variable_address(), chk_field_variable_size(), COBC_ABORT, cobc_abort_pr(), cobc_parse_malloc(), base_list::curr_prog, cb_field::depending, excp_current_program_id, base_list::f, cb_field::flag_base, cb_field::flag_external, cb_program::flag_file_global, cb_program::flag_global_use, cb_field::flag_is_global, cb_field::flag_item_78, cb_field::flag_local, cb_field::flag_local_storage, cb_field::id, local_base_cache, cb_field::mem_offset, cb_field::name, base_list::next, cb_field::occurs_max, cb_field::offset, output(), output_integer(), output_local(), cb_field::parent, real_field_founder(), cb_field::sister, cb_field::size, cb_field::special_index, and unlikely.
Referenced by output_data(), output_integer(), output_internal_function(), and output_long_integer().
Definition at line 3279 of file codegen.c.
References cb_fits_int(), CB_LITERAL, CB_NUMERIC_LITERAL_P, CB_PREFIX_ATTR, COB_FLAG_HAVE_SIGN, COB_FLAG_REAL_BINARY, COB_TYPE_NUMERIC_BINARY, cob_u32_t, lookup_attr(), NULL, output_line(), sign, and cb_field::size.
Referenced by output_call().
|
static |
Definition at line 3311 of file codegen.c.
References cb_call::args, cb_call::call_returning, CB_BINARY_OP_P, CB_CALL_BY_CONTENT, CB_CALL_BY_REFERENCE, CB_CALL_BY_VALUE, CB_CAST_P, CB_CATEGORY_NUMERIC, CB_CHAIN, CB_CLASS_POINTER, CB_CONV_NO_RET_UPD, CB_CONV_STATIC_LINK, CB_CONV_STDCALL, cb_early_exit_list, cb_encode_program_id(), CB_FIELD, CB_FIELD_P, CB_FILE_P, cb_fits_int(), CB_FMT_LLD_F, CB_FMT_LLU_F, cb_get_int(), cb_get_long_long(), cb_get_u_long_long(), CB_LITERAL, CB_LITERAL_P, cb_null, CB_NUMERIC_LITERAL_P, CB_PURPOSE_INT, cb_ref(), CB_REF_OR_FIELD_P, CB_REFERENCE, CB_REFERENCE_P, cb_program::cb_return_code, cb_static_call_list, CB_TAG_FIELD, CB_TAG_INTRINSIC, CB_TAG_LITERAL, CB_TAG_REFERENCE, CB_TREE_CATEGORY, CB_TREE_CLASS, CB_TREE_TAG, CB_USAGE_LENGTH, CB_USAGE_PROGRAM_POINTER, CB_VALUE, COB_MAX_FIELD_PARAMS, cob_u32_t, cb_call::convention, cb_literal::data, field_iteration, gen_nested_tab, cb_call::is_system, lookup_call(), cb_call::name, needs_exit_prog, needs_unifunc, nested_list::nested_prog, cb_program::nested_prog_list, cb_text_list::next, nested_list::next, NULL, output(), output_bin_field(), output_call_by_value_args(), output_data(), output_indent(), output_indent_level, output_integer(), output_line(), output_move(), output_newline(), output_param(), output_prefix(), output_size(), output_stmt(), output_string(), cb_program::program_id, sign, cb_call::stmt1, cb_call::stmt2, system_table::syst_call, system_table::syst_name, cb_text_list::text, cb_program::toplev_count, and value.
Referenced by output_stmt().
Definition at line 3046 of file codegen.c.
References _, CB_CATEGORY_NUMERIC, CB_CLASS_NUMERIC, CB_FMT_LLD_F, CB_FMT_LLU_F, cb_get_long_long(), cb_get_u_long_long(), CB_INTRINSIC, CB_LITERAL, CB_SIZE_1, CB_SIZE_2, CB_SIZE_4, CB_SIZE_8, CB_SIZE_AUTO, CB_SIZES_INT, CB_SIZES_INT_UNSIGNED, CB_TAG_CAST, CB_TAG_INTRINSIC, CB_TAG_LITERAL, CB_TREE_CLASS, CB_TREE_TAG, CB_USAGE_BINARY, CB_USAGE_COMP_5, CB_USAGE_COMP_6, CB_USAGE_COMP_X, CB_USAGE_DISPLAY, CB_USAGE_DOUBLE, CB_USAGE_FLOAT, CB_USAGE_FP_BIN128, CB_USAGE_FP_BIN32, CB_USAGE_FP_BIN64, CB_USAGE_FP_DEC128, CB_USAGE_FP_DEC64, CB_USAGE_INDEX, CB_USAGE_LENGTH, CB_USAGE_LONG_DOUBLE, CB_USAGE_PACKED, CB_USAGE_POINTER, CB_USAGE_PROGRAM_POINTER, cob_s64_t, cob_u64_t, COBC_ABORT, cobc_abort_pr(), cb_picture::digits, cb_picture::have_sign, output(), output_data(), output_integer(), output_param(), cb_field::pic, cb_picture::scale, sign, cb_field::size, and cb_field::usage.
Referenced by output_call().
|
static |
Definition at line 3858 of file codegen.c.
References cb_encode_program_id(), CB_LITERAL, CB_LITERAL_P, gen_nested_tab, nested_list::nested_prog, cb_program::nested_prog_list, nested_list::next, cb_program::num_proc_params, output(), output_param(), output_prefix(), output_string(), cb_program::program_id, cb_cancel::target, and cb_program::toplev_count.
Referenced by output_stmt().
|
static |
Definition at line 5544 of file codegen.c.
References CB_CHAIN, cb_high, CB_LITERAL, cb_low, cb_null, CB_NUMERIC_LITERAL_P, CB_PAIR_P, CB_PAIR_X, CB_PAIR_Y, cb_quote, cb_space, CB_VALUE, cb_zero, cb_class_name::cname, cb_class_name::list, literal_value(), output_indent(), output_line(), and output_newline().
Referenced by codegen().
|
static |
Definition at line 2121 of file codegen.c.
References _, CB_BINARY_OP, CB_CHAIN, cb_false, CB_TAG_BINARY_OP, CB_TAG_CONST, CB_TAG_FUNCALL, CB_TAG_LIST, CB_TREE_TAG, cb_true, CB_VALUE, COB_INSIDE_SIZE, COBC_ABORT, cobc_abort_pr(), inside_check, inside_stack, cb_binary_op::op, output(), output_funcall(), output_integer(), output_newline(), output_prefix(), output_stmt(), cb_binary_op::x, and cb_binary_op::y.
Referenced by output_perform_until(), output_search_all(), and output_stmt().
|
static |
Definition at line 4138 of file codegen.c.
References CB_BINARY_OP, cb_build_debug(), cb_debug_contents, cb_debug_name, CB_REF_OR_FIELD_P, CB_TAG_BINARY_OP, CB_TAG_FUNCALL, CB_TAG_LIST, CB_TREE_TAG, NULL, cb_binary_op::op, output_funcall_debug(), output_perform_call(), output_stmt(), cb_binary_op::x, and cb_binary_op::y.
Referenced by output_perform_until().
|
static |
Definition at line 705 of file codegen.c.
References _, CB_CHAIN, CB_CLASS_NUMERIC, CB_FIELD, CB_LITERAL, cb_null, CB_REFERENCE, CB_TAG_CAST, CB_TAG_CONST, CB_TAG_INTRINSIC, CB_TAG_LITERAL, CB_TAG_REFERENCE, CB_TREE_CLASS, CB_TREE_TAG, CB_VALUE, cb_field::children, COBC_ABORT, cobc_abort_pr(), cb_literal::data, cb_field::depending, field_iteration, cb_field::flag_occurs, cb_literal::llit, NULL, cb_reference::offset, output(), output_base(), output_index(), output_integer(), output_param(), output_string(), cb_field::parent, cb_literal::sign, cb_literal::size, cb_field::size, cb_reference::subs, unlikely, and cb_reference::value.
Referenced by output_call(), output_call_by_value_args(), output_field(), output_figurative(), output_funcall(), output_initialize_fp(), output_initialize_fp_bindec(), output_initialize_literal(), output_initialize_one(), output_initialize_uniform(), output_integer(), output_internal_function(), output_long_integer(), output_param(), and output_stmt().
|
static |
Definition at line 6866 of file codegen.c.
References CB_CALL_BY_CONTENT, CB_CALL_BY_REFERENCE, CB_CALL_BY_VALUE, CB_CHAIN, CB_CLASS_NUMERIC, CB_FUNCTION_TYPE, CB_LABEL, CB_PREFIX_BASE, CB_PURPOSE, CB_PURPOSE_INT, CB_SIZE_1, CB_SIZE_2, CB_SIZE_4, CB_SIZE_8, CB_SIZE_UNSIGNED, CB_SIZES, CB_SIZES_INT, CB_TREE_CLASS, CB_USAGE_DOUBLE, CB_USAGE_FLOAT, CB_USAGE_FP_BIN128, CB_USAGE_FP_BIN32, CB_USAGE_FP_BIN64, CB_USAGE_FP_DEC128, CB_USAGE_FP_DEC64, CB_USAGE_LONG_DOUBLE, CB_USAGE_POINTER, CB_USAGE_PROGRAM_POINTER, CB_VALUE, COB_MAX_FIELD_PARAMS, cob_u32_t, f1, f2, cb_program::flag_chained, cb_program::flag_main, cb_program::flag_recursive, cb_program::flag_void, cb_field::id, n2, cb_field::name, cb_program::nested_level, NULL, output(), cb_program::prog_type, progid, cb_program::program_id, cb_program::toplev_count, unlikely, and cb_field::usage.
Referenced by codegen().
|
static |
Definition at line 5635 of file codegen.c.
References CB_LABEL, cb_list_length(), cb_standard_error_handler, COB_OPEN_EXTEND, COB_OPEN_INPUT, cb_program::global_handler, handler_struct::handler_label, handler_struct::handler_prog, cb_label::id, cb_program::nested_level, output(), output_indent(), output_line(), output_newline(), output_perform_call(), output_perform_exit(), output_prefix(), output_stmt(), cb_program::parameter_list, cb_program::program_id, and cb_program::toplev_count.
Referenced by output_internal_function().
|
static |
Definition at line 4489 of file codegen.c.
References CB_FILE, cb_statement::file, cb_statement::handler1, cb_statement::handler2, cb_statement::handler3, output_file_error(), output_indent(), output_line(), and output_stmt().
Referenced by output_stmt().
|
static |
Definition at line 1045 of file codegen.c.
References output(), output_attr(), output_data(), and output_size().
Referenced by codegen(), lookup_literal(), and output_param().
|
static |
Definition at line 2368 of file codegen.c.
References CB_REFERENCE, CB_REFERENCE_P, cb_field::occurs_max, output(), output_data(), output_prefix(), output_size(), and cb_field::size.
Referenced by output_initialize_one().
|
static |
Definition at line 5099 of file codegen.c.
References cb_alphabet_name::alphabet_type, CB_ALPHABET_ASCII, CB_ALPHABET_CUSTOM, CB_ALPHABET_EBCDIC, CB_FIELD_PTR, CB_PREFIX_FILE, CB_PREFIX_KEYS, cb_file::cname, COB_ORG_INDEXED, COB_ORG_RELATIVE, cb_file::code_set, cb_file::file_status, cb_file::flag_global, gen_custom, gen_ebcdic_ascii, gen_full_ebcdic, gen_native, cb_file::linage, cb_file::name, cb_file::organization, output_local(), and output_storage().
Referenced by output_internal_function().
|
static |
Definition at line 4326 of file codegen.c.
References cb_build_debug(), CB_CHAIN, cb_debug_contents, CB_FILE, CB_VALUE, cb_program::flag_gen_debug, cb_program::global_file_list, cb_file::handler, cb_file::handler_prog, cb_label::id, cb_program::local_file_list, cb_file::name, cb_program::nested_level, NULL, output_line(), output_perform_call(), output_stmt(), cb_program::program_id, and cb_program::toplev_count.
Referenced by output_ferror_stmt().
|
static |
Definition at line 5160 of file codegen.c.
References cb_file::access_mode, cb_file::alt_key_list, cb_file::assign, CB_PREFIX_FILE, CB_PREFIX_KEYS, CB_TREE, cb_file::cname, COB_FILE_VERSION, COB_ORG_INDEXED, COB_ORG_RELATIVE, COB_SELECT_EXTERNAL, COB_SELECT_FILE_STATUS, COB_SELECT_LINAGE, cb_alt_key::duplicates, cb_file::file_status, cb_file::flag_ext_assign, cb_file::flag_external, cb_alt_key::key, cb_file::key, cb_file::latbot, cb_file::latfoot, cb_file::lattop, cb_file::linage, cb_file::linage_ctr, cb_file::lock_mode, cb_file::name, cb_alt_key::next, cb_file::optional, cb_file::organization, output(), output_indent(), output_line(), output_param(), output_prefix(), cb_file::record, cb_file::record_depending, cb_file::record_max, cb_file::record_min, and cb_file::special.
Referenced by output_internal_function().
|
static |
Definition at line 2111 of file codegen.c.
References output(), output_param(), and param_id.
Referenced by output_integer(), and output_long_integer().
|
static |
Definition at line 2028 of file codegen.c.
References _, cb_funcall::argc, cb_funcall::argv, CB_CHAIN, CB_FUNCALL, cb_high, CB_LITERAL, CB_LITERAL_P, cb_low, cb_space, CB_VALUE, cb_zero, COBC_ABORT, cobc_abort_pr(), cb_funcall::name, nolitcast, cb_funcall::nolitcast, output(), output_data(), output_param(), screenptr, cb_funcall::screenptr, and cb_funcall::varcnt.
Referenced by output_cond(), output_param(), and output_stmt().
|
static |
Definition at line 4071 of file codegen.c.
References cb_funcall::argc, cb_funcall::argv, cb_build_debug(), CB_CHAIN, cb_debug_contents, cb_debug_name, CB_FUNCALL, CB_REF_OR_FIELD_P, CB_VALUE, cb_funcall::name, NULL, output_param(), output_perform_call(), output_stmt(), and cb_funcall::varcnt.
Referenced by output_cond_debug().
|
static |
Definition at line 4406 of file codegen.c.
References cb_build_cast_int(), cb_build_debug(), CB_CHAIN, cb_debug_contents, cb_debug_name, CB_FIELD, CB_FUNCTION_TYPE, cb_int1, cb_ref(), CB_VALUE, cb_field::debug_section, cb_goto::depending, cb_field::flag_all_debug, cb_program::flag_gen_debug, cb_field::name, needs_exit_prog, cb_program::nested_level, NULL, output(), output_goto_1(), output_indent(), output_indent_level, output_line(), output_param(), output_perform_call(), output_prefix(), output_stmt(), cb_program::prog_type, and cb_goto::target.
Referenced by output_stmt().
|
static |
Definition at line 4370 of file codegen.c.
References cb_program::all_procedure, cb_build_debug(), cb_debug_contents, cb_debug_name, CB_LABEL, CB_PREFIX_LABEL, cb_ref(), cb_space, cb_label::flag_alter, cb_label::flag_debugging_mode, cb_program::flag_gen_debug, cb_label::flag_real_label, cb_label::flag_section, cb_program::flag_segments, cb_label::id, last_segment, cb_label::name, cb_para_label::next, NULL, output_line(), output_move(), output_stmt(), cb_para_label::para, cb_label::para_label, cb_label::section, and cb_label::segment.
Referenced by output_goto().
|
static |
Definition at line 7424 of file codegen.c.
References cb_oc_build_stamp, cb_saveargc, cb_saveargv, cb_source_file, COB_TAR_DATE, cb_program::orig_program_id, PACKAGE_VERSION, and PATCH_LEVEL.
Referenced by codegen().
|
static |
Definition at line 467 of file codegen.c.
References output_indent_level, and output_line().
Referenced by output_alter_check(), output_call(), output_class_name_definition(), output_error_handler(), output_ferror_stmt(), output_file_initialization(), output_goto(), output_initialize(), output_initialize_compound(), output_initialize_literal(), output_initialize_one(), output_internal_function(), output_main_function(), output_perform(), output_perform_until(), output_search_all(), output_search_whens(), and output_stmt().
|
static |
Definition at line 1608 of file codegen.c.
References cb_get_int(), CB_INTEGER, CB_TAG_INTEGER, CB_TAG_LITERAL, CB_TREE_TAG, output(), and output_integer().
Referenced by output_data(), and output_size().
|
static |
Definition at line 5616 of file codegen.c.
References cb_build_field_reference(), cb_build_initialize(), cb_true, cb_field::count, cb_field::flag_item_based, cb_field::flag_no_init, NULL, output_stmt(), and cb_field::sister.
Referenced by output_internal_function().
|
static |
Definition at line 2831 of file codegen.c.
References CB_BUILD_CHAIN, cb_build_field_reference(), CB_CHAIN, cb_i, CB_REFERENCE, cb_initialize::flag_init_statement, cb_field::flag_occurs, i_counters, INITIALIZE_COMPOUND, INITIALIZE_DEFAULT, INITIALIZE_NONE, INITIALIZE_ONE, initialize_type(), initialize_uniform_char(), cb_field::level, NULL, cb_field::occurs_max, output_indent(), output_initialize_compound(), output_initialize_one(), output_initialize_uniform(), output_line(), cb_field::size, and cb_initialize::var.
Referenced by output_stmt().
|
static |
Definition at line 2754 of file codegen.c.
References CB_BUILD_CHAIN, cb_build_field_reference(), CB_CHAIN, cb_i, cb_int1, CB_REFERENCE, cb_field::children, cb_field::flag_occurs, i_counters, cb_field::indexes, INITIALIZE_DEFAULT, INITIALIZE_NONE, INITIALIZE_ONE, initialize_type(), initialize_uniform_char(), cb_field::occurs_max, cb_field::offset, output_indent(), output_initialize_one(), output_initialize_uniform(), output_line(), cb_field::redefines, cb_field::sister, and cb_field::size.
Referenced by output_initialize().
Definition at line 2469 of file codegen.c.
References CB_USAGE_FLOAT, output(), output_data(), output_prefix(), and cb_field::usage.
Referenced by output_initialize_one().
Definition at line 2460 of file codegen.c.
References output(), output_data(), output_prefix(), and cb_field::size.
Referenced by output_initialize_one().
|
static |
Definition at line 2395 of file codegen.c.
References CB_REFERENCE, CB_REFERENCE_P, cb_literal::data, i_counters, cb_literal::llit, cb_field::occurs_max, output(), output_data(), output_indent(), output_line(), output_prefix(), output_size(), output_string(), cb_literal::size, and cb_field::size.
Referenced by output_initialize_one().
|
static |
Definition at line 2504 of file codegen.c.
References _, cb_literal::all, CB_BUILD_CHAIN, CB_CATEGORY_ALPHANUMERIC_EDITED, CB_CATEGORY_NATIONAL, CB_CATEGORY_NATIONAL_EDITED, CB_CATEGORY_NUMERIC, CB_CATEGORY_NUMERIC_EDITED, CB_CHAIN, CB_CLASS_NUMERIC, CB_CONST_P, cb_high, cb_i, CB_LITERAL, CB_LITERAL_P, cb_low, cb_null, CB_PURPOSE_INT, cb_quote, CB_REFERENCE, cb_space, CB_TREE_CATEGORY, CB_TREE_CLASS, CB_USAGE_DISPLAY, CB_USAGE_DOUBLE, CB_USAGE_FLOAT, CB_USAGE_FP_BIN128, CB_USAGE_FP_BIN32, CB_USAGE_FP_BIN64, CB_USAGE_FP_DEC128, CB_USAGE_FP_DEC64, CB_USAGE_LONG_DOUBLE, CB_VALUE, cb_zero, cb_field::children, cob_u32_t, COBC_ABORT, cobc_abort_pr(), cobc_main_malloc(), cobc_main_realloc(), cb_literal::data, cb_field::flag_blank_zero, cb_field::flag_chained, cb_initialize::flag_default, cb_initialize::flag_init_statement, cb_field::flag_occurs, cb_field::flag_sign_separate, i_counters, cb_field::level, litbuff, litsize, cb_literal::llit, cb_field::occurs_max, output(), output_data(), output_figurative(), output_indent(), output_initialize_fp(), output_initialize_fp_bindec(), output_initialize_literal(), output_line(), output_move(), output_prefix(), output_string(), cb_field::param_num, cb_initialize::rep, cb_literal::size, cb_field::size, cb_field::usage, cb_initialize::val, value, and cb_field::values.
Referenced by output_initialize(), and output_initialize_compound().
|
static |
Definition at line 2483 of file codegen.c.
References CB_REFERENCE, CB_REFERENCE_P, output(), output_data(), output_prefix(), and output_size().
Referenced by output_initialize(), and output_initialize_compound().
|
static |
Definition at line 1101 of file codegen.c.
References _, cb_cast::cast_type, CB_BINARY_OP, CB_CAST, CB_CAST_ADDRESS, CB_CAST_PROGRAM_POINTER, CB_CONST, cb_fits_int(), cb_get_int(), CB_INTEGER, cb_null, CB_PREFIX_BASE, CB_STORAGE_LINKAGE, CB_TAG_BINARY_OP, CB_TAG_CAST, CB_TAG_CONST, CB_TAG_INTEGER, CB_TAG_INTRINSIC, CB_TAG_LITERAL, CB_TAG_REFERENCE, CB_TREE_TAG, CB_USAGE_BINARY, CB_USAGE_COMP_5, CB_USAGE_COMP_X, CB_USAGE_DISPLAY, CB_USAGE_INDEX, CB_USAGE_LENGTH, CB_USAGE_PACKED, CB_USAGE_POINTER, CB_USAGE_PROGRAM_POINTER, cb_zero, COB_GET_NUMDISP, COB_GET_PACKED_INT, COBC_ABORT, cobc_abort_pr(), cb_picture::digits, cb_binary_op::flag, cb_field::flag_binary_swap, gen_nested_tab, cb_picture::have_sign, hexval, cb_field::id, cb_field::indexes, cb_program::nested_prog_list, cb_field::offset, cb_binary_op::op, optimize_defs, output(), output_base(), output_data(), output_func_1(), output_param(), cb_field::pic, cb_picture::scale, cb_field::size, cb_field::special_index, cb_field::storage, cb_field::usage, cb_cast::val, cb_binary_op::x, and cb_binary_op::y.
Referenced by output_base(), output_call(), output_call_by_value_args(), output_cond(), output_data(), output_index(), output_internal_function(), output_occurs(), output_param(), output_search_all(), output_search_whens(), output_size(), and output_stmt().
|
static |
Definition at line 5793 of file codegen.c.
References _, cb_program::alphabet_name_list, cb_program::alter_gotos, label_list::call_num, call_list::callname, CB_ALPHABET_NAME, cb_program::cb_call_params, CB_CHAIN, CB_EXCEPTION_ENABLE, CB_FILE, CB_FUNCTION_TYPE, cb_int1, CB_LABEL, cb_list_length(), CB_PREFIX_BASE, CB_PREFIX_FIELD, CB_PREFIX_FILE, CB_PREFIX_KEYS, CB_PREFIX_LABEL, CB_PREFIX_STRING, CB_PROGRAM_TYPE, CB_PURPOSE, cb_program::cb_return_code, CB_USAGE_COMP_6, CB_USAGE_DISPLAY, CB_USAGE_PACKED, CB_VALUE, cb_program::classification, cb_file::cname, COB_EC_DATA_INCOMPATIBLE, COB_EC_PROGRAM_RECURSIVE_CALL, COB_MALLOC_ALIGN, COB_ORG_INDEXED, COB_ORG_RELATIVE, COB_ORG_SORT, COB_SET_SCREEN, cob_u32_t, COBC_ABORT, cobc_abort_pr(), cobc_flag_main, cobc_parse_malloc(), cb_field::count, base_list::curr_prog, cb_program::decimal_index_max, cb_field::ename, cb_program::entry_list, excp_current_program_id, cb_program::exec_list, base_list::f, cb_program::file_list, cb_field::flag_any_length, cb_field::flag_any_numeric, cb_program::flag_chained, cb_program::flag_debugging, cb_field::flag_external, cb_file::flag_external, cb_program::flag_gen_error, cb_program::flag_global_use, cb_program::flag_initial, cb_field::flag_is_global, cb_field::flag_is_returning, cb_field::flag_item_78, cb_field::flag_item_based, cb_field::flag_local_alloced, cb_field::flag_local_storage, cb_program::flag_main, cb_field::flag_no_init, cb_program::flag_recursive, cb_program::flag_segments, gen_dynamic, cb_program::global_list, globext_cache, cb_alter_id::goto_id, label_list::id, cb_field::id, cb_file::linage, cb_program::linkage_storage, cb_program::local_include, local_mem, local_filename::local_name, cb_program::local_storage, local_working_mem, lookup_string(), cb_program::max_call_param, cb_field::mem_offset, cb_field::memory_size, cb_field::name, needs_exit_prog, cb_program::nested_level, label_list::next, call_list::next, base_list::next, cb_alter_id::next, cb_program::next_program, non_nested_count, NULL, cb_program::num_proc_params, optimize_defs, cb_file::organization, cb_program::orig_program_id, output(), output_alphabet_name_definition(), output_base(), output_data(), output_error_handler(), output_file_allocation(), output_file_initialization(), output_indent(), output_initial_values(), output_integer(), output_line(), output_local(), output_module_init(), output_move(), output_newline(), output_param(), output_prefix(), output_screen_definition(), output_screen_init(), output_size(), output_stmt(), output_target, cb_program::parameter_list, cb_program::prog_type, cb_program::program_id, cb_field::redefines, cb_program::returning, cb_program::screen_storage, cb_field::sister, cb_field::size, string_buffer, cb_program::toplev_count, cb_field::usage, working_mem, and cb_program::working_storage.
Referenced by codegen().
Definition at line 4592 of file codegen.c.
References excp_current_paragraph, excp_current_section, cb_label::flag_dummy_exit, cb_label::flag_dummy_paragraph, cb_label::flag_dummy_section, cb_label::flag_entry, cb_label::flag_next_sentence, cb_label::flag_section, cb_label::name, NULL, cb_label::orig_name, output(), output_line(), output_newline(), output_prefix(), cb_tree_common::source_file, and cb_tree_common::source_line.
Referenced by output_stmt().
|
static |
Definition at line 453 of file codegen.c.
References output_prefix(), and output_target.
Referenced by output_alter(), output_alter_check(), output_bin_field(), output_call(), output_class_name_definition(), output_error_handler(), output_ferror_stmt(), output_file_error(), output_file_initialization(), output_goto(), output_goto_1(), output_indent(), output_initialize(), output_initialize_compound(), output_initialize_literal(), output_initialize_one(), output_internal_function(), output_label_info(), output_main_function(), output_module_init(), output_perform_call(), output_perform_exit(), output_perform_until(), output_search_all(), output_search_whens(), output_section_info(), output_set_attribute(), and output_stmt().
|
static |
Definition at line 527 of file codegen.c.
References cb_local_file.
Referenced by codegen(), output_alphabet_name_definition(), output_alter_check(), output_base(), output_file_allocation(), output_internal_function(), and output_screen_definition().
|
static |
Definition at line 1366 of file codegen.c.
References _, cb_cast::cast_type, CB_BINARY_OP, CB_CAST, CB_CAST_ADDRESS, CB_CAST_PROGRAM_POINTER, CB_CONST, cb_fits_long_long(), CB_FMT_LLD_F, cb_get_long_long(), CB_INTEGER, cb_null, CB_PREFIX_BASE, CB_STORAGE_LINKAGE, CB_TAG_BINARY_OP, CB_TAG_CAST, CB_TAG_CONST, CB_TAG_INTEGER, CB_TAG_INTRINSIC, CB_TAG_LITERAL, CB_TAG_REFERENCE, CB_TREE_TAG, CB_USAGE_BINARY, CB_USAGE_COMP_5, CB_USAGE_COMP_X, CB_USAGE_INDEX, CB_USAGE_LENGTH, CB_USAGE_POINTER, CB_USAGE_PROGRAM_POINTER, cb_zero, COBC_ABORT, cobc_abort_pr(), cb_binary_op::flag, cb_field::flag_binary_swap, gen_nested_tab, cb_picture::have_sign, hexval, cb_field::id, cb_field::indexes, cb_program::nested_prog_list, cb_field::offset, cb_binary_op::op, output(), output_base(), output_data(), output_func_1(), output_param(), cb_field::pic, cb_field::size, cb_field::special_index, cb_field::storage, cb_field::usage, cb_cast::val, cb_binary_op::x, and cb_binary_op::y.
Referenced by output_param().
|
static |
Definition at line 7412 of file codegen.c.
References output_indent(), output_line(), and cb_program::program_id.
Referenced by codegen().
|
static |
Definition at line 5705 of file codegen.c.
References CB_FUNCTION_TYPE, cb_ref(), cobc_flag_main, cb_program::collating_sequence, cb_program::crt_status, cb_program::currency_symbol, cb_program::cursor_pos, cb_program::decimal_point, cb_program::nested_level, no_physical_cancel, non_nested_count, cb_program::num_proc_params, cb_program::numeric_separator, cb_program::orig_program_id, output(), output_line(), output_newline(), output_param(), output_prefix(), cb_program::prog_type, and cb_program::program_id.
Referenced by output_internal_function().
Definition at line 2235 of file codegen.c.
References cb_build_move(), cb_error_node, output_stmt(), suppress_warn, and cb_binary_op::x.
Referenced by output_call(), output_goto_1(), output_initialize_one(), output_internal_function(), output_perform(), output_perform_until(), output_search_whens(), and output_stmt().
|
static |
Definition at line 433 of file codegen.c.
References output_target.
Referenced by codegen(), output_alter_check(), output_call(), output_class_name_definition(), output_cond(), output_error_handler(), output_internal_function(), output_label_info(), output_module_init(), output_perform_exit(), output_screen_init(), output_search_all(), output_search_whens(), and output_stmt().
|
static |
Definition at line 2896 of file codegen.c.
References cb_field::depending, cb_field::occurs_max, output(), and output_integer().
Referenced by output_search_all(), and output_search_whens().
|
static |
Definition at line 1628 of file codegen.c.
References _, cb_alphabet_name::alphabet_type, cb_intrinsic::args, cb_cast::cast_type, CB_ALPHABET_ASCII, CB_ALPHABET_CUSTOM, CB_ALPHABET_EBCDIC, CB_ALPHABET_NAME, CB_ALPHABET_NAME_P, CB_ALPHABET_NATIVE, CB_BINARY_OP, cb_build_field_reference(), CB_CAST, CB_CAST_ADDR_OF_ADDR, CB_CAST_ADDRESS, CB_CAST_INTEGER, CB_CAST_LENGTH, CB_CAST_LONG_INT, CB_CAST_PROGRAM_POINTER, CB_CHAIN, CB_CONST, CB_DECIMAL, CB_FIELD, CB_FILE, CB_FILE_P, CB_FUNC_PROTOTYPE, cb_int0, cb_int1, CB_INTRINSIC, cb_list_length(), CB_LOCALE_NAME, CB_LOCALE_NAME_P, CB_NEED_HIGH, CB_NEED_LOW, CB_NEED_QUOTE, CB_NEED_SPACE, CB_NEED_ZERO, cb_norm_high, cb_norm_low, CB_PREFIX_CONST, CB_PREFIX_FIELD, CB_PREFIX_FILE, CB_PREFIX_SEQUENCE, cb_quote, cb_ref(), CB_REFERENCE, cb_space, CB_STORAGE_SCREEN, CB_STRING, CB_TAG_ALPHABET_NAME, CB_TAG_BINARY_OP, CB_TAG_CAST, CB_TAG_CONST, CB_TAG_DECIMAL, CB_TAG_FIELD, CB_TAG_FILE, CB_TAG_FUNCALL, CB_TAG_INTEGER, CB_TAG_INTRINSIC, CB_TAG_LITERAL, CB_TAG_LOCALE_NAME, CB_TAG_REFERENCE, CB_TAG_STRING, CB_TREE_TAG, CB_VALUE, cb_zero, cb_reference::check, chk_field_variable_address(), chk_field_variable_size(), cb_alphabet_name::cname, COB_INSIDE_SIZE, COBC_ABORT, cobc_abort_pr(), cobc_parse_malloc(), cb_program::collating_sequence, cb_field::count, field_list::curr_prog, excp_current_program_id, field_list::f, field_cache, cb_field::flag_any_length, cb_field::flag_anylen_done, cb_field::flag_external, cb_field::flag_field, cb_program::flag_file_global, cb_field::flag_is_global, cb_field::flag_item_based, cb_field::flag_local, gen_alt_ebcdic, gen_custom, gen_dynamic, gen_ebcdic_ascii, gen_figurative, gen_full_ebcdic, gen_native, cb_field::id, inside_check, inside_stack, cb_intrinsic::intr_field, cb_intrinsic_table::intr_routine, cb_intrinsic::intr_tab, cb_intrinsic::isuser, cb_intrinsic::length, local_field_cache, lookup_func_call(), lookup_literal(), cb_intrinsic::name, field_list::next, nolitcast, NULL, num_cob_fields, cb_reference::offset, cb_intrinsic::offset, cb_binary_op::op, output(), output_attr(), output_data(), output_field(), output_funcall(), output_indent_level, output_integer(), output_long_integer(), output_prefix(), output_size(), output_stmt(), output_string(), output_target, param_id, real_field_founder(), cb_intrinsic_table::refmod, screenptr, cb_field::special_index, stack_id, cb_field::storage, cb_reference::subs, user_func_upper(), cb_cast::val, cb_reference::value, field_list::x, cb_binary_op::x, and cb_binary_op::y.
Referenced by output_call(), output_call_by_value_args(), output_cancel(), output_data(), output_file_initialization(), output_func_1(), output_funcall(), output_funcall_debug(), output_goto(), output_integer(), output_internal_function(), output_long_integer(), output_module_init(), output_perform(), output_screen_init(), and output_stmt().
|
static |
Definition at line 4266 of file codegen.c.
References cb_build_cast_llint(), cb_build_debug(), cb_debug_contents, cb_debug_name, CB_FIELD, CB_LABEL, CB_PERFORM_EXIT, CB_PERFORM_FOREVER, CB_PERFORM_ONCE, CB_PERFORM_TIMES, CB_PERFORM_UNTIL, CB_PERFORM_VARYING, cb_ref(), CB_VALUE, cb_perform::data, cb_field::debug_section, cb_perform::exit_label, cb_field::flag_field_debug, cb_program::flag_gen_debug, cb_perform_varying::from, loop_counter, cb_field::name, cb_perform_varying::name, NULL, output(), output_indent(), output_move(), output_param(), output_perform_call(), output_perform_exit(), output_perform_once(), output_perform_until(), output_prefix(), output_stmt(), cb_perform::perform_type, and cb_perform::varying.
Referenced by output_stmt().
Definition at line 3905 of file codegen.c.
References cb_program::all_procedure, label_list::call_num, cb_build_debug(), cb_debug_name, cb_id, CB_PREFIX_LABEL, cobc_parse_malloc(), cb_label::flag_alter, cb_label::flag_debugging_mode, cb_program::flag_gen_debug, cb_label::flag_is_debug_sect, cb_label::flag_real_label, cb_label::flag_section, cb_program::flag_segments, label_list::id, cb_label::id, label_cache, last_segment, cb_label::name, label_list::next, cb_para_label::next, NULL, output_line(), output_stmt(), cb_para_label::para, cb_label::para_label, cb_label::section, cb_label::section_id, and cb_label::segment.
Referenced by output_alter(), output_cond_debug(), output_error_handler(), output_file_error(), output_funcall_debug(), output_goto(), output_perform(), output_perform_once(), output_perform_until(), and output_stmt().
|
static |
Definition at line 4017 of file codegen.c.
References CB_PROGRAM_TYPE, cb_label::flag_declarative_exit, cb_label::flag_default_handler, cb_label::flag_fatal_check, cb_label::flag_global, cb_program::flag_recursive, cb_label::id, output_line(), output_newline(), and cb_program::prog_type.
Referenced by output_error_handler(), and output_perform().
|
static |
Definition at line 4189 of file codegen.c.
References cb_perform::body, CB_LABEL, CB_PAIR_P, CB_PAIR_X, CB_PAIR_Y, cb_ref(), cb_perform::cycle_label, output_perform_call(), and output_stmt().
Referenced by output_perform(), and output_perform_until().
|
static |
Definition at line 4203 of file codegen.c.
References CB_AFTER, CB_BEFORE, cb_build_debug(), CB_CHAIN, cb_debug_contents, cb_debug_name, CB_FIELD, CB_PERFORM_VARYING, cb_ref(), CB_VALUE, cb_field::debug_section, cb_field::flag_field_debug, cb_program::flag_gen_debug, cb_field::name, NULL, output(), output_cond(), output_cond_debug(), output_indent(), output_line(), output_move(), output_perform_call(), output_perform_once(), output_prefix(), output_stmt(), cb_perform_varying::step, cb_perform::test, and cb_perform_varying::until.
Referenced by output_perform().
|
static |
Definition at line 441 of file codegen.c.
References output_indent_level, and output_target.
Referenced by output_call(), output_cancel(), output_cond(), output_error_handler(), output_figurative(), output_file_initialization(), output_goto(), output_initialize_fp(), output_initialize_fp_bindec(), output_initialize_literal(), output_initialize_one(), output_initialize_uniform(), output_internal_function(), output_label_info(), output_line(), output_module_init(), output_param(), output_perform(), output_perform_until(), output_screen_init(), output_search_all(), output_search_whens(), output_stmt(), and output_trace_info().
|
static |
Definition at line 5354 of file codegen.c.
References cb_field::children, COB_SCREEN_TYPE_ATTRIBUTE, COB_SCREEN_TYPE_FIELD, COB_SCREEN_TYPE_GROUP, COB_SCREEN_TYPE_VALUE, cb_field::count, cb_field::id, output_local(), cb_field::sister, cb_field::size, and cb_field::values.
Referenced by output_internal_function().
Definition at line 5376 of file codegen.c.
References cb_build_field_reference(), cb_field::children, COB_SCREEN_TYPE_ATTRIBUTE, COB_SCREEN_TYPE_FIELD, COB_SCREEN_TYPE_GROUP, COB_SCREEN_TYPE_VALUE, cb_field::id, cb_field::level, NULL, cb_field::occurs_min, output(), output_newline(), output_param(), output_prefix(), cb_field::parent, cb_field::screen_backg, cb_field::screen_column, cb_field::screen_flag, cb_field::screen_foreg, cb_field::screen_line, cb_field::screen_prompt, cb_field::sister, cb_field::size, and cb_field::values.
Referenced by output_internal_function().
|
static |
Definition at line 3033 of file codegen.c.
References CB_IF, cb_search::end_stmt, cb_search::flag_all, output_search_all(), output_search_whens(), cb_search::table, cb_search::var, and cb_search::whens.
Referenced by output_stmt().
Definition at line 2971 of file codegen.c.
References CB_VALUE, cb_field::index_list, cb_field::occurs_min, output(), output_cond(), output_indent(), output_integer(), output_line(), output_newline(), output_occurs(), output_prefix(), and output_stmt().
Referenced by output_search().
Definition at line 2906 of file codegen.c.
References _, CB_CHAIN, cb_ref(), CB_VALUE, COBC_ABORT, cobc_abort_pr(), cb_field::index_list, NULL, output(), output_indent(), output_indent_level, output_integer(), output_line(), output_move(), output_newline(), output_occurs(), output_prefix(), and output_stmt().
Referenced by output_search().
|
static |
Definition at line 4525 of file codegen.c.
References CB_PREFIX_STRING, cb_standard_error_handler, CB_TREE, cb_label::flag_dummy_exit, cb_label::flag_dummy_paragraph, cb_label::flag_dummy_section, cb_label::flag_entry, cb_label::flag_section, lookup_string(), cb_label::orig_name, output_line(), and string_buffer.
Referenced by output_stmt().
|
static |
Definition at line 3837 of file codegen.c.
References COB_SCREEN_HIGHLIGHT, COB_SCREEN_LOWLIGHT, cb_field::id, and output_line().
Referenced by output_stmt().
|
static |
Definition at line 793 of file codegen.c.
References _, CB_FIELD, cb_field_subordinate(), CB_LITERAL, CB_PREFIX_FIELD, CB_REFERENCE, CB_TAG_CONST, CB_TAG_FIELD, CB_TAG_LITERAL, CB_TAG_REFERENCE, CB_TREE_TAG, chk_field_variable_size(), COBC_ABORT, cobc_abort_pr(), cb_field::depending, cb_field::flag_any_length, cb_field::flag_no_field, cb_field::flag_odo_relative, cb_reference::flag_receiving, cb_field::id, cb_reference::length, cb_field::occurs_max, cb_field::odo_level, cb_field::offset, cb_reference::offset, output(), output_index(), output_integer(), cb_field::parent, cb_field::redefines, cb_literal::sign, cb_field::sister, cb_literal::size, cb_field::size, and cb_reference::value.
Referenced by codegen(), output_call(), output_field(), output_figurative(), output_initialize_literal(), output_initialize_uniform(), output_internal_function(), and output_param().
|
static |
Definition at line 4660 of file codegen.c.
References _, cb_program::all_procedure, cb_statement::body, cb_cast::cast_type, CB_ALTER, CB_ASSIGN, cb_build_debug(), CB_CALL, CB_CANCEL, CB_CAST, CB_CAST_ADDRESS, CB_CAST_PROGRAM_POINTER, CB_CHAIN, CB_CLASS_POINTER, CB_DEBUG, CB_DEBUG_CALL, cb_debug_contents, cb_debug_line, cb_debug_name, CB_DIRECT, cb_error_node, CB_EXCEPTION_CODE, CB_EXCEPTION_ENABLE, CB_FILE, CB_GOTO, cb_id, CB_IF, CB_INITIALIZE, CB_LABEL, cb_null, CB_PERFORM, CB_PREFIX_LABEL, CB_PREFIX_STRING, CB_REFERENCE, CB_SEARCH, CB_SET_ATTR, cb_space, CB_STATEMENT, CB_TAG_ALTER, CB_TAG_ASSIGN, CB_TAG_CALL, CB_TAG_CANCEL, CB_TAG_CAST, CB_TAG_CONTINUE, CB_TAG_DEBUG, CB_TAG_DEBUG_CALL, CB_TAG_DIRECT, CB_TAG_FUNCALL, CB_TAG_GOTO, CB_TAG_IF, CB_TAG_INITIALIZE, CB_TAG_LABEL, CB_TAG_LIST, CB_TAG_PERFORM, CB_TAG_REFERENCE, CB_TAG_SEARCH, CB_TAG_SET_ATTR, CB_TAG_STATEMENT, CB_TREE_CLASS, CB_TREE_TAG, CB_VALUE, cb_zero, COB_EC_I_O, COBC_ABORT, cobc_abort_pr(), cb_statement::debug_check, cb_label::debug_section, cb_label::exit_label, cb_statement::file, cb_label::flag_alter, cb_label::flag_begin, cb_statement::flag_callback, cb_program::flag_debugging, cb_label::flag_debugging_mode, cb_program::flag_gen_debug, cb_statement::flag_in_debug, cb_label::flag_is_debug_sect, cb_label::flag_real_label, cb_label::flag_section, cb_label::flag_skip_label, cb_set_attr::fld, gen_if_level, gen_nested_tab, cb_statement::handler1, cb_statement::handler2, cb_statement::handler_id, cb_label::id, inside_check, inside_stack, cb_if::is_if, last_line, last_segment, line, lookup_string(), cb_label::name, cb_statement::name, need_save_exception, cb_program::nested_prog_list, cb_para_label::next, NULL, cb_statement::null_check, output(), output_alter(), output_alter_check(), output_call(), output_cancel(), output_cond(), output_data(), output_ferror_stmt(), output_funcall(), output_goto(), output_indent(), output_indent_level, output_initialize(), output_integer(), output_label_info(), output_line(), output_move(), output_newline(), output_param(), output_perform(), output_perform_call(), output_prefix(), output_search(), output_section_info(), output_set_attribute(), output_trace_info(), cb_para_label::para, cb_label::para_label, cb_label::segment, cb_tree_common::source_file, cb_tree_common::source_line, stack_id, cb_if::stmt1, cb_if::stmt2, cb_if::test, unlikely, cb_cast::val, cb_assign::val, cb_set_attr::val_off, cb_set_attr::val_on, value, and cb_assign::var.
Referenced by output_alter(), output_call(), output_cond(), output_cond_debug(), output_error_handler(), output_ferror_stmt(), output_file_error(), output_funcall_debug(), output_goto(), output_goto_1(), output_initial_values(), output_internal_function(), output_move(), output_param(), output_perform(), output_perform_call(), output_perform_once(), output_perform_until(), output_search_all(), and output_search_whens().
|
static |
Definition at line 515 of file codegen.c.
References cb_storage_file.
Referenced by codegen(), and output_file_allocation().
|
static |
Definition at line 489 of file codegen.c.
References output().
Referenced by codegen(), output_call(), output_cancel(), output_data(), output_initialize_literal(), output_initialize_one(), and output_param().
|
static |
Definition at line 4564 of file codegen.c.
References CB_PREFIX_STRING, excp_current_paragraph, excp_current_section, lookup_string(), cb_statement::name, output(), output_prefix(), cb_tree_common::source_file, and cb_tree_common::source_line.
Referenced by output_stmt().
Definition at line 541 of file codegen.c.
References cb_field::parent, and cb_field::redefines.
Referenced by output_base(), and output_param().
|
static |
Definition at line 284 of file codegen.c.
References string_list::next, and NULL.
Referenced by codegen().
|
static |
Definition at line 914 of file codegen.c.
References cb_encode_program_id(), and cob_u8_t.
Referenced by output_param().
|
static |
Definition at line 121 of file codegen.c.
Referenced by lookup_attr().
|
static |
Definition at line 127 of file codegen.c.
Referenced by output_base().
|
static |
Definition at line 125 of file codegen.c.
Referenced by lookup_call().
|
static |
Definition at line 136 of file codegen.c.
Referenced by codegen(), and output_local().
|
static |
|
static |
Definition at line 139 of file codegen.c.
Referenced by codegen(), output_label_info(), and output_trace_info().
|
static |
Definition at line 137 of file codegen.c.
Referenced by codegen(), output_base(), output_internal_function(), and output_param().
|
static |
Definition at line 138 of file codegen.c.
Referenced by codegen(), output_label_info(), and output_trace_info().
|
static |
Definition at line 123 of file codegen.c.
Referenced by output_param().
|
static |
Definition at line 166 of file codegen.c.
Referenced by output_call(), and output_data().
|
static |
Definition at line 126 of file codegen.c.
Referenced by lookup_func_call().
|
static |
Definition at line 150 of file codegen.c.
Referenced by codegen(), and output_param().
|
static |
Definition at line 154 of file codegen.c.
Referenced by codegen(), output_file_allocation(), and output_param().
|
static |
Definition at line 156 of file codegen.c.
Referenced by codegen(), output_internal_function(), and output_param().
|
static |
Definition at line 151 of file codegen.c.
Referenced by codegen(), output_file_allocation(), and output_param().
|
static |
Definition at line 155 of file codegen.c.
Referenced by codegen(), and output_param().
|
static |
Definition at line 152 of file codegen.c.
Referenced by codegen(), output_file_allocation(), and output_param().
|
static |
Definition at line 173 of file codegen.c.
Referenced by codegen(), and output_stmt().
|
static |
Definition at line 153 of file codegen.c.
Referenced by codegen(), output_file_allocation(), and output_param().
|
static |
Definition at line 149 of file codegen.c.
Referenced by codegen(), output_call(), output_cancel(), output_integer(), output_long_integer(), and output_stmt().
|
static |
Definition at line 128 of file codegen.c.
Referenced by output_internal_function().
|
static |
Definition at line 179 of file codegen.c.
Referenced by codegen(), output_initialize(), output_initialize_compound(), output_initialize_literal(), and output_initialize_one().
|
static |
Definition at line 176 of file codegen.c.
Referenced by codegen(), output_cond(), output_param(), and output_stmt().
|
static |
Definition at line 177 of file codegen.c.
Referenced by codegen(), output_cond(), output_param(), and output_stmt().
|
static |
Definition at line 132 of file codegen.c.
Referenced by output_perform_call().
|
static |
Definition at line 165 of file codegen.c.
Referenced by codegen(), and output_stmt().
|
static |
Definition at line 172 of file codegen.c.
Referenced by codegen(), output_goto_1(), output_perform_call(), and output_stmt().
|
static |
Definition at line 143 of file codegen.c.
Referenced by output_initialize_one().
|
static |
Definition at line 122 of file codegen.c.
Referenced by lookup_literal().
|
static |
Definition at line 144 of file codegen.c.
Referenced by output_initialize_one().
|
static |
Definition at line 129 of file codegen.c.
Referenced by output_base().
|
static |
Definition at line 124 of file codegen.c.
Referenced by output_param().
|
static |
Definition at line 168 of file codegen.c.
Referenced by codegen(), and output_internal_function().
|
static |
Definition at line 170 of file codegen.c.
Referenced by codegen(), and output_internal_function().
|
static |
Definition at line 163 of file codegen.c.
Referenced by codegen(), and output_perform().
|
static |
Definition at line 148 of file codegen.c.
Referenced by codegen(), and output_stmt().
|
static |
Definition at line 146 of file codegen.c.
Referenced by codegen(), output_call(), output_goto(), and output_internal_function().
|
static |
Definition at line 147 of file codegen.c.
Referenced by codegen(), and output_call().
|
static |
Definition at line 174 of file codegen.c.
Referenced by output_funcall(), and output_param().
|
static |
Definition at line 162 of file codegen.c.
Referenced by codegen(), output_internal_function(), and output_module_init().
|
static |
Definition at line 161 of file codegen.c.
Referenced by codegen(), and output_param().
|
static |
Definition at line 171 of file codegen.c.
Referenced by codegen(), output_call(), output_goto(), output_indent(), output_param(), output_prefix(), output_search_whens(), and output_stmt().
|
static |
Definition at line 135 of file codegen.c.
Referenced by codegen(), lookup_literal(), output_internal_function(), output_line(), output_newline(), output_param(), and output_prefix().
|
static |
Definition at line 158 of file codegen.c.
Referenced by codegen(), output_func_1(), and output_param().
|
static |
Definition at line 164 of file codegen.c.
Referenced by codegen(), and output_entry_function().
|
static |
Definition at line 167 of file codegen.c.
Referenced by output_funcall(), and output_param().
|
static |
Definition at line 159 of file codegen.c.
Referenced by codegen(), output_param(), and output_stmt().
|
static |
Definition at line 131 of file codegen.c.
Referenced by codegen(), output_internal_function(), and output_section_info().
|
static |
Definition at line 130 of file codegen.c.
Referenced by lookup_string().
|
static |
Definition at line 160 of file codegen.c.
Referenced by codegen(), and lookup_string().
|
static |
|
static |
Definition at line 169 of file codegen.c.
Referenced by codegen(), and output_internal_function().