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.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 9DE87BBAF for ; Thu, 26 Jun 2008 23:10:23 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArUAABCiY0hC+VLkd2dsb2JhbACSIUMBCgUEBAkRA5t8hWM X-IronPort-AV: E=Sophos;i="4.27,710,1204498800"; d="scan'208";a="12571613" Received: from discorde.inria.fr ([192.93.2.38]) by mail2-smtp-roc.national.inria.fr with ESMTP; 26 Jun 2008 23:10:24 +0200 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id m5QLANBC031694 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Thu, 26 Jun 2008 23:10:23 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArUAABCiY0hC+VLkd2dsb2JhbACSIUMBCgUEBAkRA5t8hWM X-IronPort-AV: E=Sophos;i="4.27,710,1204498800"; d="scan'208";a="12571610" Received: from wx-out-0506.google.com ([66.249.82.228]) by mail2-smtp-roc.national.inria.fr with ESMTP; 26 Jun 2008 23:10:23 +0200 Received: by wx-out-0506.google.com with SMTP id s18so175181wxc.0 for ; Thu, 26 Jun 2008 14:10:21 -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:sender :to:subject:mime-version:content-type:content-transfer-encoding :content-disposition:x-google-sender-auth; bh=NsHFMFrSiV2jpYi0XCujKU5+qaItIXkJpxI0vNqk4sE=; b=vgI/qFVjjYJQC5kEpKc+h5SCMSgWg9/itKgdj0G86CSPiJjJBxo2azOXZinrIgCsM+ oup40QLtdhXxU8iOol7fMXmByUOaqRZmvTgdvosDCQENq+fzqGT9O3Mc1Z3RFcd24c9b xfWYS3xjPUiFvaytTdwMlOEt2n9IRmgZqY0PU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition:x-google-sender-auth; b=gQDsrQ9rTn4tQxIa+bxEvYNEJzhMalzkQMZFHdYrMhBeW3mUZvXTnPHjXanD4l3dm2 nsllpNNtLhZ04WhC1Vx7KEs2T7STvVmQ5k19BNouC0bhJnEStcMk4fQwrn32ZWCXhZ42 gkxC7MBWOV5VIXSL5mdeULN+NE0cvFGj4yzDY= Received: by 10.70.10.3 with SMTP id 3mr389140wxj.62.1214514620652; Thu, 26 Jun 2008 14:10:20 -0700 (PDT) Received: by 10.70.56.18 with HTTP; Thu, 26 Jun 2008 14:10:20 -0700 (PDT) Message-ID: Date: Thu, 26 Jun 2008 14:10:20 -0700 From: "Jake Donham" Sender: jake.donham@gmail.com To: "caml users" Subject: camlp4 parser accepts more than its grammar? MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Google-Sender-Auth: 76d6332b1bdfb53d X-Miltered: at discorde with ID 486405BF.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; camlp:01 parser:01 camlp:01 expr:01 expr:01 prerr:01 endline:01 int:01 int:01 grammar:02 parse:02 parse:02 string:02 string:02 eoi:02 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, Jake 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 + ;"))