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=2.8 required=5.0 tests=DNS_FROM_RFC_POST,SPF_NEUTRAL 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 2E697BBAF for ; Thu, 12 Mar 2009 00:21:21 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqcBADvkt0lA6ba6imdsb2JhbACUej8BAQEKCQwHDwWrLIEGj2UBAwEDhAoGgyM X-IronPort-AV: E=Sophos;i="4.38,346,1233529200"; d="scan'208";a="22416192" Received: from nf-out-0910.google.com ([64.233.182.186]) by mail2-smtp-roc.national.inria.fr with ESMTP; 12 Mar 2009 00:21:20 +0100 Received: by nf-out-0910.google.com with SMTP id b11so51729nfh.13 for ; Wed, 11 Mar 2009 16:21:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:mime-version:from :date:content-transfer-encoding:message-id:content-type:to:x-mailer; bh=oJum5Ls2QZBIW4fyUQ4m8o7sVs32JsZgb7L7FnudriA=; b=lC9zHEqcV/fLmVIxpea8n8htQ4BKhEajLaVwuunn0KOFKcB4arrvv1ZKWiOA0woyiA FycYfE/ZjlFFzBji2ReSD8Ypwx/5dcnhdaOi+l2v3mZ6c3zN7VfTSi4WUiC56zvIzm/+ Nr05x12IRAsaROh4dCeDYuW7f3szw1iss9U/I= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:mime-version:from:date:content-transfer-encoding:message-id :content-type:to:x-mailer; b=qfyiZrsNO1dpwq1Bl5GShdk8yFC6NYeGiaj1ivnG3IiWH0/sgUemMalLzVfQwNsEih vE3xY/3D+IMtTmDJ3vJLy7DgAAJIYTQaEp9FhPjwVIU/HdBudb8ZT6kVPLncVqzzKxuu 8iQSispH1tEEVU3z+kh/Bn2uTcy0luNj9vTvc= Received: by 10.210.39.8 with SMTP id m8mr1774694ebm.59.1236813680361; Wed, 11 Mar 2009 16:21:20 -0700 (PDT) Received: from ?10.10.30.9? (127.Red-88-3-8.dynamicIP.rima-tde.net [88.3.8.127]) by mx.google.com with ESMTPS id 7sm474512eyb.48.2009.03.11.16.21.19 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 11 Mar 2009 16:21:20 -0700 (PDT) Subject: camlp4: how do you write this rule? Mime-Version: 1.0 (Apple Message framework v1043) From: Joel Reymont Date: Wed, 11 Mar 2009 23:21:17 +0000 Content-Transfer-Encoding: 7bit Message-Id: <99DB26B3-CE30-4EC7-82E8-AB6BA775E309@gmail.com> Content-Type: text/plain; delsp=yes; charset=us-ascii; format=flowed To: O'Caml Mailing List X-Mailer: Apple Mail (2.1043) X-Spam: no; 0.00; camlp:01 camlp:01 expr:01 expr:01 instr:01 expression:02 parse:02 div:97 lefta:02 mul:04 opt:04 bottom:93 rule:10 rule:10 doesn't:12 I would like my expression rule to parse "1 + 2 points" as "Plus (1, Points 2)". I currently have the following, with Points right-associative and at the bottom, but it doesn't work. Is this something that Camlp4 can handle? Thanks, Joel expr: [ ... | LEFTA [ e1 = expr; "Or"; e2 = expr -> Or (e1, e2) | e1 = expr; "And"; e2 = expr -> And (e1, e2) | e1 = expr; "Mod"; e2 = expr -> Mod (e1, e2) | e1 = expr; "*"; e2 = expr -> Mul (e1, e2) | e1 = expr; "/"; e2 = expr -> Div (e1, e2) | "Not"; e = expr -> Not e ] | RIGHTA [ e = expr; [ "Points"; "Point" ]; i = OPT instr -> Points (e, i) ] ]; --- http://tinyco.de --- Mac & iPhone