diff --git a/gcc/cobol/parse.y b/gcc/cobol/parse.y index 0eb68fc4271e43a346fd8a9d5df3f0a7e6618e58..2c4031f62b71b2cbeb3d55a7c63a515cfa73d3a6 100644 --- a/gcc/cobol/parse.y +++ b/gcc/cobol/parse.y @@ -555,9 +555,10 @@ %printer { fprintf(yyo, "%s %s", refer_type_str($$), $$? $$->name() : "<none>"); } <refer> %printer { fprintf(yyo, "%s", $$? name_of($$) : "[omitted]"); } alloc_ret %printer { fprintf(yyo, "%s %s '%s' (%s)", - cbl_field_type_str($$->type), name_of($$), - $$->data.initial? $$->data.initial : "<nil>", - $$->value_str() ); } <field> + $$? cbl_field_type_str($$->type) : "<%empty>", + $$? name_of($$) : "", + $$? $$->data.initial? $$->data.initial : "<nil>" : "", + $$? $$->value_str() : "" ); } <field> %printer { fprintf(yyo, "%s {%c%s %s}", $$.cond->field->name, $$.ante.invert? '!' : ' ', diff --git a/gcc/cobol/scan.l b/gcc/cobol/scan.l index 4ca8b490c21ac984516882e34ca0c84e00ef3893..8ac8d2ac99b8f97621c5cb64c4f824123e3f4fae 100644 --- a/gcc/cobol/scan.l +++ b/gcc/cobol/scan.l @@ -1515,114 +1515,114 @@ USE([[:space:]]+FOR)? { return USE; } } <function>{ - ABS { pop_return ABS; } - ACOS { pop_return ACOS; } - ANNUITY { pop_return ANNUITY; } - ASIN { pop_return ASIN; } - ATAN { pop_return ATAN; } - BIT-OF { pop_return BIT_OF; } - BIT-TO-CHAR { pop_return BIT_TO_CHAR; } - BYTE-LENGTH { pop_return BYTE_LENGTH; } - CHAR { pop_return CHAR; } - COMBINED-DATETIME { pop_return COMBINED_DATETIME; } - CONCAT { pop_return CONCAT; } - CONTENT-LENGTH { pop_return NO_CONDITION; /* GNU only*/ } - CONTENT-OF { pop_return NO_CONDITION; /* GNU only*/ } - COS { pop_return COS; } - CURRENCY-SYBOL { pop_return NO_CONDITION; /* GNU only*/ } - CURRENT-DATE { pop_return CURRENT_DATE; } - DATE-OF-INTEGER { pop_return DATE_OF_INTEGER; } - DATE-TO-YYYYMMDD { pop_return DATE_TO_YYYYMMDD; } - DAY-OF-INTEGER { pop_return DAY_OF_INTEGER; } - DAY-TO-YYYYDDD { pop_return DAY_TO_YYYYDDD; } - DISPLAY-OF { pop_return DISPLAY_OF; } - E { pop_return E; } - - EXCEPTION-FILE-N { pop_return EXCEPTION_FILE_N; } - EXCEPTION-FILE { pop_return EXCEPTION_FILE; } - EXCEPTION-LOCATION-N { pop_return EXCEPTION_LOCATION_N; } - EXCEPTION-LOCATION { pop_return EXCEPTION_LOCATION; } - EXCEPTION-STATEMENT { pop_return EXCEPTION_STATEMENT; } - EXCEPTION-STATUS { pop_return EXCEPTION_STATUS; } - - EXP { pop_return EXP; } - EXP10 { pop_return EXP10; } - FACTORIAL { pop_return FACTORIAL; } - - FORMATTED-CURRENT-DATE { BEGIN(datetime_fmt); return FORMATTED_CURRENT_DATE; } - FORMATTED-DATE { BEGIN(datetime_fmt); return FORMATTED_DATE; } - FORMATTED-DATETIME { BEGIN(datetime_fmt); return FORMATTED_DATETIME; } - FORMATTED-TIME { BEGIN(datetime_fmt); return FORMATTED_TIME; } - FRACTION-PART { pop_return FRACTION_PART; } - - HEX-OF { pop_return HEX_OF; } - HEX-TO-CHAR { pop_return HEX_TO_CHAR; } - HIGHEST-ALGEBRAIC { pop_return HIGHEST_ALGEBRAIC; } - - INTEGER { pop_return INTEGER; } - INTEGER-OF-DATE { pop_return INTEGER_OF_DATE; } - INTEGER-OF-DAY { pop_return INTEGER_OF_DAY; } - INTEGER-OF-FORMATTED-DATE { BEGIN(datetime_fmt); return INTEGER_OF_FORMATTED_DATE; } - INTEGER-PART { pop_return INTEGER_PART; } - LENGTH { pop_return LENGTH; } - LOCALE-COMPARE { pop_return LOCALE_COMPARE; } - LOCALE-DATE { pop_return LOCALE_DATE; } - LOCALE-TIME { pop_return LOCALE_TIME; } - LOCALE-TIME-FROM-SECONDS { pop_return LOCALE_TIME_FROM_SECONDS; } - LOG { pop_return LOG; } - LOG10 { pop_return LOG10; } - LOWER-CASE { pop_return LOWER_CASE; } - LOWEST-ALGEBRAIC { pop_return LOWEST_ALGEBRAIC; } - MAX { pop_return MAX; } - MEAN { pop_return MEAN; } - MEDIAN { pop_return MEDIAN; } - MIDRANGE { pop_return MIDRANGE; } - MIN { pop_return MIN; } - MOD { pop_return MOD; } - NATIONAL-OF { pop_return NATIONAL_OF; } - NUMVAL { pop_return NUMVAL; } - NUMVAL-C { pop_return NUMVAL_C; } - NUMVAL-F { pop_return NUMVAL_F; } - ORD { pop_return ORD; } - ORD-MAX { pop_return ORD_MAX; } - ORD-MIN { pop_return ORD_MIN; } - PI { pop_return PI; } - PRESENT-VALUE { pop_return PRESENT_VALUE; } - - RANDOM{OSPC}{PARENS} { pop_return RANDOM; } - RANDOM{OSPC}[(] { pop_return RANDOM_SEED; } - RANDOM { pop_return RANDOM; } - - RANGE { pop_return RANGE; } - REM { pop_return REM; } - REVERSE { pop_return REVERSE; } - SECONDS-FROM-FORMATTED-TIME { BEGIN(datetime_fmt); return SECONDS_FROM_FORMATTED_TIME; } - SECONDS-PAST-MIDNIGHT { pop_return SECONDS_PAST_MIDNIGHT; } - SIGN { pop_return SIGN; } - SIN { pop_return SIN; } - SQRT { pop_return SQRT; } - STANDARD-DEVIATION { pop_return STANDARD_DEVIATION; } - SUBSTITUTE { pop_return SUBSTITUTE; } - SUM { pop_return SUM; } - TAN { pop_return TAN; } - TEST-DATE-YYYYMMDD { pop_return TEST_DATE_YYYYMMDD; } - TEST-DAY-YYYYDDD { pop_return TEST_DAY_YYYYDDD; } - TEST-FORMATTED-DATETIME { BEGIN(datetime_fmt); return TEST_FORMATTED_DATETIME; } - TEST-NUMVAL { pop_return TEST_NUMVAL; } - TEST-NUMVAL-C { pop_return TEST_NUMVAL_C; } - TEST-NUMVAL-F { pop_return TEST_NUMVAL_F; } - TRIM { pop_return TRIM; } - ULENGTH { pop_return ULENGTH; } - UPOS { pop_return UPOS; } - UPPER-CASE { pop_return UPPER_CASE; } - USUBSTR { pop_return USUBSTR; } - USUPPLEMENTARY { pop_return USUPPLEMENTARY; } - UUID4 { pop_return UUID4; } - UVALID { pop_return UVALID; } - UWIDTH { pop_return UWIDTH; } - VARIANCE { pop_return VARIANCE; } - WHEN-COMPILED { pop_return WHEN_COMPILED; } - YEAR-TO-YYYY { pop_return YEAR_TO_YYYY; } + ABS{OSPC}/[(]? { pop_return ABS; } + ACOS{OSPC}/[(]? { pop_return ACOS; } + ANNUITY{OSPC}/[(]? { pop_return ANNUITY; } + ASIN{OSPC}/[(]? { pop_return ASIN; } + ATAN{OSPC}/[(]? { pop_return ATAN; } + BIT-OF{OSPC}/[(]? { pop_return BIT_OF; } + BIT-TO-CHAR{OSPC}/[(]? { pop_return BIT_TO_CHAR; } + BYTE-LENGTH{OSPC}/[(]? { pop_return BYTE_LENGTH; } + CHAR{OSPC}/[(]? { pop_return CHAR; } + COMBINED-DATETIME{OSPC}/[(]? { pop_return COMBINED_DATETIME; } + CONCAT{OSPC}/[(]? { pop_return CONCAT; } + CONTENT-LENGTH{OSPC}/[(]? { pop_return NO_CONDITION; /* GNU only*/ } + CONTENT-OF{OSPC}/[(]? { pop_return NO_CONDITION; /* GNU only*/ } + COS{OSPC}/[(]? { pop_return COS; } + CURRENCY-SYBOL{OSPC}/[(]? { pop_return NO_CONDITION; /* GNU only*/ } + CURRENT-DATE{OSPC}/[(]? { pop_return CURRENT_DATE; } + DATE-OF-INTEGER{OSPC}/[(]? { pop_return DATE_OF_INTEGER; } + DATE-TO-YYYYMMDD{OSPC}/[(]? { pop_return DATE_TO_YYYYMMDD; } + DAY-OF-INTEGER{OSPC}/[(]? { pop_return DAY_OF_INTEGER; } + DAY-TO-YYYYDDD{OSPC}/[(]? { pop_return DAY_TO_YYYYDDD; } + DISPLAY-OF{OSPC}/[(]? { pop_return DISPLAY_OF; } + E{OSPC}/[(]? { pop_return E; } + + EXCEPTION-FILE-N{OSPC}/[(]? { pop_return EXCEPTION_FILE_N; } + EXCEPTION-FILE{OSPC}/[(]? { pop_return EXCEPTION_FILE; } + EXCEPTION-LOCATION-N{OSPC}/[(]? { pop_return EXCEPTION_LOCATION_N; } + EXCEPTION-LOCATION{OSPC}/[(]? { pop_return EXCEPTION_LOCATION; } + EXCEPTION-STATEMENT{OSPC}/[(]? { pop_return EXCEPTION_STATEMENT; } + EXCEPTION-STATUS{OSPC}/[(]? { pop_return EXCEPTION_STATUS; } + + EXP{OSPC}/[(]? { pop_return EXP; } + EXP10{OSPC}/[(]? { pop_return EXP10; } + FACTORIAL{OSPC}/[(]? { pop_return FACTORIAL; } + + FORMATTED-CURRENT-DATE{OSPC}/[(]? { BEGIN(datetime_fmt); return FORMATTED_CURRENT_DATE; } + FORMATTED-DATE{OSPC}/[(]? { BEGIN(datetime_fmt); return FORMATTED_DATE; } + FORMATTED-DATETIME{OSPC}/[(]? { BEGIN(datetime_fmt); return FORMATTED_DATETIME; } + FORMATTED-TIME{OSPC}/[(]? { BEGIN(datetime_fmt); return FORMATTED_TIME; } + FRACTION-PART{OSPC}/[(]? { pop_return FRACTION_PART; } + + HEX-OF{OSPC}/[(]? { pop_return HEX_OF; } + HEX-TO-CHAR{OSPC}/[(]? { pop_return HEX_TO_CHAR; } + HIGHEST-ALGEBRAIC{OSPC}/[(]? { pop_return HIGHEST_ALGEBRAIC; } + + INTEGER{OSPC}/[(]? { pop_return INTEGER; } + INTEGER-OF-DATE{OSPC}/[(]? { pop_return INTEGER_OF_DATE; } + INTEGER-OF-DAY{OSPC}/[(]? { pop_return INTEGER_OF_DAY; } + INTEGER-OF-FORMATTED-DATE{OSPC}/[(]? { BEGIN(datetime_fmt); return INTEGER_OF_FORMATTED_DATE; } + INTEGER-PART{OSPC}/[(]? { pop_return INTEGER_PART; } + LENGTH{OSPC}/[(]? { pop_return LENGTH; } + LOCALE-COMPARE{OSPC}/[(]? { pop_return LOCALE_COMPARE; } + LOCALE-DATE{OSPC}/[(]? { pop_return LOCALE_DATE; } + LOCALE-TIME{OSPC}/[(]? { pop_return LOCALE_TIME; } + LOCALE-TIME-FROM-SECONDS{OSPC}/[(]? { pop_return LOCALE_TIME_FROM_SECONDS; } + LOG{OSPC}/[(]? { pop_return LOG; } + LOG10{OSPC}/[(]? { pop_return LOG10; } + LOWER-CASE{OSPC}/[(]? { pop_return LOWER_CASE; } + LOWEST-ALGEBRAIC{OSPC}/[(]? { pop_return LOWEST_ALGEBRAIC; } + MAX{OSPC}/[(]? { pop_return MAX; } + MEAN{OSPC}/[(]? { pop_return MEAN; } + MEDIAN{OSPC}/[(]? { pop_return MEDIAN; } + MIDRANGE{OSPC}/[(]? { pop_return MIDRANGE; } + MIN{OSPC}/[(]? { pop_return MIN; } + MOD{OSPC}/[(]? { pop_return MOD; } + NATIONAL-OF{OSPC}/[(]? { pop_return NATIONAL_OF; } + NUMVAL{OSPC}/[(]? { pop_return NUMVAL; } + NUMVAL-C{OSPC}/[(]? { pop_return NUMVAL_C; } + NUMVAL-F{OSPC}/[(]? { pop_return NUMVAL_F; } + ORD{OSPC}/[(]? { pop_return ORD; } + ORD-MAX{OSPC}/[(]? { pop_return ORD_MAX; } + ORD-MIN{OSPC}/[(]? { pop_return ORD_MIN; } + PI{OSPC}/[(]? { pop_return PI; } + PRESENT-VALUE{OSPC}/[(]? { pop_return PRESENT_VALUE; } + + RANDOM{OSPC}/[(]?{OSPC}{PARENS} { pop_return RANDOM; } + RANDOM{OSPC}/[(]?{OSPC}[(] { pop_return RANDOM_SEED; } + RANDOM{OSPC}/[(]? { pop_return RANDOM; } + + RANGE{OSPC}/[(]? { pop_return RANGE; } + REM{OSPC}/[(]? { pop_return REM; } + REVERSE{OSPC}/[(]? { pop_return REVERSE; } + SECONDS-FROM-FORMATTED-TIME{OSPC}/[(]? { BEGIN(datetime_fmt); return SECONDS_FROM_FORMATTED_TIME; } + SECONDS-PAST-MIDNIGHT{OSPC}/[(]? { pop_return SECONDS_PAST_MIDNIGHT; } + SIGN{OSPC}/[(]? { pop_return SIGN; } + SIN{OSPC}/[(]? { pop_return SIN; } + SQRT{OSPC}/[(]? { pop_return SQRT; } + STANDARD-DEVIATION{OSPC}/[(]? { pop_return STANDARD_DEVIATION; } + SUBSTITUTE{OSPC}/[(]? { pop_return SUBSTITUTE; } + SUM{OSPC}/[(]? { pop_return SUM; } + TAN{OSPC}/[(]? { pop_return TAN; } + TEST-DATE-YYYYMMDD{OSPC}/[(]? { pop_return TEST_DATE_YYYYMMDD; } + TEST-DAY-YYYYDDD{OSPC}/[(]? { pop_return TEST_DAY_YYYYDDD; } + TEST-FORMATTED-DATETIME{OSPC}/[(]? { BEGIN(datetime_fmt); return TEST_FORMATTED_DATETIME; } + TEST-NUMVAL{OSPC}/[(]? { pop_return TEST_NUMVAL; } + TEST-NUMVAL-C{OSPC}/[(]? { pop_return TEST_NUMVAL_C; } + TEST-NUMVAL-F{OSPC}/[(]? { pop_return TEST_NUMVAL_F; } + TRIM{OSPC}/[(]? { pop_return TRIM; } + ULENGTH{OSPC}/[(]? { pop_return ULENGTH; } + UPOS{OSPC}/[(]? { pop_return UPOS; } + UPPER-CASE{OSPC}/[(]? { pop_return UPPER_CASE; } + USUBSTR{OSPC}/[(]? { pop_return USUBSTR; } + USUPPLEMENTARY{OSPC}/[(]? { pop_return USUPPLEMENTARY; } + UUID4{OSPC}/[(]? { pop_return UUID4; } + UVALID{OSPC}/[(]? { pop_return UVALID; } + UWIDTH{OSPC}/[(]? { pop_return UWIDTH; } + VARIANCE{OSPC}/[(]? { pop_return VARIANCE; } + WHEN-COMPILED{OSPC}/[(]? { pop_return WHEN_COMPILED; } + YEAR-TO-YYYY{OSPC}/[(]? { pop_return YEAR_TO_YYYY; } {NAME}{OSPC}/[(] { /* If /{OSPC}, "dangerous trailing context" "*/ auto& token(yylval.number);