From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Matt Wette Newsgroups: gmane.lisp.guile.user Subject: Re: Nyacc: how to lex comments? Date: Mon, 16 Mar 2020 17:11:59 -0700 Message-ID: References: <20200316213941.GA5467@tuxteam.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="11965"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Tue Mar 17 01:12:23 2020 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jDzqG-0002y1-1N for guile-user@m.gmane-mx.org; Tue, 17 Mar 2020 01:12:20 +0100 Original-Received: from localhost ([::1]:50592 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDzqE-0005WK-Ll for guile-user@m.gmane-mx.org; Mon, 16 Mar 2020 20:12:18 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38528) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDzq2-0005WE-J4 for guile-user@gnu.org; Mon, 16 Mar 2020 20:12:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDzq1-000166-BP for guile-user@gnu.org; Mon, 16 Mar 2020 20:12:06 -0400 Original-Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]:41957) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDzq1-0000wd-4Z for guile-user@gnu.org; Mon, 16 Mar 2020 20:12:05 -0400 Original-Received: by mail-pg1-x535.google.com with SMTP id b1so10669314pgm.8 for ; Mon, 16 Mar 2020 17:12:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=KgxqzKP8pXObbkDLjd9ClP1OnWpXlZqkO04HBQ+KzE8=; b=jRhLoRxMNIQ2Ujkq4t+25H5MF6VYiWZzMlV4XAIMyI00fp3zmA4ekeS3lRs+B6FfyY R98KwocpZJSVAV0BeM9rGI4vDR8Q2tMGN2RiPCNHwldF7casFHnpeP3Dy0bkpwDuzdQT jbtkXtHlT0IQtBgoFSPYCOy/odyT1S6jTA7qsgoUfJuK/4lLXvPxMtbVrSuttklYa6MG BBFeamCmsYzeg4GYGbIzq+rXuWOc1/E+XAiKbBjVzMAjIVGMYf48em4uLYA6EfyYjXlQ V+G4ASXVv6GH6vOx2Y4usTpPv7rXYuVLiPUC/ZmdfjskThjMUg/4w1o2rkIMoeeheqjm PtPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=KgxqzKP8pXObbkDLjd9ClP1OnWpXlZqkO04HBQ+KzE8=; b=QkYE8bU89U3sai/fBQtav+eUPjsxSJNhq9gMVfdOqwPGYdk5favvJbGP34Um/KZb7M bsCLpdazsgNvWPbl18/HkQqKXBQ2yk89Fx0c9KboY1WPxg4Nxn3Acitxr36j2MSSz0MK 5ttSnTBt0HWwPk/sUppXzeyWDSG8TwGMCtgS7L2UdgFDkN4USwakd9+9q6HprA4JTdJM u3BYeCuTDPyd5zOLiOkPW+RaD5BuatoDUqIOp2Ka2G42ddJOT7zAcFyGzRilzZEsFn/O u2bEWXt7cWcNQ/nhvJeub9XS9T/8qLjUtmo15BDURBOnv/WPaxOH9Nh092mib1y6qRGj VR7Q== X-Gm-Message-State: ANhLgQ1DrWR05KHhg6TmHQt8XvA5ngFtmAPaHKVkoCdnfF76JuvelgrO kLUBX64NQHUfpVHgySElYNMqB6+l X-Google-Smtp-Source: ADFU+vs7Xw7fdCrbjAmmVNujJ/xUMobo5Q6/dEghXek99Jh2EgFlBjSSktkd9FFk7PQDd600xwl20g== X-Received: by 2002:a62:83c7:: with SMTP id h190mr2062441pfe.251.1584403922216; Mon, 16 Mar 2020 17:12:02 -0700 (PDT) Original-Received: from [192.168.2.183] (64-52-176-132.championbroadband.com. [64.52.176.132]) by smtp.gmail.com with ESMTPSA id 11sm967228pfv.43.2020.03.16.17.12.00 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 16 Mar 2020 17:12:01 -0700 (PDT) In-Reply-To: <20200316213941.GA5467@tuxteam.de> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::535 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:16314 Archived-At: On 3/16/20 2:39 PM, tomas@tuxteam.de wrote: > Hi, > > in my quest to play parsing, I'm failing when I try to cope with > comments. > > Here's an excerpt from my current file > > (define my-grammar > (lalr-spec > (start my-file) > (grammar > ;; boring grammar details elided > ))) > > (define mach (make-lalr-machine aq-grammar)) > (define mtab (lalr-match-table mach)) > (define gen-lexer (make-lexer-generator mtab > #:comm-reader (make-comm-reader '(("#" . "\n"))))) > (define raw-parse (make-lalr-parser mach)) > (define (parse) (raw-parse (gen-lexer))) > > ;; (gen-lexer) > (parse) > > Comments are shell-like, from "#" to end of line. Grammar > works fine so-far, but when (parse) sees a hash-comment > (even just a one-line input > > # this is a comment > > it panics: > > Backtrace: > In ice-9/boot-9.scm: > 1736:10 6 (with-exception-handler _ _ #:unwind? _ # _) > In unknown file: > 5 (apply-smob/0 #) > In ice-9/boot-9.scm: > 718:2 4 (call-with-prompt ("prompt") # …) > In ice-9/eval.scm: > 619:8 3 (_ #(#(#))) > In ice-9/boot-9.scm: > 2806:4 2 (save-module-excursion #) > 4351:12 1 (_) > In nyacc/parse.scm: > 78:4 0 (_ _ #:debug _) > > nyacc/parse.scm:78:4: Throw to key `nyacc-error' with args `("~A:~A: parse failed at state ~A, on input ~S" "(unknown)" 1 0 " a comment")'. > > I feel I'm doing something stupid. What can I do to understand > what's going on? > > Thanks & cheers > -- tomás > > make-comm-reader will not eat newlines at end of comment by default. If you want the comment # ... \n to include the newline try adding #:eat-newline #t. Matt