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 2A460BC37 for ; Thu, 12 Nov 2009 19:47:43 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AooBAC/n+0rRVd+smGdsb2JhbACSGIlGPwEBAQEBCAkMBxOwJoE5hjOIagEDAwWENwQ X-IronPort-AV: E=Sophos;i="4.44,729,1249250400"; d="scan'208";a="50245757" Received: from mail-iw0-f172.google.com ([209.85.223.172]) by mail4-smtp-sop.national.inria.fr with ESMTP; 12 Nov 2009 19:47:42 +0100 Received: by iwn2 with SMTP id 2so1921085iwn.1 for ; Thu, 12 Nov 2009 10:47:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=RewWRXW/HAhcwpn84mu4LaSeljnI5xz8whKvd+E0B1E=; b=r1YbAORrzGcttRifitu9qHvGf1deawisBEQJujlh4iImsnQmr/ShF1Wh1EYIxJoIUZ E6qvHejJ5LxDY8dcOS77Y4eN+w8b9mKNBtvphFQZJXjT2QudVWDsIChxEzZEESMB7ThO 2v/99lDFkw6NAQkBBPnD+GyrC74pcnSSZ4i8E= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=i4D/fjihPizByGjIQtZXGi2trhXe7ciYKUXMnmPdEmnmvqKc9IQYDbCMfCp4N/So4m qmIN+T9IxJLBH4+GfYRjxC+XmWRKFF1MDPtoxjJNYidAHA/sYUA6QWu5Yfrav+RQML29 QRJ41CbDt1Wz+DkRr5E0u7qbvabj38F0bKX/4= MIME-Version: 1.0 Received: by 10.231.5.23 with SMTP id 23mr280133ibt.45.1258051661619; Thu, 12 Nov 2009 10:47:41 -0800 (PST) Date: Thu, 12 Nov 2009 10:47:41 -0800 Message-ID: Subject: ocamllex and yyless, putting back chars in lexbuf From: yoann padioleau To: caml-list@inria.fr Content-Type: text/plain; charset=ISO-8859-1 X-Spam: no; 0.00; ocamllex:01 lexbuf:01 ocamllex:01 buffer:01 lexbuf:01 char:01 curr:01 lex:01 string:02 push:08 push:08 top:89 top:89 fields:12 pos:13 Hi, Is there a way in ocamllex to put back certain characters in the buffer. In flex you can do that [a-z]+ { yy_pop_state(); yy_push_state(ST_TOP); return T_STRING_VARNAME; } {ANY_CHAR} { yyless(0); yy_pop_state(); yy_push_state(ST_TOP); } Should I play with fields like lexbuf_lex_curr_pos ?