From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id A1B80BBAF for ; Fri, 27 Jun 2008 10:42:21 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApsEAPREZEjAXQIn/2dsb2JhbACSJJpbhV0 X-IronPort-AV: E=Sophos;i="4.27,714,1204498800"; d="scan'208";a="14484179" Received: from concorde.inria.fr ([192.93.2.39]) by mail1-smtp-roc.national.inria.fr with ESMTP; 27 Jun 2008 10:42:21 +0200 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id m5R8gLtb020975 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Fri, 27 Jun 2008 10:42:21 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: An8AAPREZEjRVcbteGdsb2JhbACSJEMBDAMEBgcRA5ljhV0 X-IronPort-AV: E=Sophos;i="4.27,714,1204498800"; d="scan'208";a="12585786" Received: from rv-out-0506.google.com ([209.85.198.237]) by mail2-smtp-roc.national.inria.fr with ESMTP; 27 Jun 2008 10:42:20 +0200 Received: by rv-out-0506.google.com with SMTP id k40so345935rvb.57 for ; Fri, 27 Jun 2008 01:42:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=s6uGMNTrtURCFAj5fcqVtN5KVFoiXgYTBpnNGoc5+gs=; b=G7ZWcL8XozGzrzKIDSTt4CJBSyX/0s25kUu8LQVooY4MJvupGza2RorLkR8XvuC3/o PBts/7w93cwDwwiHujAVCmkrADo1mARwY4vZR0EaJS3cCLA0acOVCziPXyjMmcj68x7+ k37mnYGt80kN9upEv55pA0hT8Bxp31hOfdgPE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=uncpiDVqllLzrAahuopKWcgmKjG2tZCa0d4gttyTgUKB5YGyOHRtNlLxGGWpquVnyx 7nTeENfZUrx2pcaVJ0/5VUq1QioQ/qPvZU1ZGFHoDY2S1tzV6s8oHV12Qw5DwYOlVvzX J0Azh7Q2N1odlmoWvAT9hY6x7Nntc4/ohIm0U= Received: by 10.142.223.20 with SMTP id v20mr393507wfg.76.1214556139517; Fri, 27 Jun 2008 01:42:19 -0700 (PDT) Received: by 10.142.106.20 with HTTP; Fri, 27 Jun 2008 01:42:19 -0700 (PDT) Message-ID: <9d3ec8300806270142y3a80c3deo47b2cf4dbaeddafe@mail.gmail.com> Date: Fri, 27 Jun 2008 09:42:19 +0100 From: "Till Varoquaux" To: "Nicolas Pouillard" Subject: Re: [Caml-list] camlp4 parser accepts more than its grammar? Cc: "Jake Donham" , caml-list In-Reply-To: <1214554558-sup-9348@ausone.inria.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1214554558-sup-9348@ausone.inria.fr> X-Miltered: at concorde with ID 4864A7ED.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; camlp:01 parser:01 camlp:01 bug:01 expr:01 expr:01 prerr:01 endline:01 beginner's:01 ocaml:01 bug:01 ocaml:01 parser:01 guideline:98 beginners:01 2008/6/27 Nicolas Pouillard : > Excerpts from Jake Donham's message of Thu Jun 26 23:10:20 +0200 2008: >> Hi list, >> >> I expected the following program to fail with a parse error, but it >> happily ignores the extra '+'. I would be grateful if someone could >> point out what I'm doing wrong. Thanks, > > Nothing wrong from you, that's a camlp4 known bug (PR#4551, PR#4513...). > >> open Camlp4.PreCast;; >> >> let expr = Gram.Entry.mk "expr";; >> let stmt = Gram.Entry.mk "stmt";; >> >> EXTEND Gram >> expr: [[ >> x = expr; "+"; y = expr -> x + y >> | x = INT -> int_of_string x >> ]]; >> stmt: >> [[ e = expr; ";"; `EOI -> e ]]; >> END;; >> >> prerr_endline (string_of_int (Gram.parse_string stmt Loc.ghost "2 + 1 + ;")) >> > > -- > Nicolas Pouillard aka Ertai > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > > Note that you might even have suprises when using the standard Ocaml parser: I consider grammar more like a guideline then an actual specification. type t = A of int | false of float Till