aboutsummaryrefslogtreecommitdiff
path: root/gcc/cobol
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cobol')
-rw-r--r--gcc/cobol/cdf.y94
-rw-r--r--gcc/cobol/cdfval.h4
-rw-r--r--gcc/cobol/dts.h14
-rw-r--r--gcc/cobol/except.cc2
-rw-r--r--gcc/cobol/gcobol.1192
-rw-r--r--gcc/cobol/genapi.cc6
-rw-r--r--gcc/cobol/genutil.cc7
-rw-r--r--gcc/cobol/lexio.cc72
-rw-r--r--gcc/cobol/parse.y21
-rw-r--r--gcc/cobol/parse_ante.h48
-rw-r--r--gcc/cobol/scan.l13
-rw-r--r--gcc/cobol/scan_post.h2
-rw-r--r--gcc/cobol/symbols.h3
-rw-r--r--gcc/cobol/token_names.h2228
-rw-r--r--gcc/cobol/udf/stored-char-length.cbl4
-rw-r--r--gcc/cobol/util.cc90
-rw-r--r--gcc/cobol/util.h15
17 files changed, 1540 insertions, 1275 deletions
diff --git a/gcc/cobol/cdf.y b/gcc/cobol/cdf.y
index f1a7912..840eb50 100644
--- a/gcc/cobol/cdf.y
+++ b/gcc/cobol/cdf.y
@@ -105,14 +105,14 @@ void input_file_status_notify();
using std::map;
- static map<std::string, cdfval_t> dictionary;
-
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
static bool
cdfval_add( const char name[],
const cdfval_t& value, bool override = false )
{
+ cdf_values_t& dictionary( cdf_dictionary() );
+
if( scanner_parsing() ) {
if( ! override ) {
if( dictionary.find(name) != dictionary.end() ) return false;
@@ -123,6 +123,8 @@ void input_file_status_notify();
}
static void
cdfval_off( const char name[] ) {
+ cdf_values_t& dictionary( cdf_dictionary() );
+
if( scanner_parsing() ) {
auto p = dictionary.find(name);
if( p == dictionary.end() ) {
@@ -159,6 +161,8 @@ exception_turn_t exception_turn;
bool
apply_cdf_turn( const exception_turn_t& turn ) {
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
+
for( auto elem : turn.exception_files() ) {
std::set<size_t> files(elem.second.begin(), elem.second.end());
enabled_exceptions.turn_on_off(turn.enabled,
@@ -204,15 +208,17 @@ apply_cdf_turn( const exception_turn_t& turn ) {
%type <file> filename
%type <files> filenames
-%token BY 482
+%type <number> cdf_stackable
+
+%token BY 486
%token COPY 362
%token CDF_DISPLAY 384 ">>DISPLAY"
-%token IN 601
+%token IN 605
%token NAME 286
%token NUMSTR 305 "numeric literal"
-%token OF 682
-%token PSEUDOTEXT 717
-%token REPLACING 739
+%token OF 686
+%token PSEUDOTEXT 721
+%token REPLACING 743
%token LITERAL 298
%token SUPPRESS 376
@@ -227,25 +233,32 @@ apply_cdf_turn( const exception_turn_t& turn ) {
%token CDF_WHEN 389 ">>WHEN"
%token CDF_END_EVALUATE 390 ">>END-EVALUATE"
-%token AS 464 CONSTANT 361 DEFINED 363
+%token ALL 450
+%token CALL_CONVENTION 391 ">>CALL-CONVENTION"
+%token COBOL_WORDS 380 ">>COBOL-WORDS"
+%token CDF_PUSH 394 ">>PUSH"
+%token CDF_POP 395 ">>POP"
+%token SOURCE_FORMAT 396 ">>SOURCE FORMAT"
+
+%token AS 468 CONSTANT 361 DEFINED 363
%type <boolean> DEFINED
-%token OTHER 694 PARAMETER_kw 368 "PARAMETER"
-%token OFF 683 OVERRIDE 369
-%token THRU 935
-%token TRUE_kw 809 "True"
+%token OTHER 698 PARAMETER_kw 368 "PARAMETER"
+%token OFF 687 OVERRIDE 369
+%token THRU 939
+%token TRUE_kw 813 "True"
-%token CALL_COBOL 391 "CALL"
-%token CALL_VERBATIM 392 "CALL (as C)"
+%token CALL_COBOL 392 "CALL"
+%token CALL_VERBATIM 393 "CALL (as C)"
-%token TURN 811 CHECKING 492 LOCATION 645 ON 685 WITH 837
+%token TURN 815 CHECKING 496 LOCATION 649 ON 689 WITH 841
-%left OR 936
-%left AND 937
-%right NOT 938
-%left '<' '>' '=' NE 939 LE 940 GE 941
+%left OR 940
+%left AND 941
+%right NOT 942
+%left '<' '>' '=' NE 943 LE 944 GE 945
%left '-' '+'
%left '*' '/'
-%right NEG 943
+%right NEG 947
%define api.prefix {ydf}
%define api.token.prefix{YDF_}
@@ -277,6 +290,8 @@ complete: cdf_define
| cdf_display
| cdf_turn
| cdf_call_convention
+ | cdf_push
+ | cdf_pop
;
/*
@@ -328,6 +343,7 @@ cdf_define: CDF_DEFINE cdf_constant NAME as cdf_expr[value] override
}
if( !cdfval_add( $NAME, cdfval_t($value), $override) ) {
error_msg(@NAME, "name already in dictionary: %s", $NAME);
+ cdf_values_t& dictionary( cdf_dictionary() );
const cdfval_t& entry = dictionary[$NAME];
if( entry.filename ) {
error_msg(@NAME, "%s previously defined in %s:%d",
@@ -357,7 +373,7 @@ cdf_define: CDF_DEFINE cdf_constant NAME as cdf_expr[value] override
* available regardless.
*/
{
- if( 0 == dictionary.count($NAME) ) {
+ if( 0 == cdf_dictionary().count($NAME) ) {
yywarn("CDF: '%s' is defined AS PARAMETER "
"but was not defined", $NAME);
}
@@ -400,6 +416,35 @@ cdf_call_convention:
}
;
+cdf_push: CDF_PUSH cdf_stackable {
+ switch( $cdf_stackable ) {
+ case YDF_ALL: cdf_push(); break;
+ case YDF_CALL_CONVENTION: cdf_push_call_convention(); break;
+ case YDF_CDF_DEFINE: cdf_push_dictionary(); break;
+ case YDF_COBOL_WORDS: cdf_push_current_tokens(); break;
+ case YDF_SOURCE_FORMAT: cdf_push_source_format(); break;
+ default: gcc_unreachable();
+ }
+ }
+ ;
+cdf_pop: CDF_POP cdf_stackable {
+ switch( $cdf_stackable ) {
+ case YDF_ALL: cdf_pop(); break;
+ case YDF_CALL_CONVENTION: cdf_pop_call_convention(); break;
+ case YDF_CDF_DEFINE: cdf_pop_dictionary(); break;
+ case YDF_COBOL_WORDS: cdf_pop_current_tokens(); break;
+ case YDF_SOURCE_FORMAT: cdf_pop_source_format(); break;
+ default: gcc_unreachable();
+ }
+ }
+ ;
+
+cdf_stackable: ALL { $$ = YDF_ALL; }
+ | CALL_CONVENTION { $$ = YDF_CALL_CONVENTION; }
+ | COBOL_WORDS { $$ = YDF_COBOL_WORDS; }
+ | CDF_DEFINE { $$ = YDF_CDF_DEFINE; }
+ | SOURCE_FORMAT { $$ = YDF_SOURCE_FORMAT; }
+ ;
except_names: except_name
| except_names except_name
@@ -471,6 +516,7 @@ cdf_eval_obj: cdf_cond_expr
cdf_cond_expr: BOOL
| NAME DEFINED
{
+ cdf_values_t& dictionary( cdf_dictionary() );
auto p = dictionary.find($1);
bool found = p != dictionary.end();
if( !$DEFINED ) found = ! found;
@@ -552,6 +598,7 @@ cdf_expr: cdf_expr '+' cdf_expr { $$ = $1(@1) + $3(@3); }
;
cdf_factor: NAME {
+ cdf_values_t& dictionary( cdf_dictionary() );
auto that = dictionary.find($1);
if( that != dictionary.end() ) {
$$ = that->second;
@@ -651,6 +698,7 @@ name_any: namelit
name_one: NAME
{
+ cdf_values_t& dictionary( cdf_dictionary() );
cdf_arg_t arg = { YDF_NAME, $1 };
auto p = dictionary.find($1);
@@ -665,6 +713,7 @@ name_one: NAME
namelit: name
{
+ cdf_values_t& dictionary( cdf_dictionary() );
cdf_arg_t arg = { YDF_NAME, $1 };
auto p = dictionary.find($1);
@@ -745,6 +794,7 @@ location_set( const YYLTYPE& loc ) {
bool // used by cobol1.cc
defined_cmd( const char arg[] )
{
+ cdf_values_t& dictionary( cdf_dictionary() );
cdfval_t value(1);
char *name = xstrdup(arg);
@@ -868,6 +918,7 @@ static int ydflex(void) {
bool
cdf_value( const char name[], const cdfval_t& value ) {
+ cdf_values_t& dictionary( cdf_dictionary() );
auto p = dictionary.find(name);
if( p != dictionary.end() ) return false;
@@ -878,6 +929,7 @@ cdf_value( const char name[], const cdfval_t& value ) {
const cdfval_t *
cdf_value( const char name[] ) {
+ cdf_values_t& dictionary( cdf_dictionary() );
auto p = dictionary.find(name);
if( p == dictionary.end() ) return NULL;
diff --git a/gcc/cobol/cdfval.h b/gcc/cobol/cdfval.h
index 465bdbb..cc474a2 100644
--- a/gcc/cobol/cdfval.h
+++ b/gcc/cobol/cdfval.h
@@ -126,4 +126,8 @@ cdf_value( const char name[] );
bool
cdf_value( const char name[], const cdfval_t& value );
+typedef std::map<std::string, cdfval_t> cdf_values_t;
+
+cdf_values_t& cdf_dictionary();
+
#endif
diff --git a/gcc/cobol/dts.h b/gcc/cobol/dts.h
index aa3fa58..e12b979 100644
--- a/gcc/cobol/dts.h
+++ b/gcc/cobol/dts.h
@@ -86,18 +86,24 @@ namespace dts {
#if __cpp_exceptions
static const char msg[] = "input not NUL-terminated";
throw std::domain_error( msg );
-#else
- // eoinput terminates input
- eoinput = strchr(input, '\0'); // cppcheck-suppress uselessAssignmentPtrArg
#endif
}
auto ncm = re.size();
cm.resize(ncm);
std::vector <regmatch_t> cms(ncm);
-
int erc = regexec( &re, input, ncm, cms.data(), 0 );
if( erc != 0 ) return false;
+#if __cpp_exceptions
+ // This is not correct at all, but current use depends on current behavior.
+ // The following line is excluded from the GCC build, which is compiled
+ // without __cpp_exceptions. parse_copy_directive (for one) depends on
+ // regex_search returning true even if the match is beyond eoinput.
+ if( eoinput < cm[0].second ) return false;
+ // Correct behavior would return match only between input and eoinput.
+ // Because regex(3) uses a NUL terminator, it may match text between
+ // eoinput and the NUL.
+#endif
std::transform( cms.begin(), cms.end(), cm.begin(),
[input]( const regmatch_t& m ) {
return csub_match( input, m );
diff --git a/gcc/cobol/except.cc b/gcc/cobol/except.cc
index 60b8416..e42aea2 100644
--- a/gcc/cobol/except.cc
+++ b/gcc/cobol/except.cc
@@ -84,8 +84,6 @@ cbl_enabled_exception_t::dump( int i ) const {
file );
}
-cbl_enabled_exceptions_t enabled_exceptions;
-
void
cbl_enabled_exceptions_t::dump() const {
extern int yydebug;
diff --git a/gcc/cobol/gcobol.1 b/gcc/cobol/gcobol.1
index 6db5400..ebb833c 100644
--- a/gcc/cobol/gcobol.1
+++ b/gcc/cobol/gcobol.1
@@ -587,6 +587,21 @@ statement, regardless of compile-time constants.
..
.
.Ss Implemented Exception Conditions
+By default, per ISO, no EC is enabled. Implemented ECs may be enabled
+on the command line or via the
+.Sy TURN
+directive. Any attempt to enable an EC that is not implemented is
+treated as an error.
+.Pp
+An enabled EC not handled by a
+.Sy DECLARATIVE
+is written to the system log and to standard error. (The authors
+intend to make that an option.) A fatal EC not handled with
+.Sy RESUME
+ends with a call to
+.Xr abort 3
+and process termination.
+.Pp
Not all Exception Conditions are implemented. Any attempt to enable
an EC that that is not implemented produces a warning message.
The following are implemented:
@@ -913,11 +928,90 @@ or
has no effect; the two are interchangeable.
..
.
-.Ss Compiler-Directing Facility (CDF)
+.Sh COMPILER-DIRECTING FACILITY
The CDF should be used with caution because no comprehensive test
-suite has been identified.
+suite has been identified.
.
-.Ss Conditional Compilation
+.Ss CDF Text Manipulation
+.Bl -tag -width >>DEFINE
+.It Sy COPY Ar copybook Li Oo OF|BY Ar library Oc Oo Sy REPLACING ... Oc
+If
+.Ar copybook
+is a literal, it treated a literal filename, which either does or does not exist. If
+.Ar copybook
+is a \*[lang] word,
+.Nm
+looks first for an environment variable named
+.Va copybook
+and, if found, uses the contents of that variable as the name of the
+copybook file. If that file does not exist, it continues looking for
+a file named one of:
+.sp
+.Bl -bullet -compact -offset 5n
+.It
+.Pa copybook
+(literally)
+.It
+.Pa copybook.cpy
+.It
+.Pa copybook.CPY
+.It
+.Pa copybook.cbl
+.It
+.Pa copybook.CBL
+.It
+.Pa copybook.cob
+.It
+.Pa copybook.COB
+.El
+.sp
+in that order. It looks first in the same directory as the source
+code file, and then in any
+.Ar copybook-path
+named with the
+.Fl I
+option.
+.
+.\" FIXME: need escape mechanism for directories with ':' in the name.
+.Ar copybook-path
+may (like the shell's
+.Ev PATH
+variable) be a colon-separated list.
+The
+.Fl I
+option may occur multiple times on the command line. Each successive
+.Ar copybook-path
+is concatenated to previous ones.
+Relative paths (having no leading
+.Ql / Ns
+\&)
+are searched relative to the compiler's current working directory.
+.Pp
+For example,
+.D1 \&
+.D1 Fl I Li /usr/local/include:include
+.D1 \&
+searches first the directory where the \*[lang] program is found, next in
+.Pa /usr/local/include ,
+and finally in an
+.Pa include
+subdirectory of the directory from which
+.Nm
+was invoked.
+.Pp
+For the
+.Sy REPLACING
+phrase, both the modern pseudo-text and the \*[lang]/85 forms are
+recognized. (The older forms are used in the NIST CCVS/85 test suite.)
+.It Sy REPLACE ...
+.Nm
+supports the full ISO
+.Sy REPLACE
+syntax.
+.El
+.
+.Ss CDF Directives
+.\"Bl -tag -width >>PROPAGATE
.Bl -tag -width >>DEFINE
.It >> Ns Sy DEFINE Ar name Sy AS Bro Ar expression Li | Sy PARAMETER Brc Op Sy OVERRIDE
Define
@@ -959,10 +1053,6 @@ is supported. Boolean literals are not supported.
.
.It >> Ns Sy EVALUATE
Not implemented.
-.El
-.
-.Ss Other CDF Directives
-.Bl -tag -width >>PROPAGATE
.It >> Ns Sy CALL-CONVENTION Ar convention
.Ar convention
may be one of:
@@ -1036,6 +1126,24 @@ Not implemented.
Not implemented.
.It >> Ns Sy PROPAGATE
Not implemented.
+.It >> Ns Sy PUSH Ar directive
+.It >> Ns Sy POP Ar directive
+With
+.Sy PUSH ,
+push CDF state onto a stack.
+With
+.Sy POP ,
+return to the prior pushed state.
+.Ar directive
+may be one of
+.Bl -tag -compact
+.It Sy CALL-CONVENTION
+.It Sy COBOL-WORDS
+.It Sy DEFINE
+.It Sy SOURCE FORMAT
+.It Sy TURN
+.El
+.
.It >> Ns Sy TURN Oo
.Ar ec Oo Ar file Li ... Oc ...
.Oc Sy CHECKING Bro Oo Sy ON Oc Oo Oo Sy WITH Oc Sy LOCATION Oc | Sy OFF Brc
@@ -1087,76 +1195,6 @@ the directive must appear before
To test a feature-set variable, use
.Dl >>IF Ar feature Li DEFINED
.
-.Ss Copybooks
-.Nm
-supports the CDF
-.Sy COPY
-statement, with or without its
-.Sy REPLACING
-component. For any statement
-.sp
-.D1 COPY Ar copybook
-.sp
-.Nm
-looks first for an environment variable named
-.Va copybook
-and, if found, uses the contents of that variable as the name of the
-copybook file. If that file does not exist, it continues looking for
-a file named one of:
-.sp
-.Bl -bullet -compact -offset 5n
-.It
-.Pa copybook
-(literally)
-.It
-.Pa copybook.cpy
-.It
-.Pa copybook.CPY
-.It
-.Pa copybook.cbl
-.It
-.Pa copybook.CBL
-.It
-.Pa copybook.cob
-.It
-.Pa copybook.COB
-.El
-.sp
-in that order. It looks first in the same directory as the source
-code file, and then in any
-.Ar copybook-path
-named with the
-.Fl I
-option.
-.
-.\" FIXME: need escape mechanism for directories with ':' in the name.
-.Ar copybook-path
-may (like the shell's
-.Ev PATH
-variable) be a colon-separated list.
-.
-The
-.Fl I
-option may occur multiple times on the command line. Each successive
-.Ar copybook-path
-is concatenated to previous ones.
-Relative paths (having no leading
-.Ql / Ns
-\&)
-are searched relative to the compiler's current working directory.
-.Pp
-For example,
-.D1 \&
-.D1 Fl I Li /usr/local/include:include
-.D1 \&
-searches first the directory where the \*[lang] program is found, next in
-.Pa /usr/local/include ,
-and finally in an
-.Pa include
-subdirectory of the directory from which
-.Nm
-was invoked.
-.
.Ss Intrinsic functions
.Nm
implements all intrinsic functions defined by \*[isostd], plus a few
diff --git a/gcc/cobol/genapi.cc b/gcc/cobol/genapi.cc
index 55db870..3c4e9a9 100644
--- a/gcc/cobol/genapi.cc
+++ b/gcc/cobol/genapi.cc
@@ -1166,7 +1166,7 @@ parser_statement_begin( const cbl_name_t statement_name,
// the execution time of a program doing two-billion simple adds in an inner
// loop dropped from 3.8 seconds to 0.175 seconds.
- bool exception_processing = enabled_exceptions.size() ;
+ bool exception_processing = cdf_enabled_exceptions().size() ;
if( !exception_processing )
{
@@ -12236,6 +12236,8 @@ parser_file_merge( cbl_file_t *workfile,
ELSE
ENDIF
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
+
for(size_t i=0; i<ninputs; i++)
{
if( process_this_exception(ec_sort_merge_file_open_e) )
@@ -13905,7 +13907,7 @@ parser_check_fatal_exception()
// in its innermost loop had an execution time of 19.5 seconds. By putting in
// the if() statement, that was reduced to 3.8 seconds.
- if( enabled_exceptions.size() || sv_is_i_o )
+ if( cdf_enabled_exceptions().size() || sv_is_i_o )
{
gg_call(VOID,
"__gg__check_fatal_exception",
diff --git a/gcc/cobol/genutil.cc b/gcc/cobol/genutil.cc
index 1d921a3..e09b1bf 100644
--- a/gcc/cobol/genutil.cc
+++ b/gcc/cobol/genutil.cc
@@ -307,6 +307,8 @@ get_and_check_refstart_and_reflen( tree refstart,// LONG returned value
tree reflen, // LONG returned value
cbl_refer_t &refer)
{
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
+
if( !enabled_exceptions.match(ec_bound_ref_mod_e) )
{
// This is normal operation -- no exception checking. Thus, we won't
@@ -458,6 +460,7 @@ get_depending_on_value_from_odo(tree retval, cbl_field_t *odo)
declarative with a RESUME NEXT STATEMENT, or before the default_condition
processing can do a controlled exit.
*/
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
cbl_field_t *depending_on;
depending_on = cbl_field_of(symbol_at(odo->occurs.depending_on));
@@ -601,6 +604,7 @@ get_data_offset(cbl_refer_t &refer,
}
else
{
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
if( !enabled_exceptions.match(ec_bound_subscript_e) )
{
// With no exception testing, just pick up the value
@@ -657,6 +661,8 @@ get_data_offset(cbl_refer_t &refer,
// Although we strictly don't need to look at the ODO value at this point,
// we do want it checked for the purposes of ec-bound-odo
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
+
if( enabled_exceptions.match(ec_bound_odo_e) )
{
if( parent->occurs.depending_on )
@@ -1669,6 +1675,7 @@ set_exception_code_func(ec_type_t ec, int /*line*/, int from_raise_statement)
bool
process_this_exception(ec_type_t ec)
{
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
bool retval;
if( enabled_exceptions.match(ec) || !skip_exception_processing )
{
diff --git a/gcc/cobol/lexio.cc b/gcc/cobol/lexio.cc
index 4a50441..0aebe52 100644
--- a/gcc/cobol/lexio.cc
+++ b/gcc/cobol/lexio.cc
@@ -321,7 +321,69 @@ recognize_replacements( filespan_t mfile, std::list<replace_t>& pending_replacem
}
static void
+check_push_pop_directive( filespan_t& mfile ) {
+ char eol = '\0';
+ const char *p = std::find(mfile.cur, mfile.eol, '>');
+ if( ! (p < mfile.eol && p[1] == *p ) ) return;
+
+ const char pattern[] =
+ ">>[[:blank:]]*(push|pop)[[:blank:]]+"
+ "("
+ "all|"
+ "call-convention|"
+ "cobol-words|"
+ "define|"
+ "source[[:blank:]]+format|"
+ "turn"
+ ")";
+ static regex re(pattern, extended_icase);
+
+ // show contents of marked subexpressions within each match
+ cmatch cm;
+
+ std::swap(*mfile.eol, eol); // see implementation for excuses
+ bool ok = regex_search(p, const_cast<const char *>(mfile.eol), cm, re);
+ std::swap(*mfile.eol, eol);
+
+ if( ok ) {
+ gcc_assert(cm.size() > 1);
+ bool push = TOUPPER(cm[1].first[1]) == 'U';
+ switch( TOUPPER(cm[2].first[0]) ) {
+ case 'A': // ALL
+ push? cdf_push() : cdf_pop();
+ break;
+ case 'C':
+ switch( TOUPPER(cm[2].first[1]) ) {
+ case 'A': // CALL-CONVENTION
+ push? cdf_push_call_convention() : cdf_pop_call_convention();
+ break;
+ case 'O': // COBOL-WORDS
+ push? cdf_push_current_tokens() : cdf_pop_current_tokens();
+ break;
+ default:
+ gcc_unreachable();
+ }
+ break;
+ case 'D': // DEFINE
+ push? cdf_push_dictionary() : cdf_pop_dictionary();
+ break;
+ case 'S': // SOURCE FORMAT
+ push? cdf_push_source_format() : cdf_pop_source_format();
+ break;
+ case 'T': // TURN
+ push? cdf_push_enabled_exceptions() : cdf_pop_enabled_exceptions();
+ break;
+ default:
+ gcc_unreachable();
+ }
+ erase_line(const_cast<char*>(cm[0].first),
+ const_cast<char*>(cm[0].second));
+ }
+}
+
+static void
check_source_format_directive( filespan_t& mfile ) {
+ char eol = '\0';
const char *p = std::find(mfile.cur, mfile.eol, '>');
if( ! (p < mfile.eol && p[1] == *p ) ) return;
@@ -334,7 +396,12 @@ check_source_format_directive( filespan_t& mfile ) {
// show contents of marked subexpressions within each match
cmatch cm;
- if( regex_search(p, const_cast<const char *>(mfile.eol), cm, re) ) {
+
+ std::swap(*mfile.eol, eol); // see implementation for excuses
+ bool ok = regex_search(p, const_cast<const char *>(mfile.eol), cm, re);
+ std::swap(*mfile.eol, eol);
+
+ if( ok ) {
gcc_assert(cm.size() > 1);
switch( cm[3].length() ) {
case 4:
@@ -353,8 +420,8 @@ check_source_format_directive( filespan_t& mfile ) {
cdf_source_format().description(),
(fmt_size_t)mfile.lineno() );
char *bol = cdf_source_format().is_fixed()? mfile.cur : const_cast<char*>(cm[0].first);
+ gcc_assert(cm[0].second <= mfile.eol);
erase_line(bol, const_cast<char*>(cm[0].second));
- mfile.cur = const_cast<char*>(cm[0].second);
}
}
@@ -1688,6 +1755,7 @@ cdftext::free_form_reference_format( int input ) {
}
while( mfile.next_line() ) {
+ check_push_pop_directive(mfile);
check_source_format_directive(mfile);
remove_inline_comment(mfile.cur, mfile.eol);
diff --git a/gcc/cobol/parse.y b/gcc/cobol/parse.y
index 2212acc..83bffdf 100644
--- a/gcc/cobol/parse.y
+++ b/gcc/cobol/parse.y
@@ -386,7 +386,10 @@
CDF_EVALUATE ">>EVALUATE"
CDF_WHEN ">>WHEN"
CDF_END_EVALUATE ">>END-EVALUATE"
+ CALL_CONVENTION ">>CALL-CONVENTION"
CALL_COBOL "CALL" CALL_VERBATIM "CALL (as C)"
+ CDF_PUSH ">>PUSH" CDF_POP ">>POP"
+ SOURCE_FORMAT ">>SOURCE FORMAT"
IF THEN ELSE
SENTENCE
@@ -1469,16 +1472,16 @@ cobol_words: cobol_words1
| cobol_words cobol_words1
;
cobol_words1: COBOL_WORDS EQUATE NAME[keyword] WITH NAME[name] {
- if( ! tokens.equate(@keyword, $keyword, $name) ) { YYERROR; }
+ if( ! cdf_tokens.equate(@keyword, $keyword, $name) ) { YYERROR; }
}
| COBOL_WORDS UNDEFINE NAME[keyword] {
- if( ! tokens.undefine(@keyword, $keyword) ) { YYERROR; }
+ if( ! cdf_tokens.undefine(@keyword, $keyword) ) { YYERROR; }
}
| COBOL_WORDS SUBSTITUTE NAME[keyword] BY NAME[name] {
- if( ! tokens.substitute(@keyword, $keyword, $name) ) { YYERROR; }
+ if( ! cdf_tokens.substitute(@keyword, $keyword, $name) ) { YYERROR; }
}
| COBOL_WORDS RESERVE NAME[name] {
- if( ! tokens.reserve(@name, $name) ) { YYERROR; }
+ if( ! cdf_tokens.reserve(@name, $name) ) { YYERROR; }
}
;
@@ -4915,6 +4918,7 @@ by_value_arg: scalar
declaratives: %empty
| DECLARATIVES '.'
<label>{
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
current.enabled_exception_cache = enabled_exceptions;
enabled_exceptions.clear();
current.doing_declaratives(true);
@@ -4933,6 +4937,7 @@ declaratives: %empty
* forward reference, because we haven't yet begun to parse
* nondeclarative procedures.
*/
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
parser_label_label($label);
enabled_exceptions = current.enabled_exception_cache;
current.enabled_exception_cache.clear();
@@ -11433,6 +11438,7 @@ void ast_call( const YYLTYPE& loc, cbl_refer_t name, const cbl_refer_t& returnin
*/
static bool
possible_ec() {
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
bool format_1 = current.declaratives.has_format_1();
bool enabled = 0xFF < (current.declaratives.status()
@@ -11455,6 +11461,7 @@ possible_ec() {
*/
static void
statement_epilog( int token ) {
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
if( possible_ec() && token != CONTINUE ) {
if( enabled_exceptions.size() ) {
current.declaratives_evaluate();
@@ -11517,7 +11524,7 @@ keyword_str( int token ) {
return ascii;
}
- return tokens.name_of(token);
+ return cdf_tokens.name_of(token);
}
bool iso_cobol_word( const std::string& name, bool include_context );
@@ -11589,7 +11596,7 @@ current_tokens_t::tokenset_t::find( const cbl_name_t name, bool include_intrinsi
int
keyword_tok( const char * text, bool include_intrinsics ) {
- return tokens.find(text, include_intrinsics);
+ return cdf_tokens.find(text, include_intrinsics);
}
static inline size_t
@@ -13131,7 +13138,7 @@ cobol_dialect_set( cbl_dialect_t dialect ) {
break;
case dialect_gnu_e:
if( 0 == (cbl_dialects & dialect) ) { // first time
- tokens.equate(YYLTYPE(), "BINARY-DOUBLE", "BINARY-C-LONG");
+ cdf_tokens.equate(YYLTYPE(), "BINARY-DOUBLE", "BINARY-C-LONG");
}
break;
}
diff --git a/gcc/cobol/parse_ante.h b/gcc/cobol/parse_ante.h
index 3543a00..fa06e6c 100644
--- a/gcc/cobol/parse_ante.h
+++ b/gcc/cobol/parse_ante.h
@@ -935,11 +935,11 @@ teed_up_names() {
return name_queue_t::namelist_of( name_queue.peek() );
}
-current_tokens_t tokens;
+#define cdf_tokens cdf_current_tokens()
int
redefined_token( const cbl_name_t name ) {
- return tokens.redefined_as(name);
+ return cdf_tokens.redefined_as(name);
}
struct file_list_t {
@@ -1321,7 +1321,6 @@ class prog_descr_t {
}
}
} locale;
- cbl_call_convention_t call_convention;
cbl_options_t options;
explicit prog_descr_t( size_t isymbol )
@@ -1330,9 +1329,7 @@ class prog_descr_t {
, paragraph(NULL)
, section(NULL)
, collating_sequence(NULL)
- {
- call_convention = current_call_convention();
- }
+ {}
std::set<std::string> external_targets() {
std::set<std::string> externals;
@@ -1421,24 +1418,13 @@ static cbl_label_t * implicit_section();
class program_stack_t : protected std::stack<prog_descr_t> {
struct pending_t {
- cbl_call_convention_t call_convention;
bool initial;
- pending_t()
- : call_convention(cbl_call_convention_t(0))
- , initial(false)
- {}
+ pending_t() : initial(false) {}
} pending;
public:
- cbl_call_convention_t
- pending_call_convention( cbl_call_convention_t convention ) {
- return pending.call_convention = convention;
- }
bool pending_initial() { return pending.initial = true; }
void push( prog_descr_t descr ) {
- cbl_call_convention_t call_convention = cbl_call_cobol_e;
- if( !empty() ) call_convention = top().call_convention;
- descr.call_convention = call_convention;
std::stack<prog_descr_t>& me(*this);
me.push(descr);
}
@@ -1464,9 +1450,6 @@ class program_stack_t : protected std::stack<prog_descr_t> {
}
void apply_pending() {
- if( size() == 1 && 0 != pending.call_convention ) {
- top().call_convention = pending.call_convention;
- }
if( pending.initial ) {
auto e = symbol_at(top().program_index);
auto prog(cbl_label_of(e));
@@ -1873,19 +1856,6 @@ static class current_t {
return programs.top().options.default_round = mode;
}
- cbl_call_convention_t
- call_convention() {
- return programs.empty()? cbl_call_cobol_e : programs.top().call_convention;
- }
- cbl_call_convention_t
- call_convention( cbl_call_convention_t convention) {
- if( programs.empty() ) {
- return programs.pending_call_convention(convention);
- }
- auto& prog( programs.top() );
- return prog.call_convention = convention;
- }
-
const char *
locale() {
return programs.empty()? NULL : programs.top().locale.os_name;
@@ -1983,6 +1953,7 @@ static class current_t {
* ISO, in new_program.
*/
std::set<std::string> end_program() {
+ cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
if( enabled_exceptions.size() ) {
declaratives_evaluate();
}
@@ -2273,15 +2244,6 @@ current_rounded_mode( cbl_round_t rounded) {
#endif
static cbl_round_t current_rounded_mode( int token );
-cbl_call_convention_t
-current_call_convention() {
- return current.call_convention();
-}
-cbl_call_convention_t
-current_call_convention( cbl_call_convention_t convention) {
- return current.call_convention(convention);
-}
-
size_t program_level() { return current.program_level(); }
static size_t constant_index( int token );
diff --git a/gcc/cobol/scan.l b/gcc/cobol/scan.l
index 3c12eda..8b5dc25 100644
--- a/gcc/cobol/scan.l
+++ b/gcc/cobol/scan.l
@@ -2095,15 +2095,28 @@ BASIS { yy_push_state(basis); return BASIS; }
^[ ]*>>{OBLANK}TURN { yy_push_state(exception); return TURN; }
^[ ]*>>{OBLANK}COBOL-WORDS { yy_push_state(cobol_words); return COBOL_WORDS; }
+ ^[ ]*>>{OBLANK}SOURCE{BLANK}FORMAT { return SOURCE_FORMAT; }
+
+ ^[ ]*>>{OBLANK}PUSH { return CDF_PUSH; }
+ ^[ ]*>>{OBLANK}POP { return CDF_POP; }
+
^[ ]*>>{OBLANK}{NAME} {
error_msg(yylloc, "unknown CDF token: %s", yytext);
}
+
OTHER { return OTHER; }
OVERRIDE { return OVERRIDE; }
PARAMETER { return PARAMETER_kw; }
THRU { return THRU; }
TRUE { return TRUE_kw; }
+
+ ALL { return ALL; }
+ CALL-CONVENTION { return CALL_CONVENTION; }
+ COBOL-WORDS { return COBOL_WORDS; }
+ DEFINE { return CDF_DEFINE; }
+ SOURCE{BLANK}FORMAT { return SOURCE_FORMAT; }
+
}
<cobol_words>{
diff --git a/gcc/cobol/scan_post.h b/gcc/cobol/scan_post.h
index fd70ea9..7cf2b98 100644
--- a/gcc/cobol/scan_post.h
+++ b/gcc/cobol/scan_post.h
@@ -158,6 +158,8 @@ is_cdf_token( int token ) {
case CDF_DISPLAY:
case CDF_IF: case CDF_ELSE: case CDF_END_IF:
case CDF_EVALUATE: case CDF_WHEN: case CDF_END_EVALUATE:
+ case CDF_PUSH:
+ case CDF_POP:
return true;
case CALL_COBOL:
case CALL_VERBATIM:
diff --git a/gcc/cobol/symbols.h b/gcc/cobol/symbols.h
index f96f1ec..c3de0aa 100644
--- a/gcc/cobol/symbols.h
+++ b/gcc/cobol/symbols.h
@@ -2551,8 +2551,9 @@ class current_tokens_t {
};
cbl_call_convention_t current_call_convention();
+current_tokens_t& cdf_current_tokens();
-cbl_call_convention_t
+void
current_call_convention( cbl_call_convention_t convention);
class procref_base_t {
diff --git a/gcc/cobol/token_names.h b/gcc/cobol/token_names.h
index d35b706..ca51510 100644
--- a/gcc/cobol/token_names.h
+++ b/gcc/cobol/token_names.h
@@ -1,5 +1,5 @@
// generated by ./token_names.h.gen ../../build/gcc/cobol/parse.h
-// Fri Jul 4 12:35:01 EDT 2025
+// Tue Jul 8 19:21:28 EDT 2025
tokens = {
{ "identification", IDENTIFICATION_DIV }, // 258
{ "environment", ENVIRONMENT_DIV }, // 259
@@ -137,562 +137,566 @@ tokens = {
{ "cdf-evaluate", CDF_EVALUATE }, // 388
{ "cdf-when", CDF_WHEN }, // 389
{ "cdf-end-evaluate", CDF_END_EVALUATE }, // 390
- { "call-cobol", CALL_COBOL }, // 391
- { "call-verbatim", CALL_VERBATIM }, // 392
- { "if", IF }, // 393
- { "then", THEN }, // 394
- { "else", ELSE }, // 395
- { "sentence", SENTENCE }, // 396
- { "accept", ACCEPT }, // 397
- { "add", ADD }, // 398
- { "alter", ALTER }, // 399
- { "call", CALL }, // 400
- { "cancel", CANCEL }, // 401
- { "close", CLOSE }, // 402
- { "compute", COMPUTE }, // 403
- { "continue", CONTINUE }, // 404
- { "delete", DELETE }, // 405
- { "display", DISPLAY }, // 406
- { "divide", DIVIDE }, // 407
- { "evaluate", EVALUATE }, // 408
- { "exit", EXIT }, // 409
- { "filler", FILLER_kw }, // 410
- { "goback", GOBACK }, // 411
- { "goto", GOTO }, // 412
- { "initialize", INITIALIZE }, // 413
- { "inspect", INSPECT }, // 414
- { "merge", MERGE }, // 415
- { "move", MOVE }, // 416
- { "multiply", MULTIPLY }, // 417
- { "open", OPEN }, // 418
- { "paragraph", PARAGRAPH }, // 419
- { "read", READ }, // 420
- { "release", RELEASE }, // 421
- { "return", RETURN }, // 422
- { "rewrite", REWRITE }, // 423
- { "search", SEARCH }, // 424
- { "set", SET }, // 425
- { "select", SELECT }, // 426
- { "sort", SORT }, // 427
- { "sort-merge", SORT_MERGE }, // 428
- { "string", STRING_kw }, // 429
- { "stop", STOP }, // 430
- { "subtract", SUBTRACT }, // 431
- { "start", START }, // 432
- { "unstring", UNSTRING }, // 433
- { "write", WRITE }, // 434
- { "when", WHEN }, // 435
- { "argument-number", ARGUMENT_NUMBER }, // 436
- { "argument-value", ARGUMENT_VALUE }, // 437
- { "environment-name", ENVIRONMENT_NAME }, // 438
- { "environment-value", ENVIRONMENT_VALUE }, // 439
- { "abs", ABS }, // 440
- { "access", ACCESS }, // 441
- { "acos", ACOS }, // 442
- { "actual", ACTUAL }, // 443
- { "advancing", ADVANCING }, // 444
- { "after", AFTER }, // 445
- { "all", ALL }, // 446
- { "allocate", ALLOCATE }, // 447
- { "alphabet", ALPHABET }, // 448
- { "alphabetic", ALPHABETIC }, // 449
- { "alphabetic-lower", ALPHABETIC_LOWER }, // 450
- { "alphabetic-upper", ALPHABETIC_UPPER }, // 451
- { "alphanumeric", ALPHANUMERIC }, // 452
- { "alphanumeric-edited", ALPHANUMERIC_EDITED }, // 453
- { "also", ALSO }, // 454
- { "alternate", ALTERNATE }, // 455
- { "annuity", ANNUITY }, // 456
- { "anum", ANUM }, // 457
- { "any", ANY }, // 458
- { "anycase", ANYCASE }, // 459
- { "apply", APPLY }, // 460
- { "are", ARE }, // 461
- { "area", AREA }, // 462
- { "areas", AREAS }, // 463
- { "as", AS }, // 464
- { "ascending", ASCENDING }, // 465
- { "activating", ACTIVATING }, // 466
- { "asin", ASIN }, // 467
- { "assign", ASSIGN }, // 468
- { "at", AT }, // 469
- { "atan", ATAN }, // 470
- { "based", BASED }, // 471
- { "baseconvert", BASECONVERT }, // 472
- { "before", BEFORE }, // 473
- { "binary", BINARY }, // 474
- { "bit", BIT }, // 475
- { "bit-of", BIT_OF }, // 476
- { "bit-to-char", BIT_TO_CHAR }, // 477
- { "blank", BLANK }, // 478
- { "block", BLOCK_kw }, // 479
- { "boolean-of-integer", BOOLEAN_OF_INTEGER }, // 480
- { "bottom", BOTTOM }, // 481
- { "by", BY }, // 482
- { "byte", BYTE }, // 483
- { "byte-length", BYTE_LENGTH }, // 484
- { "cf", CF }, // 485
- { "ch", CH }, // 486
- { "changed", CHANGED }, // 487
- { "char", CHAR }, // 488
- { "char-national", CHAR_NATIONAL }, // 489
- { "character", CHARACTER }, // 490
- { "characters", CHARACTERS }, // 491
- { "checking", CHECKING }, // 492
- { "class", CLASS }, // 493
- { "cobol", COBOL }, // 494
- { "code", CODE }, // 495
- { "code-set", CODESET }, // 496
- { "collating", COLLATING }, // 497
- { "column", COLUMN }, // 498
- { "combined-datetime", COMBINED_DATETIME }, // 499
- { "comma", COMMA }, // 500
- { "command-line", COMMAND_LINE }, // 501
- { "command-line-count", COMMAND_LINE_COUNT }, // 502
- { "commit", COMMIT }, // 503
- { "common", COMMON }, // 504
- { "concat", CONCAT }, // 505
- { "condition", CONDITION }, // 506
- { "configuration", CONFIGURATION_SECT }, // 507
- { "contains", CONTAINS }, // 508
- { "content", CONTENT }, // 509
- { "control", CONTROL }, // 510
- { "controls", CONTROLS }, // 511
- { "convert", CONVERT }, // 512
- { "converting", CONVERTING }, // 513
- { "corresponding", CORRESPONDING }, // 514
- { "cos", COS }, // 515
- { "count", COUNT }, // 516
- { "currency", CURRENCY }, // 517
- { "current", CURRENT }, // 518
- { "current-date", CURRENT_DATE }, // 519
- { "data", DATA }, // 520
- { "date", DATE }, // 521
- { "date-compiled", DATE_COMPILED }, // 522
- { "date-of-integer", DATE_OF_INTEGER }, // 523
- { "date-to-yyyymmdd", DATE_TO_YYYYMMDD }, // 524
- { "date-written", DATE_WRITTEN }, // 525
- { "day", DAY }, // 526
- { "day-of-integer", DAY_OF_INTEGER }, // 527
- { "day-of-week", DAY_OF_WEEK }, // 528
- { "day-to-yyyyddd", DAY_TO_YYYYDDD }, // 529
- { "dbcs", DBCS }, // 530
- { "de", DE }, // 531
- { "debugging", DEBUGGING }, // 532
- { "decimal-point", DECIMAL_POINT }, // 533
- { "declaratives", DECLARATIVES }, // 534
- { "default", DEFAULT }, // 535
- { "delimited", DELIMITED }, // 536
- { "delimiter", DELIMITER }, // 537
- { "depending", DEPENDING }, // 538
- { "descending", DESCENDING }, // 539
- { "detail", DETAIL }, // 540
- { "direct", DIRECT }, // 541
- { "direct-access", DIRECT_ACCESS }, // 542
- { "down", DOWN }, // 543
- { "duplicates", DUPLICATES }, // 544
- { "dynamic", DYNAMIC }, // 545
- { "e", E }, // 546
- { "ebcdic", EBCDIC }, // 547
- { "ec", EC }, // 548
- { "egcs", EGCS }, // 549
- { "entry", ENTRY }, // 550
- { "environment", ENVIRONMENT }, // 551
- { "equal", EQUAL }, // 552
- { "every", EVERY }, // 553
- { "examine", EXAMINE }, // 554
- { "exhibit", EXHIBIT }, // 555
- { "exp", EXP }, // 556
- { "exp10", EXP10 }, // 557
- { "extend", EXTEND }, // 558
- { "external", EXTERNAL }, // 559
- { "exception-file", EXCEPTION_FILE }, // 560
- { "exception-file-n", EXCEPTION_FILE_N }, // 561
- { "exception-location", EXCEPTION_LOCATION }, // 562
- { "exception-location-n", EXCEPTION_LOCATION_N }, // 563
- { "exception-statement", EXCEPTION_STATEMENT }, // 564
- { "exception-status", EXCEPTION_STATUS }, // 565
- { "factorial", FACTORIAL }, // 566
- { "false", FALSE_kw }, // 567
- { "fd", FD }, // 568
- { "file-control", FILE_CONTROL }, // 569
- { "file", FILE_KW }, // 570
- { "file-limit", FILE_LIMIT }, // 571
- { "final", FINAL }, // 572
- { "finally", FINALLY }, // 573
- { "find-string", FIND_STRING }, // 574
- { "first", FIRST }, // 575
- { "fixed", FIXED }, // 576
- { "footing", FOOTING }, // 577
- { "for", FOR }, // 578
- { "formatted-current-date", FORMATTED_CURRENT_DATE }, // 579
- { "formatted-date", FORMATTED_DATE }, // 580
- { "formatted-datetime", FORMATTED_DATETIME }, // 581
- { "formatted-time", FORMATTED_TIME }, // 582
- { "form-overflow", FORM_OVERFLOW }, // 583
- { "free", FREE }, // 584
- { "fraction-part", FRACTION_PART }, // 585
- { "from", FROM }, // 586
- { "function", FUNCTION }, // 587
- { "generate", GENERATE }, // 588
- { "giving", GIVING }, // 589
- { "global", GLOBAL }, // 590
- { "go", GO }, // 591
- { "group", GROUP }, // 592
- { "heading", HEADING }, // 593
- { "hex", HEX }, // 594
- { "hex-of", HEX_OF }, // 595
- { "hex-to-char", HEX_TO_CHAR }, // 596
- { "high-values", HIGH_VALUES }, // 597
- { "highest-algebraic", HIGHEST_ALGEBRAIC }, // 598
- { "hold", HOLD }, // 599
- { "ibm-360", IBM_360 }, // 600
- { "in", IN }, // 601
- { "include", INCLUDE }, // 602
- { "index", INDEX }, // 603
- { "indexed", INDEXED }, // 604
- { "indicate", INDICATE }, // 605
- { "initial", INITIAL_kw }, // 606
- { "initiate", INITIATE }, // 607
- { "input", INPUT }, // 608
- { "installation", INSTALLATION }, // 609
- { "interface", INTERFACE }, // 610
- { "integer", INTEGER }, // 611
- { "integer-of-boolean", INTEGER_OF_BOOLEAN }, // 612
- { "integer-of-date", INTEGER_OF_DATE }, // 613
- { "integer-of-day", INTEGER_OF_DAY }, // 614
- { "integer-of-formatted-date", INTEGER_OF_FORMATTED_DATE }, // 615
- { "integer-part", INTEGER_PART }, // 616
- { "into", INTO }, // 617
- { "intrinsic", INTRINSIC }, // 618
- { "invoke", INVOKE }, // 619
- { "i-o", IO }, // 620
- { "i-o-control", IO_CONTROL }, // 621
- { "is", IS }, // 622
- { "isnt", ISNT }, // 623
- { "kanji", KANJI }, // 624
- { "key", KEY }, // 625
- { "label", LABEL }, // 626
- { "last", LAST }, // 627
- { "leading", LEADING }, // 628
- { "left", LEFT }, // 629
- { "length", LENGTH }, // 630
- { "length-of", LENGTH_OF }, // 631
- { "limit", LIMIT }, // 632
- { "limits", LIMITS }, // 633
- { "line", LINE }, // 634
- { "lines", LINES }, // 635
- { "line-counter", LINE_COUNTER }, // 636
- { "linage", LINAGE }, // 637
- { "linkage", LINKAGE }, // 638
- { "locale", LOCALE }, // 639
- { "locale-compare", LOCALE_COMPARE }, // 640
- { "locale-date", LOCALE_DATE }, // 641
- { "locale-time", LOCALE_TIME }, // 642
- { "locale-time-from-seconds", LOCALE_TIME_FROM_SECONDS }, // 643
- { "local-storage", LOCAL_STORAGE }, // 644
- { "location", LOCATION }, // 645
- { "lock", LOCK }, // 646
- { "lock-on", LOCK_ON }, // 647
- { "log", LOG }, // 648
- { "log10", LOG10 }, // 649
- { "lower-case", LOWER_CASE }, // 650
- { "low-values", LOW_VALUES }, // 651
- { "lowest-algebraic", LOWEST_ALGEBRAIC }, // 652
- { "lparen", LPAREN }, // 653
- { "manual", MANUAL }, // 654
- { "maxx", MAXX }, // 655
- { "mean", MEAN }, // 656
- { "median", MEDIAN }, // 657
- { "midrange", MIDRANGE }, // 658
- { "minn", MINN }, // 659
- { "multiple", MULTIPLE }, // 660
- { "mod", MOD }, // 661
- { "mode", MODE }, // 662
- { "module-name", MODULE_NAME }, // 663
- { "named", NAMED }, // 664
- { "nat", NAT }, // 665
- { "national", NATIONAL }, // 666
- { "national-edited", NATIONAL_EDITED }, // 667
- { "national-of", NATIONAL_OF }, // 668
- { "native", NATIVE }, // 669
- { "nested", NESTED }, // 670
- { "next", NEXT }, // 671
- { "no", NO }, // 672
- { "note", NOTE }, // 673
- { "nulls", NULLS }, // 674
- { "null", NULLS }, // 674
- { "nullptr", NULLPTR }, // 675
- { "numeric", NUMERIC }, // 676
- { "numeric-edited", NUMERIC_EDITED }, // 677
- { "numval", NUMVAL }, // 678
- { "numval-c", NUMVAL_C }, // 679
- { "numval-f", NUMVAL_F }, // 680
- { "occurs", OCCURS }, // 681
- { "of", OF }, // 682
- { "off", OFF }, // 683
- { "omitted", OMITTED }, // 684
- { "on", ON }, // 685
- { "only", ONLY }, // 686
- { "optional", OPTIONAL }, // 687
- { "options", OPTIONS }, // 688
- { "ord", ORD }, // 689
- { "order", ORDER }, // 690
- { "ord-max", ORD_MAX }, // 691
- { "ord-min", ORD_MIN }, // 692
- { "organization", ORGANIZATION }, // 693
- { "other", OTHER }, // 694
- { "otherwise", OTHERWISE }, // 695
- { "output", OUTPUT }, // 696
- { "packed-decimal", PACKED_DECIMAL }, // 697
- { "padding", PADDING }, // 698
- { "page", PAGE }, // 699
- { "page-counter", PAGE_COUNTER }, // 700
- { "pf", PF }, // 701
- { "ph", PH }, // 702
- { "pi", PI }, // 703
- { "pic", PIC }, // 704
- { "picture", PICTURE }, // 705
- { "plus", PLUS }, // 706
- { "present-value", PRESENT_VALUE }, // 707
- { "print-switch", PRINT_SWITCH }, // 708
- { "procedure", PROCEDURE }, // 709
- { "procedures", PROCEDURES }, // 710
- { "proceed", PROCEED }, // 711
- { "process", PROCESS }, // 712
- { "program-id", PROGRAM_ID }, // 713
- { "program", PROGRAM_kw }, // 714
- { "property", PROPERTY }, // 715
- { "prototype", PROTOTYPE }, // 716
- { "pseudotext", PSEUDOTEXT }, // 717
- { "quotes", QUOTES }, // 718
- { "quote", QUOTES }, // 718
- { "random", RANDOM }, // 719
- { "random-seed", RANDOM_SEED }, // 720
- { "range", RANGE }, // 721
- { "raise", RAISE }, // 722
- { "raising", RAISING }, // 723
- { "rd", RD }, // 724
- { "record", RECORD }, // 725
- { "recording", RECORDING }, // 726
- { "records", RECORDS }, // 727
- { "recursive", RECURSIVE }, // 728
- { "redefines", REDEFINES }, // 729
- { "reel", REEL }, // 730
- { "reference", REFERENCE }, // 731
- { "relative", RELATIVE }, // 732
- { "rem", REM }, // 733
- { "remainder", REMAINDER }, // 734
- { "remarks", REMARKS }, // 735
- { "removal", REMOVAL }, // 736
- { "renames", RENAMES }, // 737
- { "replace", REPLACE }, // 738
- { "replacing", REPLACING }, // 739
- { "report", REPORT }, // 740
- { "reporting", REPORTING }, // 741
- { "reports", REPORTS }, // 742
- { "repository", REPOSITORY }, // 743
- { "rerun", RERUN }, // 744
- { "reserve", RESERVE }, // 745
- { "restricted", RESTRICTED }, // 746
- { "resume", RESUME }, // 747
- { "reverse", REVERSE }, // 748
- { "reversed", REVERSED }, // 749
- { "rewind", REWIND }, // 750
- { "rf", RF }, // 751
- { "rh", RH }, // 752
- { "right", RIGHT }, // 753
- { "rounded", ROUNDED }, // 754
- { "run", RUN }, // 755
- { "same", SAME }, // 756
- { "screen", SCREEN }, // 757
- { "sd", SD }, // 758
- { "seconds-from-formatted-time", SECONDS_FROM_FORMATTED_TIME }, // 759
- { "seconds-past-midnight", SECONDS_PAST_MIDNIGHT }, // 760
- { "security", SECURITY }, // 761
- { "separate", SEPARATE }, // 762
- { "sequence", SEQUENCE }, // 763
- { "sequential", SEQUENTIAL }, // 764
- { "sharing", SHARING }, // 765
- { "simple-exit", SIMPLE_EXIT }, // 766
- { "sign", SIGN }, // 767
- { "sin", SIN }, // 768
- { "size", SIZE }, // 769
- { "smallest-algebraic", SMALLEST_ALGEBRAIC }, // 770
- { "source", SOURCE }, // 771
- { "source-computer", SOURCE_COMPUTER }, // 772
- { "special-names", SPECIAL_NAMES }, // 773
- { "sqrt", SQRT }, // 774
- { "stack", STACK }, // 775
- { "standard", STANDARD }, // 776
- { "standard-1", STANDARD_1 }, // 777
- { "standard-deviation", STANDARD_DEVIATION }, // 778
- { "standard-compare", STANDARD_COMPARE }, // 779
- { "status", STATUS }, // 780
- { "strong", STRONG }, // 781
- { "substitute", SUBSTITUTE }, // 782
- { "sum", SUM }, // 783
- { "symbol", SYMBOL }, // 784
- { "symbolic", SYMBOLIC }, // 785
- { "synchronized", SYNCHRONIZED }, // 786
- { "tally", TALLY }, // 787
- { "tallying", TALLYING }, // 788
- { "tan", TAN }, // 789
- { "terminate", TERMINATE }, // 790
- { "test", TEST }, // 791
- { "test-date-yyyymmdd", TEST_DATE_YYYYMMDD }, // 792
- { "test-day-yyyyddd", TEST_DAY_YYYYDDD }, // 793
- { "test-formatted-datetime", TEST_FORMATTED_DATETIME }, // 794
- { "test-numval", TEST_NUMVAL }, // 795
- { "test-numval-c", TEST_NUMVAL_C }, // 796
- { "test-numval-f", TEST_NUMVAL_F }, // 797
- { "than", THAN }, // 798
- { "time", TIME }, // 799
- { "times", TIMES }, // 800
- { "to", TO }, // 801
- { "top", TOP }, // 802
- { "top-level", TOP_LEVEL }, // 803
- { "tracks", TRACKS }, // 804
- { "track-area", TRACK_AREA }, // 805
- { "trailing", TRAILING }, // 806
- { "transform", TRANSFORM }, // 807
- { "trim", TRIM }, // 808
- { "true", TRUE_kw }, // 809
- { "try", TRY }, // 810
- { "turn", TURN }, // 811
- { "type", TYPE }, // 812
- { "typedef", TYPEDEF }, // 813
- { "ulength", ULENGTH }, // 814
- { "unbounded", UNBOUNDED }, // 815
- { "unit", UNIT }, // 816
- { "units", UNITS }, // 817
- { "unit-record", UNIT_RECORD }, // 818
- { "until", UNTIL }, // 819
- { "up", UP }, // 820
- { "upon", UPON }, // 821
- { "upos", UPOS }, // 822
- { "upper-case", UPPER_CASE }, // 823
- { "usage", USAGE }, // 824
- { "using", USING }, // 825
- { "usubstr", USUBSTR }, // 826
- { "usupplementary", USUPPLEMENTARY }, // 827
- { "utility", UTILITY }, // 828
- { "uuid4", UUID4 }, // 829
- { "uvalid", UVALID }, // 830
- { "uwidth", UWIDTH }, // 831
- { "value", VALUE }, // 832
- { "variance", VARIANCE }, // 833
- { "varying", VARYING }, // 834
- { "volatile", VOLATILE }, // 835
- { "when-compiled", WHEN_COMPILED }, // 836
- { "with", WITH }, // 837
- { "working-storage", WORKING_STORAGE }, // 838
- { "xml", XML }, // 839
- { "xmlgenerate", XMLGENERATE }, // 840
- { "xmlparse", XMLPARSE }, // 841
- { "year-to-yyyy", YEAR_TO_YYYY }, // 842
- { "yyyyddd", YYYYDDD }, // 843
- { "yyyymmdd", YYYYMMDD }, // 844
- { "arithmetic", ARITHMETIC }, // 845
- { "attribute", ATTRIBUTE }, // 846
- { "auto", AUTO }, // 847
- { "automatic", AUTOMATIC }, // 848
- { "away-from-zero", AWAY_FROM_ZERO }, // 849
- { "background-color", BACKGROUND_COLOR }, // 850
- { "bell", BELL }, // 851
- { "binary-encoding", BINARY_ENCODING }, // 852
- { "blink", BLINK }, // 853
- { "capacity", CAPACITY }, // 854
- { "center", CENTER }, // 855
- { "classification", CLASSIFICATION }, // 856
- { "cycle", CYCLE }, // 857
- { "decimal-encoding", DECIMAL_ENCODING }, // 858
- { "entry-convention", ENTRY_CONVENTION }, // 859
- { "eol", EOL }, // 860
- { "eos", EOS }, // 861
- { "erase", ERASE }, // 862
- { "expands", EXPANDS }, // 863
- { "float-binary", FLOAT_BINARY }, // 864
- { "float-decimal", FLOAT_DECIMAL }, // 865
- { "foreground-color", FOREGROUND_COLOR }, // 866
- { "forever", FOREVER }, // 867
- { "full", FULL }, // 868
- { "highlight", HIGHLIGHT }, // 869
- { "high-order-left", HIGH_ORDER_LEFT }, // 870
- { "high-order-right", HIGH_ORDER_RIGHT }, // 871
- { "ignoring", IGNORING }, // 872
- { "implements", IMPLEMENTS }, // 873
- { "initialized", INITIALIZED }, // 874
- { "intermediate", INTERMEDIATE }, // 875
- { "lc-all", LC_ALL_kw }, // 876
- { "lc-collate", LC_COLLATE_kw }, // 877
- { "lc-ctype", LC_CTYPE_kw }, // 878
- { "lc-messages", LC_MESSAGES_kw }, // 879
- { "lc-monetary", LC_MONETARY_kw }, // 880
- { "lc-numeric", LC_NUMERIC_kw }, // 881
- { "lc-time", LC_TIME_kw }, // 882
- { "lowlight", LOWLIGHT }, // 883
- { "nearest-away-from-zero", NEAREST_AWAY_FROM_ZERO }, // 884
- { "nearest-even", NEAREST_EVEN }, // 885
- { "nearest-toward-zero", NEAREST_TOWARD_ZERO }, // 886
- { "none", NONE }, // 887
- { "normal", NORMAL }, // 888
- { "numbers", NUMBERS }, // 889
- { "prefixed", PREFIXED }, // 890
- { "previous", PREVIOUS }, // 891
- { "prohibited", PROHIBITED }, // 892
- { "relation", RELATION }, // 893
- { "required", REQUIRED }, // 894
- { "reverse-video", REVERSE_VIDEO }, // 895
- { "rounding", ROUNDING }, // 896
- { "seconds", SECONDS }, // 897
- { "secure", SECURE }, // 898
- { "short", SHORT }, // 899
- { "signed", SIGNED_kw }, // 900
- { "standard-binary", STANDARD_BINARY }, // 901
- { "standard-decimal", STANDARD_DECIMAL }, // 902
- { "statement", STATEMENT }, // 903
- { "step", STEP }, // 904
- { "structure", STRUCTURE }, // 905
- { "toward-greater", TOWARD_GREATER }, // 906
- { "toward-lesser", TOWARD_LESSER }, // 907
- { "truncation", TRUNCATION }, // 908
- { "ucs-4", UCS_4 }, // 909
- { "underline", UNDERLINE }, // 910
- { "unsigned", UNSIGNED_kw }, // 911
- { "utf-16", UTF_16 }, // 912
- { "utf-8", UTF_8 }, // 913
- { "address", ADDRESS }, // 914
- { "end-accept", END_ACCEPT }, // 915
- { "end-add", END_ADD }, // 916
- { "end-call", END_CALL }, // 917
- { "end-compute", END_COMPUTE }, // 918
- { "end-delete", END_DELETE }, // 919
- { "end-display", END_DISPLAY }, // 920
- { "end-divide", END_DIVIDE }, // 921
- { "end-evaluate", END_EVALUATE }, // 922
- { "end-multiply", END_MULTIPLY }, // 923
- { "end-perform", END_PERFORM }, // 924
- { "end-read", END_READ }, // 925
- { "end-return", END_RETURN }, // 926
- { "end-rewrite", END_REWRITE }, // 927
- { "end-search", END_SEARCH }, // 928
- { "end-start", END_START }, // 929
- { "end-string", END_STRING }, // 930
- { "end-subtract", END_SUBTRACT }, // 931
- { "end-unstring", END_UNSTRING }, // 932
- { "end-write", END_WRITE }, // 933
- { "end-if", END_IF }, // 934
- { "thru", THRU }, // 935
- { "through", THRU }, // 935
- { "or", OR }, // 936
- { "and", AND }, // 937
- { "not", NOT }, // 938
- { "ne", NE }, // 939
- { "le", LE }, // 940
- { "ge", GE }, // 941
- { "pow", POW }, // 942
- { "neg", NEG }, // 943
+ { "call-convention", CALL_CONVENTION }, // 391
+ { "call-cobol", CALL_COBOL }, // 392
+ { "call-verbatim", CALL_VERBATIM }, // 393
+ { "cdf-push", CDF_PUSH }, // 394
+ { "cdf-pop", CDF_POP }, // 395
+ { "source-format", SOURCE_FORMAT }, // 396
+ { "if", IF }, // 397
+ { "then", THEN }, // 398
+ { "else", ELSE }, // 399
+ { "sentence", SENTENCE }, // 400
+ { "accept", ACCEPT }, // 401
+ { "add", ADD }, // 402
+ { "alter", ALTER }, // 403
+ { "call", CALL }, // 404
+ { "cancel", CANCEL }, // 405
+ { "close", CLOSE }, // 406
+ { "compute", COMPUTE }, // 407
+ { "continue", CONTINUE }, // 408
+ { "delete", DELETE }, // 409
+ { "display", DISPLAY }, // 410
+ { "divide", DIVIDE }, // 411
+ { "evaluate", EVALUATE }, // 412
+ { "exit", EXIT }, // 413
+ { "filler", FILLER_kw }, // 414
+ { "goback", GOBACK }, // 415
+ { "goto", GOTO }, // 416
+ { "initialize", INITIALIZE }, // 417
+ { "inspect", INSPECT }, // 418
+ { "merge", MERGE }, // 419
+ { "move", MOVE }, // 420
+ { "multiply", MULTIPLY }, // 421
+ { "open", OPEN }, // 422
+ { "paragraph", PARAGRAPH }, // 423
+ { "read", READ }, // 424
+ { "release", RELEASE }, // 425
+ { "return", RETURN }, // 426
+ { "rewrite", REWRITE }, // 427
+ { "search", SEARCH }, // 428
+ { "set", SET }, // 429
+ { "select", SELECT }, // 430
+ { "sort", SORT }, // 431
+ { "sort-merge", SORT_MERGE }, // 432
+ { "string", STRING_kw }, // 433
+ { "stop", STOP }, // 434
+ { "subtract", SUBTRACT }, // 435
+ { "start", START }, // 436
+ { "unstring", UNSTRING }, // 437
+ { "write", WRITE }, // 438
+ { "when", WHEN }, // 439
+ { "argument-number", ARGUMENT_NUMBER }, // 440
+ { "argument-value", ARGUMENT_VALUE }, // 441
+ { "environment-name", ENVIRONMENT_NAME }, // 442
+ { "environment-value", ENVIRONMENT_VALUE }, // 443
+ { "abs", ABS }, // 444
+ { "access", ACCESS }, // 445
+ { "acos", ACOS }, // 446
+ { "actual", ACTUAL }, // 447
+ { "advancing", ADVANCING }, // 448
+ { "after", AFTER }, // 449
+ { "all", ALL }, // 450
+ { "allocate", ALLOCATE }, // 451
+ { "alphabet", ALPHABET }, // 452
+ { "alphabetic", ALPHABETIC }, // 453
+ { "alphabetic-lower", ALPHABETIC_LOWER }, // 454
+ { "alphabetic-upper", ALPHABETIC_UPPER }, // 455
+ { "alphanumeric", ALPHANUMERIC }, // 456
+ { "alphanumeric-edited", ALPHANUMERIC_EDITED }, // 457
+ { "also", ALSO }, // 458
+ { "alternate", ALTERNATE }, // 459
+ { "annuity", ANNUITY }, // 460
+ { "anum", ANUM }, // 461
+ { "any", ANY }, // 462
+ { "anycase", ANYCASE }, // 463
+ { "apply", APPLY }, // 464
+ { "are", ARE }, // 465
+ { "area", AREA }, // 466
+ { "areas", AREAS }, // 467
+ { "as", AS }, // 468
+ { "ascending", ASCENDING }, // 469
+ { "activating", ACTIVATING }, // 470
+ { "asin", ASIN }, // 471
+ { "assign", ASSIGN }, // 472
+ { "at", AT }, // 473
+ { "atan", ATAN }, // 474
+ { "based", BASED }, // 475
+ { "baseconvert", BASECONVERT }, // 476
+ { "before", BEFORE }, // 477
+ { "binary", BINARY }, // 478
+ { "bit", BIT }, // 479
+ { "bit-of", BIT_OF }, // 480
+ { "bit-to-char", BIT_TO_CHAR }, // 481
+ { "blank", BLANK }, // 482
+ { "block", BLOCK_kw }, // 483
+ { "boolean-of-integer", BOOLEAN_OF_INTEGER }, // 484
+ { "bottom", BOTTOM }, // 485
+ { "by", BY }, // 486
+ { "byte", BYTE }, // 487
+ { "byte-length", BYTE_LENGTH }, // 488
+ { "cf", CF }, // 489
+ { "ch", CH }, // 490
+ { "changed", CHANGED }, // 491
+ { "char", CHAR }, // 492
+ { "char-national", CHAR_NATIONAL }, // 493
+ { "character", CHARACTER }, // 494
+ { "characters", CHARACTERS }, // 495
+ { "checking", CHECKING }, // 496
+ { "class", CLASS }, // 497
+ { "cobol", COBOL }, // 498
+ { "code", CODE }, // 499
+ { "code-set", CODESET }, // 500
+ { "collating", COLLATING }, // 501
+ { "column", COLUMN }, // 502
+ { "combined-datetime", COMBINED_DATETIME }, // 503
+ { "comma", COMMA }, // 504
+ { "command-line", COMMAND_LINE }, // 505
+ { "command-line-count", COMMAND_LINE_COUNT }, // 506
+ { "commit", COMMIT }, // 507
+ { "common", COMMON }, // 508
+ { "concat", CONCAT }, // 509
+ { "condition", CONDITION }, // 510
+ { "configuration", CONFIGURATION_SECT }, // 511
+ { "contains", CONTAINS }, // 512
+ { "content", CONTENT }, // 513
+ { "control", CONTROL }, // 514
+ { "controls", CONTROLS }, // 515
+ { "convert", CONVERT }, // 516
+ { "converting", CONVERTING }, // 517
+ { "corresponding", CORRESPONDING }, // 518
+ { "cos", COS }, // 519
+ { "count", COUNT }, // 520
+ { "currency", CURRENCY }, // 521
+ { "current", CURRENT }, // 522
+ { "current-date", CURRENT_DATE }, // 523
+ { "data", DATA }, // 524
+ { "date", DATE }, // 525
+ { "date-compiled", DATE_COMPILED }, // 526
+ { "date-of-integer", DATE_OF_INTEGER }, // 527
+ { "date-to-yyyymmdd", DATE_TO_YYYYMMDD }, // 528
+ { "date-written", DATE_WRITTEN }, // 529
+ { "day", DAY }, // 530
+ { "day-of-integer", DAY_OF_INTEGER }, // 531
+ { "day-of-week", DAY_OF_WEEK }, // 532
+ { "day-to-yyyyddd", DAY_TO_YYYYDDD }, // 533
+ { "dbcs", DBCS }, // 534
+ { "de", DE }, // 535
+ { "debugging", DEBUGGING }, // 536
+ { "decimal-point", DECIMAL_POINT }, // 537
+ { "declaratives", DECLARATIVES }, // 538
+ { "default", DEFAULT }, // 539
+ { "delimited", DELIMITED }, // 540
+ { "delimiter", DELIMITER }, // 541
+ { "depending", DEPENDING }, // 542
+ { "descending", DESCENDING }, // 543
+ { "detail", DETAIL }, // 544
+ { "direct", DIRECT }, // 545
+ { "direct-access", DIRECT_ACCESS }, // 546
+ { "down", DOWN }, // 547
+ { "duplicates", DUPLICATES }, // 548
+ { "dynamic", DYNAMIC }, // 549
+ { "e", E }, // 550
+ { "ebcdic", EBCDIC }, // 551
+ { "ec", EC }, // 552
+ { "egcs", EGCS }, // 553
+ { "entry", ENTRY }, // 554
+ { "environment", ENVIRONMENT }, // 555
+ { "equal", EQUAL }, // 556
+ { "every", EVERY }, // 557
+ { "examine", EXAMINE }, // 558
+ { "exhibit", EXHIBIT }, // 559
+ { "exp", EXP }, // 560
+ { "exp10", EXP10 }, // 561
+ { "extend", EXTEND }, // 562
+ { "external", EXTERNAL }, // 563
+ { "exception-file", EXCEPTION_FILE }, // 564
+ { "exception-file-n", EXCEPTION_FILE_N }, // 565
+ { "exception-location", EXCEPTION_LOCATION }, // 566
+ { "exception-location-n", EXCEPTION_LOCATION_N }, // 567
+ { "exception-statement", EXCEPTION_STATEMENT }, // 568
+ { "exception-status", EXCEPTION_STATUS }, // 569
+ { "factorial", FACTORIAL }, // 570
+ { "false", FALSE_kw }, // 571
+ { "fd", FD }, // 572
+ { "file-control", FILE_CONTROL }, // 573
+ { "file", FILE_KW }, // 574
+ { "file-limit", FILE_LIMIT }, // 575
+ { "final", FINAL }, // 576
+ { "finally", FINALLY }, // 577
+ { "find-string", FIND_STRING }, // 578
+ { "first", FIRST }, // 579
+ { "fixed", FIXED }, // 580
+ { "footing", FOOTING }, // 581
+ { "for", FOR }, // 582
+ { "formatted-current-date", FORMATTED_CURRENT_DATE }, // 583
+ { "formatted-date", FORMATTED_DATE }, // 584
+ { "formatted-datetime", FORMATTED_DATETIME }, // 585
+ { "formatted-time", FORMATTED_TIME }, // 586
+ { "form-overflow", FORM_OVERFLOW }, // 587
+ { "free", FREE }, // 588
+ { "fraction-part", FRACTION_PART }, // 589
+ { "from", FROM }, // 590
+ { "function", FUNCTION }, // 591
+ { "generate", GENERATE }, // 592
+ { "giving", GIVING }, // 593
+ { "global", GLOBAL }, // 594
+ { "go", GO }, // 595
+ { "group", GROUP }, // 596
+ { "heading", HEADING }, // 597
+ { "hex", HEX }, // 598
+ { "hex-of", HEX_OF }, // 599
+ { "hex-to-char", HEX_TO_CHAR }, // 600
+ { "high-values", HIGH_VALUES }, // 601
+ { "highest-algebraic", HIGHEST_ALGEBRAIC }, // 602
+ { "hold", HOLD }, // 603
+ { "ibm-360", IBM_360 }, // 604
+ { "in", IN }, // 605
+ { "include", INCLUDE }, // 606
+ { "index", INDEX }, // 607
+ { "indexed", INDEXED }, // 608
+ { "indicate", INDICATE }, // 609
+ { "initial", INITIAL_kw }, // 610
+ { "initiate", INITIATE }, // 611
+ { "input", INPUT }, // 612
+ { "installation", INSTALLATION }, // 613
+ { "interface", INTERFACE }, // 614
+ { "integer", INTEGER }, // 615
+ { "integer-of-boolean", INTEGER_OF_BOOLEAN }, // 616
+ { "integer-of-date", INTEGER_OF_DATE }, // 617
+ { "integer-of-day", INTEGER_OF_DAY }, // 618
+ { "integer-of-formatted-date", INTEGER_OF_FORMATTED_DATE }, // 619
+ { "integer-part", INTEGER_PART }, // 620
+ { "into", INTO }, // 621
+ { "intrinsic", INTRINSIC }, // 622
+ { "invoke", INVOKE }, // 623
+ { "i-o", IO }, // 624
+ { "i-o-control", IO_CONTROL }, // 625
+ { "is", IS }, // 626
+ { "isnt", ISNT }, // 627
+ { "kanji", KANJI }, // 628
+ { "key", KEY }, // 629
+ { "label", LABEL }, // 630
+ { "last", LAST }, // 631
+ { "leading", LEADING }, // 632
+ { "left", LEFT }, // 633
+ { "length", LENGTH }, // 634
+ { "length-of", LENGTH_OF }, // 635
+ { "limit", LIMIT }, // 636
+ { "limits", LIMITS }, // 637
+ { "line", LINE }, // 638
+ { "lines", LINES }, // 639
+ { "line-counter", LINE_COUNTER }, // 640
+ { "linage", LINAGE }, // 641
+ { "linkage", LINKAGE }, // 642
+ { "locale", LOCALE }, // 643
+ { "locale-compare", LOCALE_COMPARE }, // 644
+ { "locale-date", LOCALE_DATE }, // 645
+ { "locale-time", LOCALE_TIME }, // 646
+ { "locale-time-from-seconds", LOCALE_TIME_FROM_SECONDS }, // 647
+ { "local-storage", LOCAL_STORAGE }, // 648
+ { "location", LOCATION }, // 649
+ { "lock", LOCK }, // 650
+ { "lock-on", LOCK_ON }, // 651
+ { "log", LOG }, // 652
+ { "log10", LOG10 }, // 653
+ { "lower-case", LOWER_CASE }, // 654
+ { "low-values", LOW_VALUES }, // 655
+ { "lowest-algebraic", LOWEST_ALGEBRAIC }, // 656
+ { "lparen", LPAREN }, // 657
+ { "manual", MANUAL }, // 658
+ { "maxx", MAXX }, // 659
+ { "mean", MEAN }, // 660
+ { "median", MEDIAN }, // 661
+ { "midrange", MIDRANGE }, // 662
+ { "minn", MINN }, // 663
+ { "multiple", MULTIPLE }, // 664
+ { "mod", MOD }, // 665
+ { "mode", MODE }, // 666
+ { "module-name", MODULE_NAME }, // 667
+ { "named", NAMED }, // 668
+ { "nat", NAT }, // 669
+ { "national", NATIONAL }, // 670
+ { "national-edited", NATIONAL_EDITED }, // 671
+ { "national-of", NATIONAL_OF }, // 672
+ { "native", NATIVE }, // 673
+ { "nested", NESTED }, // 674
+ { "next", NEXT }, // 675
+ { "no", NO }, // 676
+ { "note", NOTE }, // 677
+ { "nulls", NULLS }, // 678
+ { "null", NULLS }, // 678
+ { "nullptr", NULLPTR }, // 679
+ { "numeric", NUMERIC }, // 680
+ { "numeric-edited", NUMERIC_EDITED }, // 681
+ { "numval", NUMVAL }, // 682
+ { "numval-c", NUMVAL_C }, // 683
+ { "numval-f", NUMVAL_F }, // 684
+ { "occurs", OCCURS }, // 685
+ { "of", OF }, // 686
+ { "off", OFF }, // 687
+ { "omitted", OMITTED }, // 688
+ { "on", ON }, // 689
+ { "only", ONLY }, // 690
+ { "optional", OPTIONAL }, // 691
+ { "options", OPTIONS }, // 692
+ { "ord", ORD }, // 693
+ { "order", ORDER }, // 694
+ { "ord-max", ORD_MAX }, // 695
+ { "ord-min", ORD_MIN }, // 696
+ { "organization", ORGANIZATION }, // 697
+ { "other", OTHER }, // 698
+ { "otherwise", OTHERWISE }, // 699
+ { "output", OUTPUT }, // 700
+ { "packed-decimal", PACKED_DECIMAL }, // 701
+ { "padding", PADDING }, // 702
+ { "page", PAGE }, // 703
+ { "page-counter", PAGE_COUNTER }, // 704
+ { "pf", PF }, // 705
+ { "ph", PH }, // 706
+ { "pi", PI }, // 707
+ { "pic", PIC }, // 708
+ { "picture", PICTURE }, // 709
+ { "plus", PLUS }, // 710
+ { "present-value", PRESENT_VALUE }, // 711
+ { "print-switch", PRINT_SWITCH }, // 712
+ { "procedure", PROCEDURE }, // 713
+ { "procedures", PROCEDURES }, // 714
+ { "proceed", PROCEED }, // 715
+ { "process", PROCESS }, // 716
+ { "program-id", PROGRAM_ID }, // 717
+ { "program", PROGRAM_kw }, // 718
+ { "property", PROPERTY }, // 719
+ { "prototype", PROTOTYPE }, // 720
+ { "pseudotext", PSEUDOTEXT }, // 721
+ { "quotes", QUOTES }, // 722
+ { "quote", QUOTES }, // 722
+ { "random", RANDOM }, // 723
+ { "random-seed", RANDOM_SEED }, // 724
+ { "range", RANGE }, // 725
+ { "raise", RAISE }, // 726
+ { "raising", RAISING }, // 727
+ { "rd", RD }, // 728
+ { "record", RECORD }, // 729
+ { "recording", RECORDING }, // 730
+ { "records", RECORDS }, // 731
+ { "recursive", RECURSIVE }, // 732
+ { "redefines", REDEFINES }, // 733
+ { "reel", REEL }, // 734
+ { "reference", REFERENCE }, // 735
+ { "relative", RELATIVE }, // 736
+ { "rem", REM }, // 737
+ { "remainder", REMAINDER }, // 738
+ { "remarks", REMARKS }, // 739
+ { "removal", REMOVAL }, // 740
+ { "renames", RENAMES }, // 741
+ { "replace", REPLACE }, // 742
+ { "replacing", REPLACING }, // 743
+ { "report", REPORT }, // 744
+ { "reporting", REPORTING }, // 745
+ { "reports", REPORTS }, // 746
+ { "repository", REPOSITORY }, // 747
+ { "rerun", RERUN }, // 748
+ { "reserve", RESERVE }, // 749
+ { "restricted", RESTRICTED }, // 750
+ { "resume", RESUME }, // 751
+ { "reverse", REVERSE }, // 752
+ { "reversed", REVERSED }, // 753
+ { "rewind", REWIND }, // 754
+ { "rf", RF }, // 755
+ { "rh", RH }, // 756
+ { "right", RIGHT }, // 757
+ { "rounded", ROUNDED }, // 758
+ { "run", RUN }, // 759
+ { "same", SAME }, // 760
+ { "screen", SCREEN }, // 761
+ { "sd", SD }, // 762
+ { "seconds-from-formatted-time", SECONDS_FROM_FORMATTED_TIME }, // 763
+ { "seconds-past-midnight", SECONDS_PAST_MIDNIGHT }, // 764
+ { "security", SECURITY }, // 765
+ { "separate", SEPARATE }, // 766
+ { "sequence", SEQUENCE }, // 767
+ { "sequential", SEQUENTIAL }, // 768
+ { "sharing", SHARING }, // 769
+ { "simple-exit", SIMPLE_EXIT }, // 770
+ { "sign", SIGN }, // 771
+ { "sin", SIN }, // 772
+ { "size", SIZE }, // 773
+ { "smallest-algebraic", SMALLEST_ALGEBRAIC }, // 774
+ { "source", SOURCE }, // 775
+ { "source-computer", SOURCE_COMPUTER }, // 776
+ { "special-names", SPECIAL_NAMES }, // 777
+ { "sqrt", SQRT }, // 778
+ { "stack", STACK }, // 779
+ { "standard", STANDARD }, // 780
+ { "standard-1", STANDARD_1 }, // 781
+ { "standard-deviation", STANDARD_DEVIATION }, // 782
+ { "standard-compare", STANDARD_COMPARE }, // 783
+ { "status", STATUS }, // 784
+ { "strong", STRONG }, // 785
+ { "substitute", SUBSTITUTE }, // 786
+ { "sum", SUM }, // 787
+ { "symbol", SYMBOL }, // 788
+ { "symbolic", SYMBOLIC }, // 789
+ { "synchronized", SYNCHRONIZED }, // 790
+ { "tally", TALLY }, // 791
+ { "tallying", TALLYING }, // 792
+ { "tan", TAN }, // 793
+ { "terminate", TERMINATE }, // 794
+ { "test", TEST }, // 795
+ { "test-date-yyyymmdd", TEST_DATE_YYYYMMDD }, // 796
+ { "test-day-yyyyddd", TEST_DAY_YYYYDDD }, // 797
+ { "test-formatted-datetime", TEST_FORMATTED_DATETIME }, // 798
+ { "test-numval", TEST_NUMVAL }, // 799
+ { "test-numval-c", TEST_NUMVAL_C }, // 800
+ { "test-numval-f", TEST_NUMVAL_F }, // 801
+ { "than", THAN }, // 802
+ { "time", TIME }, // 803
+ { "times", TIMES }, // 804
+ { "to", TO }, // 805
+ { "top", TOP }, // 806
+ { "top-level", TOP_LEVEL }, // 807
+ { "tracks", TRACKS }, // 808
+ { "track-area", TRACK_AREA }, // 809
+ { "trailing", TRAILING }, // 810
+ { "transform", TRANSFORM }, // 811
+ { "trim", TRIM }, // 812
+ { "true", TRUE_kw }, // 813
+ { "try", TRY }, // 814
+ { "turn", TURN }, // 815
+ { "type", TYPE }, // 816
+ { "typedef", TYPEDEF }, // 817
+ { "ulength", ULENGTH }, // 818
+ { "unbounded", UNBOUNDED }, // 819
+ { "unit", UNIT }, // 820
+ { "units", UNITS }, // 821
+ { "unit-record", UNIT_RECORD }, // 822
+ { "until", UNTIL }, // 823
+ { "up", UP }, // 824
+ { "upon", UPON }, // 825
+ { "upos", UPOS }, // 826
+ { "upper-case", UPPER_CASE }, // 827
+ { "usage", USAGE }, // 828
+ { "using", USING }, // 829
+ { "usubstr", USUBSTR }, // 830
+ { "usupplementary", USUPPLEMENTARY }, // 831
+ { "utility", UTILITY }, // 832
+ { "uuid4", UUID4 }, // 833
+ { "uvalid", UVALID }, // 834
+ { "uwidth", UWIDTH }, // 835
+ { "value", VALUE }, // 836
+ { "variance", VARIANCE }, // 837
+ { "varying", VARYING }, // 838
+ { "volatile", VOLATILE }, // 839
+ { "when-compiled", WHEN_COMPILED }, // 840
+ { "with", WITH }, // 841
+ { "working-storage", WORKING_STORAGE }, // 842
+ { "xml", XML }, // 843
+ { "xmlgenerate", XMLGENERATE }, // 844
+ { "xmlparse", XMLPARSE }, // 845
+ { "year-to-yyyy", YEAR_TO_YYYY }, // 846
+ { "yyyyddd", YYYYDDD }, // 847
+ { "yyyymmdd", YYYYMMDD }, // 848
+ { "arithmetic", ARITHMETIC }, // 849
+ { "attribute", ATTRIBUTE }, // 850
+ { "auto", AUTO }, // 851
+ { "automatic", AUTOMATIC }, // 852
+ { "away-from-zero", AWAY_FROM_ZERO }, // 853
+ { "background-color", BACKGROUND_COLOR }, // 854
+ { "bell", BELL }, // 855
+ { "binary-encoding", BINARY_ENCODING }, // 856
+ { "blink", BLINK }, // 857
+ { "capacity", CAPACITY }, // 858
+ { "center", CENTER }, // 859
+ { "classification", CLASSIFICATION }, // 860
+ { "cycle", CYCLE }, // 861
+ { "decimal-encoding", DECIMAL_ENCODING }, // 862
+ { "entry-convention", ENTRY_CONVENTION }, // 863
+ { "eol", EOL }, // 864
+ { "eos", EOS }, // 865
+ { "erase", ERASE }, // 866
+ { "expands", EXPANDS }, // 867
+ { "float-binary", FLOAT_BINARY }, // 868
+ { "float-decimal", FLOAT_DECIMAL }, // 869
+ { "foreground-color", FOREGROUND_COLOR }, // 870
+ { "forever", FOREVER }, // 871
+ { "full", FULL }, // 872
+ { "highlight", HIGHLIGHT }, // 873
+ { "high-order-left", HIGH_ORDER_LEFT }, // 874
+ { "high-order-right", HIGH_ORDER_RIGHT }, // 875
+ { "ignoring", IGNORING }, // 876
+ { "implements", IMPLEMENTS }, // 877
+ { "initialized", INITIALIZED }, // 878
+ { "intermediate", INTERMEDIATE }, // 879
+ { "lc-all", LC_ALL_kw }, // 880
+ { "lc-collate", LC_COLLATE_kw }, // 881
+ { "lc-ctype", LC_CTYPE_kw }, // 882
+ { "lc-messages", LC_MESSAGES_kw }, // 883
+ { "lc-monetary", LC_MONETARY_kw }, // 884
+ { "lc-numeric", LC_NUMERIC_kw }, // 885
+ { "lc-time", LC_TIME_kw }, // 886
+ { "lowlight", LOWLIGHT }, // 887
+ { "nearest-away-from-zero", NEAREST_AWAY_FROM_ZERO }, // 888
+ { "nearest-even", NEAREST_EVEN }, // 889
+ { "nearest-toward-zero", NEAREST_TOWARD_ZERO }, // 890
+ { "none", NONE }, // 891
+ { "normal", NORMAL }, // 892
+ { "numbers", NUMBERS }, // 893
+ { "prefixed", PREFIXED }, // 894
+ { "previous", PREVIOUS }, // 895
+ { "prohibited", PROHIBITED }, // 896
+ { "relation", RELATION }, // 897
+ { "required", REQUIRED }, // 898
+ { "reverse-video", REVERSE_VIDEO }, // 899
+ { "rounding", ROUNDING }, // 900
+ { "seconds", SECONDS }, // 901
+ { "secure", SECURE }, // 902
+ { "short", SHORT }, // 903
+ { "signed", SIGNED_kw }, // 904
+ { "standard-binary", STANDARD_BINARY }, // 905
+ { "standard-decimal", STANDARD_DECIMAL }, // 906
+ { "statement", STATEMENT }, // 907
+ { "step", STEP }, // 908
+ { "structure", STRUCTURE }, // 909
+ { "toward-greater", TOWARD_GREATER }, // 910
+ { "toward-lesser", TOWARD_LESSER }, // 911
+ { "truncation", TRUNCATION }, // 912
+ { "ucs-4", UCS_4 }, // 913
+ { "underline", UNDERLINE }, // 914
+ { "unsigned", UNSIGNED_kw }, // 915
+ { "utf-16", UTF_16 }, // 916
+ { "utf-8", UTF_8 }, // 917
+ { "address", ADDRESS }, // 918
+ { "end-accept", END_ACCEPT }, // 919
+ { "end-add", END_ADD }, // 920
+ { "end-call", END_CALL }, // 921
+ { "end-compute", END_COMPUTE }, // 922
+ { "end-delete", END_DELETE }, // 923
+ { "end-display", END_DISPLAY }, // 924
+ { "end-divide", END_DIVIDE }, // 925
+ { "end-evaluate", END_EVALUATE }, // 926
+ { "end-multiply", END_MULTIPLY }, // 927
+ { "end-perform", END_PERFORM }, // 928
+ { "end-read", END_READ }, // 929
+ { "end-return", END_RETURN }, // 930
+ { "end-rewrite", END_REWRITE }, // 931
+ { "end-search", END_SEARCH }, // 932
+ { "end-start", END_START }, // 933
+ { "end-string", END_STRING }, // 934
+ { "end-subtract", END_SUBTRACT }, // 935
+ { "end-unstring", END_UNSTRING }, // 936
+ { "end-write", END_WRITE }, // 937
+ { "end-if", END_IF }, // 938
+ { "thru", THRU }, // 939
+ { "through", THRU }, // 939
+ { "or", OR }, // 940
+ { "and", AND }, // 941
+ { "not", NOT }, // 942
+ { "ne", NE }, // 943
+ { "le", LE }, // 944
+ { "ge", GE }, // 945
+ { "pow", POW }, // 946
+ { "neg", NEG }, // 947
};
// cppcheck-suppress useInitializationList
@@ -830,557 +834,561 @@ token_names = {
"CDF-EVALUATE", // 130 (388)
"CDF-WHEN", // 131 (389)
"CDF-END-EVALUATE", // 132 (390)
- "CALL-COBOL", // 133 (391)
- "CALL-VERBATIM", // 134 (392)
- "IF", // 135 (393)
- "THEN", // 136 (394)
- "ELSE", // 137 (395)
- "SENTENCE", // 138 (396)
- "ACCEPT", // 139 (397)
- "ADD", // 140 (398)
- "ALTER", // 141 (399)
- "CALL", // 142 (400)
- "CANCEL", // 143 (401)
- "CLOSE", // 144 (402)
- "COMPUTE", // 145 (403)
- "CONTINUE", // 146 (404)
- "DELETE", // 147 (405)
- "DISPLAY", // 148 (406)
- "DIVIDE", // 149 (407)
- "EVALUATE", // 150 (408)
- "EXIT", // 151 (409)
- "FILLER", // 152 (410)
- "GOBACK", // 153 (411)
- "GOTO", // 154 (412)
- "INITIALIZE", // 155 (413)
- "INSPECT", // 156 (414)
- "MERGE", // 157 (415)
- "MOVE", // 158 (416)
- "MULTIPLY", // 159 (417)
- "OPEN", // 160 (418)
- "PARAGRAPH", // 161 (419)
- "READ", // 162 (420)
- "RELEASE", // 163 (421)
- "RETURN", // 164 (422)
- "REWRITE", // 165 (423)
- "SEARCH", // 166 (424)
- "SET", // 167 (425)
- "SELECT", // 168 (426)
- "SORT", // 169 (427)
- "SORT-MERGE", // 170 (428)
- "STRING", // 171 (429)
- "STOP", // 172 (430)
- "SUBTRACT", // 173 (431)
- "START", // 174 (432)
- "UNSTRING", // 175 (433)
- "WRITE", // 176 (434)
- "WHEN", // 177 (435)
- "ARGUMENT-NUMBER", // 178 (436)
- "ARGUMENT-VALUE", // 179 (437)
- "ENVIRONMENT-NAME", // 180 (438)
- "ENVIRONMENT-VALUE", // 181 (439)
- "ABS", // 182 (440)
- "ACCESS", // 183 (441)
- "ACOS", // 184 (442)
- "ACTUAL", // 185 (443)
- "ADVANCING", // 186 (444)
- "AFTER", // 187 (445)
- "ALL", // 188 (446)
- "ALLOCATE", // 189 (447)
- "ALPHABET", // 190 (448)
- "ALPHABETIC", // 191 (449)
- "ALPHABETIC-LOWER", // 192 (450)
- "ALPHABETIC-UPPER", // 193 (451)
- "ALPHANUMERIC", // 194 (452)
- "ALPHANUMERIC-EDITED", // 195 (453)
- "ALSO", // 196 (454)
- "ALTERNATE", // 197 (455)
- "ANNUITY", // 198 (456)
- "ANUM", // 199 (457)
- "ANY", // 200 (458)
- "ANYCASE", // 201 (459)
- "APPLY", // 202 (460)
- "ARE", // 203 (461)
- "AREA", // 204 (462)
- "AREAS", // 205 (463)
- "AS", // 206 (464)
- "ASCENDING", // 207 (465)
- "ACTIVATING", // 208 (466)
- "ASIN", // 209 (467)
- "ASSIGN", // 210 (468)
- "AT", // 211 (469)
- "ATAN", // 212 (470)
- "BASED", // 213 (471)
- "BASECONVERT", // 214 (472)
- "BEFORE", // 215 (473)
- "BINARY", // 216 (474)
- "BIT", // 217 (475)
- "BIT-OF", // 218 (476)
- "BIT-TO-CHAR", // 219 (477)
- "BLANK", // 220 (478)
- "BLOCK", // 221 (479)
- "BOOLEAN-OF-INTEGER", // 222 (480)
- "BOTTOM", // 223 (481)
- "BY", // 224 (482)
- "BYTE", // 225 (483)
- "BYTE-LENGTH", // 226 (484)
- "CF", // 227 (485)
- "CH", // 228 (486)
- "CHANGED", // 229 (487)
- "CHAR", // 230 (488)
- "CHAR-NATIONAL", // 231 (489)
- "CHARACTER", // 232 (490)
- "CHARACTERS", // 233 (491)
- "CHECKING", // 234 (492)
- "CLASS", // 235 (493)
- "COBOL", // 236 (494)
- "CODE", // 237 (495)
- "CODE-SET", // 238 (496)
- "COLLATING", // 239 (497)
- "COLUMN", // 240 (498)
- "COMBINED-DATETIME", // 241 (499)
- "COMMA", // 242 (500)
- "COMMAND-LINE", // 243 (501)
- "COMMAND-LINE-COUNT", // 244 (502)
- "COMMIT", // 245 (503)
- "COMMON", // 246 (504)
- "CONCAT", // 247 (505)
- "CONDITION", // 248 (506)
- "CONFIGURATION", // 249 (507)
- "CONTAINS", // 250 (508)
- "CONTENT", // 251 (509)
- "CONTROL", // 252 (510)
- "CONTROLS", // 253 (511)
- "CONVERT", // 254 (512)
- "CONVERTING", // 255 (513)
- "CORRESPONDING", // 256 (514)
- "COS", // 257 (515)
- "COUNT", // 258 (516)
- "CURRENCY", // 259 (517)
- "CURRENT", // 260 (518)
- "CURRENT-DATE", // 261 (519)
- "DATA", // 262 (520)
- "DATE", // 263 (521)
- "DATE-COMPILED", // 264 (522)
- "DATE-OF-INTEGER", // 265 (523)
- "DATE-TO-YYYYMMDD", // 266 (524)
- "DATE-WRITTEN", // 267 (525)
- "DAY", // 268 (526)
- "DAY-OF-INTEGER", // 269 (527)
- "DAY-OF-WEEK", // 270 (528)
- "DAY-TO-YYYYDDD", // 271 (529)
- "DBCS", // 272 (530)
- "DE", // 273 (531)
- "DEBUGGING", // 274 (532)
- "DECIMAL-POINT", // 275 (533)
- "DECLARATIVES", // 276 (534)
- "DEFAULT", // 277 (535)
- "DELIMITED", // 278 (536)
- "DELIMITER", // 279 (537)
- "DEPENDING", // 280 (538)
- "DESCENDING", // 281 (539)
- "DETAIL", // 282 (540)
- "DIRECT", // 283 (541)
- "DIRECT-ACCESS", // 284 (542)
- "DOWN", // 285 (543)
- "DUPLICATES", // 286 (544)
- "DYNAMIC", // 287 (545)
- "E", // 288 (546)
- "EBCDIC", // 289 (547)
- "EC", // 290 (548)
- "EGCS", // 291 (549)
- "ENTRY", // 292 (550)
- "ENVIRONMENT", // 293 (551)
- "EQUAL", // 294 (552)
- "EVERY", // 295 (553)
- "EXAMINE", // 296 (554)
- "EXHIBIT", // 297 (555)
- "EXP", // 298 (556)
- "EXP10", // 299 (557)
- "EXTEND", // 300 (558)
- "EXTERNAL", // 301 (559)
- "EXCEPTION-FILE", // 302 (560)
- "EXCEPTION-FILE-N", // 303 (561)
- "EXCEPTION-LOCATION", // 304 (562)
- "EXCEPTION-LOCATION-N", // 305 (563)
- "EXCEPTION-STATEMENT", // 306 (564)
- "EXCEPTION-STATUS", // 307 (565)
- "FACTORIAL", // 308 (566)
- "FALSE", // 309 (567)
- "FD", // 310 (568)
- "FILE-CONTROL", // 311 (569)
- "FILE", // 312 (570)
- "FILE-LIMIT", // 313 (571)
- "FINAL", // 314 (572)
- "FINALLY", // 315 (573)
- "FIND-STRING", // 316 (574)
- "FIRST", // 317 (575)
- "FIXED", // 318 (576)
- "FOOTING", // 319 (577)
- "FOR", // 320 (578)
- "FORMATTED-CURRENT-DATE", // 321 (579)
- "FORMATTED-DATE", // 322 (580)
- "FORMATTED-DATETIME", // 323 (581)
- "FORMATTED-TIME", // 324 (582)
- "FORM-OVERFLOW", // 325 (583)
- "FREE", // 326 (584)
- "FRACTION-PART", // 327 (585)
- "FROM", // 328 (586)
- "FUNCTION", // 329 (587)
- "GENERATE", // 330 (588)
- "GIVING", // 331 (589)
- "GLOBAL", // 332 (590)
- "GO", // 333 (591)
- "GROUP", // 334 (592)
- "HEADING", // 335 (593)
- "HEX", // 336 (594)
- "HEX-OF", // 337 (595)
- "HEX-TO-CHAR", // 338 (596)
- "HIGH-VALUES", // 339 (597)
- "HIGHEST-ALGEBRAIC", // 340 (598)
- "HOLD", // 341 (599)
- "IBM-360", // 342 (600)
- "IN", // 343 (601)
- "INCLUDE", // 344 (602)
- "INDEX", // 345 (603)
- "INDEXED", // 346 (604)
- "INDICATE", // 347 (605)
- "INITIAL", // 348 (606)
- "INITIATE", // 349 (607)
- "INPUT", // 350 (608)
- "INSTALLATION", // 351 (609)
- "INTERFACE", // 352 (610)
- "INTEGER", // 353 (611)
- "INTEGER-OF-BOOLEAN", // 354 (612)
- "INTEGER-OF-DATE", // 355 (613)
- "INTEGER-OF-DAY", // 356 (614)
- "INTEGER-OF-FORMATTED-DATE", // 357 (615)
- "INTEGER-PART", // 358 (616)
- "INTO", // 359 (617)
- "INTRINSIC", // 360 (618)
- "INVOKE", // 361 (619)
- "I-O", // 362 (620)
- "I-O-CONTROL", // 363 (621)
- "IS", // 364 (622)
- "ISNT", // 365 (623)
- "KANJI", // 366 (624)
- "KEY", // 367 (625)
- "LABEL", // 368 (626)
- "LAST", // 369 (627)
- "LEADING", // 370 (628)
- "LEFT", // 371 (629)
- "LENGTH", // 372 (630)
- "LENGTH-OF", // 373 (631)
- "LIMIT", // 374 (632)
- "LIMITS", // 375 (633)
- "LINE", // 376 (634)
- "LINES", // 377 (635)
- "LINE-COUNTER", // 378 (636)
- "LINAGE", // 379 (637)
- "LINKAGE", // 380 (638)
- "LOCALE", // 381 (639)
- "LOCALE-COMPARE", // 382 (640)
- "LOCALE-DATE", // 383 (641)
- "LOCALE-TIME", // 384 (642)
- "LOCALE-TIME-FROM-SECONDS", // 385 (643)
- "LOCAL-STORAGE", // 386 (644)
- "LOCATION", // 387 (645)
- "LOCK", // 388 (646)
- "LOCK-ON", // 389 (647)
- "LOG", // 390 (648)
- "LOG10", // 391 (649)
- "LOWER-CASE", // 392 (650)
- "LOW-VALUES", // 393 (651)
- "LOWEST-ALGEBRAIC", // 394 (652)
- "LPAREN", // 395 (653)
- "MANUAL", // 396 (654)
- "MAXX", // 397 (655)
- "MEAN", // 398 (656)
- "MEDIAN", // 399 (657)
- "MIDRANGE", // 400 (658)
- "MINN", // 401 (659)
- "MULTIPLE", // 402 (660)
- "MOD", // 403 (661)
- "MODE", // 404 (662)
- "MODULE-NAME", // 405 (663)
- "NAMED", // 406 (664)
- "NAT", // 407 (665)
- "NATIONAL", // 408 (666)
- "NATIONAL-EDITED", // 409 (667)
- "NATIONAL-OF", // 410 (668)
- "NATIVE", // 411 (669)
- "NESTED", // 412 (670)
- "NEXT", // 413 (671)
- "NO", // 414 (672)
- "NOTE", // 415 (673)
- "NULLS", // 416 (674)
- "NULLPTR", // 417 (675)
- "NUMERIC", // 418 (676)
- "NUMERIC-EDITED", // 419 (677)
- "NUMVAL", // 420 (678)
- "NUMVAL-C", // 421 (679)
- "NUMVAL-F", // 422 (680)
- "OCCURS", // 423 (681)
- "OF", // 424 (682)
- "OFF", // 425 (683)
- "OMITTED", // 426 (684)
- "ON", // 427 (685)
- "ONLY", // 428 (686)
- "OPTIONAL", // 429 (687)
- "OPTIONS", // 430 (688)
- "ORD", // 431 (689)
- "ORDER", // 432 (690)
- "ORD-MAX", // 433 (691)
- "ORD-MIN", // 434 (692)
- "ORGANIZATION", // 435 (693)
- "OTHER", // 436 (694)
- "OTHERWISE", // 437 (695)
- "OUTPUT", // 438 (696)
- "PACKED-DECIMAL", // 439 (697)
- "PADDING", // 440 (698)
- "PAGE", // 441 (699)
- "PAGE-COUNTER", // 442 (700)
- "PF", // 443 (701)
- "PH", // 444 (702)
- "PI", // 445 (703)
- "PIC", // 446 (704)
- "PICTURE", // 447 (705)
- "PLUS", // 448 (706)
- "PRESENT-VALUE", // 449 (707)
- "PRINT-SWITCH", // 450 (708)
- "PROCEDURE", // 451 (709)
- "PROCEDURES", // 452 (710)
- "PROCEED", // 453 (711)
- "PROCESS", // 454 (712)
- "PROGRAM-ID", // 455 (713)
- "PROGRAM", // 456 (714)
- "PROPERTY", // 457 (715)
- "PROTOTYPE", // 458 (716)
- "PSEUDOTEXT", // 459 (717)
- "QUOTES", // 460 (718)
- "RANDOM", // 461 (719)
- "RANDOM-SEED", // 462 (720)
- "RANGE", // 463 (721)
- "RAISE", // 464 (722)
- "RAISING", // 465 (723)
- "RD", // 466 (724)
- "RECORD", // 467 (725)
- "RECORDING", // 468 (726)
- "RECORDS", // 469 (727)
- "RECURSIVE", // 470 (728)
- "REDEFINES", // 471 (729)
- "REEL", // 472 (730)
- "REFERENCE", // 473 (731)
- "RELATIVE", // 474 (732)
- "REM", // 475 (733)
- "REMAINDER", // 476 (734)
- "REMARKS", // 477 (735)
- "REMOVAL", // 478 (736)
- "RENAMES", // 479 (737)
- "REPLACE", // 480 (738)
- "REPLACING", // 481 (739)
- "REPORT", // 482 (740)
- "REPORTING", // 483 (741)
- "REPORTS", // 484 (742)
- "REPOSITORY", // 485 (743)
- "RERUN", // 486 (744)
- "RESERVE", // 487 (745)
- "RESTRICTED", // 488 (746)
- "RESUME", // 489 (747)
- "REVERSE", // 490 (748)
- "REVERSED", // 491 (749)
- "REWIND", // 492 (750)
- "RF", // 493 (751)
- "RH", // 494 (752)
- "RIGHT", // 495 (753)
- "ROUNDED", // 496 (754)
- "RUN", // 497 (755)
- "SAME", // 498 (756)
- "SCREEN", // 499 (757)
- "SD", // 500 (758)
- "SECONDS-FROM-FORMATTED-TIME", // 501 (759)
- "SECONDS-PAST-MIDNIGHT", // 502 (760)
- "SECURITY", // 503 (761)
- "SEPARATE", // 504 (762)
- "SEQUENCE", // 505 (763)
- "SEQUENTIAL", // 506 (764)
- "SHARING", // 507 (765)
- "SIMPLE-EXIT", // 508 (766)
- "SIGN", // 509 (767)
- "SIN", // 510 (768)
- "SIZE", // 511 (769)
- "SMALLEST-ALGEBRAIC", // 512 (770)
- "SOURCE", // 513 (771)
- "SOURCE-COMPUTER", // 514 (772)
- "SPECIAL-NAMES", // 515 (773)
- "SQRT", // 516 (774)
- "STACK", // 517 (775)
- "STANDARD", // 518 (776)
- "STANDARD-1", // 519 (777)
- "STANDARD-DEVIATION", // 520 (778)
- "STANDARD-COMPARE", // 521 (779)
- "STATUS", // 522 (780)
- "STRONG", // 523 (781)
- "SUBSTITUTE", // 524 (782)
- "SUM", // 525 (783)
- "SYMBOL", // 526 (784)
- "SYMBOLIC", // 527 (785)
- "SYNCHRONIZED", // 528 (786)
- "TALLY", // 529 (787)
- "TALLYING", // 530 (788)
- "TAN", // 531 (789)
- "TERMINATE", // 532 (790)
- "TEST", // 533 (791)
- "TEST-DATE-YYYYMMDD", // 534 (792)
- "TEST-DAY-YYYYDDD", // 535 (793)
- "TEST-FORMATTED-DATETIME", // 536 (794)
- "TEST-NUMVAL", // 537 (795)
- "TEST-NUMVAL-C", // 538 (796)
- "TEST-NUMVAL-F", // 539 (797)
- "THAN", // 540 (798)
- "TIME", // 541 (799)
- "TIMES", // 542 (800)
- "TO", // 543 (801)
- "TOP", // 544 (802)
- "TOP-LEVEL", // 545 (803)
- "TRACKS", // 546 (804)
- "TRACK-AREA", // 547 (805)
- "TRAILING", // 548 (806)
- "TRANSFORM", // 549 (807)
- "TRIM", // 550 (808)
- "TRUE", // 551 (809)
- "TRY", // 552 (810)
- "TURN", // 553 (811)
- "TYPE", // 554 (812)
- "TYPEDEF", // 555 (813)
- "ULENGTH", // 556 (814)
- "UNBOUNDED", // 557 (815)
- "UNIT", // 558 (816)
- "UNITS", // 559 (817)
- "UNIT-RECORD", // 560 (818)
- "UNTIL", // 561 (819)
- "UP", // 562 (820)
- "UPON", // 563 (821)
- "UPOS", // 564 (822)
- "UPPER-CASE", // 565 (823)
- "USAGE", // 566 (824)
- "USING", // 567 (825)
- "USUBSTR", // 568 (826)
- "USUPPLEMENTARY", // 569 (827)
- "UTILITY", // 570 (828)
- "UUID4", // 571 (829)
- "UVALID", // 572 (830)
- "UWIDTH", // 573 (831)
- "VALUE", // 574 (832)
- "VARIANCE", // 575 (833)
- "VARYING", // 576 (834)
- "VOLATILE", // 577 (835)
- "WHEN-COMPILED", // 578 (836)
- "WITH", // 579 (837)
- "WORKING-STORAGE", // 580 (838)
- "XML", // 581 (839)
- "XMLGENERATE", // 582 (840)
- "XMLPARSE", // 583 (841)
- "YEAR-TO-YYYY", // 584 (842)
- "YYYYDDD", // 585 (843)
- "YYYYMMDD", // 586 (844)
- "ARITHMETIC", // 587 (845)
- "ATTRIBUTE", // 588 (846)
- "AUTO", // 589 (847)
- "AUTOMATIC", // 590 (848)
- "AWAY-FROM-ZERO", // 591 (849)
- "BACKGROUND-COLOR", // 592 (850)
- "BELL", // 593 (851)
- "BINARY-ENCODING", // 594 (852)
- "BLINK", // 595 (853)
- "CAPACITY", // 596 (854)
- "CENTER", // 597 (855)
- "CLASSIFICATION", // 598 (856)
- "CYCLE", // 599 (857)
- "DECIMAL-ENCODING", // 600 (858)
- "ENTRY-CONVENTION", // 601 (859)
- "EOL", // 602 (860)
- "EOS", // 603 (861)
- "ERASE", // 604 (862)
- "EXPANDS", // 605 (863)
- "FLOAT-BINARY", // 606 (864)
- "FLOAT-DECIMAL", // 607 (865)
- "FOREGROUND-COLOR", // 608 (866)
- "FOREVER", // 609 (867)
- "FULL", // 610 (868)
- "HIGHLIGHT", // 611 (869)
- "HIGH-ORDER-LEFT", // 612 (870)
- "HIGH-ORDER-RIGHT", // 613 (871)
- "IGNORING", // 614 (872)
- "IMPLEMENTS", // 615 (873)
- "INITIALIZED", // 616 (874)
- "INTERMEDIATE", // 617 (875)
- "LC-ALL", // 618 (876)
- "LC-COLLATE", // 619 (877)
- "LC-CTYPE", // 620 (878)
- "LC-MESSAGES", // 621 (879)
- "LC-MONETARY", // 622 (880)
- "LC-NUMERIC", // 623 (881)
- "LC-TIME", // 624 (882)
- "LOWLIGHT", // 625 (883)
- "NEAREST-AWAY-FROM-ZERO", // 626 (884)
- "NEAREST-EVEN", // 627 (885)
- "NEAREST-TOWARD-ZERO", // 628 (886)
- "NONE", // 629 (887)
- "NORMAL", // 630 (888)
- "NUMBERS", // 631 (889)
- "PREFIXED", // 632 (890)
- "PREVIOUS", // 633 (891)
- "PROHIBITED", // 634 (892)
- "RELATION", // 635 (893)
- "REQUIRED", // 636 (894)
- "REVERSE-VIDEO", // 637 (895)
- "ROUNDING", // 638 (896)
- "SECONDS", // 639 (897)
- "SECURE", // 640 (898)
- "SHORT", // 641 (899)
- "SIGNED", // 642 (900)
- "STANDARD-BINARY", // 643 (901)
- "STANDARD-DECIMAL", // 644 (902)
- "STATEMENT", // 645 (903)
- "STEP", // 646 (904)
- "STRUCTURE", // 647 (905)
- "TOWARD-GREATER", // 648 (906)
- "TOWARD-LESSER", // 649 (907)
- "TRUNCATION", // 650 (908)
- "UCS-4", // 651 (909)
- "UNDERLINE", // 652 (910)
- "UNSIGNED", // 653 (911)
- "UTF-16", // 654 (912)
- "UTF-8", // 655 (913)
- "ADDRESS", // 656 (914)
- "END-ACCEPT", // 657 (915)
- "END-ADD", // 658 (916)
- "END-CALL", // 659 (917)
- "END-COMPUTE", // 660 (918)
- "END-DELETE", // 661 (919)
- "END-DISPLAY", // 662 (920)
- "END-DIVIDE", // 663 (921)
- "END-EVALUATE", // 664 (922)
- "END-MULTIPLY", // 665 (923)
- "END-PERFORM", // 666 (924)
- "END-READ", // 667 (925)
- "END-RETURN", // 668 (926)
- "END-REWRITE", // 669 (927)
- "END-SEARCH", // 670 (928)
- "END-START", // 671 (929)
- "END-STRING", // 672 (930)
- "END-SUBTRACT", // 673 (931)
- "END-UNSTRING", // 674 (932)
- "END-WRITE", // 675 (933)
- "END-IF", // 676 (934)
- "THRU", // 677 (935)
- "OR", // 678 (936)
- "AND", // 679 (937)
- "NOT", // 680 (938)
- "NE", // 681 (939)
- "LE", // 682 (940)
- "GE", // 683 (941)
- "POW", // 684 (942)
- "NEG", // 685 (943)
+ "CALL-CONVENTION", // 133 (391)
+ "CALL-COBOL", // 134 (392)
+ "CALL-VERBATIM", // 135 (393)
+ "CDF-PUSH", // 136 (394)
+ "CDF-POP", // 137 (395)
+ "SOURCE-FORMAT", // 138 (396)
+ "IF", // 139 (397)
+ "THEN", // 140 (398)
+ "ELSE", // 141 (399)
+ "SENTENCE", // 142 (400)
+ "ACCEPT", // 143 (401)
+ "ADD", // 144 (402)
+ "ALTER", // 145 (403)
+ "CALL", // 146 (404)
+ "CANCEL", // 147 (405)
+ "CLOSE", // 148 (406)
+ "COMPUTE", // 149 (407)
+ "CONTINUE", // 150 (408)
+ "DELETE", // 151 (409)
+ "DISPLAY", // 152 (410)
+ "DIVIDE", // 153 (411)
+ "EVALUATE", // 154 (412)
+ "EXIT", // 155 (413)
+ "FILLER", // 156 (414)
+ "GOBACK", // 157 (415)
+ "GOTO", // 158 (416)
+ "INITIALIZE", // 159 (417)
+ "INSPECT", // 160 (418)
+ "MERGE", // 161 (419)
+ "MOVE", // 162 (420)
+ "MULTIPLY", // 163 (421)
+ "OPEN", // 164 (422)
+ "PARAGRAPH", // 165 (423)
+ "READ", // 166 (424)
+ "RELEASE", // 167 (425)
+ "RETURN", // 168 (426)
+ "REWRITE", // 169 (427)
+ "SEARCH", // 170 (428)
+ "SET", // 171 (429)
+ "SELECT", // 172 (430)
+ "SORT", // 173 (431)
+ "SORT-MERGE", // 174 (432)
+ "STRING", // 175 (433)
+ "STOP", // 176 (434)
+ "SUBTRACT", // 177 (435)
+ "START", // 178 (436)
+ "UNSTRING", // 179 (437)
+ "WRITE", // 180 (438)
+ "WHEN", // 181 (439)
+ "ARGUMENT-NUMBER", // 182 (440)
+ "ARGUMENT-VALUE", // 183 (441)
+ "ENVIRONMENT-NAME", // 184 (442)
+ "ENVIRONMENT-VALUE", // 185 (443)
+ "ABS", // 186 (444)
+ "ACCESS", // 187 (445)
+ "ACOS", // 188 (446)
+ "ACTUAL", // 189 (447)
+ "ADVANCING", // 190 (448)
+ "AFTER", // 191 (449)
+ "ALL", // 192 (450)
+ "ALLOCATE", // 193 (451)
+ "ALPHABET", // 194 (452)
+ "ALPHABETIC", // 195 (453)
+ "ALPHABETIC-LOWER", // 196 (454)
+ "ALPHABETIC-UPPER", // 197 (455)
+ "ALPHANUMERIC", // 198 (456)
+ "ALPHANUMERIC-EDITED", // 199 (457)
+ "ALSO", // 200 (458)
+ "ALTERNATE", // 201 (459)
+ "ANNUITY", // 202 (460)
+ "ANUM", // 203 (461)
+ "ANY", // 204 (462)
+ "ANYCASE", // 205 (463)
+ "APPLY", // 206 (464)
+ "ARE", // 207 (465)
+ "AREA", // 208 (466)
+ "AREAS", // 209 (467)
+ "AS", // 210 (468)
+ "ASCENDING", // 211 (469)
+ "ACTIVATING", // 212 (470)
+ "ASIN", // 213 (471)
+ "ASSIGN", // 214 (472)
+ "AT", // 215 (473)
+ "ATAN", // 216 (474)
+ "BASED", // 217 (475)
+ "BASECONVERT", // 218 (476)
+ "BEFORE", // 219 (477)
+ "BINARY", // 220 (478)
+ "BIT", // 221 (479)
+ "BIT-OF", // 222 (480)
+ "BIT-TO-CHAR", // 223 (481)
+ "BLANK", // 224 (482)
+ "BLOCK", // 225 (483)
+ "BOOLEAN-OF-INTEGER", // 226 (484)
+ "BOTTOM", // 227 (485)
+ "BY", // 228 (486)
+ "BYTE", // 229 (487)
+ "BYTE-LENGTH", // 230 (488)
+ "CF", // 231 (489)
+ "CH", // 232 (490)
+ "CHANGED", // 233 (491)
+ "CHAR", // 234 (492)
+ "CHAR-NATIONAL", // 235 (493)
+ "CHARACTER", // 236 (494)
+ "CHARACTERS", // 237 (495)
+ "CHECKING", // 238 (496)
+ "CLASS", // 239 (497)
+ "COBOL", // 240 (498)
+ "CODE", // 241 (499)
+ "CODE-SET", // 242 (500)
+ "COLLATING", // 243 (501)
+ "COLUMN", // 244 (502)
+ "COMBINED-DATETIME", // 245 (503)
+ "COMMA", // 246 (504)
+ "COMMAND-LINE", // 247 (505)
+ "COMMAND-LINE-COUNT", // 248 (506)
+ "COMMIT", // 249 (507)
+ "COMMON", // 250 (508)
+ "CONCAT", // 251 (509)
+ "CONDITION", // 252 (510)
+ "CONFIGURATION", // 253 (511)
+ "CONTAINS", // 254 (512)
+ "CONTENT", // 255 (513)
+ "CONTROL", // 256 (514)
+ "CONTROLS", // 257 (515)
+ "CONVERT", // 258 (516)
+ "CONVERTING", // 259 (517)
+ "CORRESPONDING", // 260 (518)
+ "COS", // 261 (519)
+ "COUNT", // 262 (520)
+ "CURRENCY", // 263 (521)
+ "CURRENT", // 264 (522)
+ "CURRENT-DATE", // 265 (523)
+ "DATA", // 266 (524)
+ "DATE", // 267 (525)
+ "DATE-COMPILED", // 268 (526)
+ "DATE-OF-INTEGER", // 269 (527)
+ "DATE-TO-YYYYMMDD", // 270 (528)
+ "DATE-WRITTEN", // 271 (529)
+ "DAY", // 272 (530)
+ "DAY-OF-INTEGER", // 273 (531)
+ "DAY-OF-WEEK", // 274 (532)
+ "DAY-TO-YYYYDDD", // 275 (533)
+ "DBCS", // 276 (534)
+ "DE", // 277 (535)
+ "DEBUGGING", // 278 (536)
+ "DECIMAL-POINT", // 279 (537)
+ "DECLARATIVES", // 280 (538)
+ "DEFAULT", // 281 (539)
+ "DELIMITED", // 282 (540)
+ "DELIMITER", // 283 (541)
+ "DEPENDING", // 284 (542)
+ "DESCENDING", // 285 (543)
+ "DETAIL", // 286 (544)
+ "DIRECT", // 287 (545)
+ "DIRECT-ACCESS", // 288 (546)
+ "DOWN", // 289 (547)
+ "DUPLICATES", // 290 (548)
+ "DYNAMIC", // 291 (549)
+ "E", // 292 (550)
+ "EBCDIC", // 293 (551)
+ "EC", // 294 (552)
+ "EGCS", // 295 (553)
+ "ENTRY", // 296 (554)
+ "ENVIRONMENT", // 297 (555)
+ "EQUAL", // 298 (556)
+ "EVERY", // 299 (557)
+ "EXAMINE", // 300 (558)
+ "EXHIBIT", // 301 (559)
+ "EXP", // 302 (560)
+ "EXP10", // 303 (561)
+ "EXTEND", // 304 (562)
+ "EXTERNAL", // 305 (563)
+ "EXCEPTION-FILE", // 306 (564)
+ "EXCEPTION-FILE-N", // 307 (565)
+ "EXCEPTION-LOCATION", // 308 (566)
+ "EXCEPTION-LOCATION-N", // 309 (567)
+ "EXCEPTION-STATEMENT", // 310 (568)
+ "EXCEPTION-STATUS", // 311 (569)
+ "FACTORIAL", // 312 (570)
+ "FALSE", // 313 (571)
+ "FD", // 314 (572)
+ "FILE-CONTROL", // 315 (573)
+ "FILE", // 316 (574)
+ "FILE-LIMIT", // 317 (575)
+ "FINAL", // 318 (576)
+ "FINALLY", // 319 (577)
+ "FIND-STRING", // 320 (578)
+ "FIRST", // 321 (579)
+ "FIXED", // 322 (580)
+ "FOOTING", // 323 (581)
+ "FOR", // 324 (582)
+ "FORMATTED-CURRENT-DATE", // 325 (583)
+ "FORMATTED-DATE", // 326 (584)
+ "FORMATTED-DATETIME", // 327 (585)
+ "FORMATTED-TIME", // 328 (586)
+ "FORM-OVERFLOW", // 329 (587)
+ "FREE", // 330 (588)
+ "FRACTION-PART", // 331 (589)
+ "FROM", // 332 (590)
+ "FUNCTION", // 333 (591)
+ "GENERATE", // 334 (592)
+ "GIVING", // 335 (593)
+ "GLOBAL", // 336 (594)
+ "GO", // 337 (595)
+ "GROUP", // 338 (596)
+ "HEADING", // 339 (597)
+ "HEX", // 340 (598)
+ "HEX-OF", // 341 (599)
+ "HEX-TO-CHAR", // 342 (600)
+ "HIGH-VALUES", // 343 (601)
+ "HIGHEST-ALGEBRAIC", // 344 (602)
+ "HOLD", // 345 (603)
+ "IBM-360", // 346 (604)
+ "IN", // 347 (605)
+ "INCLUDE", // 348 (606)
+ "INDEX", // 349 (607)
+ "INDEXED", // 350 (608)
+ "INDICATE", // 351 (609)
+ "INITIAL", // 352 (610)
+ "INITIATE", // 353 (611)
+ "INPUT", // 354 (612)
+ "INSTALLATION", // 355 (613)
+ "INTERFACE", // 356 (614)
+ "INTEGER", // 357 (615)
+ "INTEGER-OF-BOOLEAN", // 358 (616)
+ "INTEGER-OF-DATE", // 359 (617)
+ "INTEGER-OF-DAY", // 360 (618)
+ "INTEGER-OF-FORMATTED-DATE", // 361 (619)
+ "INTEGER-PART", // 362 (620)
+ "INTO", // 363 (621)
+ "INTRINSIC", // 364 (622)
+ "INVOKE", // 365 (623)
+ "I-O", // 366 (624)
+ "I-O-CONTROL", // 367 (625)
+ "IS", // 368 (626)
+ "ISNT", // 369 (627)
+ "KANJI", // 370 (628)
+ "KEY", // 371 (629)
+ "LABEL", // 372 (630)
+ "LAST", // 373 (631)
+ "LEADING", // 374 (632)
+ "LEFT", // 375 (633)
+ "LENGTH", // 376 (634)
+ "LENGTH-OF", // 377 (635)
+ "LIMIT", // 378 (636)
+ "LIMITS", // 379 (637)
+ "LINE", // 380 (638)
+ "LINES", // 381 (639)
+ "LINE-COUNTER", // 382 (640)
+ "LINAGE", // 383 (641)
+ "LINKAGE", // 384 (642)
+ "LOCALE", // 385 (643)
+ "LOCALE-COMPARE", // 386 (644)
+ "LOCALE-DATE", // 387 (645)
+ "LOCALE-TIME", // 388 (646)
+ "LOCALE-TIME-FROM-SECONDS", // 389 (647)
+ "LOCAL-STORAGE", // 390 (648)
+ "LOCATION", // 391 (649)
+ "LOCK", // 392 (650)
+ "LOCK-ON", // 393 (651)
+ "LOG", // 394 (652)
+ "LOG10", // 395 (653)
+ "LOWER-CASE", // 396 (654)
+ "LOW-VALUES", // 397 (655)
+ "LOWEST-ALGEBRAIC", // 398 (656)
+ "LPAREN", // 399 (657)
+ "MANUAL", // 400 (658)
+ "MAXX", // 401 (659)
+ "MEAN", // 402 (660)
+ "MEDIAN", // 403 (661)
+ "MIDRANGE", // 404 (662)
+ "MINN", // 405 (663)
+ "MULTIPLE", // 406 (664)
+ "MOD", // 407 (665)
+ "MODE", // 408 (666)
+ "MODULE-NAME", // 409 (667)
+ "NAMED", // 410 (668)
+ "NAT", // 411 (669)
+ "NATIONAL", // 412 (670)
+ "NATIONAL-EDITED", // 413 (671)
+ "NATIONAL-OF", // 414 (672)
+ "NATIVE", // 415 (673)
+ "NESTED", // 416 (674)
+ "NEXT", // 417 (675)
+ "NO", // 418 (676)
+ "NOTE", // 419 (677)
+ "NULLS", // 420 (678)
+ "NULLPTR", // 421 (679)
+ "NUMERIC", // 422 (680)
+ "NUMERIC-EDITED", // 423 (681)
+ "NUMVAL", // 424 (682)
+ "NUMVAL-C", // 425 (683)
+ "NUMVAL-F", // 426 (684)
+ "OCCURS", // 427 (685)
+ "OF", // 428 (686)
+ "OFF", // 429 (687)
+ "OMITTED", // 430 (688)
+ "ON", // 431 (689)
+ "ONLY", // 432 (690)
+ "OPTIONAL", // 433 (691)
+ "OPTIONS", // 434 (692)
+ "ORD", // 435 (693)
+ "ORDER", // 436 (694)
+ "ORD-MAX", // 437 (695)
+ "ORD-MIN", // 438 (696)
+ "ORGANIZATION", // 439 (697)
+ "OTHER", // 440 (698)
+ "OTHERWISE", // 441 (699)
+ "OUTPUT", // 442 (700)
+ "PACKED-DECIMAL", // 443 (701)
+ "PADDING", // 444 (702)
+ "PAGE", // 445 (703)
+ "PAGE-COUNTER", // 446 (704)
+ "PF", // 447 (705)
+ "PH", // 448 (706)
+ "PI", // 449 (707)
+ "PIC", // 450 (708)
+ "PICTURE", // 451 (709)
+ "PLUS", // 452 (710)
+ "PRESENT-VALUE", // 453 (711)
+ "PRINT-SWITCH", // 454 (712)
+ "PROCEDURE", // 455 (713)
+ "PROCEDURES", // 456 (714)
+ "PROCEED", // 457 (715)
+ "PROCESS", // 458 (716)
+ "PROGRAM-ID", // 459 (717)
+ "PROGRAM", // 460 (718)
+ "PROPERTY", // 461 (719)
+ "PROTOTYPE", // 462 (720)
+ "PSEUDOTEXT", // 463 (721)
+ "QUOTES", // 464 (722)
+ "RANDOM", // 465 (723)
+ "RANDOM-SEED", // 466 (724)
+ "RANGE", // 467 (725)
+ "RAISE", // 468 (726)
+ "RAISING", // 469 (727)
+ "RD", // 470 (728)
+ "RECORD", // 471 (729)
+ "RECORDING", // 472 (730)
+ "RECORDS", // 473 (731)
+ "RECURSIVE", // 474 (732)
+ "REDEFINES", // 475 (733)
+ "REEL", // 476 (734)
+ "REFERENCE", // 477 (735)
+ "RELATIVE", // 478 (736)
+ "REM", // 479 (737)
+ "REMAINDER", // 480 (738)
+ "REMARKS", // 481 (739)
+ "REMOVAL", // 482 (740)
+ "RENAMES", // 483 (741)
+ "REPLACE", // 484 (742)
+ "REPLACING", // 485 (743)
+ "REPORT", // 486 (744)
+ "REPORTING", // 487 (745)
+ "REPORTS", // 488 (746)
+ "REPOSITORY", // 489 (747)
+ "RERUN", // 490 (748)
+ "RESERVE", // 491 (749)
+ "RESTRICTED", // 492 (750)
+ "RESUME", // 493 (751)
+ "REVERSE", // 494 (752)
+ "REVERSED", // 495 (753)
+ "REWIND", // 496 (754)
+ "RF", // 497 (755)
+ "RH", // 498 (756)
+ "RIGHT", // 499 (757)
+ "ROUNDED", // 500 (758)
+ "RUN", // 501 (759)
+ "SAME", // 502 (760)
+ "SCREEN", // 503 (761)
+ "SD", // 504 (762)
+ "SECONDS-FROM-FORMATTED-TIME", // 505 (763)
+ "SECONDS-PAST-MIDNIGHT", // 506 (764)
+ "SECURITY", // 507 (765)
+ "SEPARATE", // 508 (766)
+ "SEQUENCE", // 509 (767)
+ "SEQUENTIAL", // 510 (768)
+ "SHARING", // 511 (769)
+ "SIMPLE-EXIT", // 512 (770)
+ "SIGN", // 513 (771)
+ "SIN", // 514 (772)
+ "SIZE", // 515 (773)
+ "SMALLEST-ALGEBRAIC", // 516 (774)
+ "SOURCE", // 517 (775)
+ "SOURCE-COMPUTER", // 518 (776)
+ "SPECIAL-NAMES", // 519 (777)
+ "SQRT", // 520 (778)
+ "STACK", // 521 (779)
+ "STANDARD", // 522 (780)
+ "STANDARD-1", // 523 (781)
+ "STANDARD-DEVIATION", // 524 (782)
+ "STANDARD-COMPARE", // 525 (783)
+ "STATUS", // 526 (784)
+ "STRONG", // 527 (785)
+ "SUBSTITUTE", // 528 (786)
+ "SUM", // 529 (787)
+ "SYMBOL", // 530 (788)
+ "SYMBOLIC", // 531 (789)
+ "SYNCHRONIZED", // 532 (790)
+ "TALLY", // 533 (791)
+ "TALLYING", // 534 (792)
+ "TAN", // 535 (793)
+ "TERMINATE", // 536 (794)
+ "TEST", // 537 (795)
+ "TEST-DATE-YYYYMMDD", // 538 (796)
+ "TEST-DAY-YYYYDDD", // 539 (797)
+ "TEST-FORMATTED-DATETIME", // 540 (798)
+ "TEST-NUMVAL", // 541 (799)
+ "TEST-NUMVAL-C", // 542 (800)
+ "TEST-NUMVAL-F", // 543 (801)
+ "THAN", // 544 (802)
+ "TIME", // 545 (803)
+ "TIMES", // 546 (804)
+ "TO", // 547 (805)
+ "TOP", // 548 (806)
+ "TOP-LEVEL", // 549 (807)
+ "TRACKS", // 550 (808)
+ "TRACK-AREA", // 551 (809)
+ "TRAILING", // 552 (810)
+ "TRANSFORM", // 553 (811)
+ "TRIM", // 554 (812)
+ "TRUE", // 555 (813)
+ "TRY", // 556 (814)
+ "TURN", // 557 (815)
+ "TYPE", // 558 (816)
+ "TYPEDEF", // 559 (817)
+ "ULENGTH", // 560 (818)
+ "UNBOUNDED", // 561 (819)
+ "UNIT", // 562 (820)
+ "UNITS", // 563 (821)
+ "UNIT-RECORD", // 564 (822)
+ "UNTIL", // 565 (823)
+ "UP", // 566 (824)
+ "UPON", // 567 (825)
+ "UPOS", // 568 (826)
+ "UPPER-CASE", // 569 (827)
+ "USAGE", // 570 (828)
+ "USING", // 571 (829)
+ "USUBSTR", // 572 (830)
+ "USUPPLEMENTARY", // 573 (831)
+ "UTILITY", // 574 (832)
+ "UUID4", // 575 (833)
+ "UVALID", // 576 (834)
+ "UWIDTH", // 577 (835)
+ "VALUE", // 578 (836)
+ "VARIANCE", // 579 (837)
+ "VARYING", // 580 (838)
+ "VOLATILE", // 581 (839)
+ "WHEN-COMPILED", // 582 (840)
+ "WITH", // 583 (841)
+ "WORKING-STORAGE", // 584 (842)
+ "XML", // 585 (843)
+ "XMLGENERATE", // 586 (844)
+ "XMLPARSE", // 587 (845)
+ "YEAR-TO-YYYY", // 588 (846)
+ "YYYYDDD", // 589 (847)
+ "YYYYMMDD", // 590 (848)
+ "ARITHMETIC", // 591 (849)
+ "ATTRIBUTE", // 592 (850)
+ "AUTO", // 593 (851)
+ "AUTOMATIC", // 594 (852)
+ "AWAY-FROM-ZERO", // 595 (853)
+ "BACKGROUND-COLOR", // 596 (854)
+ "BELL", // 597 (855)
+ "BINARY-ENCODING", // 598 (856)
+ "BLINK", // 599 (857)
+ "CAPACITY", // 600 (858)
+ "CENTER", // 601 (859)
+ "CLASSIFICATION", // 602 (860)
+ "CYCLE", // 603 (861)
+ "DECIMAL-ENCODING", // 604 (862)
+ "ENTRY-CONVENTION", // 605 (863)
+ "EOL", // 606 (864)
+ "EOS", // 607 (865)
+ "ERASE", // 608 (866)
+ "EXPANDS", // 609 (867)
+ "FLOAT-BINARY", // 610 (868)
+ "FLOAT-DECIMAL", // 611 (869)
+ "FOREGROUND-COLOR", // 612 (870)
+ "FOREVER", // 613 (871)
+ "FULL", // 614 (872)
+ "HIGHLIGHT", // 615 (873)
+ "HIGH-ORDER-LEFT", // 616 (874)
+ "HIGH-ORDER-RIGHT", // 617 (875)
+ "IGNORING", // 618 (876)
+ "IMPLEMENTS", // 619 (877)
+ "INITIALIZED", // 620 (878)
+ "INTERMEDIATE", // 621 (879)
+ "LC-ALL", // 622 (880)
+ "LC-COLLATE", // 623 (881)
+ "LC-CTYPE", // 624 (882)
+ "LC-MESSAGES", // 625 (883)
+ "LC-MONETARY", // 626 (884)
+ "LC-NUMERIC", // 627 (885)
+ "LC-TIME", // 628 (886)
+ "LOWLIGHT", // 629 (887)
+ "NEAREST-AWAY-FROM-ZERO", // 630 (888)
+ "NEAREST-EVEN", // 631 (889)
+ "NEAREST-TOWARD-ZERO", // 632 (890)
+ "NONE", // 633 (891)
+ "NORMAL", // 634 (892)
+ "NUMBERS", // 635 (893)
+ "PREFIXED", // 636 (894)
+ "PREVIOUS", // 637 (895)
+ "PROHIBITED", // 638 (896)
+ "RELATION", // 639 (897)
+ "REQUIRED", // 640 (898)
+ "REVERSE-VIDEO", // 641 (899)
+ "ROUNDING", // 642 (900)
+ "SECONDS", // 643 (901)
+ "SECURE", // 644 (902)
+ "SHORT", // 645 (903)
+ "SIGNED", // 646 (904)
+ "STANDARD-BINARY", // 647 (905)
+ "STANDARD-DECIMAL", // 648 (906)
+ "STATEMENT", // 649 (907)
+ "STEP", // 650 (908)
+ "STRUCTURE", // 651 (909)
+ "TOWARD-GREATER", // 652 (910)
+ "TOWARD-LESSER", // 653 (911)
+ "TRUNCATION", // 654 (912)
+ "UCS-4", // 655 (913)
+ "UNDERLINE", // 656 (914)
+ "UNSIGNED", // 657 (915)
+ "UTF-16", // 658 (916)
+ "UTF-8", // 659 (917)
+ "ADDRESS", // 660 (918)
+ "END-ACCEPT", // 661 (919)
+ "END-ADD", // 662 (920)
+ "END-CALL", // 663 (921)
+ "END-COMPUTE", // 664 (922)
+ "END-DELETE", // 665 (923)
+ "END-DISPLAY", // 666 (924)
+ "END-DIVIDE", // 667 (925)
+ "END-EVALUATE", // 668 (926)
+ "END-MULTIPLY", // 669 (927)
+ "END-PERFORM", // 670 (928)
+ "END-READ", // 671 (929)
+ "END-RETURN", // 672 (930)
+ "END-REWRITE", // 673 (931)
+ "END-SEARCH", // 674 (932)
+ "END-START", // 675 (933)
+ "END-STRING", // 676 (934)
+ "END-SUBTRACT", // 677 (935)
+ "END-UNSTRING", // 678 (936)
+ "END-WRITE", // 679 (937)
+ "END-IF", // 680 (938)
+ "THRU", // 681 (939)
+ "OR", // 682 (940)
+ "AND", // 683 (941)
+ "NOT", // 684 (942)
+ "NE", // 685 (943)
+ "LE", // 686 (944)
+ "GE", // 687 (945)
+ "POW", // 688 (946)
+ "NEG", // 689 (947)
};
diff --git a/gcc/cobol/udf/stored-char-length.cbl b/gcc/cobol/udf/stored-char-length.cbl
index 9ab3b14..66889d0 100644
--- a/gcc/cobol/udf/stored-char-length.cbl
+++ b/gcc/cobol/udf/stored-char-length.cbl
@@ -1,3 +1,6 @@
+ >> PUSH source format
+ >>SOURCE format is fixed
+
* This function is in public domain.
* Contributed by James K. Lowden of Cobolworx in August 2024
@@ -13,3 +16,4 @@
to Output-Value.
End Function STORED-CHAR-LENGTH.
+ >> pop source format \ No newline at end of file
diff --git a/gcc/cobol/util.cc b/gcc/cobol/util.cc
index 0076fc4..c85b4cb 100644
--- a/gcc/cobol/util.cc
+++ b/gcc/cobol/util.cc
@@ -121,35 +121,76 @@ gb4( size_t input ) {
* command-line option. A push to a stack pushes the default value onto it; a
* pop copies the top of the stack to the default value.
*
+ * Supported:
+ * CALL-CONVENTION
+ * COBOL-WORDS
+ * DEFINE
+ * DISPLAY
+ * IF
+ * POP
+ * PUSH
+ * SOURCE FORMAT
+ * TURN
+ * not supported
+ * EVALUATE
+ * FLAG-02
+ * FLAG-14
+ * LEAP-SECOND
+ * LISTING
+ * PAGE
+ * PROPAGATE
+ * REF-MOD-ZERO-LENGTH
+ *
* >>PUSH ALL calls the class's push() method.
* >>POP ALL calls the class's pop() method.
*/
class cdf_directives_t
{
- typedef std::map<std::string, cdfval_t> cdf_values_t;
-
template <typename T>
class cdf_stack_t : private std::stack<T> {
T default_value;
+ const T& top() const { return std::stack<T>::top(); }
+ bool empty() const { return std::stack<T>::empty(); }
public:
void value( const T& value ) {
- T& output( std::stack<T>::empty()? default_value : std::stack<T>::top() );
+ T& output( empty()? default_value : std::stack<T>::top() );
output = value;
+ dbgmsg("cdf_directives_t::%s: %s", __func__, str(output).c_str());
}
T& value() {
- return std::stack<T>::empty()? default_value : std::stack<T>::top();
+ return empty()? default_value : std::stack<T>::top();
}
void push() {
std::stack<T>::push(value());
+ dbgmsg("cdf_directives_t::%s: %s", __func__, str(top()).c_str());
}
void pop() {
- if( std::stack<T>::empty() ) {
+ if( empty() ) {
error_msg(YYLTYPE(), "CDF stack empty");
return;
}
- default_value = std::stack<T>::top();
+ default_value = top();
std::stack<T>::pop();
+ dbgmsg("cdf_directives_t::%s: %s", __func__, str(default_value).c_str());
+ }
+ protected:
+ static std::string str(cbl_call_convention_t arg) {
+ char output[2] = { static_cast<char>(arg) };
+ return std::string("call-convention ") + output;
+ }
+ static std::string str(current_tokens_t) {
+ return "<cobol-words>";
+ }
+ static std::string str(cdf_values_t) {
+ return "<dictionary>";
+ }
+ static std::string str(source_format_t arg) {
+ return arg.description();
}
+ static std::string str(cbl_enabled_exceptions_t) {
+ return "<enabled_exceptions>";
+ }
+
};
public:
@@ -181,6 +222,25 @@ class cdf_directives_t
static cdf_directives_t cdf_directives;
void
+current_call_convention( cbl_call_convention_t convention) {
+ cdf_directives.call_convention.value(convention);
+}
+cbl_call_convention_t
+current_call_convention() {
+ return cdf_directives.call_convention.value();
+}
+
+current_tokens_t&
+cdf_current_tokens() {
+ return cdf_directives.cobol_words.value();
+}
+
+cdf_values_t&
+cdf_dictionary() {
+ return cdf_directives.dictionary.value();
+}
+
+void
cobol_set_indicator_column( int column ) {
cdf_directives.source_format.value().indicator_column_set(column);
}
@@ -188,6 +248,24 @@ source_format_t& cdf_source_format() {
return cdf_directives.source_format.value();
}
+cbl_enabled_exceptions_t&
+cdf_enabled_exceptions() {
+ return cdf_directives.enabled_exceptions.value();
+}
+
+void cdf_push() { cdf_directives.push(); }
+void cdf_push_call_convention() { cdf_directives.call_convention.push(); }
+void cdf_push_current_tokens() { cdf_directives.cobol_words.push(); }
+void cdf_push_dictionary() { cdf_directives.dictionary.push(); }
+void cdf_push_enabled_exceptions() { cdf_directives.enabled_exceptions.push(); }
+void cdf_push_source_format() { cdf_directives.source_format.push(); }
+
+void cdf_pop() { cdf_directives.pop(); }
+void cdf_pop_call_convention() { cdf_directives.call_convention.pop(); }
+void cdf_pop_current_tokens() { cdf_directives.cobol_words.pop(); }
+void cdf_pop_dictionary() { cdf_directives.dictionary.pop(); }
+void cdf_pop_enabled_exceptions() { cdf_directives.enabled_exceptions.pop(); }
+void cdf_pop_source_format() { cdf_directives.source_format.pop(); }
const char *
symbol_type_str( enum symbol_type_t type )
diff --git a/gcc/cobol/util.h b/gcc/cobol/util.h
index 2881809..d07b669 100644
--- a/gcc/cobol/util.h
+++ b/gcc/cobol/util.h
@@ -110,4 +110,19 @@ public:
}
};
+
+void cdf_push();
+void cdf_push_call_convention();
+void cdf_push_current_tokens();
+void cdf_push_dictionary();
+void cdf_push_enabled_exceptions();
+void cdf_push_source_format();
+
+void cdf_pop();
+void cdf_pop_call_convention();
+void cdf_pop_current_tokens();
+void cdf_pop_dictionary();
+void cdf_pop_source_format();
+void cdf_pop_enabled_exceptions();
+
#endif