diff options
author | Tom Tromey <tromey@adacore.com> | 2024-03-14 12:29:40 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2024-04-02 11:24:27 -0600 |
commit | d9346cbfcbf5705d6ee93e9b7b3e789489c50ebd (patch) | |
tree | 8f4a8bba67641398019491357752f2853afc3b09 | |
parent | 65586abcf3d2ae9621227c0f1c59891a3506a479 (diff) | |
download | gdb-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.y | 3 | ||||
-rw-r--r-- | 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 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); } |