aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2024-03-14 12:29:40 -0600
committerTom Tromey <tromey@adacore.com>2024-04-02 11:24:27 -0600
commitd9346cbfcbf5705d6ee93e9b7b3e789489c50ebd (patch)
tree8f4a8bba67641398019491357752f2853afc3b09
parent65586abcf3d2ae9621227c0f1c59891a3506a479 (diff)
downloadgdb-d9346cbfcbf5705d6ee93e9b7b3e789489c50ebd.zip
gdb-d9346cbfcbf5705d6ee93e9b7b3e789489c50ebd.tar.gz
gdb-d9346cbfcbf5705d6ee93e9b7b3e789489c50ebd.tar.bz2
Move "paren_depth" into ada_parse_state
This moves the "paren_depth" global into ada_parse_state.
-rw-r--r--gdb/ada-exp.y3
-rw-r--r--gdb/ada-lex.l12
2 files changed, 7 insertions, 8 deletions
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index b685ce9..21a384b 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 90cb5ba..9161c43 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);
}