From patchwork Thu Mar 21 19:03:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 87477 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 22F783858295 for ; Thu, 21 Mar 2024 19:05:45 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-io1-xd36.google.com (mail-io1-xd36.google.com [IPv6:2607:f8b0:4864:20::d36]) by sourceware.org (Postfix) with ESMTPS id 99E7F3858407 for ; Thu, 21 Mar 2024 19:03:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 99E7F3858407 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 99E7F3858407 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d36 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711047821; cv=none; b=jQm4SoSnZZPq7qcp2wdX9/2z7wpygiKRwmKt/lGQIsMqFMup0w5vPYL/1tFb83WvPxBJjLDA/f64cXAUb9Y7DINWgnyU/nv3odELYK//rGTsitvX4nhBfoONB/iiukLwlzBGUqkCV5QjObUxJPkSTmijYhn7CbpXAy+Hc0Sx2o8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711047821; c=relaxed/simple; bh=lx6KOCaFbOKyHlooUlP8KrNsSu+VWnIwyGlT5OWI6mM=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=L2tkAK1CVXVCCy68HZMWI6C2rUaQPWRFUHq1qYDnZWdktrSZ70axZefc39Tj/gmb8PKW5wPNWsu6T2CIXi/zKlhy1+mOge6PPA6x3yP2iY4aUP3Xds7eSRi9fKPrdsdjdcO6dEYUAj2jbDgftj6DCANNmZt8HT0AczlGOl0bF3Y= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd36.google.com with SMTP id ca18e2360f4ac-7cc692af9ebso57209839f.0 for ; Thu, 21 Mar 2024 12:03:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1711047813; x=1711652613; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Z3AX/XxwtV0930oziZ13YJ+faSfR0HHPV4xJ2Zftx8I=; b=HDhs8TvK/brlx4Rshl3JdRWgNnwB7ZIFe2NC60fhxt2rmioaYtBswLh+NvWAqpdCla Yy1I1PnfBFFwdaRncU813eNg5RwzZRlfbTAgcs7YCZmTRRstrglolvrurtj0NSI9EuyP 2PWa8rXCebn7AcjHjbYNvuMxlR/403SVTOZJbf7pHk6V6r1ioiulVfJmAoU3/eaXnKHg SPOroiiLMUSiHuMCUaGh44laPu7K87oRY6w/NwPU+Qf5J+c5q5FQUVDdJ+Y3SrOvovYA WQQ2D3AqJ4yFp606FiE20uf3wfVvfS4IMGHycTds2T4BRz7l9MrrNS2pPIziqD0Ttp3r Xxug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711047813; x=1711652613; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Z3AX/XxwtV0930oziZ13YJ+faSfR0HHPV4xJ2Zftx8I=; b=AHE9ZFsLGgRZeM/4lWni4nmOGEfRTxViTmaQtAO5CwkogwxP4fHd4n3FY4+OP9jLam UJn+ri4n0kc0sj0J7pq5M4EjzY6/6bRDvpBITtQiQOZF9Rxd9DiDPybCiE8v1m6pjJfM UZEOETYidNpBxxZ5PEtK/6FJL78QxW4XZX/TEBpTva3A+CuJA5ELP2Xza3xmpL3KosZP 8WK3wCVah7hRl6b9jWig+gkGUvRXmCBeL74Pq8m11fgiRlsU3wos3O7vHsrikuXx+tTZ rxcsljFooGk9fFqY5Zv7iBgK1IsQzxARzyImcx7+mwHYSZ+pYLYCbxHys9PjustkkT06 O+dw== X-Gm-Message-State: AOJu0YwUAk+ONsN1k17ROiR76gjMONKQlR1H3vuGmM5DRO4eBtlB5yLB EBf+ItuZQPZKcl2B7ymoOh9bIrQmRdrnWjk2Hr5Wpvn9fcfzBVJ1K7uV/oO7rhZRLM/I2JPd75Y = X-Google-Smtp-Source: AGHT+IENcvFLHfhRY7SWVOPuzAS4Fpj/5BKjYTOAjHI7+GwGYtvTQA9tI+IEanuXmRw8rCoZelcVyA== X-Received: by 2002:a5d:9642:0:b0:7c8:41c7:6ac5 with SMTP id d2-20020a5d9642000000b007c841c76ac5mr365761ios.6.1711047813691; Thu, 21 Mar 2024 12:03:33 -0700 (PDT) Received: from localhost.localdomain (97-122-82-115.hlrn.qwest.net. [97.122.82.115]) by smtp.gmail.com with ESMTPSA id dp10-20020a0566381c8a00b00476f2bfc3f8sm53358jab.87.2024.03.21.12.03.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Mar 2024 12:03:33 -0700 (PDT) From: Tom Tromey Date: Thu, 21 Mar 2024 13:03:38 -0600 Subject: [PATCH 10/12] Move "returned_complete" into ada_parse_state MIME-Version: 1.0 Message-Id: <20240321-ada-iterated-assign-v1-10-925cdd4f1f4a@adacore.com> References: <20240321-ada-iterated-assign-v1-0-925cdd4f1f4a@adacore.com> In-Reply-To: <20240321-ada-iterated-assign-v1-0-925cdd4f1f4a@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This moves the "returned_complete" global into ada_parse_state. --- gdb/ada-exp.y | 7 +++++++ gdb/ada-lex.l | 12 ++---------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index 2b058571492..12f676b75de 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -106,6 +106,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 diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index 9161c4377c0..11221723eb3 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -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); }