Simplify parser_state constructor
authorTom Tromey <tromey@adacore.com>
Fri, 28 Apr 2023 14:23:00 +0000 (08:23 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 23 May 2023 19:57:54 +0000 (13:57 -0600)
This simplifies the parser_state constructor by having it accept a
parser_flags parameter.

gdb/parse.c
gdb/parser-defs.h
gdb/rust-parse.c

index ed0d0b8a88089adc1aecc995c76217a99b027b7f..2f014dd2172eb7f892595096041e1d31f85d5519 100644 (file)
@@ -398,11 +398,8 @@ parse_exp_in_context (const char **stringptr, CORE_ADDR pc,
      to the value matching SELECTED_FRAME as set by get_current_arch.  */
 
   parser_state ps (lang, get_current_arch (), expression_context_block,
-                  expression_context_pc,
-                  (flags & PARSER_COMMA_TERMINATES) != 0,
-                  *stringptr,
-                  completer != nullptr, tracker,
-                  (flags & PARSER_VOID_CONTEXT) != 0);
+                  expression_context_pc, flags, *stringptr,
+                  completer != nullptr, tracker);
 
   scoped_restore_current_language lang_saver;
   set_language (lang->la_language);
index 5c6bc222b6bdf206596518f9314ebd52d50494b1..2a246ff38f0f0eacf7f2217b53f11a843dc0fac7 100644 (file)
@@ -146,19 +146,18 @@ struct parser_state : public expr_builder
                struct gdbarch *gdbarch,
                const struct block *context_block,
                CORE_ADDR context_pc,
-               int comma,
+               parser_flags flags,
                const char *input,
                bool completion,
-               innermost_block_tracker *tracker,
-               bool void_p)
+               innermost_block_tracker *tracker)
     : expr_builder (lang, gdbarch),
       expression_context_block (context_block),
       expression_context_pc (context_pc),
-      comma_terminates (comma),
+      comma_terminates ((flags & PARSER_COMMA_TERMINATES) != 0),
       lexptr (input),
       parse_completion (completion),
       block_tracker (tracker),
-      void_context_p (void_p)
+      void_context_p ((flags & PARSER_VOID_CONTEXT) != 0)
   {
   }
 
index 427169611d370d609a5c568fc23df06e508cc7ba..4b3348d8ca6c9bf69256ddd1643eb89f888c7c00 100644 (file)
@@ -2310,7 +2310,7 @@ rust_lex_tests (void)
 {
   /* Set up dummy "parser", so that rust_type works.  */
   struct parser_state ps (language_def (language_rust), target_gdbarch (),
-                         nullptr, 0, 0, nullptr, 0, nullptr, false);
+                         nullptr, 0, 0, nullptr, 0, nullptr);
   rust_parser parser (&ps);
 
   rust_lex_test_one (&parser, "", 0);