summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* libfl.pc: Rewrite descriptions, remove unneeded Cflags.Explorer092017-08-27
| | | | There's no need to include any header when linking with `-lfl`.
* Move libfl.pc.in to src subdirectory.Explorer092017-08-27
|
* Hardcode flex name in --help textExplorer092017-08-24
| | | | | | | | | | | Don't use program_name in the description of -T/--trace or -V/--version option. It's ugly when user invokes flex with a long path like "/home/username/tools/bin/my-custom-built-flex". This solution is not long term. If possible, the help text should be modified so that the "flex" name is no longer needed below the first "Usage:" line. All translations of help text will need to be updated as well.
* Remove an unneeded gettext() in --version outputExplorer092017-08-24
| | | | "%s %s\n" is not translatable
* scanner: remove BASENAME(); don't strip path from program_nameExplorer092017-08-24
| | | | | | | | | | | | | | | There's no technical need of stripping path from program_name. I think the users should be fine if they see the path they use to invoke flex is diagnostic messages and help texts. Yes, users will see "Usage: ../flex [OPTIONS]..." now if they invoke flex with the path "../flex". The --version output has been changed so that the name field will be always "flex" or "flex++". If the flex program has been renamed to "lex" (for compatibility or other reason) this will allow identifying the implementation name ("flex"). (And it's a recommended practice in GNU Coding Standards)
* have libobjs depend on libobjdir (#244)Michael Haubenwallner2017-08-24
|
* scanner: #define BASENAME, remove #include libgen.hJannick2017-07-17
|
* mkskel.sh: fix EOL issue for CRLF systemsJannick2017-07-18
|
* scanner: Ignore comment lines in skeleton files.jannick02017-07-15
| | | | | | | | | In skeleton files comments are indicated by leading `%#` and when directly read in using `flex -S <skeleton.skl>` they should be ignored. Example: `flex.skl`. Amending commit 2f21edac99b5efc432417233e6e53326d630e08f which removed this conditional branch.
* filter: faster is_blank_line implementationExplorer092017-07-15
| | | | Using regex_t regex_blank_line is *slow*.
* filter: new internal function is_blank_line()Explorer092017-07-13
| | | | | | It's simply to return (regexec(&regex_blank_line, str, 0, NULL, 0) == 0); The reason for encapsulation is to allow replacing this with a non-regex method if necessary.
* scanner: memory leak free scanner generator.viktor.shepel2017-07-03
| | | | | | | | | | | | **Issue:** Scanner generation leaks memory for transition tables when invoked without `--tables-file` option. **Root cause:** `gentabs` function has different memory acquire/release conditions. **Solution:** Reclaim memory at the same scope where it was alloacated.
* filter: memory leak free scanner postprocessing.viktor.shepel2017-07-03
| | | | | | | | | | | | | | | **Issue:** Scanner postprocessing leaks memory during correction of `#line` directives values and generation of C header file. **Root cause:** `filter_fix_linedirs` and `filter_tee_header` functions do not dispose allocated memory. **Solution:** Automatically reclaim affected memory by allocating it on stack insted of heap. Stack allocation should not be a problem as its only 512 bytes and there is no recursive calls.
* scanner: c{i,j} should preserve case.NieDzejkob2017-07-03
| | | | Fixes #193
* scanner: add optionn to specify backup filename.EricSharkey2017-07-03
| | | | | | In a directory containing multiple scanners, we want to allow specifying the name of the backup file else the backup files will be overwritten.
* scanner: Use reallocarr() when available.Thomas Klausner2017-05-19
| | | | | | | | | NetBSD had a crash during build. Since the provided substitute for reallocarray() wasn't working, use NetBSD's reallocarr(). Let configure choose that function whenever it is available. Use reallocarray if available. Still fallback if neither is available. Fixes #219
* filter: Output correct #line value for current file.Jeff Smith2017-05-14
| | | | | | | A #line pre-processor directive specifies the line number and source file of the following lines. If the source file _is_ the current file, the line number should be that of the line following the directive. So the specified line number should be the current line number plus 1.
* scanner: corrected typoWill Estes2017-05-13
|
* scanner: finish support for noyy{get,set}_column.Will Estes2017-05-13
| | | | Unattributed patch carried over from sourceforge bug tracker.
* scanner: Mention %# comments are removed when building skel.cExplorer092017-05-06
|
* Honor user definitions of yy_* macrosDemi Obenour2017-05-03
| | | | | The user may have defined the yy_* macros themselves. In that case, don't clobber them.
* Don't leak macro definitions into header filesDemi Obenour2017-05-03
| | | | | | | This allowed unnamespaced definitions to leak into header files, breaking client code. Fixes #142
* scanner: Check for 0 bracecount when EOL ends quoted literal.Demi Obenour2017-05-03
| | | | | This can happen in the case of // comments (which Flex doesn't handle specially).
* scanner: when bracelevel is negative, treat as zero.Demi Obenour2017-05-03
| | | | | This really should never happen, but this at least fixes the breakage on Verilator.
* build: Delete comments from skeleton file.Demi Obenour2017-05-03
| | | | | | Since the comments in flex.skl are, by hypothesis, not needed in skel.c, we remove them. THis reduces the size of the resulting executable somewhat.
* FLEX_EXIT() is the preferred way to exit flexJeff Smith2017-05-02
|
* Fix myesc() 'sptr' conditionalsExplorer092017-05-02
| | | | | | | | | | * Don't call isascii() here. It's deprecated in POSIX and not needed for myesc's case. * The check of the character class and range here should match what's defined as {ESCSEQ} in scan.l, so for [[:xdigit:]] we use isxdigit(); for [0-7] we check '0' <= c <= '7' (not isdigit(c) because isdigit is locale-dependant in standard's sense) * Add missing length limit for "\x<hex>" (<hex> is at most 2 digits)
* Obsolete htoui() and otoui(); use strtoul().Explorer092017-05-02
| | | | | No sense to keep these two function when libc's strtoul() can do the same job, but better.
* scanner: update yy_buf_size after yyrealloc()Todd C. Miller2017-05-02
|
* build: support cross compiling.Alastair Hughes2017-02-23
| | | | | | | | | | | | | Check for cross compiling. If cross compiling, build stage1flex using a custom link command. We also override LDADD since that adds the replacement implementations that are cross compiled, and instead always use the replacement library implementations. We don't use BUILD_OBJEXT and BUILD_EXEEXT since it seems that automake does not support these. Fixes #78.
* build: Include <strings.h>; add strcasecmp() check to configure.Explorer092017-02-17
| | | | | | strings.h (not string.h) is the standard-defined include header for strcasecmp(). Include <strings.h> for portability (even though glibc exposes strcasecmp() declaration also in <string.h> by default).
* build: Let configure error if missing required functions, headers..Explorer092017-02-17
| | | | | | | | | | | | `configure` will now error if a required header or function is not found on the system. Also add comments on optional functions checks. Add sys/stats.h and sys/wait.h to list of required headers in configure. This fixes issue #180.
* scanner: compute powers of two faster.Explorer092017-02-16
| | | | | | Replace the naive "for" loop in determining power of two with a clever bitwise solution. This code is around the Internet already and is in Public Domain.
* build: mv scan.c when building dist.Will Estes2017-02-16
| | | | | | | | | Revert change to copy scan.c when building the distribution archive. Move it instead. This satisfies automake's notions of what should be clean and ensures that the distribution archive contains a just-built copy of scan.c. Fixes #186
* build: don't assume distdir/scan.c is writeableWill Estes2017-02-06
|
* build: Add dist-hook to force remake scan.c.Explorer092017-02-06
| | | | | | | | This will ensure the flex scanner included in release tarball being generated by exactly the flex version to be released. Here's one catch after this change: You may not run "make dist" or "make distdir" if you configure the flex source to be cross-compiled.
* build: respect '--localedir' from configure.Explorer092017-02-06
| | | | | Makefile shouldn't overwrite the 'localedir' variable, because that's what '--localedir' option in 'configure' is for.
* build: Remove "-I$(top_srcdir)/intl" from CPPFLAGS.Explorer092017-02-06
| | | | | | | | | | | | | | | | Revert commit e02c3d27eeb6b53ec82532ab080c23ce26813fd4 ("include the intl/ subdirectory when searching for include files") Flex doesn't come with libintl source code, so inclusion of $(top_srcdir)/intl subdirectory during compiling is unnecessary. This flag seems to be left after "remove intl from dist" (commit 8f45da06adbd7dbcdfdbdd5c20ff4c47fc504f35) without someone cleaning this up. Users who need to build with gettext functionality from libintl would use the '--with-libintl-prefix' configure option.
* scanner: fix regcomp's error reporting, double malloc.Explorer092017-02-06
| | | | | | | | Fix unneeded double malloc - let regerror(). Write its message after our "regcomp for (regex) failed: " string. Also, errbuf cannot be free()'d because of flexfatal containing a longjmp.
* build: fix Makefile parse.h dependency clauses.Explorer092017-01-24
| | | | | | | | | | | The current clauses stating "main.c: parse.h" and "yylex.c: parse.h" do not work as expected. Make did not try to build parse.h upon building flex-main.o as it would think main.c exist already and ignore the clause. Fix this by explicitly stating that the .o files depend on parse.h instead. This dependency bug only happens if user builds flex from a checked-out repository.
* build: detect overflow for [re]allocate_array.Explorer092017-01-24
| | | | | | | | | | | Use reallocarray() when we have it (i.e. in OpenBSD system). When we don't, use equivalent overflow detection for our allocate_array and reallocate_array functions. Remove lib/reallocarray.c from our LIBOBJS as we no longer need it. Provide a fallback SIZE_MAX macro definition in flexint.h (not preprocessor friendly, but enough for our reallocate_array use case).
* build: more BSD make and vpath build fixes.Thomas Klausner2017-01-23
| | | | | | BSD make doesn't like $< with more than one source specified. Additionally, make sure to specify srcdir when referring to source files since vpath builds depend on this.
* build: Fix skel.c generation with BSD makeThomas Klausner2017-01-23
|
* Add more defines in the non-reentrant part.Christos Zoulas2017-01-23
| | | | | Fix the reentrant part; don't "#define yyfoo yyfoo" because it breaks code that does #ifndef yywrap ..
* scanner: Add yyparse prototypeChristos Zoulas2017-01-23
|
* scanner: move comment for consistencyThomas Klausner2017-01-23
|
* scanner: Use array instead of pointerChristos Zoulas2017-01-23
|
* scanner: manage path to m4 better.Christos Zoulas2017-01-23
| | | | | Avoid alloca() for SSP; it is better anyway; since we don't need to strdup the path.
* scanner: Avoid creating unused labelChristos Zoulas2017-01-23
|
* Cast argument to avoid arithmetic on void *.Christos Zoulas2017-01-23
|