From d9346cbfcbf5705d6ee93e9b7b3e789489c50ebd Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 14 Mar 2024 12:29:40 -0600 Subject: [PATCH] Move "paren_depth" into ada_parse_state This moves the "paren_depth" global into ada_parse_state. --- gdb/ada-exp.y | 3 +++ gdb/ada-lex.l | 12 ++++-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index b685ce968f7..21a384bc692 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -102,6 +102,9 @@ struct ada_parse_state auto_obstack temp_space; + /* Depth of parentheses, used by the lexer. */ + int paren_depth = 0; + private: /* We don't have a good way to manage non-POD data in Yacc, so store diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index 90cb5ba1b8a..9161c4377c0 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -108,9 +108,6 @@ static bool returned_complete = false; pstate->lexptr += 1; \ } -/* Depth of parentheses. */ -static int paren_depth; - %} %option case-insensitive interactive nodefault noyywrap @@ -268,7 +265,7 @@ false { return FALSEKEYWORD; } [-&*+{}@/:<>=|;\[\]] { return yytext[0]; } -"," { if (paren_depth == 0 && pstate->comma_terminates) +"," { if (ada_parser->paren_depth == 0 && pstate->comma_terminates) { rewind_to_char (','); return 0; @@ -277,15 +274,15 @@ false { return FALSEKEYWORD; } return ','; } -"(" { paren_depth += 1; return '('; } -")" { if (paren_depth == 0) +"(" { ada_parser->paren_depth += 1; return '('; } +")" { if (ada_parser->paren_depth == 0) { rewind_to_char (')'); return 0; } else { - paren_depth -= 1; + ada_parser->paren_depth -= 1; return ')'; } } @@ -349,7 +346,6 @@ static void lexer_init (FILE *inp) { BEGIN INITIAL; - paren_depth = 0; returned_complete = false; yyrestart (inp); } -- 2.47.3