From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ciao.gmane.io (ciao.gmane.io [116.202.254.214]) by sourceware.org (Postfix) with ESMTPS id 9A4403857352 for ; Fri, 29 Jul 2022 21:09:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9A4403857352 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oHXEb-0001hR-VI for fortran@gcc.gnu.org; Fri, 29 Jul 2022 23:09:25 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: fortran@gcc.gnu.org From: Harald Anlauf Subject: [PATCH, v3] Fortran: detect blanks within literal constants in free-form mode [PR92805] Date: Fri, 29 Jul 2022 23:09:21 +0200 Message-ID: References: <46cc765d-469e-d6e8-23c5-dc470028d881@orange.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------pbevMgC0jJvr0jtkyy80liIF" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US In-Reply-To: <46cc765d-469e-d6e8-23c5-dc470028d881@orange.fr> Cc: gcc-patches@gcc.gnu.org X-Spam-Status: No, score=-8.8 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, 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: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jul 2022 21:09:29 -0000 This is a multi-part message in MIME format. --------------pbevMgC0jJvr0jtkyy80liIF Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Mikael, Am 29.07.22 um 22:36 schrieb Mikael Morin: > Indeed, I overlooked that, but my opinion remains that we shouldn’t play > with fixed vs free form considerations here. > So the options I can see are: >  - handle the locus in get_kind; we do it a lot already in matching > functions, so it wouldn’t be different here. >  - implement a variant of gfc_match_char without space gobbling. >  - use gfc_match(...), which is a bit heavy weight to match a single > char string, but otherwise would keep things concise. > > My preference goes to the third option, but I’m fine with either of them > if you have a different one. > how about the attached? This introduces the helper function gfc_match_next_char, which is your second option. Thanks, Harald --------------pbevMgC0jJvr0jtkyy80liIF Content-Type: text/x-patch; charset=UTF-8; name="pr92805-v3.diff" Content-Disposition: attachment; filename="pr92805-v3.diff" Content-Transfer-Encoding: base64 RnJvbSAwYTk1ZDEwM2U0ODU1ZmJjYzIwZmQyNGQ0NGI5N2I2OTBkNTcwMzMzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBUaHUsIDI4IEp1bCAyMDIyIDIyOjA3OjAyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g Rm9ydHJhbjogZGV0ZWN0IGJsYW5rcyB3aXRoaW4gbGl0ZXJhbCBjb25zdGFudHMgaW4gZnJl ZS1mb3JtCiBtb2RlIFtQUjkyODA1XQoKZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoKCVBSIGZv cnRyYW4vOTI4MDUKCSogZ2ZvcnRyYW4uaCAoZ2ZjX21hdGNoX25leHRfY2hhcik6IERlY2xh cmUgaXQuCgkqIHByaW1hcnkuY2MgKGdldF9raW5kKTogRG8gbm90IHNraXAgb3ZlciBibGFu a3MgaW4gZnJlZS1mb3JtIG1vZGUuCgkobWF0Y2hfc3RyaW5nX2NvbnN0YW50KTogTGlrZXdp c2UuCgkqIHNjYW5uZXIuY2MgKGdmY19tYXRjaF9uZXh0X2NoYXIpOiBOZXcuICBNYXRjaCBu ZXh0IGNoYXJhY3RlciBvZgoJaW5wdXQsIHRyZWF0aW5nIHdoaXRlc3BhY2UgZGVwZW5kaW5n IG9uIGZpeGVkIG9yIGZyZWUgZm9ybS4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCVBS IGZvcnRyYW4vOTI4MDUKCSogZ2ZvcnRyYW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZjogTmV3 IHRlc3QuCgkqIGdmb3J0cmFuLmRnL2xpdGVyYWxfY29uc3RhbnRzLmY5MDogTmV3IHRlc3Qu CgpDby1hdXRob3JlZC1ieTogU3RldmVuIEcuIEthcmdsIDxrYXJnbEBnY2MuZ251Lm9yZz4K LS0tCiBnY2MvZm9ydHJhbi9nZm9ydHJhbi5oICAgICAgICAgICAgICAgICAgICAgICAgfCAg MSArCiBnY2MvZm9ydHJhbi9wcmltYXJ5LmNjICAgICAgICAgICAgICAgICAgICAgICAgfCAx NyArKysrKy0tLS0tLS0tCiBnY2MvZm9ydHJhbi9zY2FubmVyLmNjICAgICAgICAgICAgICAg ICAgICAgICAgfCAxNyArKysrKysrKysrKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2xpdGVyYWxfY29uc3RhbnRzLmYgfCAyMCArKysrKysrKysrKysrKysrCiAuLi4vZ2ZvcnRy YW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZjkwICAgICAgICAgfCAyNCArKysrKysrKysrKysr KysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbGl0 ZXJhbF9jb25zdGFudHMuZgogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZjkwCgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRy YW4vZ2ZvcnRyYW4uaCBiL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKaW5kZXggNjk2YWFkZDdk YjYuLjY0NWEzMGU3ZDQ5IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oCisr KyBiL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKQEAgLTMyMDksNiArMzIwOSw3IEBAIGdmY19j aGFyX3QgZ2ZjX25leHRfY2hhciAodm9pZCk7CiBjaGFyIGdmY19uZXh0X2FzY2lpX2NoYXIg KHZvaWQpOwogZ2ZjX2NoYXJfdCBnZmNfcGVla19jaGFyICh2b2lkKTsKIGNoYXIgZ2ZjX3Bl ZWtfYXNjaWlfY2hhciAodm9pZCk7CittYXRjaCBnZmNfbWF0Y2hfbmV4dF9jaGFyIChnZmNf Y2hhcl90KTsKIHZvaWQgZ2ZjX2Vycm9yX3JlY292ZXJ5ICh2b2lkKTsKIHZvaWQgZ2ZjX2dv YmJsZV93aGl0ZXNwYWNlICh2b2lkKTsKIHZvaWQgZ2ZjX25ld19maWxlICh2b2lkKTsKZGlm ZiAtLWdpdCBhL2djYy9mb3J0cmFuL3ByaW1hcnkuY2MgYi9nY2MvZm9ydHJhbi9wcmltYXJ5 LmNjCmluZGV4IDNmMDFmNjdjZDQ5Li45ZmE2Nzc5MjAwZiAxMDA2NDQKLS0tIGEvZ2NjL2Zv cnRyYW4vcHJpbWFyeS5jYworKysgYi9nY2MvZm9ydHJhbi9wcmltYXJ5LmNjCkBAIC05Miwx NCArOTIsMTcgQEAgZ2V0X2tpbmQgKGludCAqaXNfaXNvX2MpCiB7CiAgIGludCBraW5kOwog ICBtYXRjaCBtOworICBjaGFyIGM7CiAKICAgKmlzX2lzb19jID0gMDsKIAotICBpZiAoZ2Zj X21hdGNoX2NoYXIgKCdfJykgIT0gTUFUQ0hfWUVTKQorICBpZiAoZ2ZjX21hdGNoX25leHRf Y2hhciAoJ18nKSAhPSBNQVRDSF9ZRVMpCiAgICAgcmV0dXJuIC0yOwogCi0gIG0gPSBtYXRj aF9raW5kX3BhcmFtICgma2luZCwgaXNfaXNvX2MpOwotICBpZiAobSA9PSBNQVRDSF9OTykK KyAgbSA9IE1BVENIX05POworICBjID0gZ2ZjX3BlZWtfYXNjaWlfY2hhciAoKTsKKyAgaWYg KChnZmNfY3VycmVudF9mb3JtID09IEZPUk1fRlJFRSAmJiBnZmNfaXNfd2hpdGVzcGFjZSAo YykpCisgICAgICB8fCAobSA9IG1hdGNoX2tpbmRfcGFyYW0gKCZraW5kLCBpc19pc29fYykp ID09IE1BVENIX05PKQogICAgIGdmY19lcnJvciAoIk1pc3Npbmcga2luZC1wYXJhbWV0ZXIg YXQgJUMiKTsKIAogICByZXR1cm4gKG0gPT0gTUFUQ0hfWUVTKSA/IGtpbmQgOiAtMTsKQEAg LTEwNzQsMTcgKzEwNzcsOSBAQCBtYXRjaF9zdHJpbmdfY29uc3RhbnQgKGdmY19leHByICoq cmVzdWx0KQogICAgICAgYyA9IGdmY19uZXh0X2NoYXIgKCk7CiAgICAgfQogCi0gIGlmIChj ID09ICcgJykKLSAgICB7Ci0gICAgICBnZmNfZ29iYmxlX3doaXRlc3BhY2UgKCk7Ci0gICAg ICBjID0gZ2ZjX25leHRfY2hhciAoKTsKLSAgICB9Ci0KICAgaWYgKGMgIT0gJ18nKQogICAg IGdvdG8gbm9fbWF0Y2g7CiAKLSAgZ2ZjX2dvYmJsZV93aGl0ZXNwYWNlICgpOwotCiAgIGMg PSBnZmNfbmV4dF9jaGFyICgpOwogICBpZiAoYyAhPSAnXCcnICYmIGMgIT0gJyInKQogICAg IGdvdG8gbm9fbWF0Y2g7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9zY2FubmVyLmNjIGIv Z2NjL2ZvcnRyYW4vc2Nhbm5lci5jYwppbmRleCAyZGZmMjUxNDcwMC4uMmQxOTgwYzA3NGMg MTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3NjYW5uZXIuY2MKKysrIGIvZ2NjL2ZvcnRyYW4v c2Nhbm5lci5jYwpAQCAtMTY5MCw2ICsxNjkwLDIzIEBAIGdmY19wZWVrX2FzY2lpX2NoYXIg KHZvaWQpCiB9CiAKIAorLyogTWF0Y2ggbmV4dCBjaGFyYWN0ZXIgb2YgaW5wdXQuICBJbiBm aXhlZCBmb3JtIG1vZGUsIHdlIGFsc28gaWdub3JlCisgICBzcGFjZXMuICAqLworCittYXRj aAorZ2ZjX21hdGNoX25leHRfY2hhciAoZ2ZjX2NoYXJfdCBjKQoreworICBsb2N1cyB3aGVy ZTsKKworICB3aGVyZSA9IGdmY19jdXJyZW50X2xvY3VzOworICBpZiAoZ2ZjX25leHRfY2hh ciAoKSA9PSBjKQorICAgIHJldHVybiBNQVRDSF9ZRVM7CisKKyAgZ2ZjX2N1cnJlbnRfbG9j dXMgPSB3aGVyZTsKKyAgcmV0dXJuIE1BVENIX05POworfQorCisKIC8qIFJlY292ZXIgZnJv bSBhbiBlcnJvci4gIFdlIHRyeSB0byBnZXQgcGFzdCB0aGUgY3VycmVudCBzdGF0ZW1lbnQK ICAgIGFuZCBnZXQgbGluZWQgdXAgZm9yIHRoZSBuZXh0LiAgVGhlIG5leHQgc3RhdGVtZW50 IGZvbGxvd3MgYSAnXG4nCiAgICBvciBhICc7Jy4gIFdlIGFsc28gYXNzdW1lIHRoYXQgd2Ug YXJlIG5vdCB3aXRoaW4gYSBjaGFyYWN0ZXIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNGQxZjFiN2ViNGMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2xpdGVyYWxfY29uc3RhbnRzLmYKQEAgLTAsMCArMSwyMCBAQAor ISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLW9wdGlvbnMgIi1mZml4ZWQtZm9ybSIgfQor ISBQUiBmb3J0cmFuLzkyODA1IC0gYmxhbmtzIHdpdGhpbiBsaXRlcmFsIGNvbnN0YW50cyBp biBmaXhlZC1mb3JtIG1vZGUKKworICAgICAgaW1wbGljaXQgbm9uZQorICAgICAgaW50ZWdl ciwgcGFyYW1ldGVyIDo6IGNrID0ga2luZCAoImEiKSAgISBkZWZhdWx0IGNoYXJhY3RlciBr aW5kCisgICAgICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogcmsgPSBraW5kICgxLjApICAhIGRl ZmF1bHQgcmVhbCBraW5kCisgICAgICBwcmludCAqLCAxXyJhYmMiCisgICAgICBwcmludCAq LCAxIF8iYWJjIgorICAgICAgcHJpbnQgKiwgMV8gImFiYyIKKyAgICAgIHByaW50ICosIGNr XyJhIgorICAgICAgcHJpbnQgKiwgY2sgXyJhYiIKKyAgICAgIHByaW50ICosIGNrXyAiYWIi CisgICAgICBwcmludCAqLCAzLjE0MTVfNAorICAgICAgcHJpbnQgKiwgMy4xNDE1IF80Cisg ICAgICBwcmludCAqLCAzLjE0MTVfIDQKKyAgICAgIHByaW50ICosIDMuMTQxNV9yaworICAg ICAgcHJpbnQgKiwgMy4xNDE1IF9yaworICAgICAgcHJpbnQgKiwgMy4xNDE1XyByaworICAg ICAgZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xpdGVyYWxf Y29uc3RhbnRzLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbGl0ZXJhbF9jb25z dGFudHMuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mODkw OGY5YWQ3NgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv bGl0ZXJhbF9jb25zdGFudHMuZjkwCkBAIC0wLDAgKzEsMjQgQEAKKyEgeyBkZy1kbyBjb21w aWxlIH0KKyEgeyBkZy1vcHRpb25zICItZmZyZWUtZm9ybSIgfQorISBQUiBmb3J0cmFuLzky ODA1IC0gYmxhbmtzIHdpdGhpbiBsaXRlcmFsIGNvbnN0YW50cyBpbiBmcmVlLWZvcm0gbW9k ZQorCisgICAgICBpbXBsaWNpdCBub25lCisgICAgICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjog Y2sgPSBraW5kICgiYSIpICAhIGRlZmF1bHQgY2hhcmFjdGVyIGtpbmQKKyAgICAgIGludGVn ZXIsIHBhcmFtZXRlciA6OiByayA9IGtpbmQgKDEuMCkgICEgZGVmYXVsdCByZWFsIGtpbmQK KyAgICAgIHByaW50ICosIDFfImFiYyIKKyAgICAgIHByaW50ICosIDEgXyJhYmMiICAgISB7 IGRnLWVycm9yICJTeW50YXggZXJyb3IiIH0KKyAgICAgIHByaW50ICosIDFfICJhYmMiICAg ISB7IGRnLWVycm9yICJNaXNzaW5nIGtpbmQtcGFyYW1ldGVyIiB9CisgICAgICBwcmludCAq LCAxIF8gImFiYyIgICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9CisgICAgICBwcmlu dCAqLCBja18iYSIKKyAgICAgIHByaW50ICosIGNrIF8iYWIiICAgISB7IGRnLWVycm9yICJT eW50YXggZXJyb3IiIH0KKyAgICAgIHByaW50ICosIGNrXyAiYWIiICAgISB7IGRnLWVycm9y ICJTeW50YXggZXJyb3IiIH0KKyAgICAgIHByaW50ICosIGNrIF8gImFiIiAgISB7IGRnLWVy cm9yICJTeW50YXggZXJyb3IiIH0KKyAgICAgIHByaW50ICosIDMuMTQxNV80CisgICAgICBw cmludCAqLCAzLjE0MTUgXzQgICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9CisgICAg ICBwcmludCAqLCAzLjE0MTVfIDQgICEgeyBkZy1lcnJvciAiTWlzc2luZyBraW5kLXBhcmFt ZXRlciIgfQorICAgICAgcHJpbnQgKiwgMy4xNDE1IF8gNCAhIHsgZGctZXJyb3IgIlN5bnRh eCBlcnJvciIgfQorICAgICAgcHJpbnQgKiwgMy4xNDE1X3JrCisgICAgICBwcmludCAqLCAz LjE0MTUgX3JrICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9CisgICAgICBwcmludCAq LCAzLjE0MTVfIHJrICEgeyBkZy1lcnJvciAiTWlzc2luZyBraW5kLXBhcmFtZXRlciIgfQor ICAgICAgcHJpbnQgKiwgMy4xNDEgXyByayAhIHsgZGctZXJyb3IgIlN5bnRheCBlcnJvciIg fQorICAgICAgZW5kCi0tIAoyLjM1LjMKCg== --------------pbevMgC0jJvr0jtkyy80liIF-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by sourceware.org (Postfix) with ESMTPS id EBCE83857363; Fri, 29 Jul 2022 21:09:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EBCE83857363 X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.178.29] ([93.207.83.167]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MBlxW-1o9rCs3G04-00CAVB; Fri, 29 Jul 2022 23:09:26 +0200 Content-Type: multipart/mixed; boundary="------------pbevMgC0jJvr0jtkyy80liIF" Message-ID: Date: Fri, 29 Jul 2022 23:09:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: [PATCH, v3] Fortran: detect blanks within literal constants in free-form mode [PR92805] Content-Language: en-US To: Mikael Morin , fortran@gcc.gnu.org Cc: gcc-patches@gcc.gnu.org Newsgroups: gmane.comp.gcc.fortran,gmane.comp.gcc.patches References: <46cc765d-469e-d6e8-23c5-dc470028d881@orange.fr> From: Harald Anlauf In-Reply-To: <46cc765d-469e-d6e8-23c5-dc470028d881@orange.fr> X-Provags-ID: V03:K1:xwhkLLzH3082C7uFEouiZzT0qZFnhcwKvu/eN026+DbeRuse4JW 5YTXq0Wo01+BRIPlb8/4+0L1GVhTrhkS63aRpfDDlzCLpB7UlZ3x/ckzeCQKWM8VKjlIEfC eWNWR1EqlJRjg+dUrhkefU+DrkVHHIveVV3XQ2owCKXsIZ8MhMUtNx3nIuTDcXUWIe6Gxsv WBl1sG3vVVa9ZwBnnNkdQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:8AAbZaXO5n0=:NVdSknSTZfGR7oVv6WmecL 3vCrn3wvz0kkmKSUObqDoq/lyOj35uXAzHwaY8KcYb1YdNxhbAsI6UTh6G8LGGUgJtWnYCiC9 YEs2gO6iQ3QuDNbGq3qc7hcPI1le1RmHSqdL49e3heD9sLaNwE695ZPXb63Qrwr3z5U+JEaRV unan0fSl22zwLqBwXJXM9O8wcqCCZ2IXPcYAMYnaQAtg2GEAZTLgee+UODgOg64N0Kh7s7188 cAEsOgqQCP/7nWaGKChHQ0Lph2jn6KNLLW+eTSQIoPpSP5vm9KYfAsQUgPkscf4GRf7N5oLOt Tf7y1W2ERfzE2EKCbNHQVe4aZZ+aZ9cVYPqerksGro++XU0Vd+5UhESVzVNzazvZ8so9uEGdP DBB5PdPZBWFDUyaDEQ+xNrRjy0xct6H03bw76SMVMbF8tExSjUabUBUJ2uNnCFgCuwr15/KqV cpq9eRe5jva/Wn2/4HLC/BXj/AefFa/EkHCw8WapWx3HW1vekN1OIF/8XHfP2oVr2GDRoAW2D vOu9K5EeqSI1cvW19XwkfeK+w2sPr4QCdepzETEm0Xb24kIqcLjTcrR8JWyLuNWu+oYp8OMJL KAyEwrvdcwspte4tycweKsllham8Pza1JAY6/3uw/eOx9jDmYjIGRFj/Q2lKWw/M61657JuhB Pearv7WZT9cIrWtOhYJ0zpGUvS5OApN34/emwfdaKAFhatVM2dV90Gpm+ruyCJYRS8WFmYFP7 1GYVZYV2fhXEd97bgGDOg/zqHNs9q9I1lJVSLUMbHWQ6GvuqE6nHm96jVV6ax76ArV8p/QM75 DQBGLT9hZsXiQHYohxwo/lO0fjbWlOmpezpB8M0W2hXY9tCpyD+ZiVrjiVAM26yPJryE+e5jN AjI6rx4MFMYsDHHxETR4uqh8SDZtGqGjWNf6i+fl4TBCqoKKmQ/MPC5kpub3hDAPI/MqLEH3e hoBiSEKI3ukjrsMbmYXgvqDZPU3aSPfMlKt4plzhP7AaL9fHlWCRn3sUX0wm14KlcLoSZbxbB Ql02wp/f+RwMBGwGpWLYtVU5SQtB0cBNxR861YUatnvzPCIJC0SUWReq+7U6AENX3TssmS/1/ 6RPPr+sM+VuS+ntIaAW1zzHSKqr047K9RV82HqXD0qgPD4ZNfJgf9eU5Q== X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, 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: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jul 2022 21:09:30 -0000 Message-ID: <20220729210921.-XcHfRwryTV36jUpEPCV-3CkGj0MhkOrZzmH-jkXvYE@z> This is a multi-part message in MIME format. --------------pbevMgC0jJvr0jtkyy80liIF Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi Mikael, Am 29.07.22 um 22:36 schrieb Mikael Morin: > Indeed, I overlooked that, but my opinion remains that we shouldn=E2=80= =99t play > with fixed vs free form considerations here. > So the options I can see are: > =C2=A0- handle the locus in get_kind; we do it a lot already in matchin= g > functions, so it wouldn=E2=80=99t be different here. > =C2=A0- implement a variant of gfc_match_char without space gobbling. > =C2=A0- use gfc_match(...), which is a bit heavy weight to match a sing= le > char string, but otherwise would keep things concise. > > My preference goes to the third option, but I=E2=80=99m fine with either= of them > if you have a different one. > how about the attached? This introduces the helper function gfc_match_next_char, which is your second option. Thanks, Harald --------------pbevMgC0jJvr0jtkyy80liIF Content-Type: text/x-patch; charset=UTF-8; name="pr92805-v3.diff" Content-Disposition: attachment; filename="pr92805-v3.diff" Content-Transfer-Encoding: base64 RnJvbSAwYTk1ZDEwM2U0ODU1ZmJjYzIwZmQyNGQ0NGI5N2I2OTBkNTcwMzMzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBUaHUsIDI4IEp1bCAyMDIyIDIyOjA3OjAyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g Rm9ydHJhbjogZGV0ZWN0IGJsYW5rcyB3aXRoaW4gbGl0ZXJhbCBjb25zdGFudHMgaW4gZnJl ZS1mb3JtCiBtb2RlIFtQUjkyODA1XQoKZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoKCVBSIGZv cnRyYW4vOTI4MDUKCSogZ2ZvcnRyYW4uaCAoZ2ZjX21hdGNoX25leHRfY2hhcik6IERlY2xh cmUgaXQuCgkqIHByaW1hcnkuY2MgKGdldF9raW5kKTogRG8gbm90IHNraXAgb3ZlciBibGFu a3MgaW4gZnJlZS1mb3JtIG1vZGUuCgkobWF0Y2hfc3RyaW5nX2NvbnN0YW50KTogTGlrZXdp c2UuCgkqIHNjYW5uZXIuY2MgKGdmY19tYXRjaF9uZXh0X2NoYXIpOiBOZXcuICBNYXRjaCBu ZXh0IGNoYXJhY3RlciBvZgoJaW5wdXQsIHRyZWF0aW5nIHdoaXRlc3BhY2UgZGVwZW5kaW5n IG9uIGZpeGVkIG9yIGZyZWUgZm9ybS4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCVBS IGZvcnRyYW4vOTI4MDUKCSogZ2ZvcnRyYW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZjogTmV3 IHRlc3QuCgkqIGdmb3J0cmFuLmRnL2xpdGVyYWxfY29uc3RhbnRzLmY5MDogTmV3IHRlc3Qu CgpDby1hdXRob3JlZC1ieTogU3RldmVuIEcuIEthcmdsIDxrYXJnbEBnY2MuZ251Lm9yZz4K LS0tCiBnY2MvZm9ydHJhbi9nZm9ydHJhbi5oICAgICAgICAgICAgICAgICAgICAgICAgfCAg MSArCiBnY2MvZm9ydHJhbi9wcmltYXJ5LmNjICAgICAgICAgICAgICAgICAgICAgICAgfCAx NyArKysrKy0tLS0tLS0tCiBnY2MvZm9ydHJhbi9zY2FubmVyLmNjICAgICAgICAgICAgICAg ICAgICAgICAgfCAxNyArKysrKysrKysrKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2xpdGVyYWxfY29uc3RhbnRzLmYgfCAyMCArKysrKysrKysrKysrKysrCiAuLi4vZ2ZvcnRy YW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZjkwICAgICAgICAgfCAyNCArKysrKysrKysrKysr KysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbGl0 ZXJhbF9jb25zdGFudHMuZgogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZjkwCgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRy YW4vZ2ZvcnRyYW4uaCBiL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKaW5kZXggNjk2YWFkZDdk YjYuLjY0NWEzMGU3ZDQ5IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oCisr KyBiL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKQEAgLTMyMDksNiArMzIwOSw3IEBAIGdmY19j aGFyX3QgZ2ZjX25leHRfY2hhciAodm9pZCk7CiBjaGFyIGdmY19uZXh0X2FzY2lpX2NoYXIg KHZvaWQpOwogZ2ZjX2NoYXJfdCBnZmNfcGVla19jaGFyICh2b2lkKTsKIGNoYXIgZ2ZjX3Bl ZWtfYXNjaWlfY2hhciAodm9pZCk7CittYXRjaCBnZmNfbWF0Y2hfbmV4dF9jaGFyIChnZmNf Y2hhcl90KTsKIHZvaWQgZ2ZjX2Vycm9yX3JlY292ZXJ5ICh2b2lkKTsKIHZvaWQgZ2ZjX2dv YmJsZV93aGl0ZXNwYWNlICh2b2lkKTsKIHZvaWQgZ2ZjX25ld19maWxlICh2b2lkKTsKZGlm ZiAtLWdpdCBhL2djYy9mb3J0cmFuL3ByaW1hcnkuY2MgYi9nY2MvZm9ydHJhbi9wcmltYXJ5 LmNjCmluZGV4IDNmMDFmNjdjZDQ5Li45ZmE2Nzc5MjAwZiAxMDA2NDQKLS0tIGEvZ2NjL2Zv cnRyYW4vcHJpbWFyeS5jYworKysgYi9nY2MvZm9ydHJhbi9wcmltYXJ5LmNjCkBAIC05Miwx NCArOTIsMTcgQEAgZ2V0X2tpbmQgKGludCAqaXNfaXNvX2MpCiB7CiAgIGludCBraW5kOwog ICBtYXRjaCBtOworICBjaGFyIGM7CiAKICAgKmlzX2lzb19jID0gMDsKIAotICBpZiAoZ2Zj X21hdGNoX2NoYXIgKCdfJykgIT0gTUFUQ0hfWUVTKQorICBpZiAoZ2ZjX21hdGNoX25leHRf Y2hhciAoJ18nKSAhPSBNQVRDSF9ZRVMpCiAgICAgcmV0dXJuIC0yOwogCi0gIG0gPSBtYXRj aF9raW5kX3BhcmFtICgma2luZCwgaXNfaXNvX2MpOwotICBpZiAobSA9PSBNQVRDSF9OTykK KyAgbSA9IE1BVENIX05POworICBjID0gZ2ZjX3BlZWtfYXNjaWlfY2hhciAoKTsKKyAgaWYg KChnZmNfY3VycmVudF9mb3JtID09IEZPUk1fRlJFRSAmJiBnZmNfaXNfd2hpdGVzcGFjZSAo YykpCisgICAgICB8fCAobSA9IG1hdGNoX2tpbmRfcGFyYW0gKCZraW5kLCBpc19pc29fYykp ID09IE1BVENIX05PKQogICAgIGdmY19lcnJvciAoIk1pc3Npbmcga2luZC1wYXJhbWV0ZXIg YXQgJUMiKTsKIAogICByZXR1cm4gKG0gPT0gTUFUQ0hfWUVTKSA/IGtpbmQgOiAtMTsKQEAg LTEwNzQsMTcgKzEwNzcsOSBAQCBtYXRjaF9zdHJpbmdfY29uc3RhbnQgKGdmY19leHByICoq cmVzdWx0KQogICAgICAgYyA9IGdmY19uZXh0X2NoYXIgKCk7CiAgICAgfQogCi0gIGlmIChj ID09ICcgJykKLSAgICB7Ci0gICAgICBnZmNfZ29iYmxlX3doaXRlc3BhY2UgKCk7Ci0gICAg ICBjID0gZ2ZjX25leHRfY2hhciAoKTsKLSAgICB9Ci0KICAgaWYgKGMgIT0gJ18nKQogICAg IGdvdG8gbm9fbWF0Y2g7CiAKLSAgZ2ZjX2dvYmJsZV93aGl0ZXNwYWNlICgpOwotCiAgIGMg PSBnZmNfbmV4dF9jaGFyICgpOwogICBpZiAoYyAhPSAnXCcnICYmIGMgIT0gJyInKQogICAg IGdvdG8gbm9fbWF0Y2g7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9zY2FubmVyLmNjIGIv Z2NjL2ZvcnRyYW4vc2Nhbm5lci5jYwppbmRleCAyZGZmMjUxNDcwMC4uMmQxOTgwYzA3NGMg MTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3NjYW5uZXIuY2MKKysrIGIvZ2NjL2ZvcnRyYW4v c2Nhbm5lci5jYwpAQCAtMTY5MCw2ICsxNjkwLDIzIEBAIGdmY19wZWVrX2FzY2lpX2NoYXIg KHZvaWQpCiB9CiAKIAorLyogTWF0Y2ggbmV4dCBjaGFyYWN0ZXIgb2YgaW5wdXQuICBJbiBm aXhlZCBmb3JtIG1vZGUsIHdlIGFsc28gaWdub3JlCisgICBzcGFjZXMuICAqLworCittYXRj aAorZ2ZjX21hdGNoX25leHRfY2hhciAoZ2ZjX2NoYXJfdCBjKQoreworICBsb2N1cyB3aGVy ZTsKKworICB3aGVyZSA9IGdmY19jdXJyZW50X2xvY3VzOworICBpZiAoZ2ZjX25leHRfY2hh ciAoKSA9PSBjKQorICAgIHJldHVybiBNQVRDSF9ZRVM7CisKKyAgZ2ZjX2N1cnJlbnRfbG9j dXMgPSB3aGVyZTsKKyAgcmV0dXJuIE1BVENIX05POworfQorCisKIC8qIFJlY292ZXIgZnJv bSBhbiBlcnJvci4gIFdlIHRyeSB0byBnZXQgcGFzdCB0aGUgY3VycmVudCBzdGF0ZW1lbnQK ICAgIGFuZCBnZXQgbGluZWQgdXAgZm9yIHRoZSBuZXh0LiAgVGhlIG5leHQgc3RhdGVtZW50 IGZvbGxvd3MgYSAnXG4nCiAgICBvciBhICc7Jy4gIFdlIGFsc28gYXNzdW1lIHRoYXQgd2Ug YXJlIG5vdCB3aXRoaW4gYSBjaGFyYWN0ZXIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNGQxZjFiN2ViNGMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2xpdGVyYWxfY29uc3RhbnRzLmYKQEAgLTAsMCArMSwyMCBAQAor ISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLW9wdGlvbnMgIi1mZml4ZWQtZm9ybSIgfQor ISBQUiBmb3J0cmFuLzkyODA1IC0gYmxhbmtzIHdpdGhpbiBsaXRlcmFsIGNvbnN0YW50cyBp biBmaXhlZC1mb3JtIG1vZGUKKworICAgICAgaW1wbGljaXQgbm9uZQorICAgICAgaW50ZWdl ciwgcGFyYW1ldGVyIDo6IGNrID0ga2luZCAoImEiKSAgISBkZWZhdWx0IGNoYXJhY3RlciBr aW5kCisgICAgICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogcmsgPSBraW5kICgxLjApICAhIGRl ZmF1bHQgcmVhbCBraW5kCisgICAgICBwcmludCAqLCAxXyJhYmMiCisgICAgICBwcmludCAq LCAxIF8iYWJjIgorICAgICAgcHJpbnQgKiwgMV8gImFiYyIKKyAgICAgIHByaW50ICosIGNr XyJhIgorICAgICAgcHJpbnQgKiwgY2sgXyJhYiIKKyAgICAgIHByaW50ICosIGNrXyAiYWIi CisgICAgICBwcmludCAqLCAzLjE0MTVfNAorICAgICAgcHJpbnQgKiwgMy4xNDE1IF80Cisg ICAgICBwcmludCAqLCAzLjE0MTVfIDQKKyAgICAgIHByaW50ICosIDMuMTQxNV9yaworICAg ICAgcHJpbnQgKiwgMy4xNDE1IF9yaworICAgICAgcHJpbnQgKiwgMy4xNDE1XyByaworICAg ICAgZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xpdGVyYWxf Y29uc3RhbnRzLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbGl0ZXJhbF9jb25z dGFudHMuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mODkw OGY5YWQ3NgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv bGl0ZXJhbF9jb25zdGFudHMuZjkwCkBAIC0wLDAgKzEsMjQgQEAKKyEgeyBkZy1kbyBjb21w aWxlIH0KKyEgeyBkZy1vcHRpb25zICItZmZyZWUtZm9ybSIgfQorISBQUiBmb3J0cmFuLzky ODA1IC0gYmxhbmtzIHdpdGhpbiBsaXRlcmFsIGNvbnN0YW50cyBpbiBmcmVlLWZvcm0gbW9k ZQorCisgICAgICBpbXBsaWNpdCBub25lCisgICAgICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjog Y2sgPSBraW5kICgiYSIpICAhIGRlZmF1bHQgY2hhcmFjdGVyIGtpbmQKKyAgICAgIGludGVn ZXIsIHBhcmFtZXRlciA6OiByayA9IGtpbmQgKDEuMCkgICEgZGVmYXVsdCByZWFsIGtpbmQK KyAgICAgIHByaW50ICosIDFfImFiYyIKKyAgICAgIHByaW50ICosIDEgXyJhYmMiICAgISB7 IGRnLWVycm9yICJTeW50YXggZXJyb3IiIH0KKyAgICAgIHByaW50ICosIDFfICJhYmMiICAg ISB7IGRnLWVycm9yICJNaXNzaW5nIGtpbmQtcGFyYW1ldGVyIiB9CisgICAgICBwcmludCAq LCAxIF8gImFiYyIgICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9CisgICAgICBwcmlu dCAqLCBja18iYSIKKyAgICAgIHByaW50ICosIGNrIF8iYWIiICAgISB7IGRnLWVycm9yICJT eW50YXggZXJyb3IiIH0KKyAgICAgIHByaW50ICosIGNrXyAiYWIiICAgISB7IGRnLWVycm9y ICJTeW50YXggZXJyb3IiIH0KKyAgICAgIHByaW50ICosIGNrIF8gImFiIiAgISB7IGRnLWVy cm9yICJTeW50YXggZXJyb3IiIH0KKyAgICAgIHByaW50ICosIDMuMTQxNV80CisgICAgICBw cmludCAqLCAzLjE0MTUgXzQgICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9CisgICAg ICBwcmludCAqLCAzLjE0MTVfIDQgICEgeyBkZy1lcnJvciAiTWlzc2luZyBraW5kLXBhcmFt ZXRlciIgfQorICAgICAgcHJpbnQgKiwgMy4xNDE1IF8gNCAhIHsgZGctZXJyb3IgIlN5bnRh eCBlcnJvciIgfQorICAgICAgcHJpbnQgKiwgMy4xNDE1X3JrCisgICAgICBwcmludCAqLCAz LjE0MTUgX3JrICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9CisgICAgICBwcmludCAq LCAzLjE0MTVfIHJrICEgeyBkZy1lcnJvciAiTWlzc2luZyBraW5kLXBhcmFtZXRlciIgfQor ICAgICAgcHJpbnQgKiwgMy4xNDEgXyByayAhIHsgZGctZXJyb3IgIlN5bnRheCBlcnJvciIg fQorICAgICAgZW5kCi0tIAoyLjM1LjMKCg== --------------pbevMgC0jJvr0jtkyy80liIF--