Re: Minor documentation and message issues
Akim Demaille <[email protected]> Sat, 10 Sep 2022 14:52:24 +0200
| Newsgroups | gmane.comp.parsers.bison.bugs |
|---|---|
| Message-ID | <[email protected]> |
Hi Frank, > Le 25 juil. 2022 =C3=A0 18:18, Frank Heckenbach = <[email protected]> a =C3=A9crit : >=20 > I wrote: >=20 >> The manual states: >>=20 >> The syntax of the various directives to declare symbols is as = follows. >>=20 >> @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 >>=20 >> I think the "@var{char}" option is missing in the "%token" and >> "%left" cases. >=20 > 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 <[email protected]> Date: Sat Sep 10 14:48:24 2022 +0200 doc: fix the description of the syntax of %token and %left =20 Reported by Frank Heckenbach. https://lists.gnu.org/r/bug-bison/2022-07/msg00007.html =20 * 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. =20 @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 =20 @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),