473,508 Members | 2,369 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

flex for windows

I am trying to contribute to a large project and am running into a bit
of a problem.

One of the lex files uses %option reentrant, which flex refuses to
compile. I am running version 2.5.4 under windows. From what I can
gather, this is a rather old version, but I have not been able to find
newer binaries.
Is there a download out there for version 2.5.33? Also, can someone
confirm that %option reentrant works with 2.5.33?

Thanks a million, and sorry if this is a FAQ.

Dec 12 '07 #1
16 7927
Gus Gassmann wrote:
I am trying to contribute to a large project and am running into a bit
of a problem.

One of the lex files uses %option reentrant, which flex refuses to
compile. I am running version 2.5.4 under windows. From what I can
gather, this is a rather old version, but I have not been able to find
newer binaries.
Yeah, I have 2.5.33 installed on current machine.
Is there a download out there for version 2.5.33? Also, can someone
confirm that %option reentrant works with 2.5.33?
flex issues are off-topic for c.l.c, one option might be running flex on
Linux, and then check if the C sources generated, compile on your
current environment.

--
Tor <bw****@wvtqvm.vw | tr i-za-h a-z>
Dec 12 '07 #2
On Dec 12, 4:32 pm, Gus Gassmann <Horand.Gassm...@dal.cawrote:
I am trying to contribute to a large project and am running into a bit
of a problem.

One of the lex files uses %option reentrant, which flex refuses to
compile. I am running version 2.5.4 under windows. From what I can
gather, this is a rather old version, but I have not been able to find
newer binaries.
Is there a download out there for version 2.5.33? Also, can someone
confirm that %option reentrant works with 2.5.33?
Hi,

I ran into the same problems some time ago. The only solution I found
was to compile a newer version using cygwin. I haven't found any
binaries of the 2.5.33 for windows at that time.

The biggest problem with the cygwin version is that you have to use
cygwin path for windows drives such as /cygdrive/c/ . If somebody has
another solution, I'm also interested in it.

Julien Hamaide

Dec 13 '07 #3
>One of the lex files uses %option reentrant, which flex refuses to
>compile. I am running version 2.5.4 under windows. ...

I ran into the same problems some time ago. The only solution I found
was to compile a newer version using cygwin. I haven't found any
binaries of the 2.5.33 for windows at that time.

The biggest problem with the cygwin version is that you have to use
cygwin path for windows drives such as /cygdrive/c/ . If somebody has
another solution, I'm also interested in it.
It looks like you have to run 'make check' inside cygwin anyway, or
discount environmental failures. You haven't specified what problem
you have in mind for "another solution." There are plenty of hints on
line about building or downloading flex for mingw, in case, for some
reason, you don't want to use the cygwin version.

Dec 13 '07 #4
>One of the lex files uses %option reentrant, which flex refuses to
>compile. I am running version 2.5.4 under windows. ...
I ran into the same problems some time ago. The only solution I found
was to compile a newer version using cygwin. I haven't found any
binaries of the 2.5.33 for windows at that time. ...
Part of the problem seems to be that flex has added features which
can't be supported fully without some posix environment. There are
plenty of suggestions on line about flex for mingw. You can't say you
want cygwin capabilities and in the same breath you want everything to
happen automagically without them.
Dec 13 '07 #5
Tim Prince wrote:
Part of the problem seems to be that flex has added features which
can't be supported fully without some posix environment. There are
plenty of suggestions on line about flex for mingw. You can't say you
want cygwin capabilities and in the same breath you want everything to
happen automagically without them.
I don't think that a tool like flex really depends on special POSIX
features, apart from the file handling. More problems will result from
the autobloat implementation, where more platform specific (filesystem
related) features may be required.

My solution for that problem is a Linux box, where ./configure already
works, then compiling the configured sources under the actual target
system (Windows), with "native" tools. Cygwin and MinGW frequently
fail to configure, with ridiculous error messages like "compiler
cannot create executable files". In most cases it's sufficient to link
the result with Windows-specific wrappers around fopen() and similar
filesystem specific functions, to make the code work.

DoDi

Dec 14 '07 #6
On 13 Dec, 08:12, Tim Prince <timothypri...@sbcglobal.netwrote:
One of the lex files uses %option reentrant, which flex refuses to
compile. I am running version 2.5.4 under windows. ...
I ran into the same problems some time ago. The only solution I found
was to compile a newer version using cygwin. I haven't found any
binaries of the 2.5.33 for windows at that time. ...

Part of the problem seems to be that flex has added features which
can't be supported fully without some posix environment. There are
plenty of suggestions on line about flex for mingw. You can't say you
want cygwin capabilities and in the same breath you want everything to
happen automagically without them.
Can't say I understand any of this. Someone handed me a .l file with
%option reentrant in it. I work in a Windows environment, but I have
to get that .l file compiled somehow.

Following this discussion, I found mingw and thought I installed it; I
downloaded flex 2.5.33 and thought I installed it, but it complains
that it can't find a .dll called msys-regex-0.dll. Now what?

Is there anyone kind (and knowledgeable) enough to help out a
desperate soul in a fix? I know I am asking for a lot, but I am hoping
that there is somewhere in this great world that is the internet a
step by step procedure I can follow. (As in 1. Download this file from
here. 2. Install to that directory. 3. Download and install that file
there. etc.)

Thanks a million.

gus
Dec 15 '07 #7
Hans-Peter Diettrich wrote:
Tim Prince wrote:
>Part of the problem seems to be that flex has added features which
can't be supported fully without some posix environment....

My solution for that problem is a Linux box, where ./configure already
works, then compiling the configured sources under the actual target
system (Windows), with "native" tools. ...
Cygwin configures and builds current flex "out of the box," and I get
only 1 adverse indication in the testsuite. Your recommendation to
use linux amounts to using a posix environment, more so than
cygwin. So, I'm not convinced by any of these suggestions that
avoiding posix emulations makes it easier.
Dec 15 '07 #8
tim prince wrote:
Cygwin configures and builds current flex "out of the box," and I get
only 1 adverse indication in the testsuite. Your recommendation to
use linux amounts to using a posix environment, more so than
cygwin. So, I'm not convinced by any of these suggestions that
avoiding posix emulations makes it easier.
Compiling to native code, for the actual target platform, eliminates
many problems in the later use of tools or libraries.

Like Wine for Linux, CygWin and MinGW are not *extensions* to the host
OS, they only open a *narrow* window into a different world. The use of
the output is restricted to the same emulator box.

With regards to autobloat, it's up to the author of the source code,
which target platform he wants to support. When he is a member of the
hate-Windows fraction, or simply doesn't care about non-POSIX platforms,
the configuration of his project will fail in CygWin, leaving the user
with uncompilable code. Autobloat is not only a tool set for making
projects platform independent, at the same time it allows to effectively
exclude platforms as well :-(

DoDi
Jan 6 '08 #9
In comp.compilers George Neuner <gn******@comcast.netwrote:
I've successfully compiled past versions of both Flex and Bison using
Visual Studio (not the latest stuff though).
iirc, the "newest" stuff has a runtime dependency on m4.

I hadn't noticed the .34 release, but running a quick check, see that
not only have none of the bugs I reported some time ago been addressed, but
that this has some additional defect in the legacy tablesize options.

That means that it can't compile some files written for "older" lex's -
more than a quarter of the files I'm working with (ymmv). So don't
discard 2.5.4a - you'll continue to need it for a while.

We're talking about this -

http://flex.sourceforge.net/

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net

Jan 6 '08 #10
In comp.compilers Hans-Peter Diettrich <Dr**********@aol.comwrote:
I don't think that a tool like flex really depends on special POSIX
features, apart from the file handling. More problems will result from
....a little more than that (2.5.4a only relies on file handling and is
very portable), the new (since 2002) version spawns a copy of m4 to
process some macros.

(coincidentally, I was looking at the .33 this morning, to see if it
addressed locales - 2.5.4a's rather limited) and found that aspect was not
improved in the newer version as well (lots of additional ifdef's, but
no new solutions). Perhaps someone will get interested in making flex's
parsing know about locales...

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net

Jan 6 '08 #11
Cygwin configures and builds current flex "out of the box," and I get
only 1 adverse indication in the testsuite.
Unfortunately that's not entirely true. If you're using Cygwin's
"text mode mounts", current flex will compile fine, but the scanners
it generates are uncompilable, due to our old friend "The Inability Of
21st Century Computer Science To Solve The Clearly Intractable And
Apparently NP-Hard "\r\n" Vs. "\n" EOL Problem". For reasons I've
been unable to determine or correct, no matter what you do the
generated source has extra EOLs and "Pseudo-EOLs" (things like
"\r\r\n").
Your recommendation to
use linux amounts to using a posix environment, more so than
cygwin. So, I'm not convinced by any of these suggestions that
avoiding posix emulations makes it easier.
True enough, but step 1 is that it has to generate usable output.
Jan 6 '08 #12
Gary R. Van Sickle wrote:
>Cygwin configures and builds current flex "out of the box," and I get
only 1 adverse indication in the testsuite.

Unfortunately that's not entirely true. If you're using Cygwin's
"text mode mounts", current flex will compile fine, but the scanners
it generates are uncompilable, due to our old friend "The Inability Of
21st Century Computer Science To Solve The Clearly Intractable And
Apparently NP-Hard "\r\n" Vs. "\n" EOL Problem". For reasons I've
been unable to determine or correct, no matter what you do the
generated source has extra EOLs and "Pseudo-EOLs" (things like
"\r\r\n").
>Your recommendation to use linux amounts to using a posix
environment, more so than cygwin. So, I'm not convinced by any of
these suggestions that avoiding posix emulations makes it easier.
True enough, but step 1 is that it has to generate usable output.
I'm not enough of a masochist to attempt Windows text mode. I haven't
heard of anyone but you telling us that anything but NotePad
compatible text in Windows is "cheating." Linux doesn't support this
kind of text mode; why should we make it impossibly difficult on
Windows?

Jan 7 '08 #13
Gary R. Van Sickle wrote:
Apparently NP-Hard "\r\n" Vs. "\n" EOL Problem".
What's the problem?

AFAIK a single "\r" is nowhere used for EOL, so it should be possible to
skip \r, and treat \n as EOL.

DoDi
[That's pretty typical, ignore the \r and look for the \n. But this doesn't
have much to do with compilers, as opposed to general Windows programming,
any more. -John]

Jan 7 '08 #14
Hans-Peter Diettrich <Dr**********@aol.comwrites:
Gary R. Van Sickle wrote:
>Apparently NP-Hard "\r\n" Vs. "\n" EOL Problem".

What's the problem?

AFAIK a single "\r" is nowhere used for EOL, so it should be possible to
skip \r, and treat \n as EOL.

DoDi
[That's pretty typical, ignore the \r and look for the \n. But this doesn't
have much to do with compilers, as opposed to general Windows programming,
any more. -John]
Doesn't MacOS use a single \r to represent EOL rather than single \n?

However, the issue is more whether any given tool treats the
combinations of \r and \n characters in your file the way that you (or
some other tool you use) intended them to be treated (as a result I
have my own version of u2d and d2u that cannonicalizes them in the
ways that the tools I use accept them), so as our moderator said it
isn't much of a compiler question as a global question, with the
problem being that there is no universally accepted standard. Yes,
there are standards, but they aren't universally followed.

BTW, anyone who wants my copy of u2d/d2u and/or the Yacc++ grammar I
used in writing them, (Yes, I wrote a grammar to "parse" the problem.)
can get a free copy by writing me.

Hope this helps,
-Chris

************************************************** ***************************
Chris Clark Internet : co*****@world.std.com
Compiler Resources, Inc. Web Site : http://world.std.com/~compres
23 Bailey Rd voice : (508) 435-5016
Berlin, MA 01503 USA fax : (978) 838-0263 (24 hours)
Jan 8 '08 #15
Chris F Clark <cf*@shell01.TheWorld.comwrote:
Hans-Peter Diettrich <Dr**********@aol.comwrites:
Gary R. Van Sickle wrote:
Apparently NP-Hard "\r\n" Vs. "\n" EOL Problem".
What's the problem?

AFAIK a single "\r" is nowhere used for EOL, so it should be possible to
skip \r, and treat \n as EOL.

DoDi
[That's pretty typical, ignore the \r and look for the \n. But this doesn't
have much to do with compilers, as opposed to general Windows programming,
any more. -John]

Doesn't MacOS use a single \r to represent EOL rather than single \n?
No. MacOS uses a single ASCII CR as EOL, while Unixen use LF and MS
OSes use CRLF. In a file opened as a text stream in C, though, all of
those will be represented in that text stream as '\n'. (And obviously,
they should also be represented as '\n' in any code-reading tool (as
opposed to, e.g., binary editors) written in ISO C.)

Richard

Jan 9 '08 #16
Doesn't MacOS use a single \r to represent EOL rather than single \n?

It did. But Mac OS X switched to the Unix convention, so all is well.
Stefan
..

Jan 21 '08 #17

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
6568
by: olig9 | last post by:
Hello, is there a way to feed an ifstream to a parser generated with flex and bison? I could see that flex wants a FILE* for reading, but I only have an ifstream (actually and ifstream*) for...
2
287
by: skulkrinbait | last post by:
Hello, I need some help please. I need to migrate some applications from OS2 to Windows, the source code is C. I believe this can be done using Lex and Yacc and have installed Cygwin with Flex...
6
15457
by: Volker Hetzer | last post by:
Hi! We are finding ourselves in a situation where we have to parse several more or less free format text files. In the past, on linux, we had flex and bison for generating very fast parsers for...
2
2511
by: James Calivar | last post by:
Hi, I'm trying to compile PHP v5.1.6 under Windows XP using cygwin. I get the following error when I run ./configure. Can anyone help please? $ ./configure loading cache ./config.cache...
5
1514
by: Ronald S. Cook | last post by:
I need ideas on how to best design a Windows form for my particular situation. On a cattle feeding yard there will be between about 300 and 600 pens. On my "Pen Feeding Sequence" form, I want...
5
5932
by: ASP.NET explorer | last post by:
I have been asked to create some simple animation using Adobe Flash player in ASP.NET(C#) web application. While I am fairly well versed with ASP.NET C#, I absolutely have NO IDEA about how to...
13
3089
by: treble54 | last post by:
I need to build PHP from source with the pdo_ibm extension and I am having an issue with it. Firstly, I am using Visual Studio .NET 2003 and I am building PHP from source through the Visual Studio...
10
6685
by: Jules Winfield | last post by:
Guys, I've been designing applications for the financial services industry using MSFT technologies for many years (Win32 API, MFC, and now .NET WinForms). All applications are Internet-based,...
0
1269
by: Benny the Guard | last post by:
I have code that uses FLEX and Bison on windows to generate a parser. It was configured awhile back by a colleague using FLEX 2.5.4a and builds on Solaris, Windows and Linux using FLEX 2.5.4. ...
0
7115
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7321
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
7036
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
7489
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
5624
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
4705
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3179
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
1547
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
0
414
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.