[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/6] diagnostics: translate bison's own tokens
From: |
Akim Demaille |
Subject: |
[PATCH 1/6] diagnostics: translate bison's own tokens |
Date: |
Thu, 23 Jan 2020 08:50:56 +0100 |
As a test case, support translations in Bison itself.
* src/parse-gram.y: Mark the translatable tokens.
While at it, use clearer names.
* tests/input.at: Adjust expectations.
---
src/parse-gram.y | 72 ++++++++++++++++++++++--------------------------
tests/input.at | 4 +--
2 files changed, 35 insertions(+), 41 deletions(-)
diff --git a/src/parse-gram.y b/src/parse-gram.y
index 328d7e62..30b2bef1 100644
--- a/src/parse-gram.y
+++ b/src/parse-gram.y
@@ -140,32 +140,27 @@
boundary_set (&@$.end, grammar_file, 1, 1, 1);
}
-/* Define the tokens together with their human representation. */
-%token GRAM_EOF 0 "end of file"
-%token STRING "string"
- TSTRING "translatable string"
-
-%token PERCENT_TOKEN "%token"
-%token PERCENT_NTERM "%nterm"
+%token
+ GRAM_EOF 0 _("end of file")
+ STRING _("string")
+ TSTRING _("translatable string")
-%token PERCENT_TYPE "%type"
-%token PERCENT_DESTRUCTOR "%destructor"
-%token PERCENT_PRINTER "%printer"
+ PERCENT_TOKEN "%token"
+ PERCENT_NTERM "%nterm"
-%token PERCENT_LEFT "%left"
-%token PERCENT_RIGHT "%right"
-%token PERCENT_NONASSOC "%nonassoc"
-%token PERCENT_PRECEDENCE "%precedence"
+ PERCENT_TYPE "%type"
+ PERCENT_DESTRUCTOR "%destructor"
+ PERCENT_PRINTER "%printer"
-%token PERCENT_PREC "%prec"
-%token PERCENT_DPREC "%dprec"
-%token PERCENT_MERGE "%merge"
+ PERCENT_LEFT "%left"
+ PERCENT_RIGHT "%right"
+ PERCENT_NONASSOC "%nonassoc"
+ PERCENT_PRECEDENCE "%precedence"
-/*----------------------.
-| Global Declarations. |
-`----------------------*/
+ PERCENT_PREC "%prec"
+ PERCENT_DPREC "%dprec"
+ PERCENT_MERGE "%merge"
-%token
PERCENT_CODE "%code"
PERCENT_DEFAULT_PREC "%default-prec"
PERCENT_DEFINE "%define"
@@ -191,24 +186,23 @@
PERCENT_TOKEN_TABLE "%token-table"
PERCENT_VERBOSE "%verbose"
PERCENT_YACC "%yacc"
-;
-%token BRACED_CODE "{...}"
-%token BRACED_PREDICATE "%?{...}"
-%token BRACKETED_ID "[identifier]"
-%token CHAR "character literal"
-%token COLON ":"
-%token EPILOGUE "epilogue"
-%token EQUAL "="
-%token ID "identifier"
-%token ID_COLON "identifier:"
-%token PERCENT_PERCENT "%%"
-%token PIPE "|"
-%token PROLOGUE "%{...%}"
-%token SEMICOLON ";"
-%token TAG "<tag>"
-%token TAG_ANY "<*>"
-%token TAG_NONE "<>"
+ BRACED_CODE "{...}"
+ BRACED_PREDICATE "%?{...}"
+ BRACKETED_ID _("[identifier]")
+ CHAR _("character literal")
+ COLON ":"
+ EPILOGUE _("epilogue")
+ EQUAL "="
+ ID _("identifier")
+ ID_COLON _("identifier:")
+ PERCENT_PERCENT "%%"
+ PIPE "|"
+ PROLOGUE "%{...%}"
+ SEMICOLON ";"
+ TAG _("<tag>")
+ TAG_ANY "<*>"
+ TAG_NONE "<>"
/* Experimental feature, don't rely on it. */
%code pre-printer {tron (yyo);}
@@ -231,7 +225,7 @@
%printer { fprintf (yyo, "%%%s", $$); } PERCENT_FLAG
%printer { fprintf (yyo, "<%s>", $$); } TAG tag
-%token <int> INT "integer"
+%token <int> INT _("integer literal")
%printer { fprintf (yyo, "%d", $$); } <int>
%type <symbol*> id id_colon string_as_id symbol token_decl token_decl_for_prec
diff --git a/tests/input.at b/tests/input.at
index c03b282f..0d115e3a 100644
--- a/tests/input.at
+++ b/tests/input.at
@@ -287,10 +287,10 @@ input.y:5.8-15: error: syntax error, unexpected string,
expecting character lite
input.y:6.8-13: error: syntax error, unexpected string, expecting character
literal or identifier or <tag>
6 | %token "tok1" 1;
| ^~~~~~
-input.y:7.14: error: syntax error, unexpected integer
+input.y:7.14: error: syntax error, unexpected integer literal
7 | %left "tok2" 2;
| ^
-input.y:8.14: error: syntax error, unexpected integer
+input.y:8.14: error: syntax error, unexpected integer literal
8 | %type "tok3" 3;
| ^
]])
--
2.25.0
- [PATCH 0/6] diagnostics: improve bison's syntax error messages, Akim Demaille, 2020/01/23
- [PATCH 1/6] diagnostics: translate bison's own tokens,
Akim Demaille <=
- [PATCH 2/6] regen, Akim Demaille, 2020/01/23
- [PATCH 3/6] diagnostics: report syntax errors in color, Akim Demaille, 2020/01/23
- [PATCH 4/6] regen, Akim Demaille, 2020/01/23
- [PATCH 6/6] regen, Akim Demaille, 2020/01/23
- [PATCH 5/6] diagnostics: modernize bison's syntax errors, Akim Demaille, 2020/01/23
- Re: [PATCH 0/6] diagnostics: improve bison's syntax error messages, Akim Demaille, 2020/01/25