diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2022-09-10 14:48:24 +0200 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2022-09-10 14:48:24 +0200 |
commit | 374cf8bbafea10914b15df8110fb527383095d2f (patch) | |
tree | 0078978e8bd5bfc75230b3c092a910e2642dc6bc | |
parent | dd6ca199276506c4902a993b863fa10414a90178 (diff) | |
download | bison-374cf8bbafea10914b15df8110fb527383095d2f.tar.gz |
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.
-rw-r--r-- | doc/bison.texi | 22 |
1 files changed, 17 insertions, 5 deletions
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 @@ exclusively nonterminal symbols, use the safer @code{%nterm}: 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), |