diff --git a/HACKING b/HACKING
index c9ad4cc49..341b97100 100644
--- a/HACKING
+++ b/HACKING
@@ -109,3 +109,12 @@ There should be no difference shown as long as the "old version" passed
the same tests as the new version - given the example above: there was
no support for REPORT WRITER in 2.2 so there would be an expected failure
of the RW tests.
+
+For debugging the AST, you may specify --enable-dump-ast at the
+configure step. In such a case, new options -fdump-ast= and
+-fdump-ast-flags= will become available to print the AST
+generated for a given file in a file. This option is implemented using
+an automatically generated printer cobc/dump_ast_gen.c, that is
+generated by ctypes-gen (https://github.com/OCamlPro/ctypes-gen). If
+you don't have the tool, you may just modify the file and wait for
+somebody else to regenerate it at some point.
diff --git a/build_windows/ocide/cobc.exe.cpj b/build_windows/ocide/cobc.exe.cpj
index 163c65d21..017dfa65e 100644
--- a/build_windows/ocide/cobc.exe.cpj
+++ b/build_windows/ocide/cobc.exe.cpj
@@ -41,6 +41,7 @@
+
@@ -89,6 +90,7 @@
+ `
diff --git a/build_windows/vs2005/cobc.vcproj b/build_windows/vs2005/cobc.vcproj
index d67c9bf13..7fcd894c3 100644
--- a/build_windows/vs2005/cobc.vcproj
+++ b/build_windows/vs2005/cobc.vcproj
@@ -332,6 +332,10 @@
RelativePath="..\..\cobc\typeck.c"
>
+
+
+
+
+
+
+
+
+
@@ -284,6 +285,7 @@
+
@@ -354,4 +356,4 @@
-
\ No newline at end of file
+
diff --git a/build_windows/vs2010/cobc.vcxproj.filters b/build_windows/vs2010/cobc.vcxproj.filters
index eb5698f15..f69334613 100644
--- a/build_windows/vs2010/cobc.vcxproj.filters
+++ b/build_windows/vs2010/cobc.vcxproj.filters
@@ -63,6 +63,9 @@
Source Files
+
+ Source Files
+
Auto Generated Files\Source Files
@@ -92,6 +95,9 @@
Header Files
+
+ Header Files
+
Header Files
@@ -277,4 +283,4 @@
Source Files
-
\ No newline at end of file
+
diff --git a/build_windows/vs2012/cobc.vcxproj b/build_windows/vs2012/cobc.vcxproj
index 5c59d729e..e43858671 100644
--- a/build_windows/vs2012/cobc.vcxproj
+++ b/build_windows/vs2012/cobc.vcxproj
@@ -201,6 +201,7 @@
+
@@ -288,6 +289,7 @@
+
@@ -358,4 +360,4 @@
-
\ No newline at end of file
+
diff --git a/build_windows/vs2012/cobc.vcxproj.filters b/build_windows/vs2012/cobc.vcxproj.filters
index eb5698f15..f69334613 100644
--- a/build_windows/vs2012/cobc.vcxproj.filters
+++ b/build_windows/vs2012/cobc.vcxproj.filters
@@ -63,6 +63,9 @@
Source Files
+
+ Source Files
+
Auto Generated Files\Source Files
@@ -92,6 +95,9 @@
Header Files
+
+ Header Files
+
Header Files
@@ -277,4 +283,4 @@
Source Files
-
\ No newline at end of file
+
diff --git a/build_windows/vs2013/cobc.vcxproj b/build_windows/vs2013/cobc.vcxproj
index 27775f3b3..bfec1a91f 100644
--- a/build_windows/vs2013/cobc.vcxproj
+++ b/build_windows/vs2013/cobc.vcxproj
@@ -203,6 +203,7 @@
+
@@ -290,6 +291,7 @@
+
@@ -360,4 +362,4 @@
-
\ No newline at end of file
+
diff --git a/build_windows/vs2013/cobc.vcxproj.filters b/build_windows/vs2013/cobc.vcxproj.filters
index eb5698f15..f69334613 100644
--- a/build_windows/vs2013/cobc.vcxproj.filters
+++ b/build_windows/vs2013/cobc.vcxproj.filters
@@ -63,6 +63,9 @@
Source Files
+
+ Source Files
+
Auto Generated Files\Source Files
@@ -92,6 +95,9 @@
Header Files
+
+ Header Files
+
Header Files
@@ -277,4 +283,4 @@
Source Files
-
\ No newline at end of file
+
diff --git a/build_windows/vs2015/cobc.vcxproj b/build_windows/vs2015/cobc.vcxproj
index 00a16c532..08f6b2e10 100644
--- a/build_windows/vs2015/cobc.vcxproj
+++ b/build_windows/vs2015/cobc.vcxproj
@@ -201,6 +201,7 @@
+
@@ -288,6 +289,7 @@
+
@@ -358,4 +360,4 @@
-
\ No newline at end of file
+
diff --git a/build_windows/vs2015/cobc.vcxproj.filters b/build_windows/vs2015/cobc.vcxproj.filters
index dbfe80c35..3d260c433 100644
--- a/build_windows/vs2015/cobc.vcxproj.filters
+++ b/build_windows/vs2015/cobc.vcxproj.filters
@@ -63,6 +63,9 @@
Source Files
+
+ Source Files
+
Auto Generated Files\Source Files
@@ -92,6 +95,9 @@
Header Files
+
+ Header Files
+
Header Files
@@ -277,4 +283,4 @@
Source Files
-
\ No newline at end of file
+
diff --git a/build_windows/vs2017/cobc.vcxproj b/build_windows/vs2017/cobc.vcxproj
index 6d06caf52..cdb6445e4 100644
--- a/build_windows/vs2017/cobc.vcxproj
+++ b/build_windows/vs2017/cobc.vcxproj
@@ -203,6 +203,7 @@
+
@@ -290,6 +291,7 @@
+
@@ -360,4 +362,4 @@
-
\ No newline at end of file
+
diff --git a/build_windows/vs2017/cobc.vcxproj.filters b/build_windows/vs2017/cobc.vcxproj.filters
index dbfe80c35..3d260c433 100644
--- a/build_windows/vs2017/cobc.vcxproj.filters
+++ b/build_windows/vs2017/cobc.vcxproj.filters
@@ -63,6 +63,9 @@
Source Files
+
+ Source Files
+
Auto Generated Files\Source Files
@@ -92,6 +95,9 @@
Header Files
+
+ Header Files
+
Header Files
@@ -277,4 +283,4 @@
Source Files
-
\ No newline at end of file
+
diff --git a/build_windows/vs2019/cobc.vcxproj b/build_windows/vs2019/cobc.vcxproj
index 2d392a65e..7e321af01 100644
--- a/build_windows/vs2019/cobc.vcxproj
+++ b/build_windows/vs2019/cobc.vcxproj
@@ -203,6 +203,7 @@
+
@@ -290,6 +291,7 @@
+
@@ -360,4 +362,4 @@
-
\ No newline at end of file
+
diff --git a/build_windows/vs2019/cobc.vcxproj.filters b/build_windows/vs2019/cobc.vcxproj.filters
index dbfe80c35..3d260c433 100644
--- a/build_windows/vs2019/cobc.vcxproj.filters
+++ b/build_windows/vs2019/cobc.vcxproj.filters
@@ -63,6 +63,9 @@
Source Files
+
+ Source Files
+
Auto Generated Files\Source Files
@@ -92,6 +95,9 @@
Header Files
+
+ Header Files
+
Header Files
@@ -277,4 +283,4 @@
Source Files
-
\ No newline at end of file
+
diff --git a/cobc/ChangeLog.branch b/cobc/ChangeLog.branch
new file mode 100644
index 000000000..3765d53dc
--- /dev/null
+++ b/cobc/ChangeLog.branch
@@ -0,0 +1,8 @@
+
+ * Makefile.am, cobc.c, dump_ast.c: new options to dump the AST in
+ text format: --dump-ast=, and
+ --dump-ast-flags=. Format is not standard for now, because
+ it is only for debugging the AST. Flags are prefixed with '+/-'
+ for enable/disable, 'i' for indentation, 'z' for zero/null
+ fields. Env variables COB_DUMP_AST and COB_DUMP_AST_FLAGS can also
+ be used to set these flags.
diff --git a/cobc/Makefile.am b/cobc/Makefile.am
index 444987fc6..1782899f7 100644
--- a/cobc/Makefile.am
+++ b/cobc/Makefile.am
@@ -23,7 +23,7 @@ bin_PROGRAMS = cobc
cobc_SOURCES = cobc.c cobc.h ppparse.y pplex.c parser.y scanner.c config.c \
reserved.c error.c tree.c tree.h field.c typeck.c codegen.c help.c \
config.def flag.def warning.def codeoptim.def ppparse.def \
- codeoptim.c replace.c
+ codeoptim.c replace.c dump_ast.c
#cobc_SOURCES = cobc.c cobc.h ppparse.y pplex.l parser.y scanner.l config.c
@@ -40,7 +40,7 @@ COBC = cobc$(EXEEXT)
# sources that needs to be built *before* any other file
# note: we actually want their header files...
BUILT_SOURCES = ppparse.c parser.c
-EXTRA_DIST = pplex.l scanner.l ppparse.h parser.h
+EXTRA_DIST = pplex.l scanner.l ppparse.h parser.h dump_ast_gen.c
MAINTAINERCLEANFILES = pplex.c scanner.c ppparse.h parser.h cobc.1
CLEANFILES = parser.output ppparse.output
@@ -67,3 +67,8 @@ endif
.l.c:
LC_CTYPE=C $(LEX) -o$@ $<
+
+.PHONY: update-dump-tree
+
+update-dump-tree:
+ ctypes-gen --gnucobol -I $(top_srcdir)/cobc -I $(top_srcdir)/lib > $(top_srcdir)/cobc/dump_ast_gen.c
diff --git a/cobc/cobc.c b/cobc/cobc.c
index de9c1d6f1..86cb3038f 100644
--- a/cobc/cobc.c
+++ b/cobc/cobc.c
@@ -116,6 +116,8 @@ enum compile_level {
#define CB_FLAG_GETOPT_DEPEND_ADD_PHONY 24
#define CB_FLAG_GETOPT_DEPEND_KEEP_MISSING 25
#define CB_FLAG_GETOPT_DEPEND_ON_THE_SIDE 26
+#define CB_FLAG_DUMP_AST 27
+#define CB_FLAG_DUMP_AST_FLAGS 28
/* Info display limits */
#define CB_IMSG_SIZE 24
@@ -463,6 +465,8 @@ static int save_all_src = 0;
static signed int save_c_src = 0;
static signed int verbose_output = 0;
static int cb_coverage_enabled = 0;
+static char* dump_ast_to_file = NULL;
+static char* dump_ast_flags = NULL;
static int cob_optimize = 0;
@@ -3773,6 +3777,19 @@ process_command_line (const int argc, char **argv)
break;
case CB_FLAG_GETOPT_DEPEND_OUTPUT_FILE: /* -MF */
cb_depend_filename = cobc_strdup(cob_optarg);
+ case CB_FLAG_DUMP_AST:
+ if (dump_ast_to_file)
+ cobc_main_free (dump_ast_to_file);
+ dump_ast_to_file = cobc_main_strdup (cob_optarg);
+ break;
+ case CB_FLAG_DUMP_AST_FLAGS:
+ if (dump_ast_flags){
+ char* old = dump_ast_flags;
+ dump_ast_flags = cobc_main_stradd_dup(dump_ast_flags, cob_optarg);
+ cobc_main_free (old);
+ } else {
+ dump_ast_flags = cobc_main_strdup (cob_optarg);
+ }
break;
case 'I':
@@ -8303,6 +8320,9 @@ process_translate (struct filename *fn)
}
}
+ if (dump_ast_to_file)
+ cb_dump_ast_to_file (current_program, dump_ast_to_file, dump_ast_flags);
+
/* Translate to C */
codegen (current_program, fn->translate);
diff --git a/cobc/dump_ast.c b/cobc/dump_ast.c
new file mode 100644
index 000000000..d5d2e6484
--- /dev/null
+++ b/cobc/dump_ast.c
@@ -0,0 +1,258 @@
+/*
+ Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Written by Fabrice Le Fessant
+
+ This file is part of GnuCOBOL.
+
+ The GnuCOBOL compiler is free software: you can redistribute it
+ and/or modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ GnuCOBOL is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GnuCOBOL. If not, see .
+*/
+
+
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#ifdef HAVE_STRINGS_H
+#include
+#endif
+#include
+#include
+#include
+
+#include "cobc.h"
+#include "../libcob/coblocal.h"
+#include "tree.h"
+
+/* field descriptor of tree dump */
+static FILE* fd = NULL;
+
+/* flag: whether we should indent the file. Enabled by default */
+static int print_tree_with_indent = 1;
+
+/* flag: whether we print fields that are 0 or NULL. Disabled by default */
+static int print_zero_fields = 0;
+
+static const char * get_indent (int indent);
+static void print_struct_cb_tree_common (int indent, int ptr_uid, struct cb_tree_common *ptr);
+static void print_struct_cb_tree_common_ptr (int indent, cb_tree cb);
+static void print_int_array (int indent, int n, int * tab);
+
+#define PRINT_NULL(indent,ty) \
+ fprintf (fd, "NULL")
+#define PRINT_ENUM(indent,ty,s) \
+ fprintf (fd, "%s", s)
+#define PRINT_ENUM_UNKNOWN(indent,ty,s) \
+ fprintf (fd, "Unknown enum %d", s)
+
+#define PRINT_STRUCT_KNOWN(indent, ty, ptr_uid) \
+ fprintf (fd, "ALREADY_SEEN(%s --> MB%03d)", ty, ptr_uid)
+#define PRINT_STRUCT_TY(s) \
+ const char* ty = s
+#define PRINT_STRUCT_PTR_TY(s) \
+ const char* ty = s
+#define PRINT_STRUCT_BEGIN(indent,ty, ptr_uid) \
+ if (ptr_uid != 0) \
+ fprintf (fd, "// MEMORY_BLOCK(MB%03d):\n", ptr_uid); \
+ else \
+ fprintf (fd, "// INLINE_BLOCK:\n"); \
+ fprintf (fd, "%s{ //[%s]\n", get_indent (indent), ty)
+#define PRINT_STRUCT_END(indent,ty) \
+ fprintf (fd, "%s} //[%s]", get_indent (indent), ty)
+#define PRINT_VOID(indent) \
+ fprintf(fd, "")
+#define PRINT_FUNCTION(indent) \
+ fprintf(fd, "")
+#define PRINT_STRUCT_FIELD_BEGIN(indent,name) \
+ fprintf (fd, "%s " #name ": ", get_indent (indent) )
+#define PRINT_STRUCT_FIELD_END(indent) \
+ fprintf (fd, ";\n")
+#define PRINT_STRUCT_FIELD_END(indent) \
+ fprintf (fd, ";\n")
+
+
+#define PRINT_ARRAY_BEGIN(indent) \
+ fprintf (fd, "[\n%s", get_indent (indent))
+#define PRINT_ARRAY_SEP(indent) \
+ fprintf (fd, ",\n%s", get_indent (indent))
+#define PRINT_ARRAY_END(indent) \
+ fprintf (fd, "]")
+
+
+
+#define PRINT_UNKNOWN_SELECTOR(indent,ty, tag) \
+ fprintf (fd, "%s UNKNOWN %s(%d)\n", get_indent(indent), ty, tag);
+
+
+static void print_size_t (int indent, size_t x)
+{
+ fprintf (fd, "%ld", x);
+}
+
+static void print_int (int indent, int x)
+{
+ fprintf (fd, "%d", x);
+}
+
+static void print_long_long_ptr0 (int indent, long long x)
+{
+ fprintf (fd, "%lld", x);
+}
+
+static void print_char (int indent, char x)
+{
+ fprintf (fd, "'%c'(%d)", x, x);
+}
+
+static void print_uchar (int indent, unsigned char x)
+{
+ fprintf (fd, "%d", x);
+}
+
+static void print_uint (int indent, unsigned int x)
+{
+ fprintf (fd, "%d", x);
+}
+
+static void print_char_ptr (int indent, const char* x)
+{
+ if (x == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ fprintf (fd, "\"%s\"", x);
+ }
+}
+
+static void print_uchar_ptr (int indent, const unsigned char* x)
+{
+ if (x == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ fprintf (fd, "\"%s\"", x);
+ }
+}
+
+static void print_FILE_ptr (int indent, const FILE* x)
+{
+ if (x == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ fprintf (fd, "");
+ }
+}
+
+static void print_int_ptr (int indent, const int* x)
+{
+ if (x == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ fprintf (fd, "");
+ }
+}
+
+static void print_int_array (int indent, int n, int *x)
+{
+ if (x == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ fprintf (fd, "");
+ }
+}
+
+static void print_cb_word_ptr2 (int indent, struct cb_word** x)
+{
+ if (x == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ fprintf (fd, "");
+ }
+}
+
+static void print_cb_field_ptr2 (int indent, struct cb_field** x)
+{
+ if (x == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ fprintf (fd, "");
+ }
+}
+
+
+#include "dump_ast_gen.c"
+
+static void print_struct_cb_tree_common (int indent, int ptr_uid, struct cb_tree_common *ptr){
+
+ print_enum_cb_tag (indent+2, ptr->tag);
+ fprintf (fd, "/");
+ print_enum_cb_category (indent+2, ptr->category);
+ fprintf (fd, "@");
+ print_char_ptr (indent+2, ptr->source_file);
+ fprintf (fd, ":");
+ print_int (indent+2, ptr->source_line);
+}
+
+static
+void set_flags (const char* flags)
+{
+ int sign = 1;
+ int i;
+ int len = strlen(flags);
+
+ for(i=0; i< len; i++){
+ switch(flags[i]){
+ case '+': sign = 1; break;
+ case '-': sign = 0; break;
+ case 'i':
+ print_tree_with_indent = sign;
+ break;
+ case 'z':
+ print_zero_fields = sign;
+ break;
+ case 'A':
+ print_zero_fields = sign;
+ print_tree_with_indent = sign ;
+ break;
+ default:
+ cobc_err_exit ("-fdump-ast-flags: unknown flag '%c', expecting '+-cltpinA'", flags[i]);
+ }
+ }
+}
+
+void cb_dump_ast_to_file (struct cb_program *prog, const char *filename, const char* flags)
+{
+ int close_fd = 1;
+
+ if (flags) set_flags (flags);
+
+ if (!strcmp(filename, COB_DASH)){
+ close_fd = 0;
+ fd = stdout;
+ } else {
+ struct stat st;
+ if (!stat (filename, &st)) unlink(filename);
+ fd = fopen (filename, "w");
+ }
+ if (!fd){
+ cb_perror (0, "cobc: %s: %s", filename, cb_get_strerror ());
+ return ;
+ }
+
+ cb_print_tree ( (cb_tree) prog);
+
+ if (close_fd) {
+ fclose (fd);
+ }
+}
+
diff --git a/cobc/dump_ast_gen.c b/cobc/dump_ast_gen.c
new file mode 100644
index 000000000..3f0132fa6
--- /dev/null
+++ b/cobc/dump_ast_gen.c
@@ -0,0 +1,10610 @@
+/* Generated by ctypes-gen */
+
+
+static const char * get_indent (int indent){
+ static int current_indent = 0;
+ static char* indent_string = NULL;
+ static int current_size ;
+ if (indent == 0 || !print_tree_with_indent) return "";
+
+ if (indent >= current_size){
+ int i;
+ if (indent_string != NULL) free (indent_string);
+ current_size = indent + 100 ;
+ indent_string = (char*) malloc ( current_size );
+ current_indent = current_size-1;
+ for (i=0; i> 16 ))
+#define MODULO2(v, size) ( (v) & ((size)-1) )
+
+/* returns uid, < 0 if ptr is already known, >0 if ptr was added */
+static int is_known_ptr (void *ptr)
+{
+ int pos ;
+ pos = MODULO2( HASH_PTR(ptr), ptr_table_size) ;
+ while ( ptr_table[pos] != NULL ){
+ if ( ptr_table[pos] == ptr ) return -num_table[pos] ;
+ pos = MODULO2( pos+1, ptr_table_size ) ;
+ }
+
+ /* ptr not found. Remember it */
+ ptr_table[pos] = ptr;
+ ptr_table_used++;
+ num_table[pos] = ptr_table_used;
+
+ if (ptr_table_used*2 > ptr_table_size) {
+ void **new_ptr_table ;
+ int *new_num_table ;
+
+ /* realloc table to keep vaccum property */
+ pos = ptr_table_size ;
+ ptr_table_size *= 4;
+ new_ptr_table = (void**) calloc (ptr_table_size, sizeof(void*)) ;
+ new_num_table = (int*) calloc (ptr_table_size, sizeof(int)) ;
+ while (pos>0){
+ int new_pos ;
+ pos--;
+ ptr = ptr_table[pos];
+ new_pos = MODULO2( HASH_PTR( ptr ) , ptr_table_size ) ;
+ while ( new_ptr_table[new_pos] != NULL ){
+ new_pos = MODULO2( new_pos+1, ptr_table_size );
+ }
+ new_ptr_table[new_pos] = ptr ;
+ new_num_table[new_pos] = num_table[pos] ;
+ }
+ free (ptr_table);
+ ptr_table = new_ptr_table;
+ free (num_table);
+ num_table = new_num_table;
+ }
+
+ return ptr_table_used;
+}
+
+
+static void print_enum_cb_tag (int indent, enum cb_tag x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_TAG_CONST: s = "CB_TAG_CONST"; break;
+
+ case CB_TAG_INTEGER: s = "CB_TAG_INTEGER"; break;
+
+ case CB_TAG_STRING: s = "CB_TAG_STRING"; break;
+
+ case CB_TAG_ALPHABET_NAME: s = "CB_TAG_ALPHABET_NAME"; break;
+
+ case CB_TAG_CLASS_NAME: s = "CB_TAG_CLASS_NAME"; break;
+
+ case CB_TAG_LOCALE_NAME: s = "CB_TAG_LOCALE_NAME"; break;
+
+ case CB_TAG_SYSTEM_NAME: s = "CB_TAG_SYSTEM_NAME"; break;
+
+ case CB_TAG_SCHEMA_NAME: s = "CB_TAG_SCHEMA_NAME"; break;
+
+ case CB_TAG_LITERAL: s = "CB_TAG_LITERAL"; break;
+
+ case CB_TAG_DECIMAL: s = "CB_TAG_DECIMAL"; break;
+
+ case CB_TAG_FIELD: s = "CB_TAG_FIELD"; break;
+
+ case CB_TAG_FILE: s = "CB_TAG_FILE"; break;
+
+ case CB_TAG_REPORT: s = "CB_TAG_REPORT"; break;
+
+ case CB_TAG_CD: s = "CB_TAG_CD"; break;
+
+ case CB_TAG_REFERENCE: s = "CB_TAG_REFERENCE"; break;
+
+ case CB_TAG_BINARY_OP: s = "CB_TAG_BINARY_OP"; break;
+
+ case CB_TAG_FUNCALL: s = "CB_TAG_FUNCALL"; break;
+
+ case CB_TAG_CAST: s = "CB_TAG_CAST"; break;
+
+ case CB_TAG_INTRINSIC: s = "CB_TAG_INTRINSIC"; break;
+
+ case CB_TAG_LABEL: s = "CB_TAG_LABEL"; break;
+
+ case CB_TAG_ASSIGN: s = "CB_TAG_ASSIGN"; break;
+
+ case CB_TAG_INITIALIZE: s = "CB_TAG_INITIALIZE"; break;
+
+ case CB_TAG_SEARCH: s = "CB_TAG_SEARCH"; break;
+
+ case CB_TAG_CALL: s = "CB_TAG_CALL"; break;
+
+ case CB_TAG_GOTO: s = "CB_TAG_GOTO"; break;
+
+ case CB_TAG_IF: s = "CB_TAG_IF"; break;
+
+ case CB_TAG_PERFORM: s = "CB_TAG_PERFORM"; break;
+
+ case CB_TAG_STATEMENT: s = "CB_TAG_STATEMENT"; break;
+
+ case CB_TAG_CONTINUE: s = "CB_TAG_CONTINUE"; break;
+
+ case CB_TAG_CANCEL: s = "CB_TAG_CANCEL"; break;
+
+ case CB_TAG_ALTER: s = "CB_TAG_ALTER"; break;
+
+ case CB_TAG_SET_ATTR: s = "CB_TAG_SET_ATTR"; break;
+
+ case CB_TAG_XML_PARSE: s = "CB_TAG_XML_PARSE"; break;
+
+ case CB_TAG_PERFORM_VARYING: s = "CB_TAG_PERFORM_VARYING"; break;
+
+ case CB_TAG_PICTURE: s = "CB_TAG_PICTURE"; break;
+
+ case CB_TAG_LIST: s = "CB_TAG_LIST"; break;
+
+ case CB_TAG_DIRECT: s = "CB_TAG_DIRECT"; break;
+
+ case CB_TAG_DEBUG: s = "CB_TAG_DEBUG"; break;
+
+ case CB_TAG_DEBUG_CALL: s = "CB_TAG_DEBUG_CALL"; break;
+
+ case CB_TAG_PROGRAM: s = "CB_TAG_PROGRAM"; break;
+
+ case CB_TAG_PROTOTYPE: s = "CB_TAG_PROTOTYPE"; break;
+
+ case CB_TAG_DECIMAL_LITERAL: s = "CB_TAG_DECIMAL_LITERAL"; break;
+
+ case CB_TAG_REPORT_LINE: s = "CB_TAG_REPORT_LINE"; break;
+
+ case CB_TAG_ML_SUPPRESS: s = "CB_TAG_ML_SUPPRESS"; break;
+
+ case CB_TAG_ML_TREE: s = "CB_TAG_ML_TREE"; break;
+
+ case CB_TAG_ML_SUPPRESS_CHECKS: s = "CB_TAG_ML_SUPPRESS_CHECKS"; break;
+
+ case CB_TAG_VARY: s = "CB_TAG_VARY"; break;
+
+ case CB_TAG_TAB_VALS: s = "CB_TAG_TAB_VALS"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_enum_cb_category (int indent, enum cb_category x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_CATEGORY_UNKNOWN: s = "CB_CATEGORY_UNKNOWN"; break;
+
+ case CB_CATEGORY_ALPHABETIC: s = "CB_CATEGORY_ALPHABETIC"; break;
+
+ case CB_CATEGORY_ALPHANUMERIC: s = "CB_CATEGORY_ALPHANUMERIC"; break;
+
+ case CB_CATEGORY_ALPHANUMERIC_EDITED: s = "CB_CATEGORY_ALPHANUMERIC_EDITED"; break;
+
+ case CB_CATEGORY_BOOLEAN: s = "CB_CATEGORY_BOOLEAN"; break;
+
+ case CB_CATEGORY_INDEX: s = "CB_CATEGORY_INDEX"; break;
+
+ case CB_CATEGORY_NATIONAL: s = "CB_CATEGORY_NATIONAL"; break;
+
+ case CB_CATEGORY_NATIONAL_EDITED: s = "CB_CATEGORY_NATIONAL_EDITED"; break;
+
+ case CB_CATEGORY_NUMERIC: s = "CB_CATEGORY_NUMERIC"; break;
+
+ case CB_CATEGORY_NUMERIC_EDITED: s = "CB_CATEGORY_NUMERIC_EDITED"; break;
+
+ case CB_CATEGORY_OBJECT_REFERENCE: s = "CB_CATEGORY_OBJECT_REFERENCE"; break;
+
+ case CB_CATEGORY_DATA_POINTER: s = "CB_CATEGORY_DATA_POINTER"; break;
+
+ case CB_CATEGORY_PROGRAM_POINTER: s = "CB_CATEGORY_PROGRAM_POINTER"; break;
+
+ case CB_CATEGORY_FLOATING_EDITED: s = "CB_CATEGORY_FLOATING_EDITED"; break;
+
+ case CB_CATEGORY_ERROR: s = "CB_CATEGORY_ERROR"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_const (int indent, int ptr_uid, struct cb_const *ptr);
+static void print_struct_cb_const_ptr (int indent, struct cb_const *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_const*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_const (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_const (int indent, int ptr_uid, struct cb_const *ptr){
+ PRINT_STRUCT_TY("struct cb_const");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->val != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,val);
+
+ print_char_ptr (indent+2, ptr->val);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_integer (int indent, int ptr_uid, struct cb_integer *ptr);
+static void print_struct_cb_integer_ptr (int indent, struct cb_integer *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_integer*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_integer (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_integer (int indent, int ptr_uid, struct cb_integer *ptr){
+ PRINT_STRUCT_TY("struct cb_integer");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->val != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,val);
+
+ print_int (indent+2, ptr->val);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_string (int indent, int ptr_uid, struct cb_string *ptr);
+static void print_struct_cb_string_ptr (int indent, struct cb_string *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_string*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_string (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_string (int indent, int ptr_uid, struct cb_string *ptr){
+ PRINT_STRUCT_TY("struct cb_string");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->data != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,data);
+
+ print_uchar_ptr (indent+2, ptr->data);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,size);
+
+ print_size_t (indent+2, ptr->size);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_alphabet_name (int indent, int ptr_uid, struct cb_alphabet_name *ptr);
+static void print_struct_cb_alphabet_name_ptr (int indent, struct cb_alphabet_name *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_alphabet_name*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_alphabet_name (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cb_alphabet_target (int indent, enum cb_alphabet_target x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_ALPHABET_ALPHANUMERIC: s = "CB_ALPHABET_ALPHANUMERIC"; break;
+
+ case CB_ALPHABET_NATIONAL: s = "CB_ALPHABET_NATIONAL"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_enum_cb_alphabet_type (int indent, enum cb_alphabet_type x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_ALPHABET_NATIVE: s = "CB_ALPHABET_NATIVE"; break;
+
+ case CB_ALPHABET_ASCII: s = "CB_ALPHABET_ASCII"; break;
+
+ case CB_ALPHABET_EBCDIC: s = "CB_ALPHABET_EBCDIC"; break;
+
+ case CB_ALPHABET_CUSTOM: s = "CB_ALPHABET_CUSTOM"; break;
+
+ case CB_ALPHABET_LOCALE: s = "CB_ALPHABET_LOCALE"; break;
+
+ case CB_ALPHABET_UTF_8: s = "CB_ALPHABET_UTF_8"; break;
+
+ case CB_ALPHABET_UTF_16: s = "CB_ALPHABET_UTF_16"; break;
+
+ case CB_ALPHABET_UCS_4: s = "CB_ALPHABET_UCS_4"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_alphabet_name (int indent, int ptr_uid, struct cb_alphabet_name *ptr){
+ PRINT_STRUCT_TY("struct cb_alphabet_name");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cname != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cname);
+
+ print_char_ptr (indent+2, ptr->cname);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->custom_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,custom_list);
+
+ if (ptr->custom_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->custom_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,alphabet_target);
+
+ print_enum_cb_alphabet_target (indent+2, ptr->alphabet_target);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,alphabet_type);
+
+ print_enum_cb_alphabet_type (indent+2, ptr->alphabet_type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->low_val_char != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,low_val_char);
+
+ print_int (indent+2, ptr->low_val_char);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->high_val_char != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,high_val_char);
+
+ print_int (indent+2, ptr->high_val_char);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->values != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,values);
+
+ print_int_ptr (indent+2, ptr->values);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->alphachr != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,alphachr);
+
+ print_int_ptr (indent+2, ptr->alphachr);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_class_name (int indent, int ptr_uid, struct cb_class_name *ptr);
+static void print_struct_cb_class_name_ptr (int indent, struct cb_class_name *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_class_name*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_class_name (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_class_name (int indent, int ptr_uid, struct cb_class_name *ptr){
+ PRINT_STRUCT_TY("struct cb_class_name");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cname != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cname);
+
+ print_char_ptr (indent+2, ptr->cname);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,list);
+
+ if (ptr->list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_locale_name (int indent, int ptr_uid, struct cb_locale_name *ptr);
+static void print_struct_cb_locale_name_ptr (int indent, struct cb_locale_name *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_locale_name*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_locale_name (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_locale_name (int indent, int ptr_uid, struct cb_locale_name *ptr){
+ PRINT_STRUCT_TY("struct cb_locale_name");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cname != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cname);
+
+ print_char_ptr (indent+2, ptr->cname);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,list);
+
+ if (ptr->list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_system_name (int indent, int ptr_uid, struct cb_system_name *ptr);
+static void print_struct_cb_system_name_ptr (int indent, struct cb_system_name *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_system_name*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_system_name (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cb_system_name_category (int indent, enum cb_system_name_category x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_DEVICE_NAME: s = "CB_DEVICE_NAME"; break;
+
+ case CB_SWITCH_NAME: s = "CB_SWITCH_NAME"; break;
+
+ case CB_FEATURE_NAME: s = "CB_FEATURE_NAME"; break;
+
+ case CB_CALL_CONVENTION_NAME: s = "CB_CALL_CONVENTION_NAME"; break;
+
+ case CB_CODE_NAME: s = "CB_CODE_NAME"; break;
+
+ case CB_COMPUTER_NAME: s = "CB_COMPUTER_NAME"; break;
+
+ case CB_EXTERNAL_LOCALE_NAME: s = "CB_EXTERNAL_LOCALE_NAME"; break;
+
+ case CB_LIBRARY_NAME: s = "CB_LIBRARY_NAME"; break;
+
+ case CB_TEXT_NAME: s = "CB_TEXT_NAME"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_system_name (int indent, int ptr_uid, struct cb_system_name *ptr){
+ PRINT_STRUCT_TY("struct cb_system_name");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->value != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,value);
+
+ if (ptr->value == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->value);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,category);
+
+ print_enum_cb_system_name_category (indent+2, ptr->category);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->token != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,token);
+
+ print_int (indent+2, ptr->token);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_schema_name (int indent, int ptr_uid, struct cb_schema_name *ptr);
+static void print_struct_cb_schema_name_ptr (int indent, struct cb_schema_name *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_schema_name*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_schema_name (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_schema_name (int indent, int ptr_uid, struct cb_schema_name *ptr){
+ PRINT_STRUCT_TY("struct cb_schema_name");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->data != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,data);
+
+ print_char_ptr (indent+2, ptr->data);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_literal (int indent, int ptr_uid, struct cb_literal *ptr);
+static void print_struct_cb_literal_ptr (int indent, struct cb_literal *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_literal*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_literal (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_literal (int indent, int ptr_uid, struct cb_literal *ptr){
+ PRINT_STRUCT_TY("struct cb_literal");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->data != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,data);
+
+ print_uchar_ptr (indent+2, ptr->data);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->size != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,size);
+
+ print_uint (indent+2, ptr->size);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->scale != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,scale);
+
+ print_int (indent+2, ptr->scale);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->llit != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,llit);
+
+ print_uint (indent+2, ptr->llit);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->sign != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,sign);
+
+ print_int (indent+2, ptr->sign);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->all != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,all);
+
+ print_int (indent+2, ptr->all);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_decimal (int indent, int ptr_uid, struct cb_decimal *ptr);
+static void print_struct_cb_decimal_ptr (int indent, struct cb_decimal *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_decimal*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_decimal (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_decimal (int indent, int ptr_uid, struct cb_decimal *ptr){
+ PRINT_STRUCT_TY("struct cb_decimal");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->id != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,id);
+
+ print_uint (indent+2, ptr->id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_field (int indent, int ptr_uid, struct cb_field *ptr);
+static void print_struct_cb_field_ptr (int indent, struct cb_field *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_field*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_field (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_file (int indent, int ptr_uid, struct cb_file *ptr);
+static void print_struct_cb_file_ptr (int indent, struct cb_file *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_file*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_file (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_key_component (int indent, int ptr_uid, struct cb_key_component *ptr);
+static void print_struct_cb_key_component_ptr (int indent, struct cb_key_component *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_key_component*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_key_component (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_key_component (int indent, int ptr_uid, struct cb_key_component *ptr){
+ PRINT_STRUCT_TY("struct cb_key_component");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_key_component_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->component != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,component);
+
+ if (ptr->component == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->component);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_alt_key (int indent, int ptr_uid, struct cb_alt_key *ptr);
+static void print_struct_cb_alt_key_ptr (int indent, struct cb_alt_key *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_alt_key*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_alt_key (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_alt_key (int indent, int ptr_uid, struct cb_alt_key *ptr){
+ PRINT_STRUCT_TY("struct cb_alt_key");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_alt_key_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->key != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,key);
+
+ if (ptr->key == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->key);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->password != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,password);
+
+ if (ptr->password == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->password);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->collating_sequence_key != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,collating_sequence_key);
+
+ if (ptr->collating_sequence_key == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->collating_sequence_key);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->duplicates != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,duplicates);
+
+ print_int (indent+2, ptr->duplicates);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->offset != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,offset);
+
+ print_int (indent+2, ptr->offset);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->tf_suppress != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,tf_suppress);
+
+ print_int (indent+2, ptr->tf_suppress);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->char_suppress != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,char_suppress);
+
+ print_int (indent+2, ptr->char_suppress);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->component_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,component_list);
+
+ if (ptr->component_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_key_component_ptr (indent+2, ptr->component_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_label (int indent, int ptr_uid, struct cb_label *ptr);
+static void print_struct_cb_label_ptr (int indent, struct cb_label *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_label*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_label (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_para_label (int indent, int ptr_uid, struct cb_para_label *ptr);
+static void print_struct_cb_para_label_ptr (int indent, struct cb_para_label *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_para_label*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_para_label (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_para_label (int indent, int ptr_uid, struct cb_para_label *ptr){
+ PRINT_STRUCT_TY("struct cb_para_label");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_para_label_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->para != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,para);
+
+ if (ptr->para == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->para);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_xref (int indent, int ptr_uid, struct cb_xref *ptr);
+static void print_struct_cb_xref_ptr (int indent, struct cb_xref *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_xref*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_xref (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_xref_elem (int indent, int ptr_uid, struct cb_xref_elem *ptr);
+static void print_struct_cb_xref_elem_ptr (int indent, struct cb_xref_elem *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_xref_elem*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_xref_elem (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_xref_elem (int indent, int ptr_uid, struct cb_xref_elem *ptr){
+ PRINT_STRUCT_TY("struct cb_xref_elem");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_xref_elem_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->prev != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,prev);
+
+ if (ptr->prev == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_xref_elem_ptr (indent+2, ptr->prev);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->line != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,line);
+
+ print_int (indent+2, ptr->line);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->receive != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,receive);
+
+ print_int (indent+2, ptr->receive);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_xref (int indent, int ptr_uid, struct cb_xref *ptr){
+ PRINT_STRUCT_TY("struct cb_xref");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->head != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,head);
+
+ if (ptr->head == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_xref_elem_ptr (indent+2, ptr->head);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->tail != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,tail);
+
+ if (ptr->tail == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_xref_elem_ptr (indent+2, ptr->tail);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->amount != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,amount);
+
+ print_int (indent+2, ptr->amount);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->skip != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,skip);
+
+ print_int (indent+2, ptr->skip);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_alter_id (int indent, int ptr_uid, struct cb_alter_id *ptr);
+static void print_struct_cb_alter_id_ptr (int indent, struct cb_alter_id *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_alter_id*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_alter_id (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_alter_id (int indent, int ptr_uid, struct cb_alter_id *ptr){
+ PRINT_STRUCT_TY("struct cb_alter_id");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_alter_id_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->goto_id != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,goto_id);
+
+ print_int (indent+2, ptr->goto_id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_label (int indent, int ptr_uid, struct cb_label *ptr){
+ PRINT_STRUCT_TY("struct cb_label");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->orig_name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,orig_name);
+
+ print_char_ptr (indent+2, ptr->orig_name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->section != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,section);
+
+ if (ptr->section == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->section);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->debug_section != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,debug_section);
+
+ if (ptr->debug_section == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->debug_section);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->para_label != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,para_label);
+
+ if (ptr->para_label == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_para_label_ptr (indent+2, ptr->para_label);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xref);
+
+ print_struct_cb_xref (indent+2, 0, &ptr->xref);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->exit_label != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,exit_label);
+
+ if (ptr->exit_label == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->exit_label);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->alter_gotos != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,alter_gotos);
+
+ if (ptr->alter_gotos == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_alter_id_ptr (indent+2, ptr->alter_gotos);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->id != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,id);
+
+ print_int (indent+2, ptr->id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->section_id != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,section_id);
+
+ print_int (indent+2, ptr->section_id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->segment != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,segment);
+
+ print_int (indent+2, ptr->segment);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_section != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_section);
+
+ print_int (indent, ptr->flag_section);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_entry != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_entry);
+
+ print_int (indent, ptr->flag_entry);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_begin != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_begin);
+
+ print_int (indent, ptr->flag_begin);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_return != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_return);
+
+ print_int (indent, ptr->flag_return);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_real_label != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_real_label);
+
+ print_int (indent, ptr->flag_real_label);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_global != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_global);
+
+ print_int (indent, ptr->flag_global);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_declarative_exit != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_declarative_exit);
+
+ print_int (indent, ptr->flag_declarative_exit);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_declaratives != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_declaratives);
+
+ print_int (indent, ptr->flag_declaratives);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_fatal_check != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_fatal_check);
+
+ print_int (indent, ptr->flag_fatal_check);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_dummy_section != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_dummy_section);
+
+ print_int (indent, ptr->flag_dummy_section);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_dummy_paragraph != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_dummy_paragraph);
+
+ print_int (indent, ptr->flag_dummy_paragraph);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_dummy_exit != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_dummy_exit);
+
+ print_int (indent, ptr->flag_dummy_exit);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_next_sentence != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_next_sentence);
+
+ print_int (indent, ptr->flag_next_sentence);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_default_handler != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_default_handler);
+
+ print_int (indent, ptr->flag_default_handler);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_statement != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_statement);
+
+ print_int (indent, ptr->flag_statement);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_first_is_goto != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_first_is_goto);
+
+ print_int (indent, ptr->flag_first_is_goto);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_alter != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_alter);
+
+ print_int (indent, ptr->flag_alter);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_debugging_mode != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_debugging_mode);
+
+ print_int (indent, ptr->flag_debugging_mode);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_debug_sect != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_debug_sect);
+
+ print_int (indent, ptr->flag_is_debug_sect);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_skip_label != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_skip_label);
+
+ print_int (indent, ptr->flag_skip_label);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_entry_for_goto != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_entry_for_goto);
+
+ print_int (indent, ptr->flag_entry_for_goto);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_program (int indent, int ptr_uid, struct cb_program *ptr);
+static void print_struct_cb_program_ptr (int indent, struct cb_program *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_program*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_program (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_word (int indent, int ptr_uid, struct cb_word *ptr);
+static void print_struct_cb_word_ptr (int indent, struct cb_word *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_word*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_word (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_word (int indent, int ptr_uid, struct cb_word *ptr){
+ PRINT_STRUCT_TY("struct cb_word");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_word_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->items != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,items);
+
+ if (ptr->items == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->items);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->count != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,count);
+
+ print_int (indent+2, ptr->count);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->error != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,error);
+
+ print_int (indent+2, ptr->error);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_local_filename (int indent, int ptr_uid, struct local_filename *ptr);
+static void print_struct_local_filename_ptr (int indent, struct local_filename *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct local_filename*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_local_filename (indent, ptr_uid, ptr);
+}
+
+static void print_struct_local_filename (int indent, int ptr_uid, struct local_filename *ptr){
+ PRINT_STRUCT_TY("struct local_filename");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_local_filename_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->local_name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,local_name);
+
+ print_char_ptr (indent+2, ptr->local_name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->local_include_name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,local_include_name);
+
+ print_char_ptr (indent+2, ptr->local_include_name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->local_fp != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,local_fp);
+
+ if (ptr->local_fp == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_FILE_ptr (indent+2, ptr->local_fp);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_nested_list (int indent, int ptr_uid, struct nested_list *ptr);
+static void print_struct_nested_list_ptr (int indent, struct nested_list *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct nested_list*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_nested_list (indent, ptr_uid, ptr);
+}
+
+static void print_struct_nested_list (int indent, int ptr_uid, struct nested_list *ptr){
+ PRINT_STRUCT_TY("struct nested_list");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_nested_list_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->nested_prog != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,nested_prog);
+
+ if (ptr->nested_prog == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_program_ptr (indent+2, ptr->nested_prog);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_handler_struct (int indent, int ptr_uid, struct handler_struct *ptr);
+static void print_struct_handler_struct_ptr (int indent, struct handler_struct *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct handler_struct*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_handler_struct (indent, ptr_uid, ptr);
+}
+
+static void print_struct_handler_struct (int indent, int ptr_uid, struct handler_struct *ptr){
+ PRINT_STRUCT_TY("struct handler_struct");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->handler_label != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,handler_label);
+
+ if (ptr->handler_label == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->handler_label);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->handler_prog != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,handler_prog);
+
+ if (ptr->handler_prog == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_program_ptr (indent+2, ptr->handler_prog);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_call_xref (int indent, int ptr_uid, struct cb_call_xref *ptr);
+static void print_struct_cb_call_xref_ptr (int indent, struct cb_call_xref *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_call_xref*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_call_xref (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_call_elem (int indent, int ptr_uid, struct cb_call_elem *ptr);
+static void print_struct_cb_call_elem_ptr (int indent, struct cb_call_elem *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_call_elem*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_call_elem (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_call_elem (int indent, int ptr_uid, struct cb_call_elem *ptr){
+ PRINT_STRUCT_TY("struct cb_call_elem");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_call_elem_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xref);
+
+ print_struct_cb_xref (indent+2, 0, &ptr->xref);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->is_identifier != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,is_identifier);
+
+ print_int (indent+2, ptr->is_identifier);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->is_system != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,is_system);
+
+ print_int (indent+2, ptr->is_system);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_call_xref (int indent, int ptr_uid, struct cb_call_xref *ptr){
+ PRINT_STRUCT_TY("struct cb_call_xref");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->head != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,head);
+
+ if (ptr->head == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_call_elem_ptr (indent+2, ptr->head);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->tail != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,tail);
+
+ if (ptr->tail == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_call_elem_ptr (indent+2, ptr->tail);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_ml_generate_tree (int indent, int ptr_uid, struct cb_ml_generate_tree *ptr);
+static void print_struct_cb_ml_generate_tree_ptr (int indent, struct cb_ml_generate_tree *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_ml_generate_tree*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_ml_generate_tree (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cb_ml_type (int indent, enum cb_ml_type x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_ML_ATTRIBUTE: s = "CB_ML_ATTRIBUTE"; break;
+
+ case CB_ML_ELEMENT: s = "CB_ML_ELEMENT"; break;
+
+ case CB_ML_CONTENT: s = "CB_ML_CONTENT"; break;
+
+ case CB_ML_ANY_TYPE: s = "CB_ML_ANY_TYPE"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_ml_generate_tree (int indent, int ptr_uid, struct cb_ml_generate_tree *ptr){
+ PRINT_STRUCT_TY("struct cb_ml_generate_tree");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ if (ptr->name == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->name);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,type);
+
+ print_enum_cb_ml_type (indent+2, ptr->type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->value != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,value);
+
+ if (ptr->value == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->value);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->suppress_cond != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,suppress_cond);
+
+ if (ptr->suppress_cond == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->suppress_cond);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->id != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,id);
+
+ print_int (indent+2, ptr->id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->attrs != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,attrs);
+
+ if (ptr->attrs == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_ml_generate_tree_ptr (indent+2, ptr->attrs);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->parent != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,parent);
+
+ if (ptr->parent == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_ml_generate_tree_ptr (indent+2, ptr->parent);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->children != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,children);
+
+ if (ptr->children == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_ml_generate_tree_ptr (indent+2, ptr->children);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->prev_sibling != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,prev_sibling);
+
+ if (ptr->prev_sibling == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_ml_generate_tree_ptr (indent+2, ptr->prev_sibling);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->sibling != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,sibling);
+
+ if (ptr->sibling == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_ml_generate_tree_ptr (indent+2, ptr->sibling);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_enum_cob_module_type (int indent, enum cob_module_type x){
+ const char *s = NULL;
+ switch (x){
+
+ case COB_MODULE_TYPE_PROGRAM: s = "COB_MODULE_TYPE_PROGRAM"; break;
+
+ case COB_MODULE_TYPE_FUNCTION: s = "COB_MODULE_TYPE_FUNCTION"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_literal_list (int indent, int ptr_uid, struct literal_list *ptr);
+static void print_struct_literal_list_ptr (int indent, struct literal_list *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct literal_list*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_literal_list (indent, ptr_uid, ptr);
+}
+
+static void print_struct_literal_list (int indent, int ptr_uid, struct literal_list *ptr){
+ PRINT_STRUCT_TY("struct literal_list");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_literal_list_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->literal != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,literal);
+
+ if (ptr->literal == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_literal_ptr (indent+2, ptr->literal);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->id != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,id);
+
+ print_int (indent+2, ptr->id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->make_decimal != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,make_decimal);
+
+ print_int (indent+2, ptr->make_decimal);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_procedure_list (int indent, int ptr_uid, struct cb_procedure_list *ptr);
+static void print_struct_cb_procedure_list_ptr (int indent, struct cb_procedure_list *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_procedure_list*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_procedure_list (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cob_prof_procedure (int indent, int ptr_uid, struct cob_prof_procedure *ptr);
+static void print_struct_cob_prof_procedure_ptr (int indent, struct cob_prof_procedure *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cob_prof_procedure*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cob_prof_procedure (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cob_prof_procedure_kind (int indent, enum cob_prof_procedure_kind x){
+ const char *s = NULL;
+ switch (x){
+
+ case COB_PROF_PROCEDURE_MODULE: s = "COB_PROF_PROCEDURE_MODULE"; break;
+
+ case COB_PROF_PROCEDURE_SECTION: s = "COB_PROF_PROCEDURE_SECTION"; break;
+
+ case COB_PROF_PROCEDURE_PARAGRAPH: s = "COB_PROF_PROCEDURE_PARAGRAPH"; break;
+
+ case COB_PROF_PROCEDURE_ENTRY: s = "COB_PROF_PROCEDURE_ENTRY"; break;
+
+ case COB_PROF_PROCEDURE_CALL: s = "COB_PROF_PROCEDURE_CALL"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cob_prof_procedure (int indent, int ptr_uid, struct cob_prof_procedure *ptr){
+ PRINT_STRUCT_TY("struct cob_prof_procedure");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->text != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,text);
+
+ print_char_ptr (indent+2, ptr->text);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->file != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,file);
+
+ print_char_ptr (indent+2, ptr->file);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->line != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,line);
+
+ print_int (indent+2, ptr->line);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->section != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,section);
+
+ print_int (indent+2, ptr->section);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,kind);
+
+ print_enum_cob_prof_procedure_kind (indent+2, ptr->kind);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_procedure_list (int indent, int ptr_uid, struct cb_procedure_list *ptr){
+ PRINT_STRUCT_TY("struct cb_procedure_list");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->next != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next);
+
+ if (ptr->next == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_procedure_list_ptr (indent+2, ptr->next);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,proc);
+
+ print_struct_cob_prof_procedure (indent+2, 0, &ptr->proc);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_program (int indent, int ptr_uid, struct cb_program *ptr){
+ PRINT_STRUCT_TY("struct cb_program");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->next_program != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next_program);
+
+ if (ptr->next_program == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_program_ptr (indent+2, ptr->next_program);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->next_program_ordered != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next_program_ordered);
+
+ if (ptr->next_program_ordered == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_program_ptr (indent+2, ptr->next_program_ordered);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->program_name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,program_name);
+
+ print_char_ptr (indent+2, ptr->program_name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->program_id != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,program_id);
+
+ print_char_ptr (indent+2, ptr->program_id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->source_name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,source_name);
+
+ print_char_ptr (indent+2, ptr->source_name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->orig_program_id != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,orig_program_id);
+
+ print_char_ptr (indent+2, ptr->orig_program_id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->word_table != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,word_table);
+
+ print_cb_word_ptr2 (indent+2, ptr->word_table);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->local_include != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,local_include);
+
+ if (ptr->local_include == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_local_filename_ptr (indent+2, ptr->local_include);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->nested_prog_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,nested_prog_list);
+
+ if (ptr->nested_prog_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_nested_list_ptr (indent+2, ptr->nested_prog_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->common_prog_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common_prog_list);
+
+ if (ptr->common_prog_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_nested_list_ptr (indent+2, ptr->common_prog_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->entry_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,entry_list);
+
+ if (ptr->entry_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->entry_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->entry_list_goto != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,entry_list_goto);
+
+ if (ptr->entry_list_goto == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->entry_list_goto);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->file_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,file_list);
+
+ if (ptr->file_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->file_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cd_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cd_list);
+
+ if (ptr->cd_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->cd_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->exec_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,exec_list);
+
+ if (ptr->exec_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->exec_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->label_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,label_list);
+
+ if (ptr->label_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->label_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->reference_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,reference_list);
+
+ if (ptr->reference_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->reference_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->alphabet_name_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,alphabet_name_list);
+
+ if (ptr->alphabet_name_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->alphabet_name_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->symbolic_char_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,symbolic_char_list);
+
+ if (ptr->symbolic_char_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->symbolic_char_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->class_name_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,class_name_list);
+
+ if (ptr->class_name_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->class_name_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->schema_name_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,schema_name_list);
+
+ if (ptr->schema_name_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->schema_name_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->parameter_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,parameter_list);
+
+ if (ptr->parameter_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->parameter_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->locale_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,locale_list);
+
+ if (ptr->locale_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->locale_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->global_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,global_list);
+
+ if (ptr->global_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->global_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_list);
+
+ if (ptr->report_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->perform_thru_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,perform_thru_list);
+
+ if (ptr->perform_thru_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->perform_thru_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->alter_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,alter_list);
+
+ if (ptr->alter_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->alter_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->debug_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,debug_list);
+
+ if (ptr->debug_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->debug_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cb_return_code != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cb_return_code);
+
+ if (ptr->cb_return_code == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->cb_return_code);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cb_sort_return != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cb_sort_return);
+
+ if (ptr->cb_sort_return == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->cb_sort_return);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cb_call_params != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cb_call_params);
+
+ if (ptr->cb_call_params == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->cb_call_params);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->mnemonic_spec_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,mnemonic_spec_list);
+
+ if (ptr->mnemonic_spec_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->mnemonic_spec_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->class_spec_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,class_spec_list);
+
+ if (ptr->class_spec_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->class_spec_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->interface_spec_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,interface_spec_list);
+
+ if (ptr->interface_spec_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->interface_spec_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->function_spec_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,function_spec_list);
+
+ if (ptr->function_spec_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->function_spec_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->user_spec_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,user_spec_list);
+
+ if (ptr->user_spec_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->user_spec_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->program_spec_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,program_spec_list);
+
+ if (ptr->program_spec_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->program_spec_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->property_spec_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,property_spec_list);
+
+ if (ptr->property_spec_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->property_spec_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->alter_gotos != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,alter_gotos);
+
+ if (ptr->alter_gotos == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_alter_id_ptr (indent+2, ptr->alter_gotos);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->working_storage != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,working_storage);
+
+ if (ptr->working_storage == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->working_storage);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->local_storage != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,local_storage);
+
+ if (ptr->local_storage == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->local_storage);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->linkage_storage != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,linkage_storage);
+
+ if (ptr->linkage_storage == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->linkage_storage);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_storage != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_storage);
+
+ if (ptr->screen_storage == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->screen_storage);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_storage != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_storage);
+
+ if (ptr->report_storage == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->report_storage);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->local_file_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,local_file_list);
+
+ if (ptr->local_file_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->local_file_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->global_file_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,global_file_list);
+
+ if (ptr->global_file_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->global_file_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,global_handler);
+
+ PRINT_ARRAY_BEGIN(indent);
+ {
+ int i;
+ for (i=0; i<5; i++){
+ if (i>0){
+ PRINT_ARRAY_SEP(indent);
+ }
+
+ print_struct_handler_struct (indent+2, 0, &ptr->global_handler[i]);
+
+ }
+ }
+ PRINT_ARRAY_END(indent);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->collating_sequence != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,collating_sequence);
+
+ if (ptr->collating_sequence == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->collating_sequence);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->collating_sequence_n != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,collating_sequence_n);
+
+ if (ptr->collating_sequence_n == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->collating_sequence_n);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->classification != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,classification);
+
+ if (ptr->classification == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->classification);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->apply_commit != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,apply_commit);
+
+ if (ptr->apply_commit == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->apply_commit);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cursor_pos != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cursor_pos);
+
+ if (ptr->cursor_pos == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->cursor_pos);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->crt_status != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,crt_status);
+
+ if (ptr->crt_status == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->crt_status);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->xml_code != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xml_code);
+
+ if (ptr->xml_code == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->xml_code);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->xml_event != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xml_event);
+
+ if (ptr->xml_event == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->xml_event);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->xml_information != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xml_information);
+
+ if (ptr->xml_information == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->xml_information);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->xml_namespace != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xml_namespace);
+
+ if (ptr->xml_namespace == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->xml_namespace);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->xml_nnamespace != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xml_nnamespace);
+
+ if (ptr->xml_nnamespace == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->xml_nnamespace);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->xml_namespace_prefix != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xml_namespace_prefix);
+
+ if (ptr->xml_namespace_prefix == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->xml_namespace_prefix);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->xml_nnamespace_prefix != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xml_nnamespace_prefix);
+
+ if (ptr->xml_nnamespace_prefix == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->xml_nnamespace_prefix);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->xml_ntext != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xml_ntext);
+
+ if (ptr->xml_ntext == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->xml_ntext);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->xml_text != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xml_text);
+
+ if (ptr->xml_text == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->xml_text);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->json_code != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,json_code);
+
+ if (ptr->json_code == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->json_code);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->json_status != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,json_status);
+
+ if (ptr->json_status == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->json_status);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->returning != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,returning);
+
+ if (ptr->returning == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->returning);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->all_procedure != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,all_procedure);
+
+ if (ptr->all_procedure == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->all_procedure);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,call_xref);
+
+ print_struct_cb_call_xref (indent+2, 0, &ptr->call_xref);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->ml_trees != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,ml_trees);
+
+ if (ptr->ml_trees == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_ml_generate_tree_ptr (indent+2, ptr->ml_trees);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->extfh != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,extfh);
+
+ print_char_ptr (indent+2, ptr->extfh);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->last_source_line != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,last_source_line);
+
+ print_int (indent+2, ptr->last_source_line);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->loop_counter != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,loop_counter);
+
+ print_int (indent+2, ptr->loop_counter);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->decimal_index != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,decimal_index);
+
+ print_uint (indent+2, ptr->decimal_index);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->decimal_index_max != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,decimal_index_max);
+
+ print_uint (indent+2, ptr->decimal_index_max);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->nested_level != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,nested_level);
+
+ print_int (indent+2, ptr->nested_level);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->num_proc_params != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,num_proc_params);
+
+ print_uint (indent+2, ptr->num_proc_params);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->toplev_count != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,toplev_count);
+
+ print_int (indent+2, ptr->toplev_count);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->max_call_param != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,max_call_param);
+
+ print_uint (indent+2, ptr->max_call_param);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->decimal_point != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,decimal_point);
+
+ print_uchar (indent+2, ptr->decimal_point);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->currency_symbol != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,currency_symbol);
+
+ print_uchar (indent+2, ptr->currency_symbol);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->numeric_separator != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,numeric_separator);
+
+ print_uchar (indent+2, ptr->numeric_separator);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,prog_type);
+
+ print_enum_cob_module_type (indent+2, ptr->prog_type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->entry_convention != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,entry_convention);
+
+ if (ptr->entry_convention == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->entry_convention);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->decimal_constants != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,decimal_constants);
+
+ if (ptr->decimal_constants == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_literal_list_ptr (indent+2, ptr->decimal_constants);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->procedure_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,procedure_list);
+
+ if (ptr->procedure_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_procedure_list_ptr (indent+2, ptr->procedure_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->procedure_list_last != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,procedure_list_last);
+
+ if (ptr->procedure_list_last == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_procedure_list_ptr (indent+2, ptr->procedure_list_last);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->procedure_list_len != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,procedure_list_len);
+
+ print_int (indent+2, ptr->procedure_list_len);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->prof_current_section != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,prof_current_section);
+
+ print_int (indent+2, ptr->prof_current_section);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->prof_current_paragraph != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,prof_current_paragraph);
+
+ print_int (indent+2, ptr->prof_current_paragraph);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->prof_current_call != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,prof_current_call);
+
+ print_int (indent+2, ptr->prof_current_call);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_main != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_main);
+
+ print_int (indent, ptr->flag_main);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_common != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_common);
+
+ print_int (indent, ptr->flag_common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_initial != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_initial);
+
+ print_int (indent, ptr->flag_initial);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_recursive != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_recursive);
+
+ print_int (indent, ptr->flag_recursive);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_screen != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_screen);
+
+ print_int (indent, ptr->flag_screen);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_validated != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_validated);
+
+ print_int (indent, ptr->flag_validated);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_chained != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_chained);
+
+ print_int (indent, ptr->flag_chained);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_global_use != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_global_use);
+
+ print_int (indent, ptr->flag_global_use);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_gen_error != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_gen_error);
+
+ print_int (indent, ptr->flag_gen_error);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_file_global != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_file_global);
+
+ print_int (indent, ptr->flag_file_global);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_has_external != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_has_external);
+
+ print_int (indent, ptr->flag_has_external);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_segments != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_segments);
+
+ print_int (indent, ptr->flag_segments);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_trailing_separate != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_trailing_separate);
+
+ print_int (indent, ptr->flag_trailing_separate);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_console_is_crt != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_console_is_crt);
+
+ print_int (indent, ptr->flag_console_is_crt);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_debugging != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_debugging);
+
+ print_int (indent, ptr->flag_debugging);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_gen_debug != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_gen_debug);
+
+ print_int (indent, ptr->flag_gen_debug);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_save_exception != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_save_exception);
+
+ print_int (indent, ptr->flag_save_exception);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_report != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_report);
+
+ print_int (indent, ptr->flag_report);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_void != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_void);
+
+ print_int (indent, ptr->flag_void);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_decimal_comp != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_decimal_comp);
+
+ print_int (indent, ptr->flag_decimal_comp);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_prototype != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_prototype);
+
+ print_int (indent, ptr->flag_prototype);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_list (int indent, int ptr_uid, struct cb_list *ptr);
+static void print_struct_cb_list_ptr (int indent, struct cb_list *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_list*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_list (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_list (int indent, int ptr_uid, struct cb_list *ptr){
+ PRINT_STRUCT_TY("struct cb_list");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->chain != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,chain);
+
+ if (ptr->chain == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->chain);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->value != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,value);
+
+ if (ptr->value == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->value);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->purpose != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,purpose);
+
+ if (ptr->purpose == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->purpose);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->sizes != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,sizes);
+
+ print_int (indent+2, ptr->sizes);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_enum_cob_file_org (int indent, enum cob_file_org x){
+ const char *s = NULL;
+ switch (x){
+
+ case COB_ORG_SEQUENTIAL: s = "COB_ORG_SEQUENTIAL"; break;
+
+ case COB_ORG_LINE_SEQUENTIAL: s = "COB_ORG_LINE_SEQUENTIAL"; break;
+
+ case COB_ORG_RELATIVE: s = "COB_ORG_RELATIVE"; break;
+
+ case COB_ORG_INDEXED: s = "COB_ORG_INDEXED"; break;
+
+ case COB_ORG_SORT: s = "COB_ORG_SORT"; break;
+
+ case COB_ORG_MAX: s = "COB_ORG_MAX"; break;
+
+ case COB_ORG_MESSAGE: s = "COB_ORG_MESSAGE"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_enum_cob_file_access_mode (int indent, enum cob_file_access_mode x){
+ const char *s = NULL;
+ switch (x){
+
+ case COB_ACCESS_UNDEFINED: s = "COB_ACCESS_UNDEFINED"; break;
+
+ case COB_ACCESS_SEQUENTIAL: s = "COB_ACCESS_SEQUENTIAL"; break;
+
+ case COB_ACCESS_DYNAMIC: s = "COB_ACCESS_DYNAMIC"; break;
+
+ case COB_ACCESS_RANDOM: s = "COB_ACCESS_RANDOM"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_enum_cb_assign_type (int indent, enum cb_assign_type x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_ASSIGN_VARIABLE_DEFAULT: s = "CB_ASSIGN_VARIABLE_DEFAULT"; break;
+
+ case CB_ASSIGN_VARIABLE_REQUIRED: s = "CB_ASSIGN_VARIABLE_REQUIRED"; break;
+
+ case CB_ASSIGN_EXT_FILE_NAME_REQUIRED: s = "CB_ASSIGN_EXT_FILE_NAME_REQUIRED"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_exception (int indent, int ptr_uid, struct cb_exception *ptr);
+static void print_struct_cb_exception_ptr (int indent, struct cb_exception *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_exception*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_exception (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_exception (int indent, int ptr_uid, struct cb_exception *ptr){
+ PRINT_STRUCT_TY("struct cb_exception");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->code != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,code);
+
+ print_int (indent+2, ptr->code);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->enable != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,enable);
+
+ print_int (indent+2, ptr->enable);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->fatal != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,fatal);
+
+ print_int (indent+2, ptr->fatal);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_file (int indent, int ptr_uid, struct cb_file *ptr){
+ PRINT_STRUCT_TY("struct cb_file");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cname != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cname);
+
+ print_char_ptr (indent+2, ptr->cname);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->assign != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,assign);
+
+ if (ptr->assign == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->assign);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->file_status != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,file_status);
+
+ if (ptr->file_status == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->file_status);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->sharing != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,sharing);
+
+ if (ptr->sharing == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->sharing);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->key != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,key);
+
+ if (ptr->key == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->key);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->password != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,password);
+
+ if (ptr->password == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->password);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->component_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,component_list);
+
+ if (ptr->component_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_key_component_ptr (indent+2, ptr->component_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->alt_key_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,alt_key_list);
+
+ if (ptr->alt_key_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_alt_key_ptr (indent+2, ptr->alt_key_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->collating_sequence_key != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,collating_sequence_key);
+
+ if (ptr->collating_sequence_key == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->collating_sequence_key);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->collating_sequence != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,collating_sequence);
+
+ if (ptr->collating_sequence == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->collating_sequence);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->collating_sequence_n != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,collating_sequence_n);
+
+ if (ptr->collating_sequence_n == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->collating_sequence_n);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->collating_sequence_keys != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,collating_sequence_keys);
+
+ if (ptr->collating_sequence_keys == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->collating_sequence_keys);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->description_entry != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,description_entry);
+
+ if (ptr->description_entry == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->description_entry);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->record != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,record);
+
+ if (ptr->record == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->record);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->record_depending != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,record_depending);
+
+ if (ptr->record_depending == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->record_depending);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->reports != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,reports);
+
+ if (ptr->reports == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->reports);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->linage != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,linage);
+
+ if (ptr->linage == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->linage);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->linage_ctr != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,linage_ctr);
+
+ if (ptr->linage_ctr == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->linage_ctr);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->latfoot != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,latfoot);
+
+ if (ptr->latfoot == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->latfoot);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->lattop != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,lattop);
+
+ if (ptr->lattop == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->lattop);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->latbot != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,latbot);
+
+ if (ptr->latbot == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->latbot);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->extfh != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,extfh);
+
+ if (ptr->extfh == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->extfh);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->handler != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,handler);
+
+ if (ptr->handler == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->handler);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->handler_prog != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,handler_prog);
+
+ if (ptr->handler_prog == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_program_ptr (indent+2, ptr->handler_prog);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->debug_section != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,debug_section);
+
+ if (ptr->debug_section == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->debug_section);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->code_set != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,code_set);
+
+ if (ptr->code_set == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_alphabet_name_ptr (indent+2, ptr->code_set);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->code_set_items != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,code_set_items);
+
+ if (ptr->code_set_items == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_list_ptr (indent+2, ptr->code_set_items);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xref);
+
+ print_struct_cb_xref (indent+2, 0, &ptr->xref);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->record_min != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,record_min);
+
+ print_int (indent+2, ptr->record_min);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->record_max != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,record_max);
+
+ print_int (indent+2, ptr->record_max);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->optional != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,optional);
+
+ print_int (indent+2, ptr->optional);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,organization);
+
+ print_enum_cob_file_org (indent+2, ptr->organization);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,access_mode);
+
+ print_enum_cob_file_access_mode (indent+2, ptr->access_mode);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->lock_mode != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,lock_mode);
+
+ print_int (indent+2, ptr->lock_mode);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->special != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,special);
+
+ print_int (indent+2, ptr->special);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->same_clause != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,same_clause);
+
+ print_int (indent+2, ptr->same_clause);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,assign_type);
+
+ print_enum_cb_assign_type (indent+2, ptr->assign_type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->flag_finalized != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_finalized);
+
+ print_int (indent, ptr->flag_finalized);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_external != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_external);
+
+ print_int (indent, ptr->flag_external);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_ext_assign != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_ext_assign);
+
+ print_int (indent, ptr->flag_ext_assign);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_fileid != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_fileid);
+
+ print_int (indent, ptr->flag_fileid);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_global != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_global);
+
+ print_int (indent, ptr->flag_global);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_fl_debug != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_fl_debug);
+
+ print_int (indent, ptr->flag_fl_debug);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_line_adv != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_line_adv);
+
+ print_int (indent, ptr->flag_line_adv);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_delimiter != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_delimiter);
+
+ print_int (indent, ptr->flag_delimiter);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_report != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_report);
+
+ print_int (indent, ptr->flag_report);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_check_record_varying_limits != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_check_record_varying_limits);
+
+ print_int (indent, ptr->flag_check_record_varying_limits);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_assign_no_keyword != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_assign_no_keyword);
+
+ print_int (indent, ptr->flag_assign_no_keyword);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->exception_table != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,exception_table);
+
+ if (ptr->exception_table == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_exception_ptr (indent+2, ptr->exception_table);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_cd (int indent, int ptr_uid, struct cb_cd *ptr);
+static void print_struct_cb_cd_ptr (int indent, struct cb_cd *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_cd*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_cd (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_cd (int indent, int ptr_uid, struct cb_cd *ptr){
+ PRINT_STRUCT_TY("struct cb_cd");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->record != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,record);
+
+ if (ptr->record == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->record);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->debug_section != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,debug_section);
+
+ if (ptr->debug_section == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->debug_section);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_field_debug != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_field_debug);
+
+ print_int (indent+2, ptr->flag_field_debug);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_key (int indent, int ptr_uid, struct cb_key *ptr);
+static void print_struct_cb_key_ptr (int indent, struct cb_key *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_key*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_key (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_key (int indent, int ptr_uid, struct cb_key *ptr){
+ PRINT_STRUCT_TY("struct cb_key");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->key != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,key);
+
+ if (ptr->key == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->key);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->ref != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,ref);
+
+ if (ptr->ref == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->ref);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->val != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,val);
+
+ if (ptr->val == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->val);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->dir != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,dir);
+
+ print_int (indent+2, ptr->dir);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_picture (int indent, int ptr_uid, struct cb_picture *ptr);
+static void print_struct_cb_picture_ptr (int indent, struct cb_picture *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_picture*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_picture (indent, ptr_uid, ptr);
+}
+
+static void print_struct___cob_pic_symbol (int indent, int ptr_uid, struct __cob_pic_symbol *ptr);
+static void print_struct___cob_pic_symbol_ptr (int indent, struct __cob_pic_symbol *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct __cob_pic_symbol*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct___cob_pic_symbol (indent, ptr_uid, ptr);
+}
+
+static void print_struct___cob_pic_symbol (int indent, int ptr_uid, struct __cob_pic_symbol *ptr){
+ PRINT_STRUCT_TY("struct __cob_pic_symbol");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->symbol != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,symbol);
+
+ print_char (indent+2, ptr->symbol);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->times_repeated != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,times_repeated);
+
+ print_int (indent+2, ptr->times_repeated);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_picture (int indent, int ptr_uid, struct cb_picture *ptr){
+ PRINT_STRUCT_TY("struct cb_picture");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->orig != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,orig);
+
+ print_char_ptr (indent+2, ptr->orig);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->str != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,str);
+
+ if (ptr->str == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct___cob_pic_symbol_ptr (indent+2, ptr->str);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->size != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,size);
+
+ print_int (indent+2, ptr->size);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->lenstr != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,lenstr);
+
+ print_int (indent+2, ptr->lenstr);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,category);
+
+ print_enum_cb_category (indent+2, ptr->category);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->digits != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,digits);
+
+ print_uint (indent+2, ptr->digits);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->scale != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,scale);
+
+ print_int (indent+2, ptr->scale);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->have_sign != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,have_sign);
+
+ print_uint (indent+2, ptr->have_sign);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_calculated != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_calculated);
+
+ print_int (indent, ptr->flag_is_calculated);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->variable_length != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,variable_length);
+
+ print_int (indent, ptr->variable_length);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_report (int indent, int ptr_uid, struct cb_report *ptr);
+static void print_struct_cb_report_ptr (int indent, struct cb_report *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_report*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_report (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_report (int indent, int ptr_uid, struct cb_report *ptr){
+ PRINT_STRUCT_TY("struct cb_report");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cname != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cname);
+
+ print_char_ptr (indent+2, ptr->cname);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->file != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,file);
+
+ if (ptr->file == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_file_ptr (indent+2, ptr->file);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->line_counter != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,line_counter);
+
+ if (ptr->line_counter == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->line_counter);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->page_counter != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,page_counter);
+
+ if (ptr->page_counter == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->page_counter);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->code_clause != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,code_clause);
+
+ if (ptr->code_clause == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->code_clause);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->controls != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,controls);
+
+ if (ptr->controls == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->controls);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->t_lines != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,t_lines);
+
+ if (ptr->t_lines == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->t_lines);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->t_columns != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,t_columns);
+
+ if (ptr->t_columns == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->t_columns);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->t_heading != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,t_heading);
+
+ if (ptr->t_heading == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->t_heading);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->t_first_detail != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,t_first_detail);
+
+ if (ptr->t_first_detail == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->t_first_detail);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->t_last_control != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,t_last_control);
+
+ if (ptr->t_last_control == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->t_last_control);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->t_last_detail != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,t_last_detail);
+
+ if (ptr->t_last_detail == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->t_last_detail);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->t_footing != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,t_footing);
+
+ if (ptr->t_footing == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->t_footing);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->lines != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,lines);
+
+ print_int (indent+2, ptr->lines);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->columns != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,columns);
+
+ print_int (indent+2, ptr->columns);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->heading != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,heading);
+
+ print_int (indent+2, ptr->heading);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->first_detail != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,first_detail);
+
+ print_int (indent+2, ptr->first_detail);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->last_control != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,last_control);
+
+ print_int (indent+2, ptr->last_control);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->last_detail != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,last_detail);
+
+ print_int (indent+2, ptr->last_detail);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->footing != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,footing);
+
+ print_int (indent+2, ptr->footing);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->records != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,records);
+
+ if (ptr->records == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->records);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->num_lines != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,num_lines);
+
+ print_int (indent+2, ptr->num_lines);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->line_ids != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,line_ids);
+
+ print_cb_field_ptr2 (indent+2, ptr->line_ids);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->num_sums != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,num_sums);
+
+ print_int (indent+2, ptr->num_sums);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->sums != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,sums);
+
+ print_cb_field_ptr2 (indent+2, ptr->sums);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->rcsz != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,rcsz);
+
+ print_int (indent+2, ptr->rcsz);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->id != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,id);
+
+ print_int (indent+2, ptr->id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->control_final != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,control_final);
+
+ print_int (indent, ptr->control_final);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->global != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,global);
+
+ print_int (indent, ptr->global);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->has_declarative != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,has_declarative);
+
+ print_int (indent, ptr->has_declarative);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->has_detail != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,has_detail);
+
+ print_int (indent, ptr->has_detail);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->has_source_move != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,has_source_move);
+
+ print_int (indent, ptr->has_source_move);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->was_checked != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,was_checked);
+
+ print_int (indent, ptr->was_checked);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_enum_cb_index_type (int indent, enum cb_index_type x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_NORMAL_INDEX: s = "CB_NORMAL_INDEX"; break;
+
+ case CB_INT_INDEX: s = "CB_INT_INDEX"; break;
+
+ case CB_STATIC_INT_INDEX: s = "CB_STATIC_INT_INDEX"; break;
+
+ case CB_STATIC_INT_VARYING: s = "CB_STATIC_INT_VARYING"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_enum_cb_storage (int indent, enum cb_storage x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_STORAGE_CONSTANT: s = "CB_STORAGE_CONSTANT"; break;
+
+ case CB_STORAGE_FILE: s = "CB_STORAGE_FILE"; break;
+
+ case CB_STORAGE_WORKING: s = "CB_STORAGE_WORKING"; break;
+
+ case CB_STORAGE_LOCAL: s = "CB_STORAGE_LOCAL"; break;
+
+ case CB_STORAGE_LINKAGE: s = "CB_STORAGE_LINKAGE"; break;
+
+ case CB_STORAGE_SCREEN: s = "CB_STORAGE_SCREEN"; break;
+
+ case CB_STORAGE_REPORT: s = "CB_STORAGE_REPORT"; break;
+
+ case CB_STORAGE_COMMUNICATION: s = "CB_STORAGE_COMMUNICATION"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_enum_cb_usage (int indent, enum cb_usage x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_USAGE_BINARY: s = "CB_USAGE_BINARY"; break;
+
+ case CB_USAGE_BIT: s = "CB_USAGE_BIT"; break;
+
+ case CB_USAGE_COMP_5: s = "CB_USAGE_COMP_5"; break;
+
+ case CB_USAGE_COMP_X: s = "CB_USAGE_COMP_X"; break;
+
+ case CB_USAGE_DISPLAY: s = "CB_USAGE_DISPLAY"; break;
+
+ case CB_USAGE_FLOAT: s = "CB_USAGE_FLOAT"; break;
+
+ case CB_USAGE_DOUBLE: s = "CB_USAGE_DOUBLE"; break;
+
+ case CB_USAGE_INDEX: s = "CB_USAGE_INDEX"; break;
+
+ case CB_USAGE_NATIONAL: s = "CB_USAGE_NATIONAL"; break;
+
+ case CB_USAGE_OBJECT: s = "CB_USAGE_OBJECT"; break;
+
+ case CB_USAGE_PACKED: s = "CB_USAGE_PACKED"; break;
+
+ case CB_USAGE_POINTER: s = "CB_USAGE_POINTER"; break;
+
+ case CB_USAGE_LENGTH: s = "CB_USAGE_LENGTH"; break;
+
+ case CB_USAGE_PROGRAM_POINTER: s = "CB_USAGE_PROGRAM_POINTER"; break;
+
+ case CB_USAGE_UNSIGNED_CHAR: s = "CB_USAGE_UNSIGNED_CHAR"; break;
+
+ case CB_USAGE_SIGNED_CHAR: s = "CB_USAGE_SIGNED_CHAR"; break;
+
+ case CB_USAGE_UNSIGNED_SHORT: s = "CB_USAGE_UNSIGNED_SHORT"; break;
+
+ case CB_USAGE_SIGNED_SHORT: s = "CB_USAGE_SIGNED_SHORT"; break;
+
+ case CB_USAGE_UNSIGNED_INT: s = "CB_USAGE_UNSIGNED_INT"; break;
+
+ case CB_USAGE_SIGNED_INT: s = "CB_USAGE_SIGNED_INT"; break;
+
+ case CB_USAGE_UNSIGNED_LONG: s = "CB_USAGE_UNSIGNED_LONG"; break;
+
+ case CB_USAGE_SIGNED_LONG: s = "CB_USAGE_SIGNED_LONG"; break;
+
+ case CB_USAGE_COMP_6: s = "CB_USAGE_COMP_6"; break;
+
+ case CB_USAGE_FP_DEC64: s = "CB_USAGE_FP_DEC64"; break;
+
+ case CB_USAGE_FP_DEC128: s = "CB_USAGE_FP_DEC128"; break;
+
+ case CB_USAGE_FP_BIN32: s = "CB_USAGE_FP_BIN32"; break;
+
+ case CB_USAGE_FP_BIN64: s = "CB_USAGE_FP_BIN64"; break;
+
+ case CB_USAGE_FP_BIN128: s = "CB_USAGE_FP_BIN128"; break;
+
+ case CB_USAGE_LONG_DOUBLE: s = "CB_USAGE_LONG_DOUBLE"; break;
+
+ case CB_USAGE_HNDL: s = "CB_USAGE_HNDL"; break;
+
+ case CB_USAGE_HNDL_WINDOW: s = "CB_USAGE_HNDL_WINDOW"; break;
+
+ case CB_USAGE_HNDL_SUBWINDOW: s = "CB_USAGE_HNDL_SUBWINDOW"; break;
+
+ case CB_USAGE_HNDL_FONT: s = "CB_USAGE_HNDL_FONT"; break;
+
+ case CB_USAGE_HNDL_THREAD: s = "CB_USAGE_HNDL_THREAD"; break;
+
+ case CB_USAGE_HNDL_MENU: s = "CB_USAGE_HNDL_MENU"; break;
+
+ case CB_USAGE_HNDL_VARIANT: s = "CB_USAGE_HNDL_VARIANT"; break;
+
+ case CB_USAGE_HNDL_LM: s = "CB_USAGE_HNDL_LM"; break;
+
+ case CB_USAGE_COMP_N: s = "CB_USAGE_COMP_N"; break;
+
+ case CB_USAGE_ERROR: s = "CB_USAGE_ERROR"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_field (int indent, int ptr_uid, struct cb_field *ptr){
+ PRINT_STRUCT_TY("struct cb_field");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->ename != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,ename);
+
+ print_char_ptr (indent+2, ptr->ename);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->depending != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,depending);
+
+ if (ptr->depending == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->depending);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->values != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,values);
+
+ if (ptr->values == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->values);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->false_88 != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,false_88);
+
+ if (ptr->false_88 == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->false_88);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->index_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,index_list);
+
+ if (ptr->index_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->index_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->external_form_identifier != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,external_form_identifier);
+
+ if (ptr->external_form_identifier == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->external_form_identifier);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->parent != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,parent);
+
+ if (ptr->parent == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->parent);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->children != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,children);
+
+ if (ptr->children == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->children);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->validation != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,validation);
+
+ if (ptr->validation == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->validation);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->sister != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,sister);
+
+ if (ptr->sister == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->sister);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->redefines != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,redefines);
+
+ if (ptr->redefines == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->redefines);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->rename_thru != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,rename_thru);
+
+ if (ptr->rename_thru == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->rename_thru);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->index_qual != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,index_qual);
+
+ if (ptr->index_qual == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->index_qual);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->file != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,file);
+
+ if (ptr->file == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_file_ptr (indent+2, ptr->file);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cd != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cd);
+
+ if (ptr->cd == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_cd_ptr (indent+2, ptr->cd);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->keys != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,keys);
+
+ if (ptr->keys == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_key_ptr (indent+2, ptr->keys);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->pic != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,pic);
+
+ if (ptr->pic == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_picture_ptr (indent+2, ptr->pic);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->vsize != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,vsize);
+
+ if (ptr->vsize == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->vsize);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->debug_section != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,debug_section);
+
+ if (ptr->debug_section == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->debug_section);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report);
+
+ if (ptr->report == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_report_ptr (indent+2, ptr->report);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,xref);
+
+ print_struct_cb_xref (indent+2, 0, &ptr->xref);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->screen_line != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_line);
+
+ if (ptr->screen_line == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->screen_line);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_column != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_column);
+
+ if (ptr->screen_column == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->screen_column);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_from != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_from);
+
+ if (ptr->screen_from == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->screen_from);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_to != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_to);
+
+ if (ptr->screen_to == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->screen_to);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_foreg != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_foreg);
+
+ if (ptr->screen_foreg == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->screen_foreg);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_backg != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_backg);
+
+ if (ptr->screen_backg == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->screen_backg);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_prompt != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_prompt);
+
+ if (ptr->screen_prompt == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->screen_prompt);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_control != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_control);
+
+ if (ptr->screen_control == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->screen_control);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_color != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_color);
+
+ if (ptr->screen_color == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->screen_color);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_source != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_source);
+
+ if (ptr->report_source == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_source);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_from != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_from);
+
+ if (ptr->report_from == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_from);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_sum_counter != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_sum_counter);
+
+ if (ptr->report_sum_counter == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_sum_counter);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_sum_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_sum_list);
+
+ if (ptr->report_sum_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_sum_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_sum_upon != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_sum_upon);
+
+ if (ptr->report_sum_upon == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_sum_upon);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_reset != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_reset);
+
+ if (ptr->report_reset == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_reset);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_control != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_control);
+
+ if (ptr->report_control == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_control);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_when != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_when);
+
+ if (ptr->report_when == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_when);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_column_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_column_list);
+
+ if (ptr->report_column_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_column_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_vary_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_vary_list);
+
+ if (ptr->report_vary_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->report_vary_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->same_as != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,same_as);
+
+ if (ptr->same_as == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->same_as);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->external_definition != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,external_definition);
+
+ if (ptr->external_definition == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->external_definition);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->like_modifier != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,like_modifier);
+
+ if (ptr->like_modifier == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->like_modifier);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->id != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,id);
+
+ print_int (indent+2, ptr->id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->size != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,size);
+
+ print_int (indent+2, ptr->size);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->level != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,level);
+
+ print_int (indent+2, ptr->level);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->memory_size != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,memory_size);
+
+ print_int (indent+2, ptr->memory_size);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->offset != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,offset);
+
+ print_int (indent+2, ptr->offset);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->occurs_min != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,occurs_min);
+
+ print_int (indent+2, ptr->occurs_min);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->occurs_max != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,occurs_max);
+
+ print_int (indent+2, ptr->occurs_max);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->indexes != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,indexes);
+
+ print_int (indent+2, ptr->indexes);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->count != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,count);
+
+ print_int (indent+2, ptr->count);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->mem_offset != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,mem_offset);
+
+ print_int (indent+2, ptr->mem_offset);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->nkeys != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,nkeys);
+
+ print_int (indent+2, ptr->nkeys);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->param_num != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,param_num);
+
+ print_int (indent+2, ptr->param_num);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screen_flag != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screen_flag);
+
+ print_long_long_ptr0 (indent+2, ptr->screen_flag);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_flag != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_flag);
+
+ print_int (indent+2, ptr->report_flag);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_line != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_line);
+
+ print_int (indent+2, ptr->report_line);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_column != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_column);
+
+ print_int (indent+2, ptr->report_column);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_num_col != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_num_col);
+
+ print_int (indent+2, ptr->report_num_col);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->report_decl_id != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,report_decl_id);
+
+ print_int (indent+2, ptr->report_decl_id);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->step_count != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,step_count);
+
+ print_int (indent+2, ptr->step_count);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->next_group_line != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,next_group_line);
+
+ print_int (indent+2, ptr->next_group_line);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->vaddr != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,vaddr);
+
+ print_uint (indent+2, ptr->vaddr);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->odo_level != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,odo_level);
+
+ print_uint (indent+2, ptr->odo_level);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,index_type);
+
+ print_enum_cb_index_type (indent+2, ptr->index_type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,storage);
+
+ print_enum_cb_storage (indent+2, ptr->storage);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,usage);
+
+ print_enum_cb_usage (indent+2, ptr->usage);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->flag_base != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_base);
+
+ print_uchar (indent+2, ptr->flag_base);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_external != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_external);
+
+ print_uchar (indent+2, ptr->flag_external);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_local_storage != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_local_storage);
+
+ print_uchar (indent+2, ptr->flag_local_storage);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_global != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_global);
+
+ print_uchar (indent+2, ptr->flag_is_global);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_local != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_local);
+
+ print_int (indent, ptr->flag_local);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_occurs != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_occurs);
+
+ print_int (indent, ptr->flag_occurs);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_sign_clause != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_sign_clause);
+
+ print_int (indent, ptr->flag_sign_clause);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_sign_separate != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_sign_separate);
+
+ print_int (indent, ptr->flag_sign_separate);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_sign_leading != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_sign_leading);
+
+ print_int (indent, ptr->flag_sign_leading);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_blank_zero != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_blank_zero);
+
+ print_int (indent, ptr->flag_blank_zero);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_justified != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_justified);
+
+ print_int (indent, ptr->flag_justified);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_binary_swap != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_binary_swap);
+
+ print_int (indent, ptr->flag_binary_swap);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_real_binary != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_real_binary);
+
+ print_int (indent, ptr->flag_real_binary);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_pointer != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_pointer);
+
+ print_int (indent, ptr->flag_is_pointer);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_item_78 != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_item_78);
+
+ print_int (indent, ptr->flag_item_78);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_any_length != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_any_length);
+
+ print_int (indent, ptr->flag_any_length);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_item_based != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_item_based);
+
+ print_int (indent, ptr->flag_item_based);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_external_form != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_external_form);
+
+ print_int (indent, ptr->flag_is_external_form);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_filler != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_filler);
+
+ print_int (indent, ptr->flag_filler);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_synchronized != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_synchronized);
+
+ print_int (indent, ptr->flag_synchronized);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_invalid != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_invalid);
+
+ print_int (indent, ptr->flag_invalid);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_field != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_field);
+
+ print_int (indent, ptr->flag_field);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_chained != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_chained);
+
+ print_int (indent, ptr->flag_chained);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_anylen_done != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_anylen_done);
+
+ print_int (indent, ptr->flag_anylen_done);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_typedef != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_typedef);
+
+ print_int (indent, ptr->flag_is_typedef);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_c_long != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_c_long);
+
+ print_int (indent, ptr->flag_is_c_long);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_pdiv_parm != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_pdiv_parm);
+
+ print_int (indent, ptr->flag_is_pdiv_parm);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_pdiv_opt != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_pdiv_opt);
+
+ print_int (indent, ptr->flag_is_pdiv_opt);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_indexed_by != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_indexed_by);
+
+ print_int (indent, ptr->flag_indexed_by);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_local_alloced != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_local_alloced);
+
+ print_int (indent, ptr->flag_local_alloced);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_no_init != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_no_init);
+
+ print_int (indent, ptr->flag_no_init);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_vsize_done != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_vsize_done);
+
+ print_int (indent, ptr->flag_vsize_done);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_vaddr_done != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_vaddr_done);
+
+ print_int (indent, ptr->flag_vaddr_done);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_odo_relative != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_odo_relative);
+
+ print_int (indent, ptr->flag_odo_relative);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_field_debug != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_field_debug);
+
+ print_int (indent, ptr->flag_field_debug);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_all_debug != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_all_debug);
+
+ print_int (indent, ptr->flag_all_debug);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_no_field != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_no_field);
+
+ print_int (indent, ptr->flag_no_field);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_any_numeric != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_any_numeric);
+
+ print_int (indent, ptr->flag_any_numeric);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_returning != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_returning);
+
+ print_int (indent, ptr->flag_is_returning);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_unbounded != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_unbounded);
+
+ print_int (indent, ptr->flag_unbounded);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_above_unbounded != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_above_unbounded);
+
+ print_int (indent, ptr->flag_above_unbounded);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_volatile != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_volatile);
+
+ print_int (indent, ptr->flag_volatile);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_constant != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_constant);
+
+ print_int (indent, ptr->flag_constant);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_internal_constant != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_internal_constant);
+
+ print_int (indent, ptr->flag_internal_constant);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_used_in_call != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_used_in_call);
+
+ print_int (indent, ptr->flag_used_in_call);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_sync_left != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_sync_left);
+
+ print_int (indent, ptr->flag_sync_left);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_sync_right != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_sync_right);
+
+ print_int (indent, ptr->flag_sync_right);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_internal_register != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_internal_register);
+
+ print_int (indent, ptr->flag_internal_register);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_picture_l != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_picture_l);
+
+ print_int (indent, ptr->flag_picture_l);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_comp_1 != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_comp_1);
+
+ print_int (indent, ptr->flag_comp_1);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_verified != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_verified);
+
+ print_int (indent, ptr->flag_is_verified);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_had_definition_note != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_had_definition_note);
+
+ print_int (indent, ptr->flag_had_definition_note);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_reference (int indent, int ptr_uid, struct cb_reference *ptr);
+static void print_struct_cb_reference_ptr (int indent, struct cb_reference *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_reference*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_reference (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cob_statement (int indent, enum cob_statement x){
+ const char *s = NULL;
+ switch (x){
+
+ case STMT_UNKNOWN: s = "STMT_UNKNOWN"; break;
+
+ case STMT_ADD: s = "STMT_ADD"; break;
+
+ case STMT_SUBTRACT: s = "STMT_SUBTRACT"; break;
+
+ case STMT_MULTIPLY: s = "STMT_MULTIPLY"; break;
+
+ case STMT_DIVIDE: s = "STMT_DIVIDE"; break;
+
+ case STMT_COMPUTE: s = "STMT_COMPUTE"; break;
+
+ case STMT_MOVE: s = "STMT_MOVE"; break;
+
+ case STMT_INITIALIZE: s = "STMT_INITIALIZE"; break;
+
+ case STMT_STRING: s = "STMT_STRING"; break;
+
+ case STMT_UNSTRING: s = "STMT_UNSTRING"; break;
+
+ case STMT_INSPECT: s = "STMT_INSPECT"; break;
+
+ case STMT_EXAMINE: s = "STMT_EXAMINE"; break;
+
+ case STMT_VALIDATE: s = "STMT_VALIDATE"; break;
+
+ case STMT_CONTINUE: s = "STMT_CONTINUE"; break;
+
+ case STMT_CONTINUE_AFTER: s = "STMT_CONTINUE_AFTER"; break;
+
+ case STMT_ACCEPT: s = "STMT_ACCEPT"; break;
+
+ case STMT_DISPLAY: s = "STMT_DISPLAY"; break;
+
+ case STMT_EXHIBIT: s = "STMT_EXHIBIT"; break;
+
+ case STMT_STOP: s = "STMT_STOP"; break;
+
+ case STMT_STOP_ERROR: s = "STMT_STOP_ERROR"; break;
+
+ case STMT_DISPLAY_WINDOW: s = "STMT_DISPLAY_WINDOW"; break;
+
+ case STMT_INQUIRE: s = "STMT_INQUIRE"; break;
+
+ case STMT_DESTROY: s = "STMT_DESTROY"; break;
+
+ case STMT_MODIFY: s = "STMT_MODIFY"; break;
+
+ case STMT_CLOSE_WINDOW: s = "STMT_CLOSE_WINDOW"; break;
+
+ case STMT_SEARCH: s = "STMT_SEARCH"; break;
+
+ case STMT_SEARCH_ALL: s = "STMT_SEARCH_ALL"; break;
+
+ case STMT_SEARCH_VARYING: s = "STMT_SEARCH_VARYING"; break;
+
+ case STMT_AT_END: s = "STMT_AT_END"; break;
+
+ case STMT_NEXT_SENTENCE: s = "STMT_NEXT_SENTENCE"; break;
+
+ case STMT_CALL: s = "STMT_CALL"; break;
+
+ case STMT_CANCEL: s = "STMT_CANCEL"; break;
+
+ case STMT_CHAIN: s = "STMT_CHAIN"; break;
+
+ case STMT_GOBACK: s = "STMT_GOBACK"; break;
+
+ case STMT_EXIT_PROGRAM: s = "STMT_EXIT_PROGRAM"; break;
+
+ case STMT_EXIT_FUNCTION: s = "STMT_EXIT_FUNCTION"; break;
+
+ case STMT_STOP_RUN: s = "STMT_STOP_RUN"; break;
+
+ case STMT_STOP_THREAD: s = "STMT_STOP_THREAD"; break;
+
+ case STMT_LOCK_THREAD: s = "STMT_LOCK_THREAD"; break;
+
+ case STMT_WAITH_THREAD: s = "STMT_WAITH_THREAD"; break;
+
+ case STMT_RAISE: s = "STMT_RAISE"; break;
+
+ case STMT_RESUME: s = "STMT_RESUME"; break;
+
+ case STMT_DISABLE: s = "STMT_DISABLE"; break;
+
+ case STMT_ENABLE: s = "STMT_ENABLE"; break;
+
+ case STMT_PURGE: s = "STMT_PURGE"; break;
+
+ case STMT_SEND: s = "STMT_SEND"; break;
+
+ case STMT_RECEIVE: s = "STMT_RECEIVE"; break;
+
+ case STMT_END: s = "STMT_END"; break;
+
+ case STMT_NOTE: s = "STMT_NOTE"; break;
+
+ case STMT_PERFORM: s = "STMT_PERFORM"; break;
+
+ case STMT_UNTIL: s = "STMT_UNTIL"; break;
+
+ case STMT_VARYING: s = "STMT_VARYING"; break;
+
+ case STMT_EXIT_PERFORM: s = "STMT_EXIT_PERFORM"; break;
+
+ case STMT_END_PERFORM: s = "STMT_END_PERFORM"; break;
+
+ case STMT_SET: s = "STMT_SET"; break;
+
+ case STMT_END_SET: s = "STMT_END_SET"; break;
+
+ case STMT_ENTER: s = "STMT_ENTER"; break;
+
+ case STMT_INVOKE: s = "STMT_INVOKE"; break;
+
+ case STMT_END_INVOKE: s = "STMT_END_INVOKE"; break;
+
+ case STMT_ENTRY: s = "STMT_ENTRY"; break;
+
+ case STMT_ENTRY_FOR_GO_TO: s = "STMT_ENTRY_FOR_GO_TO"; break;
+
+ case STMT_GO_TO: s = "STMT_GO_TO"; break;
+
+ case STMT_ALTER: s = "STMT_ALTER"; break;
+
+ case STMT_IF: s = "STMT_IF"; break;
+
+ case STMT_ELSE: s = "STMT_ELSE"; break;
+
+ case STMT_END_IF: s = "STMT_END_IF"; break;
+
+ case STMT_VALUE_THRU: s = "STMT_VALUE_THRU"; break;
+
+ case STMT_EVALUATE: s = "STMT_EVALUATE"; break;
+
+ case STMT_WHEN: s = "STMT_WHEN"; break;
+
+ case STMT_WHEN_OTHER: s = "STMT_WHEN_OTHER"; break;
+
+ case STMT_END_EVALUATE: s = "STMT_END_EVALUATE"; break;
+
+ case STMT_EXECUTE: s = "STMT_EXECUTE"; break;
+
+ case STMT_EXIT: s = "STMT_EXIT"; break;
+
+ case STMT_EXIT_SECTION: s = "STMT_EXIT_SECTION"; break;
+
+ case STMT_EXIT_PARAGRAPH: s = "STMT_EXIT_PARAGRAPH"; break;
+
+ case STMT_EXIT_PERFORM_CYCLE: s = "STMT_EXIT_PERFORM_CYCLE"; break;
+
+ case STMT_OPEN: s = "STMT_OPEN"; break;
+
+ case STMT_REWRITE: s = "STMT_REWRITE"; break;
+
+ case STMT_WRITE: s = "STMT_WRITE"; break;
+
+ case STMT_DELETE: s = "STMT_DELETE"; break;
+
+ case STMT_CLOSE: s = "STMT_CLOSE"; break;
+
+ case STMT_START: s = "STMT_START"; break;
+
+ case STMT_READ: s = "STMT_READ"; break;
+
+ case STMT_UNLOCK: s = "STMT_UNLOCK"; break;
+
+ case STMT_LOCK_FILE: s = "STMT_LOCK_FILE"; break;
+
+ case STMT_DELETE_FILE: s = "STMT_DELETE_FILE"; break;
+
+ case STMT_ROLLBACK: s = "STMT_ROLLBACK"; break;
+
+ case STMT_COMMIT: s = "STMT_COMMIT"; break;
+
+ case STMT_ALLOCATE: s = "STMT_ALLOCATE"; break;
+
+ case STMT_FREE: s = "STMT_FREE"; break;
+
+ case STMT_INITIATE: s = "STMT_INITIATE"; break;
+
+ case STMT_GENERATE: s = "STMT_GENERATE"; break;
+
+ case STMT_TERMINATE: s = "STMT_TERMINATE"; break;
+
+ case STMT_SUPPRESS: s = "STMT_SUPPRESS"; break;
+
+ case STMT_PRESENT_WHEN: s = "STMT_PRESENT_WHEN"; break;
+
+ case STMT_SORT: s = "STMT_SORT"; break;
+
+ case STMT_MERGE: s = "STMT_MERGE"; break;
+
+ case STMT_RELEASE: s = "STMT_RELEASE"; break;
+
+ case STMT_RETURN: s = "STMT_RETURN"; break;
+
+ case STMT_READY_TRACE: s = "STMT_READY_TRACE"; break;
+
+ case STMT_RESET_TRACE: s = "STMT_RESET_TRACE"; break;
+
+ case STMT_OTHERWISE: s = "STMT_OTHERWISE"; break;
+
+ case STMT_RECOVER: s = "STMT_RECOVER"; break;
+
+ case STMT_SERVICE: s = "STMT_SERVICE"; break;
+
+ case STMT_TRANSFORM: s = "STMT_TRANSFORM"; break;
+
+ case STMT_JSON_GENERATE: s = "STMT_JSON_GENERATE"; break;
+
+ case STMT_JSON_PARSE: s = "STMT_JSON_PARSE"; break;
+
+ case STMT_XML_GENERATE: s = "STMT_XML_GENERATE"; break;
+
+ case STMT_XML_PARSE: s = "STMT_XML_PARSE"; break;
+
+ case STMT_INIT_STORAGE: s = "STMT_INIT_STORAGE"; break;
+
+ case STMT_BEFORE_CALL: s = "STMT_BEFORE_CALL"; break;
+
+ case STMT_BEFORE_UDF: s = "STMT_BEFORE_UDF"; break;
+
+ case STMT_MAX_ENTRY: s = "STMT_MAX_ENTRY"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_reference (int indent, int ptr_uid, struct cb_reference *ptr){
+ PRINT_STRUCT_TY("struct cb_reference");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->chain != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,chain);
+
+ if (ptr->chain == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->chain);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->value != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,value);
+
+ if (ptr->value == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->value);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->subs != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,subs);
+
+ if (ptr->subs == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->subs);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->offset != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,offset);
+
+ if (ptr->offset == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->offset);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->length != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,length);
+
+ if (ptr->length == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->length);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->check != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,check);
+
+ if (ptr->check == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->check);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,statement);
+
+ print_enum_cob_statement (indent+2, ptr->statement);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->word != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,word);
+
+ if (ptr->word == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_word_ptr (indent+2, ptr->word);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->section != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,section);
+
+ if (ptr->section == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->section);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->paragraph != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,paragraph);
+
+ if (ptr->paragraph == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->paragraph);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->debug_section != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,debug_section);
+
+ if (ptr->debug_section == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->debug_section);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,hashval);
+
+ print_size_t (indent+2, ptr->hashval);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->flag_receiving != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_receiving);
+
+ print_int (indent, ptr->flag_receiving);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_all != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_all);
+
+ print_int (indent, ptr->flag_all);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_in_decl != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_in_decl);
+
+ print_int (indent, ptr->flag_in_decl);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_alter_code != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_alter_code);
+
+ print_int (indent, ptr->flag_alter_code);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_debug_code != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_debug_code);
+
+ print_int (indent, ptr->flag_debug_code);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_all_debug != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_all_debug);
+
+ print_int (indent, ptr->flag_all_debug);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_target != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_target);
+
+ print_int (indent, ptr->flag_target);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_optional != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_optional);
+
+ print_int (indent, ptr->flag_optional);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_ignored != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_ignored);
+
+ print_int (indent, ptr->flag_ignored);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_filler_ref != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_filler_ref);
+
+ print_int (indent, ptr->flag_filler_ref);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_duped != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_duped);
+
+ print_int (indent, ptr->flag_duped);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_binary_op (int indent, int ptr_uid, struct cb_binary_op *ptr);
+static void print_struct_cb_binary_op_ptr (int indent, struct cb_binary_op *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_binary_op*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_binary_op (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cb_binary_op_op (int indent, enum cb_binary_op_op x){
+ const char *s = NULL;
+ switch (x){
+
+ case BOP_INVALID: s = "BOP_INVALID"; break;
+
+ case BOP_PLUS: s = "BOP_PLUS"; break;
+
+ case BOP_MINUS: s = "BOP_MINUS"; break;
+
+ case BOP_MULT: s = "BOP_MULT"; break;
+
+ case BOP_DIV: s = "BOP_DIV"; break;
+
+ case BOP_POW: s = "BOP_POW"; break;
+
+ case BOP_EQ: s = "BOP_EQ"; break;
+
+ case BOP_GT: s = "BOP_GT"; break;
+
+ case BOP_LT: s = "BOP_LT"; break;
+
+ case BOP_LE: s = "BOP_LE"; break;
+
+ case BOP_GE: s = "BOP_GE"; break;
+
+ case BOP_NE: s = "BOP_NE"; break;
+
+ case BOP_NOT: s = "BOP_NOT"; break;
+
+ case BOP_AND: s = "BOP_AND"; break;
+
+ case BOP_OR: s = "BOP_OR"; break;
+
+ case BOP_PARENS: s = "BOP_PARENS"; break;
+
+ case BOP_BITWISE_NOT: s = "BOP_BITWISE_NOT"; break;
+
+ case BOP_BITWISE_AND: s = "BOP_BITWISE_AND"; break;
+
+ case BOP_BITWISE_OR: s = "BOP_BITWISE_OR"; break;
+
+ case BOP_BITWISE_XOR: s = "BOP_BITWISE_XOR"; break;
+
+ case BOP_SHIFT_L: s = "BOP_SHIFT_L"; break;
+
+ case BOP_SHIFT_R: s = "BOP_SHIFT_R"; break;
+
+ case BOP_SHIFT_LC: s = "BOP_SHIFT_LC"; break;
+
+ case BOP_SHIFT_RC: s = "BOP_SHIFT_RC"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_enum_cb_binary_op_flag (int indent, enum cb_binary_op_flag x){
+ const char *s = NULL;
+ switch (x){
+
+ case BOP_RESOLVE_AS_INTEGER: s = "BOP_RESOLVE_AS_INTEGER"; break;
+
+ case BOP_OPERANDS_SWAPPED: s = "BOP_OPERANDS_SWAPPED"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_binary_op (int indent, int ptr_uid, struct cb_binary_op *ptr){
+ PRINT_STRUCT_TY("struct cb_binary_op");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->x != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,x);
+
+ if (ptr->x == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->x);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->y != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,y);
+
+ if (ptr->y == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->y);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,op);
+
+ print_enum_cb_binary_op_op (indent+2, ptr->op);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag);
+
+ print_enum_cb_binary_op_flag (indent+2, ptr->flag);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_funcall (int indent, int ptr_uid, struct cb_funcall *ptr);
+static void print_struct_cb_funcall_ptr (int indent, struct cb_funcall *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_funcall*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_funcall (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_funcall (int indent, int ptr_uid, struct cb_funcall *ptr){
+ PRINT_STRUCT_TY("struct cb_funcall");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->argv != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,argv);
+
+ PRINT_ARRAY_BEGIN(indent);
+ {
+ int i;
+ for (i=0; i<14; i++){
+ if (i>0){
+ PRINT_ARRAY_SEP(indent);
+ }
+
+ if (ptr->argv[i] == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->argv[i]);
+ }
+
+ }
+ }
+ PRINT_ARRAY_END(indent);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->argc != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,argc);
+
+ print_int (indent+2, ptr->argc);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->varcnt != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,varcnt);
+
+ print_int (indent+2, ptr->varcnt);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->screenptr != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,screenptr);
+
+ print_uint (indent+2, ptr->screenptr);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->nolitcast != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,nolitcast);
+
+ print_uint (indent+2, ptr->nolitcast);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_cast (int indent, int ptr_uid, struct cb_cast *ptr);
+static void print_struct_cb_cast_ptr (int indent, struct cb_cast *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_cast*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_cast (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cb_cast_type (int indent, enum cb_cast_type x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_CAST_INTEGER: s = "CB_CAST_INTEGER"; break;
+
+ case CB_CAST_NEGATIVE_INTEGER: s = "CB_CAST_NEGATIVE_INTEGER"; break;
+
+ case CB_CAST_LONG_INT: s = "CB_CAST_LONG_INT"; break;
+
+ case CB_CAST_NEGATIVE_LONG_INT: s = "CB_CAST_NEGATIVE_LONG_INT"; break;
+
+ case CB_CAST_ADDRESS: s = "CB_CAST_ADDRESS"; break;
+
+ case CB_CAST_ADDR_OF_ADDR: s = "CB_CAST_ADDR_OF_ADDR"; break;
+
+ case CB_CAST_LENGTH: s = "CB_CAST_LENGTH"; break;
+
+ case CB_CAST_PROGRAM_POINTER: s = "CB_CAST_PROGRAM_POINTER"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_cast (int indent, int ptr_uid, struct cb_cast *ptr){
+ PRINT_STRUCT_TY("struct cb_cast");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->val != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,val);
+
+ if (ptr->val == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->val);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cast_type);
+
+ print_enum_cb_cast_type (indent+2, ptr->cast_type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_intrinsic (int indent, int ptr_uid, struct cb_intrinsic *ptr);
+static void print_struct_cb_intrinsic_ptr (int indent, struct cb_intrinsic *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_intrinsic*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_intrinsic (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_intrinsic_table (int indent, int ptr_uid, struct cb_intrinsic_table *ptr);
+static void print_struct_cb_intrinsic_table_ptr (int indent, struct cb_intrinsic_table *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_intrinsic_table*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_intrinsic_table (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cb_intr_enum (int indent, enum cb_intr_enum x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_INTR_ABS: s = "CB_INTR_ABS"; break;
+
+ case CB_INTR_ACOS: s = "CB_INTR_ACOS"; break;
+
+ case CB_INTR_ANNUITY: s = "CB_INTR_ANNUITY"; break;
+
+ case CB_INTR_ASIN: s = "CB_INTR_ASIN"; break;
+
+ case CB_INTR_ATAN: s = "CB_INTR_ATAN"; break;
+
+ case CB_INTR_BASECONVERT: s = "CB_INTR_BASECONVERT"; break;
+
+ case CB_INTR_BIT_OF: s = "CB_INTR_BIT_OF"; break;
+
+ case CB_INTR_BIT_TO_CHAR: s = "CB_INTR_BIT_TO_CHAR"; break;
+
+ case CB_INTR_BOOLEAN_OF_INTEGER: s = "CB_INTR_BOOLEAN_OF_INTEGER"; break;
+
+ case CB_INTR_BYTE_LENGTH: s = "CB_INTR_BYTE_LENGTH"; break;
+
+ case CB_INTR_CHAR: s = "CB_INTR_CHAR"; break;
+
+ case CB_INTR_CHAR_NATIONAL: s = "CB_INTR_CHAR_NATIONAL"; break;
+
+ case CB_INTR_COMBINED_DATETIME: s = "CB_INTR_COMBINED_DATETIME"; break;
+
+ case CB_INTR_CONCATENATE: s = "CB_INTR_CONCATENATE"; break;
+
+ case CB_INTR_CONTENT_LENGTH: s = "CB_INTR_CONTENT_LENGTH"; break;
+
+ case CB_INTR_CONTENT_OF: s = "CB_INTR_CONTENT_OF"; break;
+
+ case CB_INTR_CONVERT: s = "CB_INTR_CONVERT"; break;
+
+ case CB_INTR_COS: s = "CB_INTR_COS"; break;
+
+ case CB_INTR_CURRENCY_SYMBOL: s = "CB_INTR_CURRENCY_SYMBOL"; break;
+
+ case CB_INTR_CURRENT_DATE: s = "CB_INTR_CURRENT_DATE"; break;
+
+ case CB_INTR_DATE_OF_INTEGER: s = "CB_INTR_DATE_OF_INTEGER"; break;
+
+ case CB_INTR_DATE_TO_YYYYMMDD: s = "CB_INTR_DATE_TO_YYYYMMDD"; break;
+
+ case CB_INTR_DAY_OF_INTEGER: s = "CB_INTR_DAY_OF_INTEGER"; break;
+
+ case CB_INTR_DAY_TO_YYYYDDD: s = "CB_INTR_DAY_TO_YYYYDDD"; break;
+
+ case CB_INTR_DISPLAY_OF: s = "CB_INTR_DISPLAY_OF"; break;
+
+ case CB_INTR_E: s = "CB_INTR_E"; break;
+
+ case CB_INTR_EXCEPTION_FILE: s = "CB_INTR_EXCEPTION_FILE"; break;
+
+ case CB_INTR_EXCEPTION_FILE_N: s = "CB_INTR_EXCEPTION_FILE_N"; break;
+
+ case CB_INTR_EXCEPTION_LOCATION: s = "CB_INTR_EXCEPTION_LOCATION"; break;
+
+ case CB_INTR_EXCEPTION_LOCATION_N: s = "CB_INTR_EXCEPTION_LOCATION_N"; break;
+
+ case CB_INTR_EXCEPTION_STATEMENT: s = "CB_INTR_EXCEPTION_STATEMENT"; break;
+
+ case CB_INTR_EXCEPTION_STATUS: s = "CB_INTR_EXCEPTION_STATUS"; break;
+
+ case CB_INTR_EXP: s = "CB_INTR_EXP"; break;
+
+ case CB_INTR_EXP10: s = "CB_INTR_EXP10"; break;
+
+ case CB_INTR_FACTORIAL: s = "CB_INTR_FACTORIAL"; break;
+
+ case CB_INTR_FIND_STRING: s = "CB_INTR_FIND_STRING"; break;
+
+ case CB_INTR_FORMATTED_CURRENT_DATE: s = "CB_INTR_FORMATTED_CURRENT_DATE"; break;
+
+ case CB_INTR_FORMATTED_DATE: s = "CB_INTR_FORMATTED_DATE"; break;
+
+ case CB_INTR_FORMATTED_DATETIME: s = "CB_INTR_FORMATTED_DATETIME"; break;
+
+ case CB_INTR_FORMATTED_TIME: s = "CB_INTR_FORMATTED_TIME"; break;
+
+ case CB_INTR_FRACTION_PART: s = "CB_INTR_FRACTION_PART"; break;
+
+ case CB_INTR_HEX_OF: s = "CB_INTR_HEX_OF"; break;
+
+ case CB_INTR_HEX_TO_CHAR: s = "CB_INTR_HEX_TO_CHAR"; break;
+
+ case CB_INTR_HIGHEST_ALGEBRAIC: s = "CB_INTR_HIGHEST_ALGEBRAIC"; break;
+
+ case CB_INTR_INTEGER: s = "CB_INTR_INTEGER"; break;
+
+ case CB_INTR_INTEGER_OF_BOOLEAN: s = "CB_INTR_INTEGER_OF_BOOLEAN"; break;
+
+ case CB_INTR_INTEGER_OF_DATE: s = "CB_INTR_INTEGER_OF_DATE"; break;
+
+ case CB_INTR_INTEGER_OF_DAY: s = "CB_INTR_INTEGER_OF_DAY"; break;
+
+ case CB_INTR_INTEGER_OF_FORMATTED_DATE: s = "CB_INTR_INTEGER_OF_FORMATTED_DATE"; break;
+
+ case CB_INTR_INTEGER_PART: s = "CB_INTR_INTEGER_PART"; break;
+
+ case CB_INTR_LENGTH: s = "CB_INTR_LENGTH"; break;
+
+ case CB_INTR_LOCALE_COMPARE: s = "CB_INTR_LOCALE_COMPARE"; break;
+
+ case CB_INTR_LOCALE_DATE: s = "CB_INTR_LOCALE_DATE"; break;
+
+ case CB_INTR_LOCALE_TIME: s = "CB_INTR_LOCALE_TIME"; break;
+
+ case CB_INTR_LOCALE_TIME_FROM_SECS: s = "CB_INTR_LOCALE_TIME_FROM_SECS"; break;
+
+ case CB_INTR_LOG: s = "CB_INTR_LOG"; break;
+
+ case CB_INTR_LOG10: s = "CB_INTR_LOG10"; break;
+
+ case CB_INTR_LOWER_CASE: s = "CB_INTR_LOWER_CASE"; break;
+
+ case CB_INTR_LOWEST_ALGEBRAIC: s = "CB_INTR_LOWEST_ALGEBRAIC"; break;
+
+ case CB_INTR_MAX: s = "CB_INTR_MAX"; break;
+
+ case CB_INTR_MEAN: s = "CB_INTR_MEAN"; break;
+
+ case CB_INTR_MEDIAN: s = "CB_INTR_MEDIAN"; break;
+
+ case CB_INTR_MIDRANGE: s = "CB_INTR_MIDRANGE"; break;
+
+ case CB_INTR_MIN: s = "CB_INTR_MIN"; break;
+
+ case CB_INTR_MOD: s = "CB_INTR_MOD"; break;
+
+ case CB_INTR_MODULE_CALLER_ID: s = "CB_INTR_MODULE_CALLER_ID"; break;
+
+ case CB_INTR_MODULE_DATE: s = "CB_INTR_MODULE_DATE"; break;
+
+ case CB_INTR_MODULE_FORMATTED_DATE: s = "CB_INTR_MODULE_FORMATTED_DATE"; break;
+
+ case CB_INTR_MODULE_ID: s = "CB_INTR_MODULE_ID"; break;
+
+ case CB_INTR_MODULE_NAME: s = "CB_INTR_MODULE_NAME"; break;
+
+ case CB_INTR_MODULE_PATH: s = "CB_INTR_MODULE_PATH"; break;
+
+ case CB_INTR_MODULE_SOURCE: s = "CB_INTR_MODULE_SOURCE"; break;
+
+ case CB_INTR_MODULE_TIME: s = "CB_INTR_MODULE_TIME"; break;
+
+ case CB_INTR_MON_DECIMAL_POINT: s = "CB_INTR_MON_DECIMAL_POINT"; break;
+
+ case CB_INTR_MON_THOUSANDS_SEP: s = "CB_INTR_MON_THOUSANDS_SEP"; break;
+
+ case CB_INTR_NATIONAL_OF: s = "CB_INTR_NATIONAL_OF"; break;
+
+ case CB_INTR_NUM_DECIMAL_POINT: s = "CB_INTR_NUM_DECIMAL_POINT"; break;
+
+ case CB_INTR_NUM_THOUSANDS_SEP: s = "CB_INTR_NUM_THOUSANDS_SEP"; break;
+
+ case CB_INTR_NUMVAL: s = "CB_INTR_NUMVAL"; break;
+
+ case CB_INTR_NUMVAL_C: s = "CB_INTR_NUMVAL_C"; break;
+
+ case CB_INTR_NUMVAL_F: s = "CB_INTR_NUMVAL_F"; break;
+
+ case CB_INTR_ORD: s = "CB_INTR_ORD"; break;
+
+ case CB_INTR_ORD_MAX: s = "CB_INTR_ORD_MAX"; break;
+
+ case CB_INTR_ORD_MIN: s = "CB_INTR_ORD_MIN"; break;
+
+ case CB_INTR_PI: s = "CB_INTR_PI"; break;
+
+ case CB_INTR_PRESENT_VALUE: s = "CB_INTR_PRESENT_VALUE"; break;
+
+ case CB_INTR_RANDOM: s = "CB_INTR_RANDOM"; break;
+
+ case CB_INTR_RANGE: s = "CB_INTR_RANGE"; break;
+
+ case CB_INTR_REM: s = "CB_INTR_REM"; break;
+
+ case CB_INTR_REVERSE: s = "CB_INTR_REVERSE"; break;
+
+ case CB_INTR_SECONDS_FROM_FORMATTED_TIME: s = "CB_INTR_SECONDS_FROM_FORMATTED_TIME"; break;
+
+ case CB_INTR_SECONDS_PAST_MIDNIGHT: s = "CB_INTR_SECONDS_PAST_MIDNIGHT"; break;
+
+ case CB_INTR_SIGN: s = "CB_INTR_SIGN"; break;
+
+ case CB_INTR_SIN: s = "CB_INTR_SIN"; break;
+
+ case CB_INTR_SQRT: s = "CB_INTR_SQRT"; break;
+
+ case CB_INTR_STANDARD_COMPARE: s = "CB_INTR_STANDARD_COMPARE"; break;
+
+ case CB_INTR_STANDARD_DEVIATION: s = "CB_INTR_STANDARD_DEVIATION"; break;
+
+ case CB_INTR_STORED_CHAR_LENGTH: s = "CB_INTR_STORED_CHAR_LENGTH"; break;
+
+ case CB_INTR_SUBSTITUTE: s = "CB_INTR_SUBSTITUTE"; break;
+
+ case CB_INTR_SUBSTITUTE_CASE: s = "CB_INTR_SUBSTITUTE_CASE"; break;
+
+ case CB_INTR_SUM: s = "CB_INTR_SUM"; break;
+
+ case CB_INTR_TAN: s = "CB_INTR_TAN"; break;
+
+ case CB_INTR_TEST_DATE_YYYYMMDD: s = "CB_INTR_TEST_DATE_YYYYMMDD"; break;
+
+ case CB_INTR_TEST_DAY_YYYYDDD: s = "CB_INTR_TEST_DAY_YYYYDDD"; break;
+
+ case CB_INTR_TEST_FORMATTED_DATETIME: s = "CB_INTR_TEST_FORMATTED_DATETIME"; break;
+
+ case CB_INTR_TEST_NUMVAL: s = "CB_INTR_TEST_NUMVAL"; break;
+
+ case CB_INTR_TEST_NUMVAL_C: s = "CB_INTR_TEST_NUMVAL_C"; break;
+
+ case CB_INTR_TEST_NUMVAL_F: s = "CB_INTR_TEST_NUMVAL_F"; break;
+
+ case CB_INTR_TRIM: s = "CB_INTR_TRIM"; break;
+
+ case CB_INTR_UPPER_CASE: s = "CB_INTR_UPPER_CASE"; break;
+
+ case CB_INTR_USER_FUNCTION: s = "CB_INTR_USER_FUNCTION"; break;
+
+ case CB_INTR_VARIANCE: s = "CB_INTR_VARIANCE"; break;
+
+ case CB_INTR_WHEN_COMPILED: s = "CB_INTR_WHEN_COMPILED"; break;
+
+ case CB_INTR_YEAR_TO_YYYY: s = "CB_INTR_YEAR_TO_YYYY"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_enum_cb_feature_mode (int indent, enum cb_feature_mode x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_FEATURE_ACTIVE: s = "CB_FEATURE_ACTIVE"; break;
+
+ case CB_FEATURE_DISABLED: s = "CB_FEATURE_DISABLED"; break;
+
+ case CB_FEATURE_MUST_BE_ENABLED: s = "CB_FEATURE_MUST_BE_ENABLED"; break;
+
+ case CB_FEATURE_NOT_IMPLEMENTED: s = "CB_FEATURE_NOT_IMPLEMENTED"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_intrinsic_table (int indent, int ptr_uid, struct cb_intrinsic_table *ptr){
+ PRINT_STRUCT_TY("struct cb_intrinsic_table");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->intr_routine != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,intr_routine);
+
+ print_char_ptr (indent+2, ptr->intr_routine);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,intr_enum);
+
+ print_enum_cb_intr_enum (indent+2, ptr->intr_enum);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->token != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,token);
+
+ print_int (indent+2, ptr->token);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,active);
+
+ print_enum_cb_feature_mode (indent+2, ptr->active);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->args != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,args);
+
+ print_int (indent+2, ptr->args);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->min_args != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,min_args);
+
+ print_int (indent+2, ptr->min_args);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,category);
+
+ print_enum_cb_category (indent+2, ptr->category);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->refmod != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,refmod);
+
+ print_uint (indent+2, ptr->refmod);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_intrinsic (int indent, int ptr_uid, struct cb_intrinsic *ptr){
+ PRINT_STRUCT_TY("struct cb_intrinsic");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ if (ptr->name == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->name);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->args != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,args);
+
+ if (ptr->args == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->args);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->intr_field != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,intr_field);
+
+ if (ptr->intr_field == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->intr_field);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->intr_tab != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,intr_tab);
+
+ if (ptr->intr_tab == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_intrinsic_table_ptr (indent+2, ptr->intr_tab);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->offset != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,offset);
+
+ if (ptr->offset == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->offset);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->length != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,length);
+
+ if (ptr->length == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->length);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->isuser != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,isuser);
+
+ print_int (indent+2, ptr->isuser);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_assign (int indent, int ptr_uid, struct cb_assign *ptr);
+static void print_struct_cb_assign_ptr (int indent, struct cb_assign *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_assign*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_assign (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_assign (int indent, int ptr_uid, struct cb_assign *ptr){
+ PRINT_STRUCT_TY("struct cb_assign");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->var != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,var);
+
+ if (ptr->var == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->var);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->val != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,val);
+
+ if (ptr->val == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->val);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_initialize (int indent, int ptr_uid, struct cb_initialize *ptr);
+static void print_struct_cb_initialize_ptr (int indent, struct cb_initialize *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_initialize*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_initialize (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_initialize (int indent, int ptr_uid, struct cb_initialize *ptr){
+ PRINT_STRUCT_TY("struct cb_initialize");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->var != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,var);
+
+ if (ptr->var == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->var);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->val != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,val);
+
+ if (ptr->val == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->val);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->rep != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,rep);
+
+ if (ptr->rep == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->rep);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,statement);
+
+ print_enum_cob_statement (indent+2, ptr->statement);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->flag_default != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_default);
+
+ print_uchar (indent+2, ptr->flag_default);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_no_filler_init != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_no_filler_init);
+
+ print_uchar (indent+2, ptr->flag_no_filler_init);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->padding != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,padding);
+
+ print_uchar (indent+2, ptr->padding);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_search (int indent, int ptr_uid, struct cb_search *ptr);
+static void print_struct_cb_search_ptr (int indent, struct cb_search *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_search*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_search (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_search (int indent, int ptr_uid, struct cb_search *ptr){
+ PRINT_STRUCT_TY("struct cb_search");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->table != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,table);
+
+ if (ptr->table == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->table);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->var != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,var);
+
+ if (ptr->var == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->var);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->at_end != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,at_end);
+
+ if (ptr->at_end == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->at_end);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->whens != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,whens);
+
+ if (ptr->whens == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->whens);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_all != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_all);
+
+ print_int (indent+2, ptr->flag_all);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_call (int indent, int ptr_uid, struct cb_call *ptr);
+static void print_struct_cb_call_ptr (int indent, struct cb_call *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_call*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_call (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_call (int indent, int ptr_uid, struct cb_call *ptr){
+ PRINT_STRUCT_TY("struct cb_call");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ if (ptr->name == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->name);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->args != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,args);
+
+ if (ptr->args == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->args);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->stmt1 != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,stmt1);
+
+ if (ptr->stmt1 == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->stmt1);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->stmt2 != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,stmt2);
+
+ if (ptr->stmt2 == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->stmt2);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->call_returning != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,call_returning);
+
+ if (ptr->call_returning == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->call_returning);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->is_system != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,is_system);
+
+ print_uint (indent+2, ptr->is_system);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->convention != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,convention);
+
+ print_int (indent+2, ptr->convention);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_goto (int indent, int ptr_uid, struct cb_goto *ptr);
+static void print_struct_cb_goto_ptr (int indent, struct cb_goto *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_goto*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_goto (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_goto (int indent, int ptr_uid, struct cb_goto *ptr){
+ PRINT_STRUCT_TY("struct cb_goto");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->target != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,target);
+
+ if (ptr->target == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->target);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->depending != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,depending);
+
+ if (ptr->depending == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->depending);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flags != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flags);
+
+ print_int (indent+2, ptr->flags);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_if (int indent, int ptr_uid, struct cb_if *ptr);
+static void print_struct_cb_if_ptr (int indent, struct cb_if *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_if*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_if (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_if (int indent, int ptr_uid, struct cb_if *ptr){
+ PRINT_STRUCT_TY("struct cb_if");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->test != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,test);
+
+ if (ptr->test == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->test);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->stmt1 != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,stmt1);
+
+ if (ptr->stmt1 == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->stmt1);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->stmt2 != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,stmt2);
+
+ if (ptr->stmt2 == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->stmt2);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,statement);
+
+ print_enum_cob_statement (indent+2, ptr->statement);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_perform (int indent, int ptr_uid, struct cb_perform *ptr);
+static void print_struct_cb_perform_ptr (int indent, struct cb_perform *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_perform*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_perform (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cb_perform_type (int indent, enum cb_perform_type x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_PERFORM_EXIT: s = "CB_PERFORM_EXIT"; break;
+
+ case CB_PERFORM_ONCE: s = "CB_PERFORM_ONCE"; break;
+
+ case CB_PERFORM_TIMES: s = "CB_PERFORM_TIMES"; break;
+
+ case CB_PERFORM_UNTIL: s = "CB_PERFORM_UNTIL"; break;
+
+ case CB_PERFORM_FOREVER: s = "CB_PERFORM_FOREVER"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_perform (int indent, int ptr_uid, struct cb_perform *ptr){
+ PRINT_STRUCT_TY("struct cb_perform");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->test != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,test);
+
+ if (ptr->test == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->test);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->body != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,body);
+
+ if (ptr->body == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->body);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->data != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,data);
+
+ if (ptr->data == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->data);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->varying != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,varying);
+
+ if (ptr->varying == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->varying);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->exit_label != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,exit_label);
+
+ if (ptr->exit_label == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->exit_label);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cycle_label != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cycle_label);
+
+ if (ptr->cycle_label == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->cycle_label);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,perform_type);
+
+ print_enum_cb_perform_type (indent+2, ptr->perform_type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_statement (int indent, int ptr_uid, struct cb_statement *ptr);
+static void print_struct_cb_statement_ptr (int indent, struct cb_statement *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_statement*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_statement (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_attr_struct (int indent, int ptr_uid, struct cb_attr_struct *ptr);
+static void print_struct_cb_attr_struct_ptr (int indent, struct cb_attr_struct *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_attr_struct*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_attr_struct (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_attr_struct (int indent, int ptr_uid, struct cb_attr_struct *ptr){
+ PRINT_STRUCT_TY("struct cb_attr_struct");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ if( print_zero_fields || ptr->fgc != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,fgc);
+
+ if (ptr->fgc == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->fgc);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->bgc != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,bgc);
+
+ if (ptr->bgc == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->bgc);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->scroll != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,scroll);
+
+ if (ptr->scroll == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->scroll);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->timeout != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,timeout);
+
+ if (ptr->timeout == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->timeout);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->prompt != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,prompt);
+
+ if (ptr->prompt == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->prompt);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->size_is != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,size_is);
+
+ if (ptr->size_is == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->size_is);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->control != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,control);
+
+ if (ptr->control == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->control);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->color != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,color);
+
+ if (ptr->color == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->color);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->cursor != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,cursor);
+
+ if (ptr->cursor == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->cursor);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->dispattrs != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,dispattrs);
+
+ print_long_long_ptr0 (indent+2, ptr->dispattrs);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_enum_cb_handler_type (int indent, enum cb_handler_type x){
+ const char *s = NULL;
+ switch (x){
+
+ case NO_HANDLER: s = "NO_HANDLER"; break;
+
+ case DISPLAY_HANDLER: s = "DISPLAY_HANDLER"; break;
+
+ case ACCEPT_HANDLER: s = "ACCEPT_HANDLER"; break;
+
+ case SIZE_ERROR_HANDLER: s = "SIZE_ERROR_HANDLER"; break;
+
+ case OVERFLOW_HANDLER: s = "OVERFLOW_HANDLER"; break;
+
+ case AT_END_HANDLER: s = "AT_END_HANDLER"; break;
+
+ case EOP_HANDLER: s = "EOP_HANDLER"; break;
+
+ case INVALID_KEY_HANDLER: s = "INVALID_KEY_HANDLER"; break;
+
+ case XML_HANDLER: s = "XML_HANDLER"; break;
+
+ case JSON_HANDLER: s = "JSON_HANDLER"; break;
+
+ case MCS_HANDLER: s = "MCS_HANDLER"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_statement (int indent, int ptr_uid, struct cb_statement *ptr){
+ PRINT_STRUCT_TY("struct cb_statement");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,statement);
+
+ print_enum_cob_statement (indent+2, ptr->statement);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->body != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,body);
+
+ if (ptr->body == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->body);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->file != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,file);
+
+ if (ptr->file == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->file);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->ex_handler != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,ex_handler);
+
+ if (ptr->ex_handler == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->ex_handler);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->not_ex_handler != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,not_ex_handler);
+
+ if (ptr->not_ex_handler == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->not_ex_handler);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->handler3 != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,handler3);
+
+ if (ptr->handler3 == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->handler3);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->null_check != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,null_check);
+
+ if (ptr->null_check == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->null_check);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->debug_check != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,debug_check);
+
+ if (ptr->debug_check == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->debug_check);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->debug_nodups != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,debug_nodups);
+
+ if (ptr->debug_nodups == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->debug_nodups);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->attr_ptr != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,attr_ptr);
+
+ if (ptr->attr_ptr == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_attr_struct_ptr (indent+2, ptr->attr_ptr);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,handler_type);
+
+ print_enum_cb_handler_type (indent+2, ptr->handler_type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->flag_no_based != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_no_based);
+
+ print_int (indent, ptr->flag_no_based);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_in_debug != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_in_debug);
+
+ print_int (indent, ptr->flag_in_debug);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_callback != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_callback);
+
+ print_int (indent, ptr->flag_callback);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_implicit != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_implicit);
+
+ print_int (indent, ptr->flag_implicit);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_continue (int indent, int ptr_uid, struct cb_continue *ptr);
+static void print_struct_cb_continue_ptr (int indent, struct cb_continue *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_continue*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_continue (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_continue (int indent, int ptr_uid, struct cb_continue *ptr){
+ PRINT_STRUCT_TY("struct cb_continue");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_cancel (int indent, int ptr_uid, struct cb_cancel *ptr);
+static void print_struct_cb_cancel_ptr (int indent, struct cb_cancel *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_cancel*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_cancel (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_cancel (int indent, int ptr_uid, struct cb_cancel *ptr){
+ PRINT_STRUCT_TY("struct cb_cancel");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->target != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,target);
+
+ if (ptr->target == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->target);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_alter (int indent, int ptr_uid, struct cb_alter *ptr);
+static void print_struct_cb_alter_ptr (int indent, struct cb_alter *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_alter*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_alter (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_alter (int indent, int ptr_uid, struct cb_alter *ptr){
+ PRINT_STRUCT_TY("struct cb_alter");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->source != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,source);
+
+ if (ptr->source == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->source);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->target != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,target);
+
+ if (ptr->target == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->target);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_set_attr (int indent, int ptr_uid, struct cb_set_attr *ptr);
+static void print_struct_cb_set_attr_ptr (int indent, struct cb_set_attr *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_set_attr*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_set_attr (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_set_attr (int indent, int ptr_uid, struct cb_set_attr *ptr){
+ PRINT_STRUCT_TY("struct cb_set_attr");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->fld != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,fld);
+
+ if (ptr->fld == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_field_ptr (indent+2, ptr->fld);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->val_on != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,val_on);
+
+ print_long_long_ptr0 (indent+2, ptr->val_on);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->val_off != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,val_off);
+
+ print_long_long_ptr0 (indent+2, ptr->val_off);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_xml_parse (int indent, int ptr_uid, struct cb_xml_parse *ptr);
+static void print_struct_cb_xml_parse_ptr (int indent, struct cb_xml_parse *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_xml_parse*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_xml_parse (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_xml_parse (int indent, int ptr_uid, struct cb_xml_parse *ptr){
+ PRINT_STRUCT_TY("struct cb_xml_parse");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->data != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,data);
+
+ if (ptr->data == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->data);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->proc != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,proc);
+
+ if (ptr->proc == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->proc);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->encoding != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,encoding);
+
+ if (ptr->encoding == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->encoding);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->validating != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,validating);
+
+ if (ptr->validating == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->validating);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->returning_national != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,returning_national);
+
+ print_int (indent+2, ptr->returning_national);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_perform_varying (int indent, int ptr_uid, struct cb_perform_varying *ptr);
+static void print_struct_cb_perform_varying_ptr (int indent, struct cb_perform_varying *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_perform_varying*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_perform_varying (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_perform_varying (int indent, int ptr_uid, struct cb_perform_varying *ptr){
+ PRINT_STRUCT_TY("struct cb_perform_varying");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ if (ptr->name == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->name);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->from != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,from);
+
+ if (ptr->from == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->from);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->step != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,step);
+
+ if (ptr->step == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->step);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->until != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,until);
+
+ if (ptr->until == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->until);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_direct (int indent, int ptr_uid, struct cb_direct *ptr);
+static void print_struct_cb_direct_ptr (int indent, struct cb_direct *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_direct*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_direct (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_direct (int indent, int ptr_uid, struct cb_direct *ptr){
+ PRINT_STRUCT_TY("struct cb_direct");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->line != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,line);
+
+ print_char_ptr (indent+2, ptr->line);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_is_direct != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_is_direct);
+
+ print_uint (indent+2, ptr->flag_is_direct);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->flag_new_line != 0 ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,flag_new_line);
+
+ print_uint (indent+2, ptr->flag_new_line);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_debug (int indent, int ptr_uid, struct cb_debug *ptr);
+static void print_struct_cb_debug_ptr (int indent, struct cb_debug *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_debug*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_debug (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_debug (int indent, int ptr_uid, struct cb_debug *ptr){
+ PRINT_STRUCT_TY("struct cb_debug");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->target != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,target);
+
+ if (ptr->target == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->target);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->value != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,value);
+
+ print_char_ptr (indent+2, ptr->value);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->fld != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,fld);
+
+ if (ptr->fld == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->fld);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,size);
+
+ print_size_t (indent+2, ptr->size);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_debug_call (int indent, int ptr_uid, struct cb_debug_call *ptr);
+static void print_struct_cb_debug_call_ptr (int indent, struct cb_debug_call *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_debug_call*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_debug_call (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_debug_call (int indent, int ptr_uid, struct cb_debug_call *ptr){
+ PRINT_STRUCT_TY("struct cb_debug_call");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->target != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,target);
+
+ if (ptr->target == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_label_ptr (indent+2, ptr->target);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_prototype (int indent, int ptr_uid, struct cb_prototype *ptr);
+static void print_struct_cb_prototype_ptr (int indent, struct cb_prototype *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_prototype*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_prototype (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_prototype (int indent, int ptr_uid, struct cb_prototype *ptr){
+ PRINT_STRUCT_TY("struct cb_prototype");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,name);
+
+ print_char_ptr (indent+2, ptr->name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->ext_name != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,ext_name);
+
+ print_char_ptr (indent+2, ptr->ext_name);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,type);
+
+ print_enum_cob_module_type (indent+2, ptr->type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_ml_suppress_clause (int indent, int ptr_uid, struct cb_ml_suppress_clause *ptr);
+static void print_struct_cb_ml_suppress_clause_ptr (int indent, struct cb_ml_suppress_clause *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_ml_suppress_clause*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_ml_suppress_clause (indent, ptr_uid, ptr);
+}
+
+static void print_enum_cb_ml_suppress_target (int indent, enum cb_ml_suppress_target x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_ML_SUPPRESS_IDENTIFIER: s = "CB_ML_SUPPRESS_IDENTIFIER"; break;
+
+ case CB_ML_SUPPRESS_ALL: s = "CB_ML_SUPPRESS_ALL"; break;
+
+ case CB_ML_SUPPRESS_TYPE: s = "CB_ML_SUPPRESS_TYPE"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_enum_cb_ml_suppress_category (int indent, enum cb_ml_suppress_category x){
+ const char *s = NULL;
+ switch (x){
+
+ case CB_ML_SUPPRESS_CAT_NUMERIC: s = "CB_ML_SUPPRESS_CAT_NUMERIC"; break;
+
+ case CB_ML_SUPPRESS_CAT_NONNUMERIC: s = "CB_ML_SUPPRESS_CAT_NONNUMERIC"; break;
+
+ case CB_ML_SUPPRESS_CAT_ANY: s = "CB_ML_SUPPRESS_CAT_ANY"; break;
+
+ }
+ if ( s == NULL ){
+ PRINT_ENUM_UNKNOWN(indent, ty, x);
+ } else {
+ PRINT_ENUM(indent,ty,s);
+ }
+}
+
+static void print_struct_cb_ml_suppress_clause (int indent, int ptr_uid, struct cb_ml_suppress_clause *ptr){
+ PRINT_STRUCT_TY("struct cb_ml_suppress_clause");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,target);
+
+ print_enum_cb_ml_suppress_target (indent+2, ptr->target);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->identifier != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,identifier);
+
+ if (ptr->identifier == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->identifier);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->when_list != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,when_list);
+
+ if (ptr->when_list == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->when_list);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,ml_type);
+
+ print_enum_cb_ml_type (indent+2, ptr->ml_type);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,category);
+
+ print_enum_cb_ml_suppress_category (indent+2, ptr->category);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_ml_suppress_checks (int indent, int ptr_uid, struct cb_ml_suppress_checks *ptr);
+static void print_struct_cb_ml_suppress_checks_ptr (int indent, struct cb_ml_suppress_checks *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_ml_suppress_checks*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_ml_suppress_checks (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_ml_suppress_checks (int indent, int ptr_uid, struct cb_ml_suppress_checks *ptr){
+ PRINT_STRUCT_TY("struct cb_ml_suppress_checks");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->tree != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,tree);
+
+ if (ptr->tree == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_ml_generate_tree_ptr (indent+2, ptr->tree);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_vary (int indent, int ptr_uid, struct cb_vary *ptr);
+static void print_struct_cb_vary_ptr (int indent, struct cb_vary *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_vary*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_vary (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_vary (int indent, int ptr_uid, struct cb_vary *ptr){
+ PRINT_STRUCT_TY("struct cb_vary");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->var != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,var);
+
+ if (ptr->var == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->var);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->from != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,from);
+
+ if (ptr->from == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->from);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->by != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,by);
+
+ if (ptr->by == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->by);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+static void print_struct_cb_table_values (int indent, int ptr_uid, struct cb_table_values *ptr);
+static void print_struct_cb_table_values_ptr (int indent, struct cb_table_values *ptr){
+ int ptr_uid ;
+ PRINT_STRUCT_PTR_TY("struct cb_table_values*");
+ if (ptr == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ ptr_uid = is_known_ptr (ptr);
+ if (ptr_uid < 0 ){
+ ptr_uid = -ptr_uid;
+ PRINT_STRUCT_KNOWN(indent, ty, ptr_uid);
+ return;
+ }
+ print_struct_cb_table_values (indent, ptr_uid, ptr);
+}
+
+static void print_struct_cb_table_values (int indent, int ptr_uid, struct cb_table_values *ptr){
+ PRINT_STRUCT_TY("struct cb_table_values");
+ PRINT_STRUCT_BEGIN(indent, ty, ptr_uid);
+ indent += 2;
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,common);
+
+ print_struct_cb_tree_common (indent+2, 0, &ptr->common);
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ if( print_zero_fields || ptr->values != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,values);
+
+ if (ptr->values == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->values);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->from != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,from);
+
+ if (ptr->from == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->from);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->to != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,to);
+
+ if (ptr->to == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->to);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ if( print_zero_fields || ptr->repeat_times != NULL ){
+
+ PRINT_STRUCT_FIELD_BEGIN(indent,repeat_times);
+
+ if (ptr->repeat_times == NULL){
+ PRINT_NULL(indent,ty);
+ } else {
+ print_struct_cb_tree_common_ptr (indent+2, ptr->repeat_times);
+ }
+
+ PRINT_STRUCT_FIELD_END(indent);
+
+ }
+
+ indent -= 2;
+ PRINT_STRUCT_END(indent, ty);
+}
+
+
+static void print_struct_cb_tree_common_ptr (int indent, cb_tree cb){
+
+ const char* ty = "cb_tree";
+ if (cb == NULL){
+ PRINT_NULL(indent,ty);
+ return;
+ }
+ switch (cb->tag){
+
+ case CB_TAG_CONST: { print_struct_cb_const_ptr (indent, (struct cb_const *)cb); return; }
+
+ case CB_TAG_INTEGER: { print_struct_cb_integer_ptr (indent, (struct cb_integer *)cb); return; }
+
+ case CB_TAG_STRING: { print_struct_cb_string_ptr (indent, (struct cb_string *)cb); return; }
+
+ case CB_TAG_ALPHABET_NAME: { print_struct_cb_alphabet_name_ptr (indent, (struct cb_alphabet_name *)cb); return; }
+
+ case CB_TAG_CLASS_NAME: { print_struct_cb_class_name_ptr (indent, (struct cb_class_name *)cb); return; }
+
+ case CB_TAG_LOCALE_NAME: { print_struct_cb_locale_name_ptr (indent, (struct cb_locale_name *)cb); return; }
+
+ case CB_TAG_SYSTEM_NAME: { print_struct_cb_system_name_ptr (indent, (struct cb_system_name *)cb); return; }
+
+ case CB_TAG_SCHEMA_NAME: { print_struct_cb_schema_name_ptr (indent, (struct cb_schema_name *)cb); return; }
+
+ case CB_TAG_LITERAL: { print_struct_cb_literal_ptr (indent, (struct cb_literal *)cb); return; }
+
+ case CB_TAG_DECIMAL: { print_struct_cb_decimal_ptr (indent, (struct cb_decimal *)cb); return; }
+
+ case CB_TAG_FIELD: { print_struct_cb_field_ptr (indent, (struct cb_field *)cb); return; }
+
+ case CB_TAG_FILE: { print_struct_cb_file_ptr (indent, (struct cb_file *)cb); return; }
+
+ case CB_TAG_REPORT: { print_struct_cb_report_ptr (indent, (struct cb_report *)cb); return; }
+
+ case CB_TAG_CD: { print_struct_cb_cd_ptr (indent, (struct cb_cd *)cb); return; }
+
+ case CB_TAG_REFERENCE: { print_struct_cb_reference_ptr (indent, (struct cb_reference *)cb); return; }
+
+ case CB_TAG_BINARY_OP: { print_struct_cb_binary_op_ptr (indent, (struct cb_binary_op *)cb); return; }
+
+ case CB_TAG_FUNCALL: { print_struct_cb_funcall_ptr (indent, (struct cb_funcall *)cb); return; }
+
+ case CB_TAG_CAST: { print_struct_cb_cast_ptr (indent, (struct cb_cast *)cb); return; }
+
+ case CB_TAG_INTRINSIC: { print_struct_cb_intrinsic_ptr (indent, (struct cb_intrinsic *)cb); return; }
+
+ case CB_TAG_LABEL: { print_struct_cb_label_ptr (indent, (struct cb_label *)cb); return; }
+
+ case CB_TAG_ASSIGN: { print_struct_cb_assign_ptr (indent, (struct cb_assign *)cb); return; }
+
+ case CB_TAG_INITIALIZE: { print_struct_cb_initialize_ptr (indent, (struct cb_initialize *)cb); return; }
+
+ case CB_TAG_SEARCH: { print_struct_cb_search_ptr (indent, (struct cb_search *)cb); return; }
+
+ case CB_TAG_CALL: { print_struct_cb_call_ptr (indent, (struct cb_call *)cb); return; }
+
+ case CB_TAG_GOTO: { print_struct_cb_goto_ptr (indent, (struct cb_goto *)cb); return; }
+
+ case CB_TAG_IF: { print_struct_cb_if_ptr (indent, (struct cb_if *)cb); return; }
+
+ case CB_TAG_PERFORM: { print_struct_cb_perform_ptr (indent, (struct cb_perform *)cb); return; }
+
+ case CB_TAG_STATEMENT: { print_struct_cb_statement_ptr (indent, (struct cb_statement *)cb); return; }
+
+ case CB_TAG_CONTINUE: { print_struct_cb_continue_ptr (indent, (struct cb_continue *)cb); return; }
+
+ case CB_TAG_CANCEL: { print_struct_cb_cancel_ptr (indent, (struct cb_cancel *)cb); return; }
+
+ case CB_TAG_ALTER: { print_struct_cb_alter_ptr (indent, (struct cb_alter *)cb); return; }
+
+ case CB_TAG_SET_ATTR: { print_struct_cb_set_attr_ptr (indent, (struct cb_set_attr *)cb); return; }
+
+ case CB_TAG_XML_PARSE: { print_struct_cb_xml_parse_ptr (indent, (struct cb_xml_parse *)cb); return; }
+
+ case CB_TAG_PERFORM_VARYING: { print_struct_cb_perform_varying_ptr (indent, (struct cb_perform_varying *)cb); return; }
+
+ case CB_TAG_PICTURE: { print_struct_cb_picture_ptr (indent, (struct cb_picture *)cb); return; }
+
+ case CB_TAG_LIST: { print_struct_cb_list_ptr (indent, (struct cb_list *)cb); return; }
+
+ case CB_TAG_DIRECT: { print_struct_cb_direct_ptr (indent, (struct cb_direct *)cb); return; }
+
+ case CB_TAG_DEBUG: { print_struct_cb_debug_ptr (indent, (struct cb_debug *)cb); return; }
+
+ case CB_TAG_DEBUG_CALL: { print_struct_cb_debug_call_ptr (indent, (struct cb_debug_call *)cb); return; }
+
+ case CB_TAG_PROGRAM: { print_struct_cb_program_ptr (indent, (struct cb_program *)cb); return; }
+
+ case CB_TAG_PROTOTYPE: { print_struct_cb_prototype_ptr (indent, (struct cb_prototype *)cb); return; }
+
+ case CB_TAG_DECIMAL_LITERAL: { print_struct_cb_decimal_ptr (indent, (struct cb_decimal *)cb); return; }
+
+ case CB_TAG_REPORT_LINE: { print_struct_cb_reference_ptr (indent, (struct cb_reference *)cb); return; }
+
+ case CB_TAG_ML_SUPPRESS: { print_struct_cb_ml_suppress_clause_ptr (indent, (struct cb_ml_suppress_clause *)cb); return; }
+
+ case CB_TAG_ML_TREE: { print_struct_cb_ml_generate_tree_ptr (indent, (struct cb_ml_generate_tree *)cb); return; }
+
+ case CB_TAG_ML_SUPPRESS_CHECKS: { print_struct_cb_ml_suppress_checks_ptr (indent, (struct cb_ml_suppress_checks *)cb); return; }
+
+ case CB_TAG_VARY: { print_struct_cb_vary_ptr (indent, (struct cb_vary *)cb); return; }
+
+ case CB_TAG_TAB_VALS: { print_struct_cb_table_values_ptr (indent, (struct cb_table_values *)cb); return; }
+
+ default:
+ PRINT_UNKNOWN_SELECTOR(indent, ty, cb->tag);
+ }
+}
+
+static void cb_print_tree (cb_tree cb){
+ init_ptr_table ();
+ print_struct_cb_tree_common_ptr (0, cb);
+ clear_ptr_table ();
+}
+
+
diff --git a/cobc/flag.def b/cobc/flag.def
index d487f3ab4..5e1a09333 100644
--- a/cobc/flag.def
+++ b/cobc/flag.def
@@ -282,3 +282,12 @@ CB_FLAG (cb_diagnostics_absolute_paths, 1, "diagnostics-absolute-paths",
CB_FLAG (cb_flag_prof, 1, "prof",
_(" -fprof enable profiling of the COBOL program"))
+CB_FLAG_NQ (1, "dump-ast", CB_FLAG_DUMP_AST,
+ _(" -fdump-ast= dump parsed AST to , format is JSON unless\n"
+ " the file has a .ml extension for OCaml format."))
+
+CB_FLAG_NQ (1, "dump-ast-flags", CB_FLAG_DUMP_AST_FLAGS,
+ _(" -fdump-ast-flags= set flags used when dumping the parsed AST\n"
+ " '+/-' to enable/disable, 'l' for locations,\n"
+ " 't' for types, 'p' for pointers, 'i' for indent."))
+
diff --git a/cobc/tree.h b/cobc/tree.h
index 19878838f..573056743 100644
--- a/cobc/tree.h
+++ b/cobc/tree.h
@@ -1827,6 +1827,8 @@ struct nested_list {
struct cb_program *nested_prog;
};
+#define CB_MAX_GLOBAL_HANDLERS 5
+
struct cb_program {
struct cb_tree_common common; /* Common values */
@@ -1878,7 +1880,7 @@ struct cb_program {
struct cb_field *report_storage; /* REPORT */
cb_tree local_file_list; /* Local files */
cb_tree global_file_list; /* Global files */
- struct handler_struct global_handler[5]; /* Global handlers */
+ struct handler_struct global_handler[CB_MAX_GLOBAL_HANDLERS]; /* Global handlers */
cb_tree collating_sequence; /* COLLATING */
cb_tree collating_sequence_n; /* COLLATING FOR NATIONAL*/
cb_tree classification; /* CLASSIFICATION */
@@ -2255,7 +2257,7 @@ extern cb_tree cb_build_initialize (const cb_tree, const cb_tree,
const enum cob_statement,
const unsigned int);
-struct cb_literal *build_literal (enum cb_category,
+extern struct cb_literal *build_literal (enum cb_category,
const void *, const size_t);
extern cb_tree cb_build_system_name (const enum cb_system_name_category,
@@ -2607,6 +2609,10 @@ extern cb_tree cb_build_xml_parse (cb_tree, cb_tree,
extern void cb_emit_json_generate (cb_tree, cb_tree, cb_tree,
cb_tree, cb_tree);
+extern void cb_dump_ast_to_file (struct cb_program *prog,
+ const char *filename,
+ const char *flags);
+
#ifdef COB_TREE_DEBUG
extern cb_tree cobc_tree_cast_check (const cb_tree, const char *,
const int, const enum cb_tag);