BABYL OPTIONS: -*- rmail -*- Version: 5 Labels: Note: This is the header of an rmail file. Note: If you are seeing it in rmail, Note: it means the file has no messages in it.  1,, X-Coding-System: nil Mail-from: From vern@daffy.ee.lbl.gov Wed Mar 14 04:01:40 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id EAA09959 for ; Wed, 14 Mar 2001 04:01:40 -0500 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 14 Mar 2001 04:01:40 -0500 (EST) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f2E8pme19617 for ; Wed, 14 Mar 2001 03:51:48 -0500 (EST) Received: from daffy.ee.lbl.gov (daffy.ee.lbl.gov [131.243.1.31]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA20394 for ; Wed, 14 Mar 2001 03:51:47 -0500 (EST) Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f2E8pkM07870; Wed, 14 Mar 2001 00:51:46 -0800 (PST) Message-Id: <200103140851.f2E8pkM07870@daffy.ee.lbl.gov> To: "W. L. Estes" Subject: Re: possibly taking over maintenance of flex In-reply-to: Your message of Tue, 13 Mar 2001 09:00:58 EST. Date: Wed, 14 Mar 2001 00:51:46 PST From: Vern Paxson *** EOOH *** To: "W. L. Estes" Subject: Re: possibly taking over maintenance of flex In-reply-to: Your message of Tue, 13 Mar 2001 09:00:58 EST. Date: Wed, 14 Mar 2001 00:51:46 PST From: Vern Paxson > probably best to have a trial period up front as you suggest. Okay, you can get a copy of the master sources from ftp://ftp.ee.lbl.gov/.vp-flex-sources.tar.gz The TODO/ subdirectory has the general wish list plus a number of contributed patches. The faqs/ subdirectory has a bunch of email messages (in MH folder format, i.e., one message per file, files numbered sequentially) for commonly asked questions - worth taking a look through to see what sorts of things people frequently ask about. Next messages are various stuff I sent to Dick King. Thanks for giving it a try - naturally, by all means let me know when you have questions ... Vern  1,, X-Coding-System: nil Mail-from: From vern@daffy.ee.lbl.gov Wed Mar 14 04:01:40 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id EAA09961 for ; Wed, 14 Mar 2001 04:01:40 -0500 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 14 Mar 2001 04:01:40 -0500 (EST) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f2E8ppe19633 for ; Wed, 14 Mar 2001 03:51:51 -0500 (EST) Received: from daffy.ee.lbl.gov (daffy.ee.lbl.gov [131.243.1.31]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA20402 for ; Wed, 14 Mar 2001 03:51:50 -0500 (EST) Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f2E8poV07877; Wed, 14 Mar 2001 00:51:50 -0800 (PST) Message-Id: <200103140851.f2E8poV07877@daffy.ee.lbl.gov> To: wlestes@uncg.edu Subject: messages sent to Dick King (1 of 2) Date: Wed, 14 Mar 2001 00:51:49 PST From: Vern Paxson *** EOOH *** To: wlestes@uncg.edu Subject: messages sent to Dick King (1 of 2) Date: Wed, 14 Mar 2001 00:51:49 PST From: Vern Paxson ------- Forwarded Messages Date: Mon, 21 Aug 2000 23:03:54 PDT From: Vern Paxson Subject: Re: Some new Flex maintainer volunteers To: Dick King Cc: bkuhn@ebb.org In-reply-to: Your message of Tue, 15 Aug 2000 14:03:58 PDT. > Vern, i'm ready when you are. Okay, I've put the master sources in ftp://ftp.ee.lbl.gov/.vp-flex-sources.tar.gz The TODO/ subdirectory has a the general wish list plus a number of contributed patches (per the mail I'll be cc'ing you on regarding reentrant scanners). The faqs/ subdirectory has a bunch of email messages (in MH folder format, i.e., one message per file, files numbered sequentially) for commonly asked questions - worth taking a look through to see what sorts of things people frequently ask about. I very much appreciate your taking over maintaining/developing flex, and apologize for how long it's taken me to bundle stuff up to give to you (all too symptomatic of why I'm no longer able to work on flex :-( ). By all means, let me know when you have questions ... Vern ------- Message 2 Date: Mon, 21 Aug 2000 23:38:00 PDT From: Vern Paxson Subject: Re: I volunteer to modify flex to generate reentrant C code. To: "John W. Millaway" Cc: help-flex@gnu.org, king@reasoning.com In-reply-to: Your message of Mon, 21 Aug 2000 16:23:18 PDT. > I'm requesting this feature and at the same time volunteering to implement > it: John Bossom contributed patches a while ago for adding reentrant scanners. I never managed to try them out or integrate them (note that I'm no longer the flex maintainer/developer, having just transferred the honors to Dick King, whom I've cc'd), but I've made them available from: ftp://ftp.ee.lbl.gov/.vp-flex-reentrant.tar.gz I imagine Dick will be interested in hearing of problems/improvements/etc. Vern ------- Message 3 Date: Wed, 30 Aug 2000 07:23:07 PDT From: Vern Paxson Subject: Re: bug in flex 2.5.4? To: Keith McGuigan Cc: king@reasoning.com In-reply-to: Your message of Tue, 29 Aug 2000 12:21:02 EDT. This does indeed sound like a bug. Dick King (cc'd) recently took over development & maintenance for flex; I've sent him a copy of your message. Vern ------- Message 4 Date: Thu, 31 Aug 2000 15:41:00 PDT From: Vern Paxson Subject: Re: Flex To: "Skifstrom, Eric" Cc: king@reasoning.com In-reply-to: Your message of Wed, 30 Aug 2000 09:35:58 PDT. > Thanks for all the work on Flex. It is appreciated. How do I get a copy of > flex for Windows 98 platform. I've only directly support flex for Unix, and have always distributed it in source-code form only. So I don't know where you get a copy, though I bet with some web surfing you can find one. Also, please note, Dick King (cc'd) has taken over flex development and maintenance. Vern ------- Message 5 Date: Thu, 31 Aug 2000 15:43:40 -0700 (PDT) From: Dick King Subject: Re: Flex To: vern@ee.lbl.gov MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit In-Reply-To: <200008312241.e7VMf0G14335@daffy.ee.lbl.gov> References: <200008312241.e7VMf0G14335@daffy.ee.lbl.gov> X-Mailer: VM 6.61 under 19.14 XEmacs Lucid Vern Paxson writes: >> Thanks for all the work on Flex. It is appreciated. How do I get a copy of >> flex for Windows 98 platform. > >I've only directly support flex for Unix, and have always distributed it >in source-code form only. So I don't know where you get a copy, though >I bet with some web surfing you can find one. > >Also, please note, Dick King (cc'd) has taken over flex development >and maintenance. > > Vern > I have a couple of how-to-be-a-gnu-product-maintainer questions. First, how do i get to the wish list? I assume people mail the stuff and it accumulates somewhere. Second, if i decide i have a fix for a group of problems what do i do to get it distributed? - -dk ------- Message 6 Date: Sun, 03 Sep 2000 12:22:48 PDT From: Vern Paxson Subject: Re: Flex To: Dick King In-reply-to: Your message of Thu, 31 Aug 2000 15:43:40 PDT. > First, how do i get to the wish list? I assume people mail the stuff and it > accumulates somewhere. There's a honed-down copy in the distribution I put together. I also have several hundred email messages, which will be rather tedious to wade through, but I can put together for you if you wish (this is non-trivial, though, since there's some personal mail intermixed in it which I'll have to locate and remove). > Second, if i decide i have a fix for a group of problems what do i do to get it > distributed? Put together a new release distribution (either a minor version change or a major one, depennding on the scope of the changes). Make sure it works with "make bigcheck", and make sure you can copy the distribution to a virgin machine, unpack it & successfully build it (including "make bigcheck"). Next, make it available somewhere for anonymous ftp and/or Web access. (If this is a problem, I can still host the distribution at ftp.ee.lbl.gov.) Finally, send mail like the appended example. For your first message, you should explain that you've taken over development of flex from me. It would probably be good to cc me, in case a thread develops from the note that it would be helpful to have me contribute to. No need to cc me on later notes (though I don't mind, either). I used to send the note to compilers@iecc.com (the USENET comp.compilers group) and info-gnu@prep.ai.mit.edu. I don't know if the former is still the correct address - you could find out from the USENET group's archives, presumably. The latter has likely changed to info-gnu@gnu.org. Vern Date: Tue, 28 Mar 95 11:58:04 PST From: Vern Paxson Subject: flex release 2.5.1 now available To: compilers@iecc.com, info-gnu@prep.ai.mit.edu Release 2.5.1 of flex, a POSIX-compliant "lex" scanner generator, is now available for anonymous ftp to ftp.ee.lbl.gov. Retrieve flex-2.5.1.tar.Z or flex-2.5.1.tar.gz. flex-2.5.1.tar.gz should be showing up shortly at the usual GNU mirror sites. The main changes between 2.5 and 2.4 are: - A new concept of "start condition" scope lets you group together rules sharing the same start conditions into a syntactic unit. - Flex now includes a general mechanism for specifying scanner options. - Routines have been added for scanning strings instead of files. - Routines have been added for manipulating stacks of start conditions. - Fledgling support for POSIX character class expressions. - Enhanced portability to MS-DOS, VMS, NT, Macintosh, Amiga. - A number of bugs have been fixed. - input() no longer trashes yytext. - Interactive scanners now run significantly faster. - C++ scanner objects now work with the -P option. - The promised rewrite of the C++ FlexLexer class has not been done, but is still planned. See the "NEWS" file for more details. Please report bugs to: vern@ee.lbl.gov or bug-gnu-utils@prep.ai.mit.edu Vern Vern Paxson Lawrence Berkeley Laboratory vern@ee.lbl.gov ------- Message 7 Date: Wed, 13 Sep 2000 00:59:33 PDT From: Vern Paxson Subject: Re: Does the FSF maintain Flex? To: "Leanard Lin" Cc: king@reasoning.com In-reply-to: Your message of Wed, 13 Sep 2000 00:55:38 PDT. > Dear Vern, > > I have a problem about flex of linux version. > If comment is very long, flex will not re-malloc > for it. > It will display a error message and exit program. > > Thanks, > > Leanard Well, clearly if a comment is larger than the available memory, then flex can't realloc to accommodate it. But presumably that's not what's going on or you wouldn't have bothered writing; so I don't know what the problem might be. Flex is now developed & maintained by Dick King, king@reasoning.com, whom I've cc'd. Vern ------- Message 8 Date: Wed, 04 Oct 2000 23:36:59 PDT From: Vern Paxson Subject: Re: Flex 2.5.4.1 Bugs To: Hans Aberg Cc: king@reasoning.com In-reply-to: Your message of Sun, 01 Oct 2000 20:32:48 PDT. > I made a Metrowerks MacOS CW Pro 5 plugin out of the Flex 2.5.4.1. Here are > some bugs: > > -- flexerror() calls flexend() which becomes an infinite loop in the case > of an error in flexend(). So, flexerror(), replace flexend() by exit(). > > -- If there is no output file error, flexend() fails to close the output > file. This causes a problem as a plugin, because the file remains locked > the next time the compiler runs, and the file cannot be reopened. > > This bug also occurs if, one first has created the .c file, then runs it > with a -S option for a skeleton filet Flex cannot find, in which case > flexend() fails to close the output file. Please note, Dick King (king@reasoning.com) has taken over flex maintenance and development. I've cc'd him. Vern ------- Message 9 Date: Wed, 04 Oct 2000 23:38:07 PDT From: Vern Paxson Subject: Re: flex -+ option and ISO C++ IOStreams To: Harri Pasanen Cc: king@reasoning.com In-reply-to: Your message of Mon, 02 Oct 2000 10:15:59 PDT. > You probably already know this: > > flex version 2.5.4 generates with -+ flag a forward declaration of class > istream. > Problem is that it is incompatible with the new ANSI IOStreams. This > becomes apparent if I try to use KAI C++ (http://www.kai.com/) to > compile the generated scanner. > > Lexing Scanner.l... > Compiling Scanner.o... > "/usr/local/KAI/KCC.pu-4.0b-1/KCC_BASE/include/istream.h", line 12: > error #101: > "istream" has already been declared in the current scope > using std::istream; > > I wonder if an updated version of flex is in the works? In the time > being I can compile my own... Dick King (king@reasoning.com) has recently taken over flex maintenance and development (I've cc'd him). Since there will be a fair amount of getting up to speed for him, I think building your own version for now is the best course. Vern ------- Message 10 Date: Thu, 05 Oct 2000 00:27:15 PDT From: Vern Paxson Subject: Re: Flex Feature Idea To: Davy Durham Cc: king@reasoning.com In-reply-to: Your message of Thu, 28 Sep 2000 11:28:52 EDT. > First I just want to say how much flex has been helpful to me in > writing my parser, and that I really appreciate the free use of the > program... You're welcome! Please note, though, that Dick King (cc'd) has taken over flex maintenance and development. > I can't re-write YY_INPUT which could detect and remove the '\' and > \n and go ahead and return the _next_ char, because I'm keeping up > with the line-number and column-number in YY_USER_ACTION for each > token... Since flex buffer's the data retrieved from YY_INPUT, _my_ > YY_INPUT would need to increment the line-number, but it would happen > possibly too soon... Plus I'm using yy_switch_buffer to do macro > replacements quite a bit which I think would complicate things even > more.... Well, that's how you have to do it, I'm afraid. I can't see any practical way to add this as a feature to flex at a later stage in the input analysis, since the semantics really are "pretend this slash and this newline don't exist (mod line numbers)". What you can probably do for line numbers is the following: create a data structure that maps byte offsets in the current input stream to line numbers. YY_INPUT would fill this in as it returns new (possibly munged) lines, and your actions would consult it in order to generate correct location information for error messages. (To deal with multiple input buffers, you maintain one data structure per buffer.) Vern ------- Message 11 Date: Thu, 05 Oct 2000 01:03:01 PDT From: Vern Paxson Subject: Re: [minor] obscure error messages if YY_DECL ends in semicolon To: "Eric R. Buddington" Cc: king@reasoning.com In-reply-to: Your message of Thu, 14 Sep 2000 13:39:52 EDT. > Your address was listed in the flex info pages, so I send this to you; if > you aren't the currnet maintainer, please let me know. I'm not longer the maintainer - Dick King (cc'd) has taken over. > First, I would like to add an '%option reentrant", such that the flex code > would have the lexer function as its only global symbol. Would you > consider such a patch for inclusion in the official flex? Someone has already contributed patches for this - you can get them from ftp://ftp.ee.lbl.gov/.vp-flex-reentrant.tar.gz . > Secondly, an erroneous input that might give better error messages: > > If YY_DECL ends with a semicolon, the generated error messages refer to > wrong (nonexistant in this case) line numbers in the source file. The > user error is only clear after turning off #line directives and looking at > the generated .c file. > > It would be good to have this error (a fairly easy one to make) reported > clearly, if that can be done elegantly. This I what I get now: > > flex -t -Pcap_string_ cap_string.flex > cap_string.c > cc -Wall -c -o cap_string.o cap_string.c > cap_string.flex:163: parse error before `{' > cap_string.flex:165: register name not specified for `yy_cp' > cap_string.flex:165: register name not specified for `yy_bp' > cap_string.flex:166: register name not specified for `yy_act' > cap_string.flex:39: parse error before `if' > ... I don't offhand see an easy way to fix this, other than scanning the source for a YY_DECL definition and looking for a semi-colon (urgh, what a hack). Dick will have to toss it onto the to-do list. Vern ------- Message 12 Date: Thu, 5 Oct 2000 10:51:53 +0200 From: Hans Aberg Subject: Re: Flex 2.5.4.1 Bugs To: Vern Paxson Cc: king@reasoning.com X-Sender: haberg@pop.matematik.su.se (Unverified) In-Reply-To: <200010050636.e956axT12828@daffy.ee.lbl.gov> References: Your message of Sun, 01 Oct 2000 20:32:48 PDT. Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Status: U At 23.36 -0700 0-10-04, Vern Paxson wrote: >Please note, Dick King (king@reasoning.com) has taken over flex maintenance >and development. I've cc'd him. OK. To: Dick King Bison seems to under revision right now (I'm working hard with the Bison development team just these days on pinpointing some bugs). -- Perhaps Flex & Bison development should somehow be synchronized. I have labelled Flex as BSD. Is that correct? Hans Aberg ------- Message 13 Date: Fri, 06 Oct 2000 02:04:11 PDT From: Vern Paxson Subject: Re: C++, flex under cygwin and Visual C++ To: "Simon J. Julier" Cc: king@reasoning.com In-reply-to: Your message of Thu, 05 Oct 2000 07:15:17 PDT. > Many apologies if either (a) it's a stupid question or (b) if I'm emailing > the wrong person. It's (b) :-). Dick King (king@reasoning.com) has taken over flex maintenance and development. I've cc'd him. > I have been using flex (v. impressive) to write a parser > for a C++ program. The program is being compiled using a Windows > 2000/Windows NT machine using the cygwin tool set and the Microsoft Visual > C++ compiler. Because the cygwin distribution does not include FlexLexer.h, > I took the advice from the man page and simply renamed lex.yy.c as > lex.yy.cxx and compiled this as a C++ program. This almost works except for > the fact that, in C++ compile mode, there is a dependency on unistd.h due > to the following code snippet: > > #ifdef __cplusplus > > #include > #include > > ... (other stuff) ... > > Since the Visual C++ compiler does not come with the header file unistd.h, > I manually modified the code to: > > #ifdef __cplusplus > > #include > #ifndef _WIN32 > #include > #endif /* ! _WIN32 */ > > Is this the "right way" to solve the problem? I imagine it is. This problem has come up a bunch of times, and, much as I hate adding #ifdef's to the skeleton, I haven't thought of any other way to do it. > If so, would it be possible > to consider making the appropriate changes to flex.skl? Sounds okay to me, but this is now Dick's call. Vern ------- Message 14 Date: Fri, 6 Oct 2000 09:31:08 -0700 (PDT) From: Dick King Subject: Re: C++, flex under cygwin and Visual C++ To: vern@ee.lbl.gov Cc: sjulier@erols.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit In-Reply-To: <200010060904.e9694BU17584@daffy.ee.lbl.gov> References: <200010060904.e9694BU17584@daffy.ee.lbl.gov> X-Mailer: VM 6.61 under 19.14 XEmacs Lucid I'm getting my flex support operations organized, finally. I've established a new eddress, flex@2xtreme.net . I'll start looking at the small bug fixes flex has been asked for in a week or so. Then i will get to meaty changes. One meaty change i've been asked for which i would like to do [i did it for my current company's lexer product so i think i understand the issues] is a character level prefilter infrastructure, that would allow you to integrate a cpp-style preprocessor [rather than making it a separate pass as is the norm] or to write a flex lexer for a language like FORTRAN or COBOL or that language i've heard about whose name escapes me where indentation is syntactically significant. Vern Paxson writes: >> Many apologies if either (a) it's a stupid question or (b) if I'm emailing >> the wrong person. > >It's (b) :-). Dick King (king@reasoning.com) has taken over flex >maintenance and development. I've cc'd him. > >> I have been using flex (v. impressive) to write a parser >> for a C++ program. The program is being compiled using a Windows >> 2000/Windows NT machine using the cygwin tool set and the Microsoft Visual >> C++ compiler. Because the cygwin distribution does not include FlexLexer.h, >> I took the advice from the man page and simply renamed lex.yy.c as >> lex.yy.cxx and compiled this as a C++ program. This almost works except for >> the fact that, in C++ compile mode, there is a dependency on unistd.h due >> to the following code snippet: >> >> #ifdef __cplusplus >> >> #include >> #include >> >> ... (other stuff) ... >> >> Since the Visual C++ compiler does not come with the header file unistd.h, >> I manually modified the code to: >> >> #ifdef __cplusplus >> >> #include >> #ifndef _WIN32 >> #include >> #endif /* ! _WIN32 */ >> >> Is this the "right way" to solve the problem? > >I imagine it is. This problem has come up a bunch of times, and, >much as I hate adding #ifdef's to the skeleton, I haven't thought of >any other way to do it. > >> If so, would it be possible >> to consider making the appropriate changes to flex.skl? > >Sounds okay to me, but this is now Dick's call. > > Vern > ------- Message 15 Date: Sun, 08 Oct 2000 01:19:08 PDT From: Vern Paxson Subject: Re: C++, flex under cygwin and Visual C++ To: Dick King In-reply-to: Your message of Fri, 06 Oct 2000 09:31:08 PDT. > One meaty change i've been asked for which i would like to do [i did it for my > current company's lexer product so i think i understand the issues] is a > character level prefilter infrastructure, that would allow you to integrate a > cpp-style preprocessor [rather than making it a separate pass as is the norm] > or to write a flex lexer for a language like FORTRAN or COBOL or that language > i've heard about whose name escapes me where indentation is syntactically > significant. That would be really nice to have! Vern ------- Message 16 Date: Mon, 9 Oct 2000 12:27:13 -0400 (EDT) From: Andrew Droffner Subject: Re: Flex & Multiple Threads To: Vern Paxson Cc: help-flex@gnu.org, king@reasoning.com In-Reply-To: <200010050752.e957qGq13639@daffy.ee.lbl.gov> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII I'm unable to compile the scan.l LEX specification using the bootstrap scanner, initscan.c. I have tried it on the latest flex source from GNU, and the tarball from your page at ee.lbl.gov. If I drop the "%option reentrant" from scan.l, then it all compiles. I doubt it works right then. What else do I need here, a new initscan.c? Thanks for the help. On Thu, 5 Oct 2000, Vern Paxson wrote: > > I'm interested in building a multi-threaded server using YACC & Lex. > > The server & client parse the data they pass to each other. > > > > The Bison dialect of YACC uses a "%pure_parser" option to force re-entrant > > code. I would like a Flex equivalent; is there one already? > > There are patches to flex to support reentrant scanners, which I've > put in ftp://ftp.ee.lbl.gov/.vp-flex-reentrant.tar.gz . > > Also, please note, flex maintenance has been taken over by Dick King > . > > Vern > - -- [ Andrew Droffner [ Advance Publications Internet [ [ adroffne@advance.net ------- Message 17 Date: Tue, 10 Oct 2000 22:40:12 PDT From: Vern Paxson Subject: Re: Flex & Multiple Threads To: Andrew Droffner Cc: help-flex@gnu.org, king@reasoning.com In-reply-to: Your message of Mon, 09 Oct 2000 12:27:13 PDT. > I'm unable to compile the scan.l LEX specification using the bootstrap > scanner, initscan.c. I have tried it on the latest flex source from GNU, > and the tarball from your page at ee.lbl.gov. > > If I drop the "%option reentrant" from scan.l, then it all compiles. I > doubt it works right then. What else do I need here, a new initscan.c? I don't have any firsthand experience with those patches, unfortunately, so all I can offer is to try building without the %option reentrant; then run flex on scan.l to build a new scan.c; recompile using that; run "make check" to make sure it's working okay; then try putting the %option reentrant back in. Because I believe the modified scan.l doesn't actually need %option reentrant, it's just there to exercise the scanning during "make check". Vern ------- Message 18 Date: Wed, 11 Oct 2000 11:42:35 PDT From: Vern Paxson Subject: Re: Flex & Multiple Threads To: Dick King In-reply-to: Your message of Wed, 11 Oct 2000 11:29:49 PDT. > How do i read help-flex@gnu.org? Try sending mail to help-flex-request@gnu.org with a message body of "subscribe". Let me know if that doesn't work. Ven ------- End of Forwarded Messages  1,, X-Coding-System: nil Mail-from: From vern@daffy.ee.lbl.gov Wed Mar 14 04:01:40 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id EAA09964 for ; Wed, 14 Mar 2001 04:01:40 -0500 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 14 Mar 2001 04:01:40 -0500 (EST) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f2E8pse19643 for ; Wed, 14 Mar 2001 03:51:54 -0500 (EST) Received: from daffy.ee.lbl.gov (daffy.ee.lbl.gov [131.243.1.31]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA20408 for ; Wed, 14 Mar 2001 03:51:53 -0500 (EST) Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f2E8pqR07884; Wed, 14 Mar 2001 00:51:52 -0800 (PST) Message-Id: <200103140851.f2E8pqR07884@daffy.ee.lbl.gov> To: wlestes@uncg.edu Subject: messages sent to Dick King (2 of 2) Date: Wed, 14 Mar 2001 00:51:52 PST From: Vern Paxson *** EOOH *** To: wlestes@uncg.edu Subject: messages sent to Dick King (2 of 2) Date: Wed, 14 Mar 2001 00:51:52 PST From: Vern Paxson ------- Forwarded Messages Date: Sat, 07 Oct 2000 10:31:22 -0700 From: "Dick King, flex maintainer" Subject: Re: the source tree To: vern@ee.lbl.gov Cc: flex@2xtreme.net In-reply-to: <14814.15467.441052.399457@fiddle.mtview.reasoning.com> Reply-to: flex@2xtreme.net MIME-version: 1.0 X-Mailer: Forte Agent 1.8/32.548 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit References: <14814.15467.441052.399457@fiddle.mtview.reasoning.com> On Fri, 6 Oct 2000 13:56:11 -0700 (PDT), you wrote: > > I think i'm prepared to give this a try. > > Cool!, thanks. Here's a snapshot of the current source tree. I'm about > to leave for two week's vacation, not reading email, but upon my return > I'll put together the stuff-to-do email archive, etc. > > Vern > What is the current release? You sent me 2.5.4a to my office computer on June 20, but i found 2.5.5a on June 20 and downloaded it to my home computer. - -dk PS: when anyone writes to you, tell them about my new eddress [flex@2xtreme.net]? Thanks. - -dk ------- Message 2 Date: Sun, 08 Oct 2000 01:26:26 PDT From: Vern Paxson Subject: Re: a sort of flex-related question :-) To: Alan Donovan Cc: flex@2xtreme.net In-reply-to: Your message of Thu, 05 Oct 2000 18:49:51 PDT. > Vern, sorry to write out of the blue like this but I figure that as the > maintainer of flex, you could probably answer my question in a second. I'm actually no longer the maintainer. Dick King has taken over. He's set up the address flex@2xtreme.net for flex correspondence. I've cc'd him. > I'm writing a tool somewhere between flex and yacc, in which you specify > a set of rules and actions (as in yacc) but the language is that of > regular expressions not context-free grammars. > > Each rule may include literals, operators, and simpler (i.e. previously > declared) rules as components, and have an action. e.g. > > foo :[0-9]+ { func1(); } > > bar :"x"foo { func2(); } > |"y"foo { func3(); } > > So the NDFA for "bar" actually contains two copies of the NDFA for > "foo". My problem arises when trying to determine where in the DFA > (generated by subset construction) to invoke the actions associated with > each rule. All my DFA states are annotated as to which rules (if any) > they start and which rules (if any) they accept. However this is not > enough to correctly invoke the actions. > > Consider: > > foo: ab > bar: a > > in the context of some larger expression zip:(foo|bar)"c". > > The DFA for "zip" looks like: > > a b c > P ---> Q ---> R ---> T > | > +----> S > c > > P starts rules "foo", "bar" and "zip". Q accepts "bar" and R accepts > rule "foo". S and T accept zip. > > On input "abc", how do you know _not_ to invoke the action for rule > "bar" when you reach state Q (or more correctly, when you receive the > "b" and move to state R)? > > So the question is: do you think what I am trying to do is possible? What you are doing looks like a parse, and you can only parse LR(0) languages with DFAs (if I recall correctly), i.e., those without lookahead. The above example requires lookahead to differentiate matching foo from bar. So I think you're out of luck here, if I understand the example correctly. Vern ------- Message 3 Date: Sun, 08 Oct 2000 07:47:01 -0700 From: "Dick King, flex maintainer" Subject: Re: a sort of flex-related question :-) To: Vern Paxson Cc: Alan Donovan In-reply-to: <200010080826.e988QQC23650@daffy.ee.lbl.gov> Reply-to: flex@2xtreme.net MIME-version: 1.0 X-Mailer: Forte Agent 1.8/32.548 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit References: <200010080826.e988QQC23650@daffy.ee.lbl.gov> Status: U On Sun, 08 Oct 2000 01:26:26 PDT, you wrote: > > Vern, sorry to write out of the blue like this but I figure that as the > > maintainer of flex, you could probably answer my question in a second. > > I'm actually no longer the maintainer. Dick King has taken over. He's set > up the address flex@2xtreme.net for flex correspondence. I've cc'd him. > > > I'm writing a tool somewhere between flex and yacc, in which you specify > > a set of rules and actions (as in yacc) but the language is that of > > regular expressions not context-free grammars. > > > > Each rule may include literals, operators, and simpler (i.e. previously > > declared) rules as components, and have an action. e.g. > > > > foo :[0-9]+ { func1(); } > > > > bar :"x"foo { func2(); } > > |"y"foo { func3(); } > > > > So the NDFA for "bar" actually contains two copies of the NDFA for > > "foo". My problem arises when trying to determine where in the DFA > > (generated by subset construction) to invoke the actions associated with > > each rule. All my DFA states are annotated as to which rules (if any) > > they start and which rules (if any) they accept. However this is not > > enough to correctly invoke the actions. > > > > Consider: > > > > foo: ab > > bar: a > > > > in the context of some larger expression zip:(foo|bar)"c". > > > > The DFA for "zip" looks like: > > > > a b c > > P ---> Q ---> R ---> T > > | > > +----> S > > c > > > > P starts rules "foo", "bar" and "zip". Q accepts "bar" and R accepts > > rule "foo". S and T accept zip. > > > > On input "abc", how do you know _not_ to invoke the action for rule > > "bar" when you reach state Q (or more correctly, when you receive the > > "b" and move to state R)? > > > > So the question is: do you think what I am trying to do is possible? > > What you are doing looks like a parse, and you can only parse LR(0) > languages with DFAs (if I recall correctly), i.e., those without > lookahead. The above example requires lookahead to differentiate > matching foo from bar. So I think you're out of luck here, if > I understand the example correctly. > > Vern Vern is mostly correct. Small extensions can give you a single token [character, here] lookahead but that is not enough to deliver the functionality you want. Consider foo: a { foo_fn(); } bar: ab { bar_fn(); } mumble: foo bcde.....yZ { any } | bar cde.....yW { any } - -dk ------- Message 4 Date: Tue, 10 Oct 2000 02:36:57 PDT From: Vern Paxson Subject: Re: Bison's semantic parsers To: Akim Demaille Cc: Hans Aberg , Davy Durham , Bison Help , flex@2xtreme.net In-reply-to: Your message of 10 Oct 2000 11:43:07 PDT. > Nope, indeed Vern seems also to say he won't work on Flex again. Unfortunately, yes. > Vern, could we imagine that Flex be put on the CVS server of the FSF, > subversions.gnu.org? Thank you very much for the offer, I certainly appreciate it. However, Dick King has already volunteered to take over maitenance and development. I've cc'd the address he's using for flex-related mail, flex@2xtreme.net. Vern ------- Message 5 Date: Tue, 10 Oct 2000 13:30:02 +0200 From: Hans Aberg Subject: Re: Bison's semantic parsers To: Vern Paxson Cc: Akim Demaille , Davy Durham , Bison Help , flex@2xtreme.net X-Sender: haberg@pop.matematik.su.se In-Reply-To: <200010100936.e9A9avg01250@daffy.ee.lbl.gov> References: Your message of 10 Oct 2000 11:43:07 PDT. Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Status: U At 02.36 -0700 0-10-10, Vern Paxson wrote: >> Vern, could we imagine that Flex be put on the CVS server of the FSF, >> subversions.gnu.org? > >Thank you very much for the offer, I certainly appreciate it. However, >Dick King has already volunteered to take over maitenance and development. >I've cc'd the address he's using for flex-related mail, flex@2xtreme.net. At 11.43 +0200 0-10-10, Akim Demaille wrote: >Hans> Perhaps Bison and Flex should be bundled, or tuned up together. > >It's a good but bad idea. For instance you could also argue that >Autoconf, Automake and Libtool be merged, but if you just observe that >they have totally different evolutions, it becomes infeasible. While >definitely a seducing idea, it wouldn't work IMHO. My experimenting with C++ though suggests that Bison and Flex needs some synchronizing if one should take full advantage of that language: - -- One thing that come to my mind is that instead of letting the Bison output .cc file include the Flex .cc file, they communicate the information via header files. - -- When experimenting C++ manipulator style I mentioned before Parser parser; parser_value val; ifstream ifs("...", ios_base::in | ios_base::binary); ofstream ofs("..."); if (ifs) try { for (;;) { ifs >> parser >> val; cout << val << endl; } I experience problems with how Flex resets its state, and how streams and such are initialized. For example, if I try to gobble up UNIX, MacOS & DOS line separators in Flex by \n|\r|\r\n { return '\n'; } then, when Flex sees a \r it must first look ahead to verify the next character isn't a \n. However, if a successful value "val" is produced, then the next time one ends up at the line ifs >> parser >> val, Flex is reset, and as a consequence, the extra character needed to the \n check is gobbled up. One can get around this by not allowing this ifs >> parser >> val construct, then the advantage of freer, and therefore easier user syntaxes are lost. - -- I think that there might be some other issues, such as how to properly localize all data that Bison and Flex uses, and how they should communicate that. These are more questions of hand-shaking than bundling them together as a single program. As for the comparisons of Bison and Flex versus other types of compiler-compilers, I think the main disadvantage with them (the former) is that they are extremely difficult to debug. It's rather hopeless trying to debug the C/C++ files they produce as output. If one could hook up an debugger though, so that one could step throw the .l/.y source files, just as in the case of visual debugging of a C/C++ file, then this would change, and it would not make any difference of what method is used, as long as it is efficient and does the job. Hans Aberg ------- Message 6 Date: 10 Oct 2000 13:51:33 +0200 From: Akim Demaille Subject: Re: Bison's semantic parsers To: Vern Paxson Cc: Hans Aberg , Davy Durham , Bison Help , flex@2xtreme.net, Didier Verna References: <200010100936.e9A9avg01250@daffy.ee.lbl.gov> In-Reply-To: Vern Paxson's message of "Tue, 10 Oct 2000 02:36:57 PDT" Lines: 27 User-Agent: Gnus/5.0807 (Gnus v5.8.7) XEmacs/21.1 (Channel Islands) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Status: U >>>>> "Vern" == Vern Paxson writes: >> Nope, indeed Vern seems also to say he won't work on Flex again. Vern> Unfortunately, yes. Just by curiosity: you're no longer interested, or you don't have time enough? >> Vern, could we imagine that Flex be put on the CVS server of the >> FSF, subversions.gnu.org? Vern> Thank you very much for the offer, I certainly appreciate it. I'm also quite pleased to see my offer pleased you so much :) Vern> However, Dick King has already volunteered to take over Vern> maitenance and development. I've cc'd the address he's using Vern> for flex-related mail, flex@2xtreme.net. Thanks! Then, I shall restate my question for flex@2xtreme: is there a CVS server or something which would make it possible to participate the development of Flex? Akim ------- Message 7 Date: Tue, 10 Oct 2000 14:15:53 PDT From: Vern Paxson Subject: Re: Bison's semantic parsers To: Akim Demaille Cc: Hans Aberg , Davy Durham , Bison Help , flex@2xtreme.net, Didier Verna In-reply-to: Your message of 10 Oct 2000 13:51:33 PDT. > Just by curiosity: you're no longer interested, or you don't have time > enough? No time ... Vern ------- Message 8 Date: Thu, 12 Oct 2000 20:07:57 PDT From: Vern Paxson Subject: Re: Flex 2.5.4 Bug To: Cliff Sarginson Cc: flex@2xtreme.net In-reply-to: Your message of Thu, 12 Oct 2000 13:52:06 +0200. > I dont know if you still receive bug reports about flex .. I'm not, Dick King (cc'd) has taken over maintenance & development. > but here is one.. ! > > In a scanner we have .. > > %start this that msg another > > The field "msg" gets turned into a > > #define msg 3 > > We do not define a xxx_YY_FATAL_ERROR > > So flex supplies one, as a macro, with a definition: > > xxx_yy_fatal_error (const msg []) > > The "C" pre-processor merrily turns this into > > xx_yy_fatal_error ( const 3 [] ) > > Are we really the first to come across this ? Flex should maybe > be a bit more creative with it's paramater naming for macro's > or do some other name space checking maybe ? Yep, this is a known problem. The difficulty is that when lex was originally designed, it allowed you to switch start states using "BEGIN msg" rather than "BEGIN(msg)". This means that either you do a major analysis of the source to only patch up true BEGIN's (rather than, say, one that occurs inside a string literal); or you use a gross hack in defining BEGIN, like flex does: #define BEGIN yy_start = 1 + 2 * With this sort of definition, there's no way to modify the namespace consumed by start states. If instead you could require the ()'s, then you could use #define BEGIN(state) yy_start = 1 + 2 * (YY_STATE_ ## state) and all would be happy ... Vern ------- Message 9 Date: Thu, 12 Oct 2000 20:08:03 PDT From: Vern Paxson Subject: Re: a sort of flex-related question :-) To: Alan.Donovan@arm.com Cc: flex@2xtreme.net In-reply-to: Your message of Thu, 12 Oct 2000 15:36:38 BST. > Thank you both for your help. I can probably rearrange my grammars to be > LR(0). Can you give me a reference for the algorithm for LR(0) parsing with > a DFA? Dunno off hand, but I imagine it must be in the Dragon Book. Vern ------- Message 10 Date: Thu, 02 Nov 2000 11:56:35 PST From: Vern Paxson Subject: Re: flex documentation enhancement request To: Tracy Camp Cc: flex@2xtreme.net In-reply-to: Your message of Thu, 02 Nov 2000 10:17:17 PST. Yes, a lot of people get bitten by this, unfortunately. Note, Dick King has taken over flex maintenance and development, and has set up the address flex@2xtreme.net for flex correspondence. I've cc'd him. Vern > As a new user to flex I found the following situation quite confusing and > think a breif caviate note in the manual would have helped out (or at > least an emphisis if there was one) :) > > when using external variables when patching a pattern such as: > > %x buffer_dev > %{ > extern struct mystruct astruct; /* struct containing member buffer_dev */ > %} > %% > buffer_dev= BEGIN(buffer_dev); > > .*$ { > strncpy(astruct.buffer_dev,yytext,255); > } > %% > > this causes all sorts of problems because 'buffer_dev' is defined by flex > at some point and I used buffer_dev as a member of an external structure > that I'm trying to fill in with flex. This causes all sorts of compile > problems. Renaming my 'buffer_dev' condition to something else works > around this, but it was not immediately obvious what the problem was from > the compile error. For all else I found your manual to be of GREAT help - > thanks! > > t. > > Tracy Camp > Product Development > Miralink Corp.PDX > Portland OR > 503-223-3140 > ------- Message 11 Date: Thu, 09 Nov 2000 23:03:38 PST From: Vern Paxson Subject: Re: Standard C++ compatibility for flex++ To: Volker Simonis Cc: help-flex@gnu.org, flex@2xtreme.net In-reply-to: Your message of Wed, 08 Nov 2000 15:50:36 +0100. > Is there any chance for a new release of flex? Is there a maintainer right now? > Is it possible to submit some bug-fixes or to contribute in some way? Dick King has taken over flex development and maintenance. You can reach him at flex@2xtreme.net (cc'd). Vern ------- Message 12 Date: Wed, 14 Feb 2001 12:57:37 PST From: Vern Paxson Subject: Re: Bug#84780: Fix for info documentation (fwd) To: Santiago Vila Cc: Gordon Sadler , flex@2xtreme.net In-reply-to: Your message of Wed, 14 Feb 2001 15:40:30 PST. Please note, Dick King has taken over flex maintenance and development, and has set up the address flex@2xtreme.net for flex correspondence. Vern > Hello. > > I received this from the Debian Bug System. > > ---------- Forwarded message ---------- > Date: Sun, 4 Feb 2001 02:41:30 -0600 > From: Gordon Sadler > To: Debian Bug Tracking System > Subject: #84780: Fix for info documentation > > Package: flex > Version: 2.5.4a-9 > Severity: wishlist > > Attached find a diff to MISC/texinfo/flex.texi > I noticed during the texi2html run it complains of first section not > being toplevel. I opened the texi file and changed the toplevel > sections to chapters. While I was there noticed the comment about > fixing all of the See... to make them @xref, so I did. > > Looks like upstream is pretty much done ... but you seem to be in > touch, last changelog mentions manpage patch from author? > > If you use this texi to regen the info the x-refs make it a little more > useable. Maybe I'll add the index in next -) > > Gordon Sadler > ------------------------------------------------------------------------ > This is the patch in unified format: > > diff -r -u flex-2.5.4.orig/MISC/texinfo/flex.texi flex-2.5.4/MISC/texinfo/flex.texi > --- flex-2.5.4.orig/MISC/texinfo/flex.texi Sun Jul 27 04:47:21 1997 > +++ flex-2.5.4/MISC/texinfo/flex.texi Wed Feb 14 15:34:49 2001 > @@ -151,12 +151,12 @@ > @end ifinfo > > @node Name, Synopsis, Top, Top > -@section Name > +@chapter Name > > flex - fast lexical analyzer generator > > @node Synopsis, Overview, Name, Top > -@section Synopsis > +@chapter Synopsis > > @example > flex [-bcdfhilnpstvwBFILTV78+? -C[aefFmr] -ooutput -Pprefix -Sskeleton] > @@ -164,7 +164,7 @@ > @end example > > @node Overview, Description, Synopsis, Top > -@section Overview > +@chapter Overview > > This manual describes @code{flex}, a tool for generating programs > that perform pattern-matching on text. The manual > @@ -244,7 +244,7 @@ > @end table > > @node Description, Examples, Overview, Top > -@section Description > +@chapter Description > > @code{flex} is a tool for generating @dfn{scanners}: programs which > recognized lexical patterns in text. @code{flex} reads the given > @@ -260,7 +260,7 @@ > corresponding C code. > > @node Examples, Format, Description, Top > -@section Some simple examples > +@chapter Some simple examples > > First some simple examples to get the flavor of how one > uses @code{flex}. The following @code{flex} input specifies a scanner > @@ -371,7 +371,7 @@ > following sections. > > @node Format, Patterns, Examples, Top > -@section Format of the input file > +@chapter Format of the input file > > The @code{flex} input file consists of three sections, separated > by a line with just @samp{%%} in it: > @@ -439,7 +439,7 @@ > where the pattern must be unindented and the action must > begin on the same line. > > -See below for a further description of patterns and > +@xref{Patterns}, for a further description of patterns and > actions. > > Finally, the user code section is simply copied to > @@ -468,7 +468,7 @@ > is also copied verbatim to the output up to the next "*/". > > @node Patterns, Matching, Format, Top > -@section Patterns > +@chapter Patterns > > The patterns in the input are written using an extended > set of regular expressions. These are: > @@ -697,7 +697,7 @@ > @end itemize > > @node Matching, Actions, Patterns, Top > -@section How the input is matched > +@chapter How the input is matched > > When the generated scanner is run, it analyzes its input > looking for strings which match any of its patterns. If > @@ -773,7 +773,7 @@ > classes (the @code{c++} option; see below). > > @node Actions, Generated scanner, Matching, Top > -@section Actions > +@chapter Actions > > Each pattern in a rule has a corresponding action, which > can be any arbitrary C statement. The pattern ends at the > @@ -1035,7 +1035,7 @@ > @end itemize > > @node Generated scanner, Start conditions, Actions, Top > -@section The generated scanner > +@chapter The generated scanner > > The output of @code{flex} is the file @file{lex.yy.c}, which contains > the scanning routine @samp{yylex()}, a number of tables used by > @@ -1136,15 +1136,15 @@ > > Three routines are available for scanning from in-memory > buffers rather than files: @samp{yy_scan_string()}, > -@samp{yy_scan_bytes()}, and @samp{yy_scan_buffer()}. See the discussion > -of them below in the section Multiple Input Buffers. > +@samp{yy_scan_bytes()}, and @samp{yy_scan_buffer()}. > +@xref{Multiple buffers, ,Multiple Input Buffers}. > > The scanner writes its @samp{ECHO} output to the @code{yyout} global > (default, stdout), which may be redefined by the user > simply by assigning it to some other @code{FILE} pointer. > > @node Start conditions, Multiple buffers, Generated scanner, Top > -@section Start conditions > +@chapter Start conditions > > @code{flex} provides a mechanism for conditionally activating > rules. Any rule whose pattern is prefixed with "" > @@ -1500,7 +1500,7 @@ > @samp{%option stack} directive (see Options below). > > @node Multiple buffers, End-of-file rules, Start conditions, Top > -@section Multiple input buffers > +@chapter Multiple input buffers > > Some scanners (such as those which support "include" > files) require reading from several input streams. As > @@ -1675,7 +1675,7 @@ > @end table > > @node End-of-file rules, Miscellaneous, Multiple buffers, Top > -@section End-of-file rules > +@chapter End-of-file rules > > The special rule "<>" indicates actions which are to > be taken when an end-of-file is encountered and yywrap() > @@ -1735,7 +1735,7 @@ > @end example > > @node Miscellaneous, User variables, End-of-file rules, Top > -@section Miscellaneous macros > +@chapter Miscellaneous macros > > The macro @code{YY_USER_ACTION} can be defined to provide an > action which is always executed prior to the matched > @@ -1800,7 +1800,7 @@ > the @code{YY_BREAK} is inaccessible. > > @node User variables, YACC interface, Miscellaneous, Top > -@section Values available to the user > +@chapter Values available to the user > > This section summarizes the various values available to > the user in the rule actions. > @@ -1865,7 +1865,7 @@ > @end itemize > > @node YACC interface, Options, User variables, Top > -@section Interfacing with @code{yacc} > +@chapter Interfacing with @code{yacc} > > One of the main uses of @code{flex} is as a companion to the @code{yacc} > parser-generator. @code{yacc} parsers expect to call a routine > @@ -1890,7 +1890,7 @@ > @end example > > @node Options, Performance, YACC interface, Top > -@section Options > +@chapter Options > @code{flex} has the following options: > > @table @samp > @@ -1903,8 +1903,8 @@ > and @samp{-Cf} or @samp{-CF} is used, the generated scanner will > run faster (see the @samp{-p} flag). Only users who wish > to squeeze every last cycle out of their scanners > -need worry about this option. (See the section on > -Performance Considerations below.) > +need worry about this option. (@pxref{Performance, , > +Performance Considerations}) > > @item -c > is a do-nothing, deprecated option included for > @@ -2138,8 +2138,7 @@ > > @item -+ > specifies that you want flex to generate a C++ > -scanner class. See the section on Generating C++ > -Scanners below for details. > +scanner class. @xref{C++, ,Generating C++ Scanners}. > > @item -C[aefFmr] > controls the degree of table compression and, more > @@ -2419,8 +2418,7 @@ > function @samp{foo::yylex()} instead of @samp{yyFlexLexer::yylex()}. > It also generates a @samp{yyFlexLexer::yylex()} member function that > emits a run-time error (by invoking @samp{yyFlexLexer::LexerError()}) > -if called. See Generating C++ Scanners, below, for additional > -information. > +if called. @xref{C++, ,Generating C++ Scanners}. > > A number of options are available for lint purists who > want to suppress the appearance of unneeded routines in > @@ -2439,7 +2437,7 @@ > unless you use @samp{%option stack}). > > @node Performance, C++, Options, Top > -@section Performance considerations > +@chapter Performance considerations > > The main design goal of @code{flex} is that it generate > high-performance scanners. It has been optimized for dealing > @@ -2756,7 +2754,7 @@ > the two is at about 8K characters/token. > > @node C++, Incompatibilities, Performance, Top > -@section Generating C++ scanners > +@chapter Generating C++ scanners > > @code{flex} provides two different ways to generate scanners for > use with C++. The first way is to simply compile a > @@ -2975,7 +2973,7 @@ > releases. > > @node Incompatibilities, Diagnostics, C++, Top > -@section Incompatibilities with @code{lex} and POSIX > +@chapter Incompatibilities with @code{lex} and POSIX > > @code{flex} is a rewrite of the AT&T Unix @code{lex} tool (the two > implementations do not share any code, though), with some > @@ -3051,8 +3049,8 @@ > > Also note that flex C++ scanner classes @emph{are} > reentrant, so if using C++ is an option for you, you > -should use them instead. See "Generating C++ > -Scanners" above for details. > +should use them instead. @xref{C++, ,Generating C++ > +Scanners}. > > @item > @samp{output()} is not supported. Output from the @samp{ECHO} > @@ -3198,7 +3196,7 @@ > line. > > @node Diagnostics, Files, Incompatibilities, Top > -@section Diagnostics > +@chapter Diagnostics > > @table @samp > @item warning, rule cannot be matched > @@ -3251,8 +3249,7 @@ > scanner specification includes recognizing the 8-bit > character @var{x} and you did not specify the -8 flag, and your > scanner defaulted to 7-bit because you used the @samp{-Cf} or @samp{-CF} > -table compression options. See the discussion of the @samp{-7} > -flag for details. > +table compression options. @xref{Options, ,@samp{-7}flag}. > > @item flex scanner push-back overflow > you used @samp{unput()} to push > @@ -3285,7 +3282,7 @@ > @end table > > @node Files, Deficiencies, Diagnostics, Top > -@section Files > +@chapter Files > > @table @file > @item -lfl > @@ -3311,7 +3308,7 @@ > @end table > > @node Deficiencies, See also, Files, Top > -@section Deficiencies / Bugs > +@chapter Deficiencies / Bugs > > Some trailing context patterns cannot be properly matched > and generate warning messages ("dangerous trailing > @@ -3365,7 +3362,7 @@ > The @code{flex} internal algorithms need documentation. > > @node See also, Author, Deficiencies, Top > -@section See also > +@chapter See also > > @code{lex}(1), @code{yacc}(1), @code{sed}(1), @code{awk}(1). > > @@ -3380,7 +3377,7 @@ > (deterministic finite automata). > > @node Author, , See also, Top > -@section Author > +@chapter Author > > Vern Paxson, with the help of many ideas and much inspiration from > Van Jacobson. Original version by Jef Poskanzer. The fast table > ------- End of Forwarded Messages  1, answered,, X-Coding-System: nil Mail-from: From vern@daffy.ee.lbl.gov Mon Mar 26 18:48:05 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id SAA00754 for ; Mon, 26 Mar 2001 18:48:05 -0500 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Mon, 26 Mar 2001 18:48:05 -0500 (EST) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f2QNVUe03862 for ; Mon, 26 Mar 2001 18:31:30 -0500 (EST) Received: from daffy.ee.lbl.gov (daffy.ee.lbl.gov [131.243.1.31]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id SAA18856 for ; Mon, 26 Mar 2001 18:31:28 -0500 (EST) Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f2QNVPc23647; Mon, 26 Mar 2001 15:31:25 -0800 (PST) Message-Id: <200103262331.f2QNVPc23647@daffy.ee.lbl.gov> To: wlestes@uncg.edu Subject: Fwd: release 2.5 of flex... Date: Mon, 26 Mar 2001 15:31:25 PST From: Vern Paxson *** EOOH *** To: wlestes@uncg.edu Subject: Fwd: release 2.5 of flex... Date: Mon, 26 Mar 2001 15:31:25 PST From: Vern Paxson (Any luck finding some flex cycles?) ------- Forwarded Message Date: Mon, 26 Mar 2001 00:06:31 +0200 From: Kai Hennig Subject: release 2.5 of flex... To: vern@ee.lbl.gov X-Spam-Filter: check_local@studserv.stud.uni-hannover.de by digitalanswers.org Reply-To: khennig@pobox.com Organization: TRI Systems X-Mailer: Mozilla 4.76 (Macintosh; U; PPC) X-Accept-Language: en MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit > Extract from file 'INSTALL' from flex-2.5.4 > > ... > If you need to do unusual things to compile the package, we encourage > you to figure out how `configure' could check whether to do them, and > mail diffs or instructions to the address given in the README so we > can include them in the next release. > ... Hi Vern, I'm using your flex package 2.5.4 on a Macintosh with Apple's Macintosh Programmers Workshop 3.5 (MPW). There is a description comming along with your package for the THINK C version 6.0 from Scott Hofmann (23-JUL-94) which is not helpfull for using the package with MPW. I enclosed a brief instruction for using the flex package with MPW which might be more helpfull since Think C is no longer officially available (as far as I know). greetings, Kai Notes on the MPW 3.5 version of Flex 2.5.4 Kai Hennig 25-Mar-2001 Internet: khennig@pobox.com To compile and run Flex 2.5.4 as an MPW Tool no changes to any file have to be done. Instead add a file called 'config.h' to the files listed in the command lines given below with the content listed below the commands. To compile and link all necessary files execute the following commands in the MPW shell: MrC -noMapCR -alloca -ansi strict main.c MrC -noMapCR -alloca -ansi strict ccl.c MrC -noMapCR -alloca -ansi strict dfa.c MrC -noMapCR -alloca -ansi strict ecs.c MrC -noMapCR -alloca -ansi strict gen.c MrC -noMapCR -alloca -ansi strict misc.c MrC -noMapCR -alloca -ansi strict nfa.c MrC -noMapCR -alloca -ansi strict -w off parse.c MrC -noMapCR -alloca -ansi strict initscan.c MrC -noMapCR -alloca -ansi strict tblcmp.c MrC -noMapCR -alloca -ansi strict sym.c MrC -noMapCR -alloca -ansi strict skel.c MrC -noMapCR -alloca -ansi strict yylex.c PPCLink -t 'MPST' -c 'MPS ' -o flex * main.c.o * ccl.c.o * dfa.c.o * ecs.c.o * gen.c.o * misc.c.o * nfa.c.o * parse.c.o * initscan.c.o * tblcmp.c.o * sym.c.o * skel.c.o * yylex.c.o * "{SharedLibraries}InterfaceLib" * "{SharedLibraries}StdCLib" * "{SharedLibraries}MathLib" * "{PPCLibraries}StdCRuntime.o" * "{PPCLibraries}PPCCRuntime.o" * "{PPCLibraries}MrCIOStreams.o" * "{PPCLibraries}PPCToolLibs.o" /* File 'config.h' */ /* Define to `unsigned' if doesn't define. */ #undef size_t /* Define if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Define if you have the header file. */ #define HAVE_STRING_H 1 /* Define if you have and it should be used (not on Ultrix). */ #define HAVE_ALLOCA_H 1 /* Define if you use FAT file system, leave undefined for NTFS */ #undef SHORT_FILE_NAMES /* Never do interactive input */ #define YY_NEVER_INTERACTIVE 1 /* EOF File 'config.h' */ ------- End of Forwarded Message  1,, X-Coding-System: nil Mail-from: From vern@daffy.ee.lbl.gov Wed Mar 28 04:07:49 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id EAA02765 for ; Wed, 28 Mar 2001 04:07:49 -0500 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 28 Mar 2001 04:07:49 -0500 (EST) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f2S8o2e15934 for ; Wed, 28 Mar 2001 03:50:02 -0500 (EST) Received: from daffy.ee.lbl.gov (daffy.ee.lbl.gov [131.243.1.31]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA23213 for ; Wed, 28 Mar 2001 03:50:00 -0500 (EST) Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f2S8nr529885; Wed, 28 Mar 2001 00:49:53 -0800 (PST) Message-Id: <200103280849.f2S8nr529885@daffy.ee.lbl.gov> To: "John W. Millaway" Cc: help-flex@gnu.org, wlestes@uncg.edu Subject: Re: reentrant C scanner In-reply-to: Your message of Tue, 27 Mar 2001 12:49:46 PST. Date: Wed, 28 Mar 2001 00:49:53 PST From: Vern Paxson *** EOOH *** To: "John W. Millaway" Cc: help-flex@gnu.org, wlestes@uncg.edu Subject: Re: reentrant C scanner In-reply-to: Your message of Tue, 27 Mar 2001 12:49:46 PST. Date: Wed, 28 Mar 2001 00:49:53 PST From: Vern Paxson > I contacted you (or someone there at flex H.Q.) about modifying flex to generate a > reentrant scanner. I found some time recently, and the modifications are nearly > complete. It wasn't as bad as I had originally thought it would be. > > I have two questions for you: > > 1. What is the procedure for regression testing? > 2. What is the procedure for merging my modifications with the current > distribution? Both of these are not well defined at the moment. Will Estes (cc'd) has volunteered to give taking over flex maintenance/development a try, and we're right now in a preliminary period during which he's gauging whether he'll indeed have the cycles for doing so. Vern  1,, X-Coding-System: nil Mail-from: From vern@daffy.ee.lbl.gov Thu Mar 29 18:05:46 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id SAA02631 for ; Thu, 29 Mar 2001 18:05:46 -0500 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Thu, 29 Mar 2001 18:05:46 -0500 (EST) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f2TMmHe28250 for ; Thu, 29 Mar 2001 17:48:17 -0500 (EST) Received: from daffy.ee.lbl.gov (daffy.ee.lbl.gov [131.243.1.31]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id RAA02561 for ; Thu, 29 Mar 2001 17:48:16 -0500 (EST) Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f2TMmCD10050; Thu, 29 Mar 2001 14:48:12 -0800 (PST) Message-Id: <200103292248.f2TMmCD10050@daffy.ee.lbl.gov> To: John Tupper Subject: Re: flex bug Cc: wlestes@uncg.edu In-reply-to: Your message of Thu, 29 Mar 2001 13:52:38 PST. Date: Thu, 29 Mar 2001 14:48:12 PST From: Vern Paxson *** EOOH *** To: John Tupper Subject: Re: flex bug Cc: wlestes@uncg.edu In-reply-to: Your message of Thu, 29 Mar 2001 13:52:38 PST. Date: Thu, 29 Mar 2001 14:48:12 PST From: Vern Paxson Argh, yes, you're right. This is (mis)feature interaction between %option yylineno and trailing context. I've cc'd Will Estes, who is trying out taking over flex maintenance / development. Will, I think the place to fix this is in finish_rule() in nfa.c, making it generate extra code to loop through the characters being put back and decrement yylineno accordingly. Vern > > --------------DC4CBAA5BA86BA0906373DD6 > Content-Type: text/plain; charset=us-ascii > Content-Transfer-Encoding: 7bit > > Vern, > Are you the right person to send this to? It's a groaner. . . > > If you define a rule with a trailing context and the trailing context > matches a newline, the newline gets counted twice (in yylineno), once in > the trailing context and once when its matched for real. > > Sample grammer: > > \/\* { begin(Comment); } > \*/[^/] { ; /* this rule is problematic */ } > [^\*]+ { ; } > \*\/ { begin(0); } > > The above grammer strips out C style comments. If a comment contains a > star at the end of a line, yylineno gets incremented twice. > > We used the obvious work around by adding a seperate rule to explicitly > match *\n without any trailing context, so we're not waiting for a fix. > > Oh yeah, we're using version 2.5.4. > > Thanks, > John Tupper > (john_tupper@tenornetworks.com) > > > --------------DC4CBAA5BA86BA0906373DD6 > Content-Type: text/html; charset=us-ascii > Content-Transfer-Encoding: 7bit > > > > Vern, >
  Are you the right person to send this to?  It's a groaner. > . . >

If you define a rule with a trailing context and the trailing context > matches a newline, the newline gets counted twice (in yylineno), once in > the trailing context and once when its matched for real. >

Sample grammer: >

\/\*               > { begin(Comment); } >
<Comment>\*/[^/]   { ; /* this rule is problematic > */ } >
<Comment>[^\*]+    { ; } >
<Comment>\*\/      { begin(0); } >

The above grammer strips out C style comments.  If a comment contains > a star at the end of a line, yylineno gets incremented twice. >

We used the obvious work around by adding a seperate rule to explicitly > match *\n without any trailing context, so we're not waiting for a fix. >

Oh yeah, we're using version 2.5.4. >

Thanks, >
John Tupper >
(john_tupper@tenornetworks.com) >
  > > --------------DC4CBAA5BA86BA0906373DD6-- >  1, answered,, X-Coding-System: nil Mail-from: From johnmillaway@yahoo.com Sun Apr 8 18:10:46 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id SAA06099 for ; Sun, 8 Apr 2001 18:10:46 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Sun, 08 Apr 2001 18:10:46 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f38Lr7e10030 for ; Sun, 8 Apr 2001 17:53:07 -0400 (EDT) Received: from web9407.mail.yahoo.com (web9407.mail.yahoo.com [216.136.129.23]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id RAA28292 for ; Sun, 8 Apr 2001 17:53:05 -0400 (EDT) Message-ID: <20010408215303.56462.qmail@web9407.mail.yahoo.com> Received: from [216.254.82.102] by web9407.mail.yahoo.com; Sun, 08 Apr 2001 14:53:03 PDT Date: Sun, 8 Apr 2001 14:53:03 -0700 (PDT) From: "John W. Millaway" Subject: Re: reentrant C scanner To: "W. L. Estes" In-Reply-To: <200104082000.QAA05847@michael.uncg.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii *** EOOH *** Date: Sun, 8 Apr 2001 14:53:03 -0700 (PDT) From: "John W. Millaway" Subject: Re: reentrant C scanner To: "W. L. Estes" In-Reply-To: <200104082000.QAA05847@michael.uncg.edu> Hi, (Sorry it took a while, my DSL went down again.) Here is a link to the diff, because my browser (Opera) doesn't do file-uploads properly. http://astro.temple.edu/~john43/flex_r.diff.gz I did not include a diff of skel.c, because it is built from flex.skl. I did a GNU diff, instead of CVS diff, because I had already modified flex before importing it into CVS... which means `cvs diff' won't work without some massaging. I'm no CVS expert, let me know if you have a solution. This all works, but is not finished. I want to test it with as many scanners as I can dig up. At some point, I'll submit a test directory and a "README.reenrant" as well as a modification of the texinfo docs. Briefly, the changes are these: 1. Added option "reentrant" (-R). 2. Added preprocessor directive: YY_REENTRANT. (and a few more related to this). 3. Added internal "struct yy_globals_t"; user-visible as "void*". 4. All global variables are conditionally eliminated and placed in the struct. 5. Nearly all functions conditionally take an additional argument. 6. yylex() is now yylex_r(void*) 7. All access to globals must be wrapped in YY_G() macro. 8. User may attach arbitrary data (void*) to the scanner, to maintain state. 9. New functions for using scanner: yy_init_r, yy_free_r; 10. Accessor functions to extract values from struct or globals. 11. Frequently accessed variables (yytext, yyleng, etc..) have macro shortcuts, (yytext_r, yyleng_r, etc.) which hide the internals from users building reentrant scanners. -John Millaway __________________________________________________ Do You Yahoo!? Get email at your own domain with Yahoo! Mail. http://personal.mail.yahoo.com/  1,, X-Coding-System: nil Mail-from: From johnmillaway@yahoo.com Sun Apr 8 19:16:58 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id TAA06140 for ; Sun, 8 Apr 2001 19:16:58 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Sun, 08 Apr 2001 19:16:58 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f38MwXe18411 for ; Sun, 8 Apr 2001 18:58:33 -0400 (EDT) Received: from web9402.mail.yahoo.com (web9402.mail.yahoo.com [216.136.129.108]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id SAA01092 for ; Sun, 8 Apr 2001 18:58:32 -0400 (EDT) Message-ID: <20010408225832.81903.qmail@web9402.mail.yahoo.com> Received: from [216.254.82.102] by web9402.mail.yahoo.com; Sun, 08 Apr 2001 15:58:32 PDT Date: Sun, 8 Apr 2001 15:58:32 -0700 (PDT) From: "John W. Millaway" Subject: Re: reentrant C scanner To: "W. L. Estes" In-Reply-To: <200104082224.SAA06112@michael.uncg.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii *** EOOH *** Date: Sun, 8 Apr 2001 15:58:32 -0700 (PDT) From: "John W. Millaway" Subject: Re: reentrant C scanner To: "W. L. Estes" In-Reply-To: <200104082224.SAA06112@michael.uncg.edu> > have downloaded this and will set aside time to read your patch this > week. Please download again, I fixed another bug. > > I did not include a diff of skel.c, because it is built from flex.skl. I did a > GNU> > ok. will remember this... Just do `./mkskel.sh skel.c` to rebuild it. > tag your current sources. > import the standard sources and give them another tag/branch name. > do a cvs diff explicitly between the two above. Will do. > that's the gut reaction. let me know if that works or if you have > troubles. But I need to prepare a publicly readable cvs archive anyway. Have you thought about sourceforge? > the scanner stuff is finished, yes? (sure, there will be bugs and > things to work out, but i am asking if the reentrant stuff is in place.) Yes, finished. But the changes were so widespread and there are so many options and directives that I'm sure something will break very soon. That's why a regression-test directory would be nice. > Go ahead and write the README. This is a good exercise--and usually > fairly easy to knock off. It can serve as a guide later on down the > road. OK. > To clarify, reentrant should probably not be a default behavior for > now. It is not. In fact, yacc/bison parsers won't call yylex_r()... something I'll work on later. > If it's ok with you, I'm going to forward your post on to > help-flex@gnu.org so the "community" can dig in too. Great. Please include my email address. Also, the community should really decide on the new API. I am wide open to suggestions. Currently, the new API allows a lexer to be backwards compatible, so that a working reentrant scanner should be able to be recompiled as a non-reentrant scanner, and everything will work just dandy on the inside. However, the syntax is not so pretty for the user. On the other hand, a reentrant scanner that is not meant to be backwards compatible has a cleaner API (fewer oddball macros). An example to illustrate: %option reentrant %s FOOBAR %% /* The line in each pair below do the same thing. But second of each pair is backwards-compatible. */ "call-func" { yy_push_state ( FOOBAR , yy_globals ); } "call-func" { yy_push_state ( FOOBAR YYCALL_LAST_ARG ); } "user-data" { printf( (char*) yyusr_r );} "user-data" { printf( (char*) yy_get_usr(YYCALL_ONLY_ARG));} "yyleng" { printf( "%s %d" , yy_text_r, yyleng_r ); } "yyleng" { printf( "%s %d" , YY_G(yy_text), YY_G(yyleng)); } %% main() { char* stuff = "user specific data."; void * mylexer; yy_init_r ( & mylexer ); /* Create the scanner. */ yy_set_usr( stuff, mylexer ); /* set user-defined stuff. */ while( 1 ) yylex_r ( lexer ); yy_free_r ( lexer ); } -John Millaway __________________________________________________ Do You Yahoo!? Get email at your own domain with Yahoo! Mail. http://personal.mail.yahoo.com/  1,, X-Coding-System: nil Mail-from: From johnmillaway@yahoo.com Sun Apr 8 20:12:39 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id UAA06162 for ; Sun, 8 Apr 2001 20:12:39 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Sun, 08 Apr 2001 20:12:39 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f38NsQe25613 for ; Sun, 8 Apr 2001 19:54:26 -0400 (EDT) Received: from web9406.mail.yahoo.com (web9406.mail.yahoo.com [216.136.129.22]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id TAA03391 for ; Sun, 8 Apr 2001 19:54:24 -0400 (EDT) Message-ID: <20010408235423.12509.qmail@web9406.mail.yahoo.com> Received: from [216.254.82.102] by web9406.mail.yahoo.com; Sun, 08 Apr 2001 16:54:23 PDT Date: Sun, 8 Apr 2001 16:54:23 -0700 (PDT) From: "John W. Millaway" Subject: Re: reentrant C scanner To: "W. L. Estes" In-Reply-To: <200104082224.SAA06112@michael.uncg.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii *** EOOH *** Date: Sun, 8 Apr 2001 16:54:23 -0700 (PDT) From: "John W. Millaway" Subject: Re: reentrant C scanner To: "W. L. Estes" In-Reply-To: <200104082224.SAA06112@michael.uncg.edu> I'm sure you haven't had time to look at it yet, but there are two other points I wanted to mention: 1. Once the reentrant scanner is working, there is no need for the non-reentrant scanner. The non-reentrant API can be built as a wrapper around the reentrant scanner. Much, much less code maintenance. I will happily do the conversion. 2. The reentrancy can be verified, in part, by running `nm -A -l' on a compiled scanner. `nm` is part of binutils and shows, among other things, the global variables. In the reentrant scanner, there should be none. -John Millaway PS - What is the mailing list? I guess I should subscribe! The gnu site says that there is currently no list for flex: http://www.gnu.org/software/flex/flex.html#lists __________________________________________________ Do You Yahoo!? Get email at your own domain with Yahoo! Mail. http://personal.mail.yahoo.com/  1, answered,, X-Coding-System: nil Mail-from: From vern@daffy.ee.lbl.gov Tue Apr 17 04:00:22 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id EAA31012 for ; Tue, 17 Apr 2001 04:00:21 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Tue, 17 Apr 2001 04:00:21 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3H7eqe08321 for ; Tue, 17 Apr 2001 03:40:52 -0400 (EDT) Received: from daffy.ee.lbl.gov (daffy.ee.lbl.gov [131.243.1.31]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA08895 for ; Tue, 17 Apr 2001 03:40:50 -0400 (EDT) Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f3H7eoW18946; Tue, 17 Apr 2001 00:40:50 -0700 (PDT) Message-Id: <200104170740.f3H7eoW18946@daffy.ee.lbl.gov> To: "Yuri Victorovich" Subject: Re: Flex comments Cc: wlestes@uncg.edu In-reply-to: Your message of Sun, 15 Apr 2001 22:47:37 PDT. Date: Tue, 17 Apr 2001 00:40:50 PDT From: Vern Paxson *** EOOH *** To: "Yuri Victorovich" Subject: Re: Flex comments Cc: wlestes@uncg.edu In-reply-to: Your message of Sun, 15 Apr 2001 22:47:37 PDT. Date: Tue, 17 Apr 2001 00:40:50 PDT From: Vern Paxson > One problem: how to eliminate the static variables without making it C++ > scanner with option -+? I do not want to introduce any of C++ into my > project and at the same time I use pthreads on FreeBSD. > > That would be a nice feature to have such an option. I agree it would be nice. I've cc'd Will Estes, who is trying out taking over flex maintenance / development. Vern  1, answered,, X-Coding-System: nil Mail-from: From yurivict@hotmail.com Tue Apr 17 10:42:56 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id KAA01266 for ; Tue, 17 Apr 2001 10:42:56 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Tue, 17 Apr 2001 10:42:56 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3HENMe01358 for ; Tue, 17 Apr 2001 10:23:22 -0400 (EDT) Received: from hotmail.com (f210.law12.hotmail.com [64.4.19.210]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id KAA06325 for ; Tue, 17 Apr 2001 10:23:21 -0400 (EDT) Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Tue, 17 Apr 2001 07:22:51 -0700 Received: from 194.158.212.99 by lw12fd.law12.hotmail.msn.com with HTTP; Tue, 17 Apr 2001 14:22:51 GMT X-Originating-IP: [194.158.212.99] From: "Yuri Victorovich" To: wlestes@uncg.edu Subject: Re: Flex comments Date: Tue, 17 Apr 2001 07:22:51 -0700 Mime-Version: 1.0 Content-Type: text/plain; format=flowed Message-ID: X-OriginalArrivalTime: 17 Apr 2001 14:22:51.0694 (UTC) FILETIME=[E2BCD4E0:01C0C749] *** EOOH *** From: "Yuri Victorovich" To: wlestes@uncg.edu Subject: Re: Flex comments Date: Tue, 17 Apr 2001 07:22:51 -0700 Will, Thank you for reply! I spent the whole day yesterday writing awk script to convert normal flex output to thread-safe form. If you do not have time or will need help with this work on flex -- I can do anything from research, programming to testing. Just let me know -- I digged into it to some extent already and will have some time in the coming weeks. Kind Regards, Yuri. >From: "W. L. Estes" >To: vern@ee.lbl.gov >CC: yurivict@hotmail.com >Subject: Re: Flex comments >Date: Tue, 17 Apr 2001 08:33:35 -0400 > > > > One problem: how to eliminate the static variables without making it >C++ > > > scanner with option -+? I do not want to introduce any of C++ into my > > > project and at the same time I use pthreads on FreeBSD. > > > > > > That would be a nice feature to have such an option. > > > > I agree it would be nice. I've cc'd Will Estes, who is trying out >taking > > over flex maintenance / development. > >Thanks for the suggestion. I'll look into what it will take to do >this. > >--Will _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com  1, answered,, X-Coding-System: nil Mail-from: From vern@daffy.ee.lbl.gov Tue Apr 17 12:34:26 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id MAA01409 for ; Tue, 17 Apr 2001 12:34:26 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Tue, 17 Apr 2001 12:34:26 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3HGFpe27457 for ; Tue, 17 Apr 2001 12:15:51 -0400 (EDT) Received: from daffy.ee.lbl.gov (daffy.ee.lbl.gov [131.243.1.31]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id MAA20041 for ; Tue, 17 Apr 2001 12:15:49 -0400 (EDT) Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f3HGFoP19785; Tue, 17 Apr 2001 09:15:50 -0700 (PDT) Message-Id: <200104171615.f3HGFoP19785@daffy.ee.lbl.gov> To: "W. L. Estes" Subject: Re: Flex comments In-reply-to: Your message of Tue, 17 Apr 2001 08:57:41 PDT. Date: Tue, 17 Apr 2001 09:15:50 PDT From: Vern Paxson *** EOOH *** To: "W. L. Estes" Subject: Re: Flex comments In-reply-to: Your message of Tue, 17 Apr 2001 08:57:41 PDT. Date: Tue, 17 Apr 2001 09:15:50 PDT From: Vern Paxson > If there is more detail in the original message, could you forward it > to me? That was the whole message. The basic problem that people run into is they want reentrant scanners, so no statics or global variables. The general strategy for this is to have a new yylex() interface in which the caller passes in a struct that has all of the otherwise-global variables. This is a bit tricky to do cleanly because you can't switch to that as *the* interface, of course, because it would break the existing API; which means you have to be able to generate two forms of the skeleton file, one for the existing API with the statics/globals, and one without them and the struct definition instead. There's probably some more discussion on this in the mail tarball I sent you - search for "reentrant". Vern  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Wed Apr 25 00:20:40 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id AAA22703 for ; Wed, 25 Apr 2001 00:20:40 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 25 Apr 2001 00:20:40 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3P403e01034 for ; Wed, 25 Apr 2001 00:00:03 -0400 (EDT) Received: from fencepost.gnu.org (we-refuse-to-spy-on-our-users@fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id AAA05202 for ; Wed, 25 Apr 2001 00:00:02 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14sGTC-0006Tm-00 for ; Wed, 25 Apr 2001 00:00:02 -0400 Received: from [203.199.199.50] (helo=banyannetworks.com) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14sGRt-0006Sr-00 for ; Tue, 24 Apr 2001 23:58:44 -0400 Received: from localhost (arasi@localhost) by banyannetworks.com (8.9.3/8.8.3) with ESMTP id JAA03208 for ; Wed, 25 Apr 2001 09:25:36 +0530 From: Avai Arasi To: help-flex@gnu.org Subject: Clarification Regarding Porting Flex and Bison to RTOS Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 09:25:36 +0530 (IST) *** EOOH *** From: Avai Arasi To: help-flex@gnu.org Subject: Clarification Regarding Porting Flex and Bison to RTOS Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 09:25:36 +0530 (IST) Hello, I am trying to port both Flex and Bison to a Real Time OS. I don't have the device options like the file which the Flex expects as input. In the place of the file i have a character pointer. How should I proceed with the parsing ? Is there any standard procedure for this porting ? If somebody has already done such a work can i have some hints please. Thank You. Regards, Avaiarasi Senior Engineer R & D Banyan Networks Pvt. Ltd. Chennai. _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Wed Apr 25 13:17:31 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id NAA23790 for ; Wed, 25 Apr 2001 13:17:31 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 25 Apr 2001 13:17:31 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3PGv2e04258 for ; Wed, 25 Apr 2001 12:57:02 -0400 (EDT) Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id MAA11157 for ; Wed, 25 Apr 2001 12:57:01 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14sSb8-00056g-00 for ; Wed, 25 Apr 2001 12:57:02 -0400 Received: from web9403.mail.yahoo.com ([216.136.129.109]) by fencepost.gnu.org with smtp (Exim 3.16 #1 (Debian)) id 14sSYq-00053W-00 for ; Wed, 25 Apr 2001 12:54:41 -0400 Message-ID: <20010425165439.64856.qmail@web9403.mail.yahoo.com> Received: from [216.254.82.102] by web9403.mail.yahoo.com; Wed, 25 Apr 2001 09:54:39 PDT From: "John W. Millaway" Subject: Bug: %option main overrides %option yywrap To: help-flex@gnu.org In-Reply-To: <200104251228.IAA23213@michael.uncg.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 09:54:39 -0700 (PDT) *** EOOH *** From: "John W. Millaway" Subject: Bug: %option main overrides %option yywrap To: help-flex@gnu.org In-Reply-To: <200104251228.IAA23213@michael.uncg.edu> Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 09:54:39 -0700 (PDT) Hello, There is a "bug" in the current version of flex (2.5.4) in which the %option [no]main unconditionally sets the %option [no]yywrap. I use the term "bug" hesitantly, because this behavior appears to be intentional. However, I can't think of any use for it other than to cause unexpected link errors when yywrap() is not found. Example: %option noyywrap /* Disable option yywrap. */ %option nomain /* Option yywrap is now enabled! */ One workaround is to always specify %option yywrap AFTER %option main. In general, if the user explicitly sets an option, then flex should either honor that setting, or report a conflict. The bug is in "scan.l" at line 247, and is undocumented. 244: lex-compat lex_compat = option_sense; 245: main { 246: action_define( "YY_MAIN", option_sense ); 247: do_yywrap = ! option_sense; 248: } 249: meta-ecs usemecs = option_sense; -John Millaway __________________________________________________ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/ _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Wed Apr 25 14:11:45 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id OAA23826 for ; Wed, 25 Apr 2001 14:11:44 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 25 Apr 2001 14:11:44 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3PHp7e27019 for ; Wed, 25 Apr 2001 13:51:07 -0400 (EDT) Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id NAA17880 for ; Wed, 25 Apr 2001 13:51:08 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14sTRT-0003QA-00 for ; Wed, 25 Apr 2001 13:51:07 -0400 Received: from web9404.mail.yahoo.com ([216.136.129.110]) by fencepost.gnu.org with smtp (Exim 3.16 #1 (Debian)) id 14sTQy-0003Pm-00 for ; Wed, 25 Apr 2001 13:50:36 -0400 Message-ID: <20010425175036.43329.qmail@web9404.mail.yahoo.com> Received: from [216.254.82.102] by web9404.mail.yahoo.com; Wed, 25 Apr 2001 10:50:36 PDT From: "John W. Millaway" Subject: Re: scaning from memory To: "alexandre.gouraud" , help-flex@gnu.org In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 10:50:36 -0700 (PDT) *** EOOH *** From: "John W. Millaway" Subject: Re: scaning from memory To: "alexandre.gouraud" , help-flex@gnu.org In-Reply-To: Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 10:50:36 -0700 (PDT) > I am trying to write a parser with flex/bison scaning strings > in memory, but I can't make it work. I am pretty sure it's a > common way of using flex, but I didn't find any example on the > web. (I have read the manual, of course). I have found several > times this question, but no answer. > I don't know where to put the yy_scan_string() statement. I > use the <> rule as last rule. And I have also modified > the prototype of the yylex function with > #define YY_DECL int yylex(YYSTYPE *lvalp,char *name) > where name is the string I want to parse. You should call yy_scan_string before calling yylex. Here are two examples: 1. In general: YY_BUFFER_STATE buf_state = yy_scan_string( str ); while( yylex() != 0 ) ; yy_delete_buffer(buf_state); 2. Your particular scanner: %{ #define YY_USER_INIT buf_state = yy_scan_string( name ); %} %% static YY_BUFFER_STATE buf_state; <> { yy_buffer_delete( buf_state ); yyterminate(); } %% -John __________________________________________________ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/ _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Wed Apr 25 14:41:58 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id OAA23852 for ; Wed, 25 Apr 2001 14:41:58 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 25 Apr 2001 14:41:58 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3PILLe10211 for ; Wed, 25 Apr 2001 14:21:21 -0400 (EDT) Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id OAA21692 for ; Wed, 25 Apr 2001 14:21:21 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14sTuj-0007Yw-00 for ; Wed, 25 Apr 2001 14:21:21 -0400 Received: from daffy.ee.lbl.gov ([131.243.1.31]) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14sTtm-0007Xg-00 for ; Wed, 25 Apr 2001 14:20:22 -0400 Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f3PIKJa19998; Wed, 25 Apr 2001 11:20:19 -0700 (PDT) Message-Id: <200104251820.f3PIKJa19998@daffy.ee.lbl.gov> To: "John W. Millaway" Cc: help-flex@gnu.org Subject: Re: Bug: %option main overrides %option yywrap In-reply-to: Your message of Wed, 25 Apr 2001 09:54:39 PDT. From: Vern Paxson Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 11:20:19 PDT *** EOOH *** To: "John W. Millaway" Cc: help-flex@gnu.org Subject: Re: Bug: %option main overrides %option yywrap In-reply-to: Your message of Wed, 25 Apr 2001 09:54:39 PDT. From: Vern Paxson Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 11:20:19 PDT > 245: main { > 246: action_define( "YY_MAIN", option_sense ); > 247: do_yywrap = ! option_sense; > 248: } I think I did that (which is documented in the manual, by the way) so that "%option main" would be a quick way to specify you want a bare-bones program for which you don't have to define any additional routines. I'd be disinclined to change it (though it's Will's call) because it's so easy to work around - just don't use "%option main", which is only saving you a few lines of code anyway. Vern _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Wed Apr 25 16:28:59 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id QAA23955 for ; Wed, 25 Apr 2001 16:28:59 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 25 Apr 2001 16:28:59 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3PK99e25951 for ; Wed, 25 Apr 2001 16:09:09 -0400 (EDT) Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id QAA05277 for ; Wed, 25 Apr 2001 16:09:08 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14sVb1-0005jV-00 for ; Wed, 25 Apr 2001 16:09:07 -0400 Received: from michael.uncg.edu ([152.13.5.20]) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14sVaJ-0005iu-00 for ; Wed, 25 Apr 2001 16:08:23 -0400 Received: (from wlestes@localhost) by michael.uncg.edu (8.9.3/8.9.3) id QAA23947; Wed, 25 Apr 2001 16:27:46 -0400 Message-Id: <200104252027.QAA23947@michael.uncg.edu> X-Authentication-Warning: michael.uncg.edu: wlestes set sender to wlestes@michael.uncg.edu using -f From: "W. L. Estes" To: vern@ee.lbl.gov CC: johnmillaway@yahoo.com, help-flex@gnu.org In-reply-to: <200104251820.f3PIKJa19998@daffy.ee.lbl.gov> (message from Vern Paxson on Wed, 25 Apr 2001 11:20:19 PDT) Subject: Re: Bug: %option main overrides %option yywrap References: <200104251820.f3PIKJa19998@daffy.ee.lbl.gov> Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 16:27:46 -0400 *** EOOH *** From: "W. L. Estes" To: vern@ee.lbl.gov CC: johnmillaway@yahoo.com, help-flex@gnu.org In-reply-to: <200104251820.f3PIKJa19998@daffy.ee.lbl.gov> (message from Vern Paxson on Wed, 25 Apr 2001 11:20:19 PDT) Subject: Re: Bug: %option main overrides %option yywrap Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Wed, 25 Apr 2001 16:27:46 -0400 > I think I did that (which is documented in the manual, by the way) so that > "%option main" would be a quick way to specify you want a bare-bones > program for which you don't have to define any additional routines. > I'd be disinclined to change it (though it's Will's call) because it's > so easy to work around - just don't use "%option main", which is only > saving you a few lines of code anyway. Additionally, flex.1 says the following: main directs flex to provide a default main() program for the scanner, which simply calls yylex(). This option implies noyywrap (see below). My sense is that Vern is correct: The right thing to do is to not use %option main if you want yywrap() to be under your control. Thanks, --Will _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Thu Apr 26 12:11:23 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id MAA25162 for ; Thu, 26 Apr 2001 12:11:22 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Thu, 26 Apr 2001 12:11:22 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3QFp6e21203 for ; Thu, 26 Apr 2001 11:51:06 -0400 (EDT) Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id LAA21348 for ; Thu, 26 Apr 2001 11:51:05 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14so2r-00043k-00 for ; Thu, 26 Apr 2001 11:51:05 -0400 Received: from [208.155.173.144] (helo=symbology.com) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14so2e-0003Dl-00 for ; Thu, 26 Apr 2001 11:50:53 -0400 Received: from Spooler by symbology.com (Mercury/32 v3.21c) ID MO003737; 26 Apr 01 10:52:43 -0500 Received: from spooler by symbology.com (Mercury/32 v3.21c); 26 Apr 01 10:52:29 -0500 Received: from grommit (10.0.0.74) by Symbology (Mercury/32 v3.21c) ID MG003736; 26 Apr 01 10:52:22 -0500 From: "Dave Dutcher" To: Subject: Suppress copying characters to yytext? Message-ID: <002501c0ce68$99b3ec40$4a00000a@symbology.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2910.0) X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Importance: Normal Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Thu, 26 Apr 2001 10:50:20 -0500 *** EOOH *** From: "Dave Dutcher" To: Subject: Suppress copying characters to yytext? Importance: Normal Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Thu, 26 Apr 2001 10:50:20 -0500 Hi, First off I was wondering if there is an official web site for Flex? Second, I would like to be able to have Flex use certain characters in a regular expression to match the expression but suppress copying the characters to yytext. A simple example would be if I was trying to match text surrounded by quotes, but I don't want to use the quotes. i.e. \"[^\n]\" { yylval = strdup(yytext); //This gives me the text and quotes. } or \"[^\n]\" { yylval = strdup(yytext+1); yylval[strlen(yylval)-1] = '\0'; //Now I've removed the quotes. } But since I'm lazy ;) I would like to be able to tell Flex not to copy the quotes. What I would like is an operator that would tell flex to match an expression but to not copy it to yytext. Off the top of my head maybe the # symbol could work for such an operator, so I could then do: \"#[^\n]\"# { yylval = strdup(yytext); //This would give me the text without the quotes. } Does anyone know if such a feature or something similar exists? If this doesn't exists would it be practical? Thanks, Dave Dutcher Software Engineer Symbology, Inc. Minneapolis, MN _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Thu Apr 26 12:26:26 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id MAA25203 for ; Thu, 26 Apr 2001 12:26:26 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Thu, 26 Apr 2001 12:26:26 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3QG63e27511 for ; Thu, 26 Apr 2001 12:06:03 -0400 (EDT) Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id MAA23192 for ; Thu, 26 Apr 2001 12:06:02 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14soHK-0004gM-00 for ; Thu, 26 Apr 2001 12:06:02 -0400 Received: from acp3bf.physik.rwth-aachen.de ([137.226.32.75]) by fencepost.gnu.org with smtp (Exim 3.16 #1 (Debian)) id 14soFe-0004cw-00 for ; Thu, 26 Apr 2001 12:04:18 -0400 Received: from localhost (broeker@localhost) by acp3bf.physik.rwth-aachen.de (8.7.5/v3.2) with ESMTP id SAA00797; Thu, 26 Apr 2001 18:04:09 +0200 X-Authentication-Warning: acp3bf.physik.rwth-aachen.de: broeker owned process doing -bs From: Hans-Bernhard Broeker X-Sender: broeker@acp3bf To: Dave Dutcher cc: help-flex@gnu.org Subject: Re: Suppress copying characters to yytext? In-Reply-To: <002501c0ce68$99b3ec40$4a00000a@symbology.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Thu, 26 Apr 2001 18:04:06 +0200 (MET DST) *** EOOH *** From: Hans-Bernhard Broeker To: Dave Dutcher cc: help-flex@gnu.org Subject: Re: Suppress copying characters to yytext? In-Reply-To: <002501c0ce68$99b3ec40$4a00000a@symbology.com> Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Thu, 26 Apr 2001 18:04:06 +0200 (MET DST) On Thu, 26 Apr 2001, Dave Dutcher wrote: > Second, I would like to be able to have Flex use certain characters in a > regular expression to match the expression but suppress copying the > characters to yytext. You can do that with a start condition and trailing context rules. I.e. roughly like this: \" BEGIN(IN_STRING) [^\n]*/\" { /* yytext is the interior of the string, now */ BEGIN(INITIAL) } -- Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de) Even if all the snow were burnt, ashes would remain. _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1, answered,, X-Coding-System: nil Mail-from: From johnmillaway@yahoo.com Wed Apr 25 18:52:08 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id SAA24103 for ; Wed, 25 Apr 2001 18:52:08 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Wed, 25 Apr 2001 18:52:08 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f3PMWQe07299 for ; Wed, 25 Apr 2001 18:32:26 -0400 (EDT) Received: from web9404.mail.yahoo.com (web9404.mail.yahoo.com [216.136.129.110]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id SAA23019 for ; Wed, 25 Apr 2001 18:32:24 -0400 (EDT) Message-ID: <20010425223059.65780.qmail@web9404.mail.yahoo.com> Received: from [216.254.82.102] by web9404.mail.yahoo.com; Wed, 25 Apr 2001 15:30:59 PDT Date: Wed, 25 Apr 2001 15:30:59 -0700 (PDT) From: "John W. Millaway" Subject: Re: Bug: %option main overrides %option yywrap To: "W. L. Estes" , vern@ee.lbl.gov Cc: help-flex@gnu.org In-Reply-To: <200104252027.QAA23947@michael.uncg.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii *** EOOH *** Date: Wed, 25 Apr 2001 15:30:59 -0700 (PDT) From: "John W. Millaway" Subject: Re: Bug: %option main overrides %option yywrap To: "W. L. Estes" , vern@ee.lbl.gov Cc: help-flex@gnu.org In-Reply-To: <200104252027.QAA23947@michael.uncg.edu> > Additionally, flex.1 says the following: > > main directs flex to provide a default main() program > for the scanner, which simply calls yylex(). This > option implies noyywrap (see below). I understand, and it makes sense. Just be aware that the inverse of this rule is also true -- %option nomain implies yywrap -- which makes much less sense. Of course, I only complain because it had me on one heck of a bug hunt. I had specified %option noyywrap and %option nomain, yet the linker complained that it couldn't find yywrap. I thought I had broken something! :) -John __________________________________________________ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/  1, answered,, X-Coding-System: nil Mail-from: From johnmillaway@yahoo.com Thu May 3 14:16:31 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id OAA09489 for ; Thu, 3 May 2001 14:16:31 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Thu, 03 May 2001 14:16:31 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f43Hv6q26933 for ; Thu, 3 May 2001 13:57:06 -0400 (EDT) Received: from web9406.mail.yahoo.com (web9406.mail.yahoo.com [216.136.129.22]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id NAA14179 for ; Thu, 3 May 2001 13:57:04 -0400 (EDT) Message-ID: <20010503175704.85520.qmail@web9406.mail.yahoo.com> Received: from [155.247.207.90] by web9406.mail.yahoo.com; Thu, 03 May 2001 10:57:04 PDT Date: Thu, 3 May 2001 10:57:04 -0700 (PDT) From: "John W. Millaway" Subject: Reentrant flex - progress update. To: "W. L. Estes" In-Reply-To: <200105011710.NAA02531@michael.uncg.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii *** EOOH *** Date: Thu, 3 May 2001 10:57:04 -0700 (PDT) From: "John W. Millaway" Subject: Reentrant flex - progress update. To: "W. L. Estes" In-Reply-To: <200105011710.NAA02531@michael.uncg.edu> Will, Progress update: This week is finals week. I'll send the tarballs soon. I made another, very minor, adjustment a few days ago: The integer yylineno will always be present in reentrant scanners, but only modified by flex if %option yylineno is enabled. Many scanners I have seen and built will disable %option yylineno, then declare an integer "lineno" to keep a line count anyway, (because the man page warns about the performance penalty of %option yylineno.) This way, reentrant flex provides support for users who wish to maintain their own linecount. /* just like 'wc -l' */ %option reentrant noyylineno main %% yylineno_r = 1; \n yylineno_r++; . { } <> printf( "%7d", yylineno_r); Another important note: As far as I know, none of my modifications should have any effect on NON-reentrant scanners. In fact, I believe compiled scanners generated with the previous version should be binary equivalent to non-reentrant scanners generated with the new version. I have not verified this, but if they are not, then I may have made an oversight. -John Millaway __________________________________________________ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Fri May 4 14:36:27 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id OAA13535 for ; Fri, 4 May 2001 14:36:27 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Fri, 04 May 2001 14:36:27 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f44II5q04369 for ; Fri, 4 May 2001 14:18:05 -0400 (EDT) Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id OAA14696 for ; Fri, 4 May 2001 14:18:04 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14vk9T-00065Q-00 for ; Fri, 04 May 2001 14:18:03 -0400 Received: from web9401.mail.yahoo.com ([216.136.129.107]) by fencepost.gnu.org with smtp (Exim 3.16 #1 (Debian)) id 14vk7I-0005Hj-00 for ; Fri, 04 May 2001 14:15:48 -0400 Message-ID: <20010504181547.55844.qmail@web9401.mail.yahoo.com> Received: from [155.247.207.90] by web9401.mail.yahoo.com; Fri, 04 May 2001 11:15:47 PDT From: "John W. Millaway" Subject: Why is YY_BUF_SIZE not override-able? To: help-flex@gnu.org In-Reply-To: <20010430181855.46942.qmail@web9407.mail.yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Fri, 4 May 2001 11:15:47 -0700 (PDT) *** EOOH *** From: "John W. Millaway" Subject: Why is YY_BUF_SIZE not override-able? To: help-flex@gnu.org In-Reply-To: <20010430181855.46942.qmail@web9407.mail.yahoo.com> Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Fri, 4 May 2001 11:15:47 -0700 (PDT) Hi, Most everything can be overridden by the user. However the size of the input buffer, YY_BUF_SIZE, is fixed. Is there a reason why YY_BUF_SIZE can't be overridden? Let's say I knew that all my tokens will match under 80 characters plus newlines, plus nulls, plus flex-flags... I might decide to set YY_BUF_SIZE to 100. -John __________________________________________________ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/ _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1, answered,, X-Coding-System: nil Mail-from: From johnmillaway@yahoo.com Fri May 4 15:44:19 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id PAA13788 for ; Fri, 4 May 2001 15:44:19 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Fri, 04 May 2001 15:44:19 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f44JPXq26400 for ; Fri, 4 May 2001 15:25:33 -0400 (EDT) Received: from web9407.mail.yahoo.com (web9407.mail.yahoo.com [216.136.129.23]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id PAA21302 for ; Fri, 4 May 2001 15:25:31 -0400 (EDT) Message-ID: <20010504192531.73966.qmail@web9407.mail.yahoo.com> Received: from [155.247.207.90] by web9407.mail.yahoo.com; Fri, 04 May 2001 12:25:31 PDT Date: Fri, 4 May 2001 12:25:31 -0700 (PDT) From: "John W. Millaway" Subject: Reentrant flex - test results. To: "W. L. Estes" In-Reply-To: <200105031914.PAA09683@michael.uncg.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii *** EOOH *** Date: Fri, 4 May 2001 12:25:31 -0700 (PDT) From: "John W. Millaway" Subject: Reentrant flex - test results. To: "W. L. Estes" In-Reply-To: <200105031914.PAA09683@michael.uncg.edu> My concerns are this: 1. The build relies on bison or yacc. Is this intentional? Why not include the parse.c and parse.h in the dist? 2. The TESTS/ "make check" stops at the first error. I'm thinking it may not be what we want. The change is simple: Omit the "|| exit -1" part from the commands in TESTS/Makefile.in. 3. Since I'm not the autoconf guru, I couldn't find a cleaner way to do all the tests. So I just used a /bin/sh loop in the TESTS/Makefile.in. __________________________________________________ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/  1,, X-Coding-System: nil Mail-from: From johnmillaway@yahoo.com Fri May 4 15:56:22 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id PAA13813 for ; Fri, 4 May 2001 15:56:22 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Fri, 04 May 2001 15:56:22 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f44JbZq00252 for ; Fri, 4 May 2001 15:37:35 -0400 (EDT) Received: from web9406.mail.yahoo.com (web9406.mail.yahoo.com [216.136.129.22]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id PAA22444 for ; Fri, 4 May 2001 15:37:33 -0400 (EDT) Message-ID: <20010504193731.93040.qmail@web9406.mail.yahoo.com> Received: from [155.247.207.90] by web9406.mail.yahoo.com; Fri, 04 May 2001 12:37:31 PDT Date: Fri, 4 May 2001 12:37:31 -0700 (PDT) From: "John W. Millaway" Subject: Re: Reentrant flex - progress update. To: "W. L. Estes" In-Reply-To: <200105041912.PAA13694@michael.uncg.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii *** EOOH *** Date: Fri, 4 May 2001 12:37:31 -0700 (PDT) From: "John W. Millaway" Subject: Re: Reentrant flex - progress update. To: "W. L. Estes" In-Reply-To: <200105041912.PAA13694@michael.uncg.edu> > Do you think your test suite is complete? or is it just reasonably > thorough? (i.e. if someone thinks a feature isn't tested, should that > be a bug?) No, it is by no means complete. Yes, missing feature tests are bugs of a sort. The test suite was designed to cope with all the possible build configurations of a generated scanner, while developing flex itself. I didn't want to modify or add one feature, but break another. The breakage would easily go unnoticed. >From the top of my head, I didn't test %array, REJECT, and yy_set_bol, because I plain forgot about them. I didn't test the C++ option because it is broken AFAIK. All of the tests came in handy at one point or another during the past month, though. __________________________________________________ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/  1, answered,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Sat May 5 03:45:30 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA14343 for ; Sat, 5 May 2001 03:45:30 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Sat, 05 May 2001 03:45:30 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f457R2q28664 for ; Sat, 5 May 2001 03:27:02 -0400 (EDT) Received: from fencepost.gnu.org (we-refuse-to-spy-on-our-users@fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA13852 for ; Sat, 5 May 2001 03:27:02 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14vwT0-0007qN-00 for ; Sat, 05 May 2001 03:27:02 -0400 Received: from daffy.ee.lbl.gov ([131.243.1.31]) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 14vwQr-0007nj-00 for ; Sat, 05 May 2001 03:24:49 -0400 Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f457Ol523882; Sat, 5 May 2001 00:24:47 -0700 (PDT) Message-Id: <200105050724.f457Ol523882@daffy.ee.lbl.gov> To: "John W. Millaway" Cc: help-flex@gnu.org Subject: Re: Why is YY_BUF_SIZE not override-able? In-reply-to: Your message of Fri, 04 May 2001 11:15:47 PDT. From: Vern Paxson Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Sat, 05 May 2001 00:24:46 PDT *** EOOH *** To: "John W. Millaway" Cc: help-flex@gnu.org Subject: Re: Why is YY_BUF_SIZE not override-able? In-reply-to: Your message of Fri, 04 May 2001 11:15:47 PDT. From: Vern Paxson Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Sat, 05 May 2001 00:24:46 PDT > Most everything can be overridden by the user. However the size of the input > buffer, YY_BUF_SIZE, is fixed. Is there a reason why YY_BUF_SIZE can't be > overridden? I don't remember offhand why I didn't make it redefinable, but note that you can effect smaller buffer sizes using yy_create_buffer(). Vern _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Mon May 21 05:59:38 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id FAA13870 for ; Mon, 21 May 2001 05:59:38 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Mon, 21 May 2001 05:59:38 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f4L9d5q15741 for ; Mon, 21 May 2001 05:39:05 -0400 (EDT) Received: from fencepost.gnu.org (we-refuse-to-spy-on-our-users@fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id FAA22405 for ; Mon, 21 May 2001 05:39:06 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 151m9W-000616-00 for ; Mon, 21 May 2001 05:39:02 -0400 Received: from [202.54.26.202] (helo=hindon.hss.co.in) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 151m7z-0005xX-00 for ; Mon, 21 May 2001 05:37:27 -0400 Received: from hsssun01.hss.hns.com (localhost [127.0.0.1]) by hindon.hss.co.in (8.10.0/8.10.0) with ESMTP id f4L9cb501756 for ; Mon, 21 May 2001 15:08:38 +0530 (IST) Received: from sampark.hss.hns.com (sampark [139.85.229.22]) by hsssun01.hss.hns.com (8.10.0/8.10.0) with SMTP id f4L9kWY10057 for ; Mon, 21 May 2001 15:16:45 +0530 (IST) Received: by sampark.hss.hns.com(Lotus SMTP MTA Internal build v4.6.2 (651.2 6-10-1998)) id 65256A53.0034A297 ; Mon, 21 May 2001 15:04:54 +0530 X-Lotus-FromDomain: HSSBLR From: kbinu@hss.hns.com To: help-flex@gnu.org cc: crajasri@hss.hns.com Message-ID: <65256A53.0034A096.00@sampark.hss.hns.com> Subject: Enhancements in flex for error handling Mime-Version: 1.0 Content-type: text/plain; charset=us-ascii Content-Disposition: inline Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Mon, 21 May 2001 14:55:56 +0530 *** EOOH *** From: kbinu@hss.hns.com To: help-flex@gnu.org cc: crajasri@hss.hns.com Subject: Enhancements in flex for error handling Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Mon, 21 May 2001 14:55:56 +0530 Hi We have been using flex generated scanners for a project. In our application, we need to ensure that the application does not exit on system errors including memory allocation failures. For errors that might occur while the scanner allocates memory, we thought we would re-define YY_FATAL_ERROR to something like #define YY_FATAL_ERROR(x) return (error_indication=x, 0) where error_indication is a global that I would check after the lexer returns. This however is not feasible since YY_FATAL_ERROR is used in functions called within yylex. Some of these do not return values. Also yylex doesn't check if the called function encountered errors. Is there any plan to enhance flex to return cleanly from yylex instead of using exit() ? If not, any references on how to go about modifying the skeleton scanner for this feature ? -Binu _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Mon May 21 12:35:41 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id MAA14455 for ; Mon, 21 May 2001 12:35:41 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Mon, 21 May 2001 12:35:41 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f4LGF4q14830 for ; Mon, 21 May 2001 12:15:05 -0400 (EDT) Received: from fencepost.gnu.org (we-refuse-to-spy-on-our-users@fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id MAA05855 for ; Mon, 21 May 2001 12:15:04 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 151sKm-0003HU-00 for ; Mon, 21 May 2001 12:15:04 -0400 Received: from web9407.mail.yahoo.com ([216.136.129.23]) by fencepost.gnu.org with smtp (Exim 3.16 #1 (Debian)) id 151sIL-0003CL-00 for ; Mon, 21 May 2001 12:12:33 -0400 Message-ID: <20010521161232.55864.qmail@web9407.mail.yahoo.com> Received: from [216.254.82.102] by web9407.mail.yahoo.com; Mon, 21 May 2001 09:12:32 PDT From: "John W. Millaway" Subject: Re: Enhancements in flex for error handling To: kbinu@hss.hns.com, help-flex@gnu.org Cc: crajasri@hss.hns.com In-Reply-To: <65256A53.0034A096.00@sampark.hss.hns.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Mon, 21 May 2001 09:12:32 -0700 (PDT) *** EOOH *** From: "John W. Millaway" Subject: Re: Enhancements in flex for error handling To: kbinu@hss.hns.com, help-flex@gnu.org Cc: crajasri@hss.hns.com In-Reply-To: <65256A53.0034A096.00@sampark.hss.hns.com> Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Mon, 21 May 2001 09:12:32 -0700 (PDT) > using exit() ? If not, any references on how to go about modifying the > skeleton scanner for this feature ? You might get away with something like this (without having to modify the skeleton code): yyerror sets a flag, then resets the scanner, pointing the input to /dev/null. The parser will have to check the error flag, of course. -John __________________________________________________ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/ _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Mon Jun 4 11:26:56 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id LAA07669 for ; Mon, 4 Jun 2001 11:26:55 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Mon, 04 Jun 2001 11:26:55 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.email.uncg.edu (8.11.0/8.11.0) with ESMTP id f54F63q16735 for ; Mon, 4 Jun 2001 11:06:03 -0400 (EDT) Received: from fencepost.gnu.org (we-refuse-to-spy-on-our-users@fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id LAA00743 for ; Mon, 4 Jun 2001 11:06:02 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 156vve-0003bF-00 for ; Mon, 04 Jun 2001 11:06:02 -0400 Received: from mx1.thebiz.net ([216.238.0.20]) by fencepost.gnu.org with smtp (Exim 3.16 #1 (Debian)) id 156vtP-0003Xd-00 for ; Mon, 04 Jun 2001 11:03:43 -0400 Received: (qmail 14188 invoked from network); 4 Jun 2001 11:03:40 -0400 Received: from mail2.backend.thebiz.net (HELO mail2.thebiz.net) (172.16.0.129) by mx1.backend.thebiz.net with SMTP; 4 Jun 2001 11:03:40 -0400 Received: (qmail 26039 invoked by uid 0); 4 Jun 2001 11:03:39 -0400 Received: from unknown (HELO abit) (216.238.78.51) by mail.ulster.net with SMTP; 4 Jun 2001 11:03:39 -0400 Message-ID: <006701c0ed07$fcefc5a0$0400a8c0@abit> From: "Bill Fenlason" To: Subject: FLEX <> with yymore() token MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.3018.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.3018.1300 Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Mon, 4 Jun 2001 11:06:52 -0400 *** EOOH *** From: "Bill Fenlason" To: Subject: FLEX <> with yymore() token Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Mon, 4 Jun 2001 11:06:52 -0400 I posted part of this question to comp.compilers, and John Millaway pointed me here. Thanks John. I've read the archives but did not see this topic discussed. In FLEX, the current buffer is flushed immediately when EOF is encountered, even if it contains a token pushed by yymore(). That means that something like: <>{If (yyleng > 0) return(A_TOKEN) .... } fails, because yyleng may be non-zero but yytext is null. The token is copied to the start of the buffer but is then overwritten by the buffer flush (via yyrestart). I modified the skeleton to check this out. If the call to yyrestart is bypassed (OK in my case), the problem partly goes away. Is this a bug or an unintended byproduct? The core issue relates to <> and what actions after <> are allowed. <> is logically a state rather than a token, and the null return (after yywrap) makes perfect sense to me. The comment in the code about a repeated call returning null again also makes sense, but it seems to me that allowing the return of a residual token (pushed by yymore) would be appropriate. I realize the difficulty in trying to allow <> as right context in a pattern, and I had hoped to accomplish the same thing via the <> rules. Currently at <> yyleng is set to 1 plus the yymore length, and I would propose that it should be set to the yymore length only (usually 0). The scan has to rely on the trailing null in the buffer to identify the <> state, but should it be treated as an actual token? (In the case above I needed to use --yyleng.) I understand the need to reset the buffer in case the user has changed yyin. The man page specifies that repeated calls after EOF are undefined. Would defining them such that zero additional characters are matched and that null is returned be an improvement? Should the calculation of yyleng at <> be changed? Should there be a change regarding the buffer flush to allow the residual token to be returned? My case involves recognizing identifiers which may contain extralingual characters defined at runtime. Thank you. Bill Fenlason _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1, answered,, X-Coding-System: nil Mail-from: From BillFen@Ulster.Net Sun Jun 10 13:20:00 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id NAA02104 for ; Sun, 10 Jun 2001 13:20:00 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Sun, 10 Jun 2001 13:20:00 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.uncg.edu (8.11.0/8.11.0) with ESMTP id f5AHIPs03250 for ; Sun, 10 Jun 2001 13:18:25 -0400 (EDT) Received: from mx1.thebiz.net (mx1.thebiz.net [216.238.0.20]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id NAA27551 for ; Sun, 10 Jun 2001 13:18:24 -0400 (EDT) Received: (qmail 24543 invoked from network); 10 Jun 2001 13:18:24 -0400 Received: from unknown (HELO mail2.thebiz.net) (172.16.0.129) by mx1.backend.thebiz.net with SMTP; 10 Jun 2001 13:18:24 -0400 Received: (qmail 29926 invoked by uid 0); 10 Jun 2001 13:18:23 -0400 Received: from unknown (HELO abit) (216.238.78.51) by mail.ulster.net with SMTP; 10 Jun 2001 13:18:23 -0400 Message-ID: <00f301c0f1d1$bb1ef140$0400a8c0@abit> From: "Bill Fenlason" To: Subject: FLEX modifications Date: Sun, 10 Jun 2001 13:21:02 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.3018.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.3018.1300 *** EOOH *** From: "Bill Fenlason" To: Subject: FLEX modifications Date: Sun, 10 Jun 2001 13:21:02 -0400 Hello Will, Are you currently the one responsible for FLEX development and maint? I saw you pointed to in the FLEX help archives. Since no one has commented on my recent message regarding yymore() and <>, I though I would send you a note directly. Are you interested in a patch and documentation changes? I'll be happy to develop them and send them to you. It will be some work for me since I would want to be sure that everything is bulletproof. But I don't want to spend the time on it if there is no agreement that the change is both needed and wanted. The reason I'm implementing this is that the parser interface routine I'm developing builds a token chain that includes tokens for missing ending delimiters (comment ends, quotes, parens, etc, as well as include file end identifiers. It is convenient to keep generating zero length tokens at <> to handle this, with the final YY_NULL being delayed until nothing is outstanding or pushed with yymore(). Leaving repeated calls after EOF as undefined and undocumented seems to me to be a loose end that might well be clarified. I think that my approach makes sense in general, and had hoped that others more experienced with FLEX would point out some pros and cons. I have some other topics to ask about along with some suggestions, and it will be helpful to know if you are interested in this or other changes and additions to FLEX. I'll be using a modified skeleton in any event so I'm not dependent (or asking for) any "official" changes. But FLEX is a wonderful tool, and I wouldn't mind contributing something to it if I am able to. Thanks. Bill Fenlason ps I assume that Vern is a very busy guy so I have not written to him. But feel free to forward this to him if you think it appropriate.  1, answered,, Summary-line: 10-Jun BillFen@Ulster.Net [121] #Re: FLEX modifications X-Coding-System: nil Mail-from: From BillFen@Ulster.Net Sun Jun 10 20:30:13 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id UAA02667 for ; Sun, 10 Jun 2001 20:30:13 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Sun, 10 Jun 2001 20:30:13 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.uncg.edu (8.11.0/8.11.0) with ESMTP id f5B0SGs07342 for ; Sun, 10 Jun 2001 20:28:16 -0400 (EDT) Received: from mx1.thebiz.net (mx1.thebiz.net [216.238.0.20]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id UAA12568 for ; Sun, 10 Jun 2001 20:28:17 -0400 (EDT) Received: (qmail 24345 invoked from network); 10 Jun 2001 20:28:15 -0400 Received: from unknown (HELO mail2.thebiz.net) (172.16.0.129) by mx1.backend.thebiz.net with SMTP; 10 Jun 2001 20:28:15 -0400 Received: (qmail 3989 invoked by uid 0); 10 Jun 2001 20:28:13 -0400 Received: from unknown (HELO abit) (216.238.78.51) by mail.ulster.net with SMTP; 10 Jun 2001 20:28:13 -0400 Message-ID: <001201c0f20d$eb553360$0400a8c0@abit> From: "Bill Fenlason" To: "W. L. Estes" References: <00f301c0f1d1$bb1ef140$0400a8c0@abit> <200106101934.PAA02280@michael.uncg.edu> Subject: Re: FLEX modifications Date: Sun, 10 Jun 2001 20:31:55 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.3018.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.3018.1300 *** EOOH *** From: "Bill Fenlason" To: "W. L. Estes" Subject: Re: FLEX modifications Date: Sun, 10 Jun 2001 20:31:55 -0400 Will, Thanks for responding, and for pointing out that I could keep track of the paired delimiter state in the calling program - certainly a reasonable question. I decided against that approach primarily because I didn't want to complicate the calling program unnecessarily. I found that treating this as a scanning function allowed the overall coding to be smaller and more reasonable. For example, I handle nested comments, and the scanner needs to use separate start conditions. The nesting level needs to be maintained for that any way, so using additional calls after eof makes it really simple - I just return the zero length "missing delimeter" tokens and decrease the nesting level. When it reaches zero I go back to the base state and YY_NULL is returned. All in all, trying to keep track in both places is a duplication. But that does not explain the yymore() issue. The language I'm scanning (PL/I) allows identifier name characters to be specified at runtime. The feature is to support foreign language keyboards etc. So the problem is how to scan them? I don't want to force the calling program to paste parts of a word together, and I have to test any non conventional character (i.e. 128-255) to determine if it is a name character or not. My solution is to yymore() each word, and either append a valid extralingual character or return the word. Works great, except at EOF. I don't want to depend on a trailing NL character, although it would be present almost all of the time. (After 35 years of programming, I've learned the value of making things bulletproof 8:-). Finally, the actions at eof I'm proposing just "feel right". I hope after some reflection you come to the same conclusion. I'll be glad to go into lots more detail in case you have any fine points to consider. The next few issues I have relate to providing assistance for unlimied include file nesting, and how to assist with token location information (yylineno and offset) without having the performance robbing rescan for NL. Also I'd like to kick around some ideas related to gen.c and skeletons. Would you rather that I discuss these things with you directly, or should I use the list? I don't know the balance between knowledgeable programmers and developers, and users in the list membership. I would like a healthy discussion on these ideas and questions but I wouldn't want to add inappropriate things to the list. Thanks again - hope this is not taking too much of your time. Bill Fenlason ps. a snapshot would be great! ----- Original Message ----- From: W. L. Estes To: BillFen@Ulster.Net Sent: Sunday, June 10, 2001 3:34 PM Subject: Re: FLEX modifications > Are you currently the one responsible for FLEX development and maint? I saw > you pointed to in the FLEX help archives. yes. :) > Since no one has commented on my recent message regarding yymore() and > <>, I though I would send you a note directly. > > Are you interested in a patch and documentation changes? I'll be happy to > develop them and send them to you. It will be some work for me since I > would want to be sure that everything is bulletproof. But I don't want to > spend the time on it if there is no agreement that the change is both needed > and wanted. On first reading of your message, I thought that I needed to think about what you were asking. Unfortunately, you got put way down in the queue. > The reason I'm implementing this is that the parser interface routine I'm > developing builds a token chain that includes tokens for missing ending > delimiters (comment ends, quotes, parens, etc, as well as include file end > identifiers. It is convenient to keep generating zero length tokens at > <> to handle this, with the final YY_NULL being delayed until nothing > is outstanding or pushed with yymore(). Leaving repeated calls after EOF as > undefined and undocumented seems to me to be a loose end that might well be > clarified. I think that my approach makes sense in general, and had hoped > that others more experienced with FLEX would point out some pros and cons. devil's advocate question: why not just keep track of your state and compare: e.g. if (eof && !closed_delim_state)... > I have some other topics to ask about along with some suggestions, and it > will be helpful to know if you are interested in this or other changes and > additions to FLEX. I'm always interested in suggestions, patches etc. please note: i'm not saying no to your idea above, i'm just asking you to explain it to me better--because i'm not quite getting what you're saying. > I'll be using a modified skeleton in any event so I'm not dependent (or > asking for) any "official" changes. But FLEX is a wonderful tool, and I > wouldn't mind contributing something to it if I am able to. Certainly. If you'd like my current sources (which have migrated quite a bit since Vern's last 2.5.4 release), let me know. you can have a copy of the cvs repository or a snapshot of the current tree. and what is your need for a modified skeleton? (i.e. is that something which might be of use to the general flex user?) > Thanks. --Will  1, answered,, Summary-line: 15-Jun BillFen@Ulster.Net [66] #Re: FLEX modifications X-Coding-System: nil Mail-from: From BillFen@Ulster.Net Fri Jun 15 15:22:34 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id PAA05265 for ; Fri, 15 Jun 2001 15:22:33 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Fri, 15 Jun 2001 15:22:33 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.uncg.edu (8.11.0/8.11.0) with ESMTP id f5FJKjs04809 for ; Fri, 15 Jun 2001 15:20:45 -0400 (EDT) Received: from mx3.thebiz.net (mx3.thebiz.net [216.238.0.22]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id PAA05329 for ; Fri, 15 Jun 2001 15:20:45 -0400 (EDT) Received: (qmail 34351 invoked from network); 15 Jun 2001 15:19:39 -0400 Received: from unknown (172.16.0.72) by mx3.backend.thebiz.net with QMQP; 15 Jun 2001 15:19:39 -0400 Received: from unknown (HELO abit) (216.238.78.36) by mail.ulster.net with SMTP; 15 Jun 2001 15:19:39 -0400 Message-ID: <001901c0f5d0$a7080fe0$0400a8c0@abit> From: "Bill Fenlason" To: "W. L. Estes" References: <00f301c0f1d1$bb1ef140$0400a8c0@abit> <200106101934.PAA02280@michael.uncg.edu> Subject: Re: FLEX modifications Date: Fri, 15 Jun 2001 15:23:25 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.3018.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.3018.1300 *** EOOH *** From: "Bill Fenlason" To: "W. L. Estes" Subject: Re: FLEX modifications Date: Fri, 15 Jun 2001 15:23:25 -0400 Hello Will, I assume that you have not had time to get to my last note, or perhaps it is just too far down in the queue. This one will keep it company 8-). There are two lines of code that I've added to the skeleton which seem to solve the problem of repeated calls at end of file and the yymore() situation. I'll briefly describe them so you can decide if you would like to consider including them. This is below the yywrap() test, near: case EOB_ACT_END_OF_FILE: yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yyleng = YY_MORE_ADJ; /* <== Added Line */ As the related comment described, yytext was carefully set up. This line sets up yyleng as for a normal token. The value will be the length of any yymore() token (normally zero), which is the difference between the current buffer pointer and the current text pointer. The code after the match is made sets he length to one greater because of the double null EOB marker. --yyleng will work as well. The second change is in the yy_get_next_buffer routine: ret_val = EOB_ACT_END_OF_FILE; /* <== Inserted if condition ==> */ if ( yyin != yy_current_buffer->yy_input_file || yy_current_buffer-> yy_buffer_status == YY_BUFFER_NEW) yyrestart( yyin ); It makes the restart conditional on a change of the yyin address or a newly created buffer. It is not exactly the way I would like it, but it is not unreasonable. I can understand the desire to allow the user to just reassign yyin within an <> rule, but I think the earlier version approach of requiring the user to issue YY_NEW_FILE is more orderly. The philosophical issue is if EOF is a persistent state or if a recall after it should automatically imply that a new file is being provided. Both sides of the argument can have advantages for the user and I had hoped for some discussion of the point in case there is something that I don't understand about it. I'm still testing and researching the code and will let you know if I find anything else necessary - I need to more fully check the input() routine. I spent a while checking both the skeleton logic and the various alternatives generated within gen.c. Hopefully I didn't miss anything. . Bill Fenlason  1, answered,, X-Coding-System: nil Mail-from: From vern@daffy.ee.lbl.gov Sun Jun 17 03:08:59 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA06939 for ; Sun, 17 Jun 2001 03:08:58 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Sun, 17 Jun 2001 03:08:58 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.uncg.edu (8.11.0/8.11.0) with ESMTP id f5H76cs21638 for ; Sun, 17 Jun 2001 03:06:38 -0400 (EDT) Received: from daffy.ee.lbl.gov (daffy.ee.lbl.gov [131.243.1.31]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA19164 for ; Sun, 17 Jun 2001 03:06:38 -0400 (EDT) Received: (from vern@localhost) by daffy.ee.lbl.gov (8.10.0/8.10.0) id f5H76So24900; Sun, 17 Jun 2001 00:06:28 -0700 (PDT) Message-Id: <200106170706.f5H76So24900@daffy.ee.lbl.gov> To: Theo de Raadt Subject: Re: lex license Cc: wlestes@uncg.edu In-reply-to: Your message of Sat, 02 Jun 2001 13:15:37 PDT. Date: Sun, 17 Jun 2001 00:06:28 PDT From: Vern Paxson *** EOOH *** To: Theo de Raadt Subject: Re: lex license Cc: wlestes@uncg.edu In-reply-to: Your message of Sat, 02 Jun 2001 13:15:37 PDT. Date: Sun, 17 Jun 2001 00:06:28 PDT From: Vern Paxson > Specifically, this license does not grant modification > rights -- which must be explicitly granted under copyright law. Yes, this came up a while ago, and I put together a flex release with a modified copyright that begins: Redistribution and use in source and binary forms, with or without modification, are permitted provided that: However, that version didn't get fully integrated into the sources I sent to Will. It's in the COPYING file but not in the individual source files, just because I hadn't gotten around to it. Will, feel free to update the copyrights in each of the files with the one in COPYING. Vern  1,, X-Coding-System: nil Mail-from: From help-flex-admin@gnu.org Sun Jun 17 13:08:17 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id NAA08097 for ; Sun, 17 Jun 2001 13:08:17 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Sun, 17 Jun 2001 13:08:17 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.uncg.edu (8.11.0/8.11.0) with ESMTP id f5HH62s28053 for ; Sun, 17 Jun 2001 13:06:02 -0400 (EDT) Received: from fencepost.gnu.org (we-refuse-to-spy-on-our-users@fencepost.gnu.org [199.232.76.164]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id NAA09353 for ; Sun, 17 Jun 2001 13:06:02 -0400 (EDT) Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian)) id 15Bfzu-0005ly-00 for ; Sun, 17 Jun 2001 13:06:02 -0400 Received: from web9406.mail.yahoo.com ([216.136.129.22]) by fencepost.gnu.org with smtp (Exim 3.16 #1 (Debian)) id 15BfxJ-0005iZ-00 for ; Sun, 17 Jun 2001 13:03:21 -0400 Message-ID: <20010617170320.76960.qmail@web9406.mail.yahoo.com> Received: from [205.197.108.252] by web9406.mail.yahoo.com; Sun, 17 Jun 2001 10:03:20 PDT From: "John W. Millaway" Subject: Re: yylineno To: Bill Fenlason Cc: help-flex@gnu.org In-Reply-To: <001601c0f6ce$b174eda0$0400a8c0@abit> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: help-flex-admin@gnu.org Errors-To: help-flex-admin@gnu.org X-BeenThere: help-flex@gnu.org X-Mailman-Version: 2.0.5 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Sun, 17 Jun 2001 10:03:20 -0700 (PDT) *** EOOH *** From: "John W. Millaway" Subject: Re: yylineno To: Bill Fenlason Cc: help-flex@gnu.org In-Reply-To: <001601c0f6ce$b174eda0$0400a8c0@abit> Sender: help-flex-admin@gnu.org Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for Flex, the GNU lexical analyser generator List-Unsubscribe: , List-Archive: Date: Sun, 17 Jun 2001 10:03:20 -0700 (PDT) > How do you (or would you) keep track of the token offset within the line? > By this, do you mean the "column"? If your tokens do not span lines, then you can use yyleng. If the tokens do span lines, then you have to rescan the token. Yuk! %% /* This is untested code. But in the right spirit ! */ static int yycol=0, next_col=0; char* _p; /* Update yycol for tokens that do not contain '\n' */ #define COL() yycol=next_col; next_col += yyleng /* Update yycol for tokens that may possibly contain '\n' */ #define COLN() do{ \ yycol=next_col; \ for(_p=yytext; *_p; _p++,next_col++) \ if( *_p == '\n' ) \ next_col = -1; \ }while(0) #define NEWL() yycol = next_col= 0 foo|bar { COL(); printf("%d: %s\n" , yycol, yytext); } \n { NEWL(); printf("%d: NEWL\n", yycol); } foo\nbar { COLN(); printf("%d: %s\n" , yycol, yytext); } %% -John __________________________________________________ Do You Yahoo!? Spot the hottest trends in music, movies, and more. http://buzz.yahoo.com/ _______________________________________________ Help-flex mailing list Help-flex@gnu.org http://mail.gnu.org/mailman/listinfo/help-flex  1, answered,, X-Coding-System: nil Mail-from: From avn@any.ru Sun Jun 24 03:10:57 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA10135 for ; Sun, 24 Jun 2001 03:10:57 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Sun, 24 Jun 2001 03:10:57 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.uncg.edu (8.11.0/8.11.0) with ESMTP id f5O78ts09193 for ; Sun, 24 Jun 2001 03:08:55 -0400 (EDT) Received: from ajax2.sovam.com (ajax2.sovam.com [194.67.1.173]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id DAA15567 for ; Sun, 24 Jun 2001 03:08:54 -0400 (EDT) Received: from ts11-a1.dial.sovam.com ([195.239.68.1]:2044 "EHLO srv2.any" ident: "TIMEDOUT" whoson: "-unregistered-" smtp-auth: TLS-CIPHER: TLS-PEER: ) by ajax2.sovam.com with ESMTP id ; Sun, 24 Jun 2001 11:08:48 +0400 Received: from localhost (avn@localhost) by srv2.any (8.11.3/8.11.3) with ESMTP id f5O7Adg89096 for ; Sun, 24 Jun 2001 11:10:39 +0400 (MSD) (envelope-from avn@any.ru) Date: Sun, 24 Jun 2001 11:10:39 +0400 (MSD) From: "Alexey V. Neyman" X-X-Sender: To: Subject: lex generates files that give warnings with gcc Message-ID: <20010624111019.R89058-100000@srv2.any> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII *** EOOH *** Date: Sun, 24 Jun 2001 11:10:39 +0400 (MSD) From: "Alexey V. Neyman" To: Subject: lex generates files that give warnings with gcc Hello! I compiled lex-produced files with 'gcc -Wconversion', and it gives warnings about passing arguments to fread/fwrite as unsigned due to function prototypes. This produces warnings when program is compiled under suggested 'strict warnings' in FreeBSD, ${BDECFLAGS}. More, these warnings point to .l file that was fed to lex. You can see detailed problem report, samples of failing code and a proposed fix at: http://www.freebsd.org/cgi/query-pr.cgi?pr=28364 Regards, Alexey. PS. Waiting for fix and for FreeBSD to import fixed :) -- -------------------------------------------------+--------------------------- We chose to leave when there was | Regards, Alexey V. Neyman no longer a reason to stay. | mailto: avn@any.ru ---------------------------------( Arilou, SC2 )-+---------------------------  1, answered,, X-Coding-System: nil Mail-from: From ashalper@usgs.gov Mon Jul 23 20:31:28 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id UAA31191 for ; Mon, 23 Jul 2001 20:31:28 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Mon, 23 Jul 2001 20:31:28 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.uncg.edu (8.11.0/8.11.0) with ESMTP id f6O0QmW26609 for ; Mon, 23 Jul 2001 20:26:48 -0400 (EDT) Received: from gsazflgm01.wr.usgs.gov (gsazflgm01.wr.usgs.gov [130.118.164.152]) by external-gw.uncg.edu (8.9.3/8.9.3) with ESMTP id UAA17843 for ; Mon, 23 Jul 2001 20:26:47 -0400 (EDT) Subject: Re: shared object libfl? To: wlestes@uncg.edu X-Mailer: Lotus Notes Release 5.0.1b September 30, 1999 Message-ID: From: "Andrew S Halper" Date: Mon, 23 Jul 2001 16:56:52 -0700 X-MIMETrack: Serialize by Router on gsazflgm01/SERVER/USGS/DOI(Release 5.0.7 |March 21, 2001) at 07/23/2001 05:26:49 PM MIME-Version: 1.0 Content-type: text/plain; charset=us-ascii *** EOOH *** Subject: Re: shared object libfl? To: wlestes@uncg.edu From: "Andrew S Halper" Date: Mon, 23 Jul 2001 16:56:52 -0700 ----- Forwarded by Andrew S Halper/WRD/USGS/DOI on 07/23/01 04:56 PM ----- Vern Paxson gov> cc: Subject: Re: shared object libfl? 07/23/01 05:15 PM > Is there any special reason a shared object library is not built by the > flex source? Is there a 'configure' option to make one? Please send this to Will Estes (wlestes@uncg.edu), who has now taken over flex maintenance and development. Thanks, Vern  1,, X-Coding-System: nil Mail-from: From johnmillaway@yahoo.com Thu Aug 16 11:11:13 2001 Return-Path: Received: from localhost (localhost [127.0.0.1]) by michael.uncg.edu (8.9.3/8.9.3) with ESMTP id LAA22070 for ; Thu, 16 Aug 2001 11:11:13 -0400 Received: from imap.uncg.edu by localhost with IMAP (fetchmail-5.1.0) for wlestes@localhost (single-drop); Thu, 16 Aug 2001 11:11:13 -0400 (EDT) Received: from external-gw.uncg.edu (external-gw.uncg.edu [152.13.2.70]) by hermes.uncg.edu (8.11.0/8.11.0) with ESMTP id f7GF5xW19868 for ; Thu, 16 Aug 2001 11:05:59 -0400 (EDT) Received: from web9405.mail.yahoo.com (web9405.mail.yahoo.com [216.136.129.111]) by external-gw.uncg.edu (8.9.3/8.9.3) with SMTP id LAA07077 for ; Thu, 16 Aug 2001 11:05:57 -0400 (EDT) Message-ID: <20010816150558.37014.qmail@web9405.mail.yahoo.com> Received: from [216.254.82.102] by web9405.mail.yahoo.com; Thu, 16 Aug 2001 08:05:58 PDT Date: Thu, 16 Aug 2001 08:05:58 -0700 (PDT) From: "John W. Millaway" Subject: Re: comments in lexical definitions To: Tobias Ostgathe Cc: help-flex@gnu.org, Hans-Bernhard Broeker , "W. L. Estes" In-Reply-To: <003301c1264e$0677bea0$2465e2c3@wuschtbix> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii *** EOOH *** Date: Thu, 16 Aug 2001 08:05:58 -0700 (PDT) From: "John W. Millaway" Subject: Re: comments in lexical definitions To: Tobias Ostgathe Cc: help-flex@gnu.org, Hans-Bernhard Broeker , "W. L. Estes" In-Reply-To: <003301c1264e$0677bea0$2465e2c3@wuschtbix> > > > I'm missing the possibility to include comments in lexical definition Flex does allow comments everywhere you could possibly need them. This discussion suggests a failure in the flex docs to make the syntax clear. What's the trick, then? 1. Use traditional C comments, not '//' comments. 2. INDENT THE COMMENT. -John (Exhaustive example follows) %{ /* 1 */ %} /* 2 */ %option reentrant %x STATE_X %% /* 3 */ ruleA /* 4 */ { /* 5 */} ruleB /* 6 */ ECHO; /* 7 */ /* 8 */ { ruleC ECHO; /* 9 */ ruleD ECHO; } %% /* 10 */ __________________________________________________ Do You Yahoo!? Make international calls for as low as $.04/minute with Yahoo! Messenger http://phonecard.yahoo.com/