Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14279

./parse.y: warning: 1 shift/reduce conflict [-Wconflicts-sr]

Path csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail
From Piotr Grzybowski <narsil.pl@gmail.com>
Newsgroups gnu.bash.bug
Subject ./parse.y: warning: 1 shift/reduce conflict [-Wconflicts-sr]
Date Wed, 27 Jun 2018 12:59:34 +0200
Lines 51
Approved bug-bash@gnu.org
Message-ID <mailman.2610.1530097184.1292.bug-bash@gnu.org> (permalink)
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0 (Apple Message framework v1085)
Content-Type text/plain; charset=us-ascii
Content-Transfer-Encoding quoted-printable
X-Trace usenet.stanford.edu 1530097184 17128 208.118.235.17 (27 Jun 2018 10:59:44 GMT)
X-Complaints-To action@cs.stanford.edu
To bug-bash <bug-bash@gnu.org>
Envelope-to bug-bash@gnu.org
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:content-transfer-encoding:subject:date:message-id:to :mime-version; bh=fLNpA6ZuQU8kPAtIAr592Weh8ixe7oKUEaqkPN68t1Y=; b=AImBV/l7G8OEm2Uoy27aNU3NzBncx0mOUtxb1u4oX4A/r6NlX4ncmfwox1CquGxHN0 doQmuTCFEif4E/gfq878Y7UGrpXqw/vGrrN3K6qc1G+WVYR306yOFlWCd4yKiaAFyBAB ac6UIkSSoO9QZvoi5kkvmZXRGoXU6Qk6SqxDR638K7K6a+Zx4tdqmjprkI4JVCUPHM4p Uf4ntoAuSBVq1IF+K/ys34PJFq31gb1gdXpT4Be4yypqGl1PLYfwAsNO9PTt2s+c5Zk5 YBglROkldtDI3TI36X9IYYXdtOr8RSG/LwBKvTs3p32dBx+hPbm+bG1Xl171JfaGiGwg 2xfQ==
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:subject:date :message-id:to:mime-version; bh=fLNpA6ZuQU8kPAtIAr592Weh8ixe7oKUEaqkPN68t1Y=; b=BcL70Kxq0D1eujFSaZZY9GzjtDz6k1zX6RrCqfgFkx1Q+Dh0niWDVb6fT/4MqnI3Cc W49yhTa9UBI2mqhhRQYRHf0h+RAMJEs3Y6nwxhRBFdHZXVSjRlISRCvy3QY4uWQDo0pm 4gG//Y07aBudeaUygT0zvMH/dMxb/P9cFB7d5KHkt3GvN1/0f6BYqQAU/PamQPskOdGU etALktwWa9iTxZdJvruofE63Aywp7N4Yh6wyHIx4Pdo7jQQsp3coM/oHVSOCVe/edbDV RQqpDUd1JKKzxtjF5gmhYrB3aimZMxvV2thU+RT2oR8EAHkaFBoYhp8qT5iN5+Aa5S0r 2GXA==
X-Gm-Message-State APt69E2Z3kwkaxBpYfnDlCGxDhK2YIvJCY/v41tK5s1AhCXwSDaiWvwx AGcKkkCZvIvD/zPS/GgypPMP8A==
X-Google-Smtp-Source AAOMgpci+vnOtficetHbqB9TWGoQmr1lWzljv56PrTzAAPGOkxx6LnjBDDpgoLVtf4uSb72FSC1D8Q==
X-Received by 2002:a19:1003:: with SMTP id f3-v6mr4029665lfi.116.1530097176616; Wed, 27 Jun 2018 03:59:36 -0700 (PDT)
X-Mailer Apple Mail (2.1085)
X-detected-operating-system by eggs.gnu.org: Genre and OS details not recognized.
X-Received-From 2a00:1450:4010:c07::244
X-BeenThere bug-bash@gnu.org
X-Mailman-Version 2.1.21
Precedence list
List-Id Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <http://lists.gnu.org/archive/html/bug-bash/>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
Xref csiph.com gnu.bash.bug:14279

Show key headers only | View raw


Hey,

 I case anyone noticed, in the current devel there is shift/reduce conflict reported by bison. Those usually are a symptom of not fully controlled grammar, and I would like to think that we are in full control over parse.y.
 It is caused by function_def rule, namely the combination of '(' and newline_list.
 A quick fix:

diff --git a/parse.y b/parse.y
index 6457782..f7d84ff 100644
--- a/parse.y
+++ b/parse.y
@@ -913,16 +913,15 @@ case_command:     CASE WORD newline_list IN newline_list ESAC
                        }
        ;
 
-function_def:  WORD '(' ')' newline_list function_body
-                       { $$ = make_function_def ($1, $5, function_dstart, function_bstart); }
-
-       |       FUNCTION WORD '(' ')' newline_list function_body
-                       { $$ = make_function_def ($2, $6, function_dstart, function_bstart); }
-
-       |       FUNCTION WORD newline_list function_body
+function_def:  WORD function_newline_list function_body
+                       { $$ = make_function_def ($1, $3, function_dstart, function_bstart); }
+       |       FUNCTION WORD function_newline_list function_body
                        { $$ = make_function_def ($2, $4, function_dstart, function_bstart); }
        ;
 
+function_newline_list: '(' ')' | function_newline_list '\n'
+       ;
+
 function_body: shell_command
                        { $$ = $1; }
        |       shell_command redirection_list

cheers,
pg

P.S.
 the last rule maybe does not give justice to the syntax, but tokenizer will not let anything stray go through.

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

./parse.y: warning: 1 shift/reduce conflict [-Wconflicts-sr] Piotr Grzybowski <narsil.pl@gmail.com> - 2018-06-27 12:59 +0200

csiph-web