From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id pAOGXSQm001362 for ; Thu, 24 Nov 2011 17:33:28 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtQAACVxzk7RVaE2kGdsb2JhbABDhQKlaQgiAQEBAQkJDQcUBCGBcgEBAQMBEgITGQEbHQEDAQsGBQsRKAIjEQEFARwGNYdjAgaXZQqLFghFgmaFAj2IcQIFCoEiiBw3YwSHdYxVhUCBMYZnPYN2 X-IronPort-AV: E=Sophos;i="4.69,565,1315173600"; d="scan'208";a="132490471" Received: from mail-fx0-f54.google.com ([209.85.161.54]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 24 Nov 2011 17:33:23 +0100 Received: by faap15 with SMTP id p15so5493026faa.27 for ; Thu, 24 Nov 2011 08:33:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=ubrPLnF4J+l//LYM9uGnoXcZhn2adOP2ej7w8cTGTBc=; b=IV6tjfdzTSoSQ2zf9+hcpWX9CVEqWKSr7SCNMY0c75uAvS2H1irI3POCnSJzSW8uPf 5ODqHCJ4tiENQAa1MbDdtQobjx++c53TS5gpIIRvhlpJqmzFvZ3OJxf39lp7KAji5f66 /2Dlh5FYOoqPrzn7c/Ka+EzvlQi0sRsLNzIwc= Received: by 10.152.109.198 with SMTP id hu6mr18189102lab.11.1322152402792; Thu, 24 Nov 2011 08:33:22 -0800 (PST) Received: from [192.168.0.197] ([95.60.213.7]) by mx.google.com with ESMTPS id hr17sm19847822lab.12.2011.11.24.08.33.19 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 24 Nov 2011 08:33:20 -0800 (PST) Mime-Version: 1.0 (Apple Message framework v1251.1) Content-Type: text/plain; charset=GB2312 From: Joel Reymont In-Reply-To: <4ECE614D.3040504@gmail.com> Date: Thu, 24 Nov 2011 16:33:16 +0000 Cc: caml-list@inria.fr Message-Id: References: <4ECE614D.3040504@gmail.com> To: bob zhang X-Mailer: Apple Mail (2.1251.1) Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id pAOGXSQm001362 Subject: Re: [Caml-list] Weird behavior of Camlp4 Parser Bob, On Nov 24, 2011, at 3:22 PM, bob zhang wrote: > m_expr : > [[ "foo"; f -> print_endline "first" > | "foo" ; "bar"; "baz" -> print_endline "second"] > ]; Since camlp4 is a recursive-descent parser, I don't think you can have "foo"; ... | "foo"; "bar". I would suggest having a single "foo" in the rule above and have a separate rule that branches depending on whether "bar" is found. -------------------------------------------------------------------------- - for hire: mac osx device driver ninja, kernel extensions and usb drivers ---------------------+------------+--------------------------------------- http://wagerlabs.com | @wagerlabs | http://www.linkedin.com/in/joelreymont ---------------------+------------+---------------------------------------