d: fix interface syntax error

Fix syntax error regarding interface inheritance of the Lexer. It
appeared when the `%code lexer` option was used.

Reported by ledaniel2.
<https://github.com/akimd/bison/issues/84>

* data/skeletons/lalr1.d: Fix syntax.
* tests/d.at: Test it.
This commit is contained in:
Adela Vais
2022-09-19 15:12:39 +02:00
committed by Akim Demaille
parent c025891547
commit be4528096e
2 changed files with 10 additions and 2 deletions

View File

@@ -112,6 +112,13 @@ AT_CHECK_D_GREP([[class YYParser : BaseClass]])
AT_CHECK_D_MINIMAL([%define api.parser.extends {Interface}], [], [], [interface Interface {}])
AT_CHECK_D_GREP([[class YYParser : Interface]])
AT_CHECK_D_MINIMAL([%code lexer
{
Symbol yylex () {return Symbol();}
void yyerror (string s) {import std.stdio;writeln(s);}
}], [], [], [])
AT_CHECK_D_GREP([[private class YYLexer: Lexer]])
AT_CHECK_D_MINIMAL(
[%define api.parser.extends {BaseClass}
%define api.parser.implements {Interface}], [], [],