[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Minor documentation and message issues
From: |
Akim Demaille |
Subject: |
Re: Minor documentation and message issues |
Date: |
Sat, 10 Sep 2022 14:52:24 +0200 |
Hi Frank,
> Le 25 juil. 2022 à 18:18, Frank Heckenbach <f.heckenbach@fh-soft.de> a écrit :
>
> I wrote:
>
>> The manual states:
>>
>> The syntax of the various directives to declare symbols is as follows.
>>
>> @example
>> %token @var{tag}? ( @var{id} @var{number}? @var{string}? )+ ( @var{tag} (
>> @var{id} @var{number}? @var{string}? )+ )*
>> %left @var{tag}? ( @var{id} @var{number}?)+ ( @var{tag} ( @var{id}
>> @var{number}? )+ )*
>> %type @var{tag}? ( @var{id} | @var{char} | @var{string} )+ ( @var{tag} (
>> @var{id} | @var{char} | @var{string} )+ )*
>> %nterm @var{tag}? @var{id}+ ( @var{tag} @var{id}+ )*
>> @end example
>>
>> I think the "@var{char}" option is missing in the "%token" and
>> "%left" cases.
>
> Also "@var{string}" in "%left".
Thanks! I had never realized we could write `%token '+'`. I also didn't know
we could give a string alias to a char-token. But I'll leave it as is.
I think this is right now, do you agree?
commit 374cf8bbafea10914b15df8110fb527383095d2f
Author: Akim Demaille <akim.demaille@gmail.com>
Date: Sat Sep 10 14:48:24 2022 +0200
doc: fix the description of the syntax of %token and %left
Reported by Frank Heckenbach.
https://lists.gnu.org/r/bug-bison/2022-07/msg00007.html
* doc/bison.texi (Symbol Decls): here.
diff --git a/doc/bison.texi b/doc/bison.texi
index f4ee13e1..a4bc037e 100644
--- a/doc/bison.texi
+++ b/doc/bison.texi
@@ -5318,15 +5318,27 @@ @node Symbol Decls
The syntax of the various directives to declare symbols is as follows.
@example
-%token @var{tag}? ( @var{id} @var{number}? @var{string}? )+ ( @var{tag} (
@var{id} @var{number}? @var{string}? )+ )*
-%left @var{tag}? ( @var{id} @var{number}?)+ ( @var{tag} ( @var{id}
@var{number}? )+ )*
-%type @var{tag}? ( @var{id} | @var{char} | @var{string} )+ ( @var{tag} (
@var{id} | @var{char} | @var{string} )+ )*
-%nterm @var{tag}? @var{id}+ ( @var{tag} @var{id}+ )*
+@group
+%token @var{tag}? ( (@var{id}|@var{char}) @var{number}? @var{string}? )+ \
+ ( @var{tag} ( (@var{id}|@var{char}) @var{number}? @var{string}? )+ )*
+@end group
+@group
+%left @var{tag}? ( (@var{id}|@var{char}|@var{string}) @var{number}? )+ \
+ ( @var{tag} ( (@var{id}|@var{char}|@var{string}) @var{number}? )+ )*
+@end group
+@group
+%type @var{tag}? (@var{id}|@var{char}|@var{string})+ \
+ ( @var{tag} (@var{id}|@var{char}|@var{string})+ )*
+@end group
+@group
+%nterm @var{tag}? @var{id}+ \
+ ( @var{tag} @var{id}+ )*
+@end group
@end example
@noindent
where @var{tag} denotes a type tag such as @samp{<ival>}, @var{id} denotes
-an identifier such as @samp{NUM}, @var{number} a decimal or hexadecimal
+an identifier such as @samp{NUM} or @samp{exp}, @var{number} a decimal or
hexadecimal
integer such as @samp{300} or @samp{0x12d}, @var{char} a character literal
such as @samp{'+'}, and @var{string} a string literal such as
@samp{"number"}. The postfix quantifiers are @samp{?} (zero or one),
- Re: Minor documentation and message issues,
Akim Demaille <=