From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id B80ADBC37 for ; Tue, 10 Nov 2009 17:26:25 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjgBAF8j+UpDww+1mWdsb2JhbACEco0XgQCIegEBAQEBCAsKBxOxOCiBOYY8iGoBBgQBgS2COFQEgWiKIw X-IronPort-AV: E=Sophos;i="4.44,717,1249250400"; d="scan'208";a="50117912" Received: from web111509.mail.gq1.yahoo.com ([67.195.15.181]) by mail4-smtp-sop.national.inria.fr with SMTP; 10 Nov 2009 17:26:24 +0100 Received: (qmail 614 invoked by uid 60001); 10 Nov 2009 16:26:23 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1257870383; bh=pJlXOyR5uxcoRKKmqw5RiW9362vHyWkx9h9LAIAlFXc=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=vaMzmAj0CgTWav3zBDSSkX34G0fjRL8Cs9qoq09L12e4YMNrC6XQgC/XUy47PdulItnNv4U5sA5zY939ocIxblID38YysfwfVK7EliX62xYMUOahv+fKnDynOPihOMQVRyHoZKwa5Rmz7iLZ8MmPbZpGQOG221CIxyPAgWA79KU= DomainKey-Signature:a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=fW13Bn7QHEN/6u79oL40X7qyFeoZipmyT0GGo8x6forNyJl0bKsbutJihYElk2dwf0YROT7WHo0WkAmQ3F+gIihAHfr8ayCcEyPDGYQcFjl+WkpIi0UluOsndsFQ8w7gg+jyvGYHw9mR6lE2gCqvQ7EtOJ8ACmw7NgSkS/cgBGY=; Message-ID: <698547.213.qm@web111509.mail.gq1.yahoo.com> X-YMail-OSG: WEMYCdgVM1lkTQIZ1375edWl0WwNNiPipBM_y2cQfQ7ssHwzWxEey7O47UvMiGLVjUY1ZpSio5LrY_ZUhLsU1u.7Is9qKeWmrUwx0BdJE6rpF.UdG217UTDlhlVBJ_Goya69kbpcVk_0QBYY78uG_q4xNUN86MZbsDz1iqCiSvc_xWd5oAX.E4pRGj941vYCLNuoPZHmS5hSJ1jNRfqGn6KDThv5ZwjbXlyQErdR8i5kFMScqMOuSbc1ue0kJGgDZKzPrdQDvk.JREUVg01nn2sNLkwcA84WqoT8mx0ScI7HJYAL.2cB6hu2F2ubnY67hD_P1LKID2LFB96somaL02A- Received: from [213.205.71.57] by web111509.mail.gq1.yahoo.com via HTTP; Tue, 10 Nov 2009 08:26:23 PST X-Mailer: YahooMailClassic/8.1.6 YahooMailWebService/0.7.361.4 Date: Tue, 10 Nov 2009 08:26:23 -0800 (PST) From: Dario Teixeira Subject: Re: [Caml-list] Re: The lexer hack To: caml-list@inria.fr, Jeff Shaw In-Reply-To: <4AF98624.70106@msu.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam: no; 0.00; lexer:01 lexers:01 error-prone:01 cheers:01 parsing:01 parsing:01 verb:01 verb:01 inline:01 caml-list:01 grammar:02 ast:02 terribly:03 exit:04 exit:04 Hi,=0A=0A> You could write your lexers in Menhir and make them part of=0A> = your grammar. I know this isn't a terribly easy solution but=0A> it would b= e elegant IMO.=0A=0AI thought of scannerless parsing, but the input is UTF8= encoded,=0Awhich makes using Ulex all the more convenient and less error-p= rone.=0A=0AAnyway, I was looking at Dypgen's early actions, and an idea=0Ao= ccurred to me: I can create dummy empty actions that simply=0Achange a glob= al "parsing context" variable:=0A=0Ainline:=0A | (...)=0A | BEGIN_VERB en= ter_verb RAW END_VERB exit_verb {Ast.Verbatim $3}=0A | (...)=0A=0Aenter_ve= rb: /* empty */ {Global.context :=3D Global.Verbatim}=0Aexit_verb: /* e= mpty */ {Global.context :=3D Global.General}=0A=0A=0AStill hackish, but be= tter than creating a state machine...=0A=0ACheers,=0ADario Teixeira=0A=0A= =0A=0A