Move "returned_complete" into ada_parse_state

This moves the "returned_complete" global into ada_parse_state.
This commit is contained in:
Tom Tromey
2024-03-14 12:30:28 -06:00
parent d9346cbfcb
commit 33a03c1213
2 changed files with 9 additions and 10 deletions

View File

@@ -105,6 +105,13 @@ struct ada_parse_state
/* Depth of parentheses, used by the lexer. */
int paren_depth = 0;
/* When completing, we'll return a special character at the end of the
input, to signal the completion position to the lexer. This is
done because flex does not have a generally useful way to detect
EOF in a pattern. This variable records whether the special
character has been emitted. */
bool returned_complete = false;
private:
/* We don't have a good way to manage non-POD data in Yacc, so store

View File

@@ -78,13 +78,6 @@ static void rewind_to_char (int);
Defining YY_NO_INPUT comments it out. */
#define YY_NO_INPUT
/* When completing, we'll return a special character at the end of the
input, to signal the completion position to the lexer. This is
done because flex does not have a generally useful way to detect
EOF in a pattern. This variable records whether the special
character has been emitted. */
static bool returned_complete = false;
/* The character we use to represent the completion point. */
#define COMPLETE_CHAR '\001'
@@ -92,9 +85,9 @@ static bool returned_complete = false;
#define YY_INPUT(BUF, RESULT, MAX_SIZE) \
if ( *pstate->lexptr == '\000' ) \
{ \
if (pstate->parse_completion && !returned_complete) \
if (pstate->parse_completion && !ada_parser->returned_complete) \
{ \
returned_complete = true; \
ada_parser->returned_complete = true; \
*(BUF) = COMPLETE_CHAR; \
(RESULT) = 1; \
} \
@@ -346,7 +339,6 @@ static void
lexer_init (FILE *inp)
{
BEGIN INITIAL;
returned_complete = false;
yyrestart (inp);
}