On Wed, Mar 19, 2025 at 06:03:24PM -0400, James K. Lowden wrote:
> Elsewhere in the parser where there was a conflict like that, I renamed
> the token.  For example, the COBOL word TRUE uses a token named
> TRUE_kw.  I don't mind either way; your solution has less impact on the
> parser.  

I think consistency is good and when it is a suffix rather than prefix,
it also sorts alphabetically together with the actual keywords.

Ok for trunk?

2025-03-21  Jakub Jelinek  <ja...@redhat.com>

        * parse.y: Rename COB_BLOCK to BLOCK_kw, COB_SIGNED to SIGNED_kw and
        COB_UNSIGNED to UNSIGNED_kw.
        * scan.l: Likewise.
        * token_names.h: Regenerate.

--- gcc/cobol/scan.l.jj 2025-03-21 10:09:38.903966677 +0100
+++ gcc/cobol/scan.l    2025-03-21 10:12:07.079914108 +0100
@@ -374,7 +374,7 @@ ROUNDING                    { return ROUNDING; }
 SECONDS                                { return SECONDS; }
 SECURE                         { return SECURE; }
 SHORT                          { return SHORT; }
-SIGNED                         { return COB_SIGNED; }
+SIGNED                         { return SIGNED_kw; }
 STANDARD-BINARY                        { return STANDARD_BINARY; }
 STANDARD-DECIMAL               { return STANDARD_DECIMAL; }
 STATEMENT                      { return STATEMENT; }
@@ -394,7 +394,7 @@ TOWARD-LESSER                       { return TOWARD_LESSER;
 TRUNCATION                     { return TRUNCATION; }
 UCS-4                          { return UCS_4; }
 UNDERLINE                      { return UNDERLINE; }
-UNSIGNED                       { return COB_UNSIGNED; }
+UNSIGNED                       { return UNSIGNED_kw; }
 UTF-16                         { return UTF_16; }
 UTF-8                          { return UTF_8; }
 
@@ -837,7 +837,7 @@ CALL                { return CALL; }
 BY             { return BY; }
 BOTTOM         { return BOTTOM; }
 BEFORE         { return BEFORE; }
-BLOCK          { return COB_BLOCK; }
+BLOCK          { return BLOCK_kw; }
 BACKWARD       { return BACKWARD; }
 
 AT             { return AT; }
@@ -1042,7 +1042,7 @@ USE({SPC}FOR)?            { return USE; }
   AS                   { return AS; }
   ASCENDING            { return ASCENDING; }
   BLANK                { return BLANK; }
-  BLOCK                        { return COB_BLOCK; }
+  BLOCK                        { return BLOCK_kw; }
   BY                   { return BY; }
   BYTE-LENGTH          { return BYTE_LENGTH; }
   CHARACTER            { return CHARACTER; }
@@ -2164,7 +2164,7 @@ BASIS             { yy_push_state(basis); return BA
   BINARY       { return BINARY; }
   BIT  { return BIT; }
   BLANK        { return BLANK; }
-  BLOCK        { return COB_BLOCK; }
+  BLOCK        { return BLOCK_kw; }
   BOTTOM       { return BOTTOM; }
   BY   { return BY; }
   CALL { return CALL; }
--- gcc/cobol/parse.y.jj        2025-03-21 10:09:38.902966690 +0100
+++ gcc/cobol/parse.y   2025-03-21 10:11:12.178674614 +0100
@@ -408,7 +408,7 @@
 
                        BASED BASECONVERT
                        BEFORE BINARY BIT BIT_OF "BIT-OF" BIT_TO_CHAR 
"BIT-TO-CHAR"
-                       BLANK COB_BLOCK
+                       BLANK BLOCK_kw
                        BOOLEAN_OF_INTEGER "BOOLEAN-OF-INTEGER"
                        BOTTOM BY
                        BYTE BYTE_LENGTH "BYTE-LENGTH"
@@ -613,7 +613,7 @@
                        NONE NORMAL NUMBERS
                        PREFIXED PREVIOUS PROHIBITED RELATION REQUIRED
                        REVERSE_VIDEO ROUNDING
-                       SECONDS SECURE SHORT COB_SIGNED
+                       SECONDS SECURE SHORT SIGNED_kw
                        STANDARD_BINARY "STANDARD-BINARY"
                        STANDARD_DECIMAL "STANDARD-DECIMAL"
                        STATEMENT STEP STRUCTURE
@@ -621,7 +621,7 @@
                        TOWARD_LESSER "TOWARD-LESSER"
                        TRUNCATION
                        UCS_4 "UCS-4"
-                       UNDERLINE COB_UNSIGNED
+                       UNDERLINE UNSIGNED_kw
                        UTF_16 "UTF-16"
                        UTF_8 "UTF-8"
 
@@ -1014,7 +1014,7 @@
 
                         BACKWARD BASED BASECONVERT
                        BEFORE BINARY BIT BIT_OF BIT_TO_CHAR
-                        BLANK COB_BLOCK
+                        BLANK BLOCK_kw
                        BOOLEAN_OF_INTEGER
                        BOTTOM BY
                        BYTE BYTE_LENGTH
@@ -1228,7 +1228,7 @@
                         NONE NORMAL NUMBERS
                         PREFIXED PREVIOUS PROHIBITED RELATION REQUIRED
                         REVERSE_VIDEO ROUNDING
-                        SECONDS SECURE SHORT COB_SIGNED
+                        SECONDS SECURE SHORT SIGNED_kw
                        STANDARD_BINARY
                         STANDARD_DECIMAL
                        STATEMENT STEP STRUCTURE
@@ -1236,7 +1236,7 @@
                        TOWARD_LESSER
                        TRUNCATION
                         UCS_4
-                       UNDERLINE COB_UNSIGNED
+                       UNDERLINE UNSIGNED_kw
                        UTF_16
                        UTF_8
 
@@ -2907,7 +2907,7 @@ fd_clause:      record_desc
                 }
                 ;
 
-block_desc:     COB_BLOCK contains rec_contains chars_recs
+block_desc:     BLOCK_kw contains rec_contains chars_recs
                 ;
 rec_contains:   NUMSTR[min] {
                   ssize_t n;
@@ -6528,7 +6528,7 @@ context_word:   APPLY
                                          $$ = s; } // screen description entry
         |       SHORT                  { static char s[] ="SHORT";
                                          $$ = s; } // DYNAMIC LENGTH STRUCTURE 
clause
-        |       COB_SIGNED             { static char s[] ="SIGNED";
+        |       SIGNED_kw              { static char s[] ="SIGNED";
                                          $$ = s; } // DYNAMIC LENGTH STRUCTURE 
clause and USAGE clause
         |       STANDARD_BINARY        { static char s[] ="STANDARD-BINARY";
                                          $$ = s; } // ARITHMETIC clause
@@ -6554,7 +6554,7 @@ context_word:   APPLY
                                          $$ = s; } // ALPHABET clause
         |       UNDERLINE              { static char s[] ="UNDERLINE";
                                          $$ = s; } // screen description entry 
and SET attribute statement
-        |       COB_UNSIGNED           { static char s[] ="UNSIGNED";
+        |       UNSIGNED_kw            { static char s[] ="UNSIGNED";
                                          $$ = s; } // USAGE clause
         |       UTF_8                  { static char s[] ="UTF-8";
                                          $$ = s; } // ALPHABET clause
--- gcc/cobol/token_names.h.jj  2025-03-21 10:09:38.963965845 +0100
+++ gcc/cobol/token_names.h     2025-03-21 10:13:54.077431954 +0100
@@ -1,5 +1,5 @@
 // generated by ./token_names.h.gen ../../build/gcc/cobol/parse.h
-// Fri Jan 31 05:52:10 EST 2025
+// Fri Mar 21 10:13:54 CET 2025
 tokens = {
         { "identification", IDENTIFICATION_DIV }, // 258
         { "environment", ENVIRONMENT_DIV }, // 259
@@ -219,7 +219,7 @@ tokens = {
         { "bit-of", BIT_OF }, // 470
         { "bit-to-char", BIT_TO_CHAR }, // 471
         { "blank", BLANK }, // 472
-        { "block", COB_BLOCK }, // 473
+        { "block", BLOCK_kw }, // 473
         { "boolean-of-integer", BOOLEAN_OF_INTEGER }, // 474
         { "bottom", BOTTOM }, // 475
         { "by", BY }, // 476
@@ -642,7 +642,7 @@ tokens = {
         { "seconds", SECONDS }, // 891
         { "secure", SECURE }, // 892
         { "short", SHORT }, // 893
-        { "signed", COB_SIGNED }, // 894
+        { "signed", SIGNED_kw }, // 894
         { "standard-binary", STANDARD_BINARY }, // 895
         { "standard-decimal", STANDARD_DECIMAL }, // 896
         { "statement", STATEMENT }, // 897
@@ -653,7 +653,7 @@ tokens = {
         { "truncation", TRUNCATION }, // 902
         { "ucs-4", UCS_4 }, // 903
         { "underline", UNDERLINE }, // 904
-        { "unsigned", COB_UNSIGNED }, // 905
+        { "unsigned", UNSIGNED_kw }, // 905
         { "utf-16", UTF_16 }, // 906
         { "utf-8", UTF_8 }, // 907
         { "address", ADDRESS }, // 908


        Jakub

Reply via email to