290 Commits
Author SHA1 Message Date
Will Estes 1c49f7e585 Documented building and installation of flex
Since GNU autotools no longer provides a stock INSTALLATION file, we provide one that speaks to flex specifically.

fixes #402
2022-09-27 16:50:19 -04:00
Will Estes 7f5cd60976 updates from translation project 2022-09-27 14:22:07 -04:00
Will Estes ea6493d9b6 Merge pull request #527 from Mightyjo/issue-525
Fix Issue #525 - Segfault in yyinput
2022-06-17 07:57:52 -04:00
Will Estes e1a5285cbf Merge pull request #529 from ggujjula/issue_369
Add documentation about option '--yymore'
2022-06-17 07:54:37 -04:00
Will Estes 1cba28b65b Merge pull request #528 from xiaohanyu/fix-doc-error
fix some tiny doc errors.
2022-06-17 07:52:11 -04:00
Will Estes 1656033045 Merge pull request #531 from Explorer09/flexint-include
Also check for C++ standard version when deciding to include <stdint.h>
2022-06-17 07:46:28 -04:00
Explorer09 8ab4ea7364 Also check for C++ standard version when deciding to include <stdint.h>
Fixes: #517

Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
2022-06-17 19:35:49 +08:00
ggujjula e0e7091dc7 Add anchors and refs to areas relevant to '--yymore' 2022-05-31 01:19:47 -05:00
ggujjula 16ff9d0133 Add documentation for option '--yymore' 2022-05-31 01:19:35 -05:00
Xiao Hanyu 7535b35bf1 fix some tiny doc error. 2022-05-26 21:00:47 +08:00
Joseph Langley 4581eccf1e fix(issue-525): Fail gracefully when yy_get_next_buffer can't find one.
Demonstrate yyinput() error checking for this condition.
2022-05-18 11:15:49 -04:00
Joseph Langley 9d9a039c31 fix(issue-525): Add regression test for Issue 525.
yyrestart should not set yy_fill_buffer to 1 when it was previously set to 0 (e.g. by yy_scan_buffer).
2022-05-18 11:13:46 -04:00
Will Estes 74a89fd6ab Merge pull request #513 from ggujjula/issue_398
Issue 398; Documentation fix; Additional command-line options
2022-05-16 15:59:30 -04:00
Will Estes 00bfa85257 Merge pull request #524 from Mightyjo/issue-521
doc(manual): Character classes
2022-05-16 15:55:38 -04:00
Will Estes 4c0345cc28 Merge pull request #523 from Mightyjo/github-ci
GitHub Actions (Replacing TravisCI)
2022-05-16 15:48:15 -04:00
Joseph Langley 2bacaef4cf doc(manual): Correct character class examples and special meaning discussion.
See Issue 521 and 478.
2022-05-11 17:41:53 -04:00
Joseph Langley 342104d61b chore(ci): Remove testing configs from GH Action workflows. 2022-05-11 16:14:22 -04:00
Joseph Langley 4a42e91987 chore(ci): Update GH Actions scripts to Ubuntu 20 2022-05-11 15:41:54 -04:00
Joseph Langley 5cdd61549d chore(ci): Enable GitHub Actions on github-ci branch. 2022-05-11 14:55:43 -04:00
Joseph Langley 87ff2861e6 chore(travisci): Remove Travis CI configs. 2022-05-11 14:47:30 -04:00
Joseph Langley a0c76652f7 chore(gh-actions): Build and test on GitHub Actions CI platform.
Use ubuntu-18.04.
2022-05-11 14:47:30 -04:00
Will Estes 3fe96958fa new pl translation from the translation project 2022-01-03 12:35:03 -05:00
ggujjula 1677eff252 Add command-line options --noyyget_debug and --noyyset_debug 2021-12-29 16:47:43 -06:00
ggujjula c947396cda Replace mention of input() in documentation with yyinput() 2021-12-29 16:31:18 -06:00
ggujjula 1565a740db Add command-line options --noinput and --noyyinput 2021-12-29 16:23:14 -06:00
Sean McBride 974bb68e10 Remove trailing whitespace
Many projects have pre-commit hooks that check for pedantic things like trailing whitespace. No harm in removing it to pacify them.
2021-10-23 23:07:14 -04:00
Will Estes 7ea145a7e6 Merge pull request #491 from Mightyjo/issue_469
Issue 469; Compute length of yy_state_buf correctly
2021-08-13 11:37:10 -04:00
Joseph Langley eac0901186 chore(action): Clean up dead code
Leave clear instructions on what to do if the Autobuild step breaks.
2021-08-13 11:16:11 -04:00
Joseph Langley e864186c57 fix(action): Let Autobuild do most of the work
Try preparing configure with autogen.sh, then letting codeql-action/autobuild do it's work prior to analysis.
2021-08-13 11:16:11 -04:00
Joseph Langley af75357b17 Update codeql-analysis.yml 2021-08-13 11:16:11 -04:00
Joseph Langley fceec5d95a chore(skel): Fix permissions on cpp-flex.skl 2021-07-02 18:52:14 -04:00
Joseph Langley 5cccc82072 chore(skel): Improve comment at state buffer init. 2021-07-02 18:49:38 -04:00
Joseph Langley 79da5dfa0f fix(skel): Init state buffer correctly
State buffer initialization in cpp-flex.skl got lost during a rebase. Added it back in from c99-flex.skl and made improvements suggested by smcpeak.
2021-07-02 18:46:52 -04:00
Joseph Langley 8100144eb4 chore(perm): Fix permissions 755->644 2021-07-02 17:53:29 -04:00
Simon Sobisch b198864a75 fix compile warning originating in cpp skeleton
`gcount()` is of type `streamsize` which has a system-dependent size with at least `int`. Because of the `int max_size` limit no bigger value will be returned, the explicit cast fixes warnings from compilers/static analyzers.
2021-06-22 20:27:20 +02:00
Joseph Langley ab783a0b99 chore(make): Ensure distcheck cleans up directories. 2021-06-09 21:46:01 -04:00
Joseph Langley 50819bb82a fix(skel): Fix porting errors from the cpp to the c99 and go skeletons. 2021-06-09 21:46:01 -04:00
Joseph Langley 1d128474a7 fix(skel): Use yypanic in place of YY_FATAL_ERROR.
yypanic() is new in the c99 and go skeletons.
2021-06-09 21:46:01 -04:00
Joseph Langley 988d379eb0 fix(skel): Add state buffer size handling to reentrant scanner skeletons. 2021-06-09 21:46:01 -04:00
Joseph Langley 916636cb96 chore(test): Declare script variables before use.
For set -euvx
2021-06-09 21:46:01 -04:00
Joseph Langley d1ed12a1b0 fix(skel): Add state buffer size handling to non-reentrant scanner skeletons. 2021-06-09 21:46:01 -04:00
Mightyjo e61f190ef6 Ensure size of Reject state buffer is sufficient each time yy_switch_to_buffer is called. 2021-06-09 21:46:00 -04:00
Mightyjo 379af7681d Don't use C++ auto, it angers TravisCI. 2021-06-09 21:46:00 -04:00
Mightyjo b4162d3653 Fix test failure on TravisCI. 2021-06-09 21:46:00 -04:00
Mightyjo 470c8a201f Test for reversion of CVE-2006-0459. 2021-06-09 21:46:00 -04:00
Mightyjo 7e6ad373b8 Test for reversion of CVE-2006-0459. 2021-06-09 21:46:00 -04:00
Will Estes 7b073fdda2 Merge branch 'yy-init-buffer-nonnull' of git://github.com/Explorer09/flex into Explorer09-yy-init-buffer-nonnull 2021-06-08 11:11:28 -04:00
Explorer09 60c4453b6a scanner: Fix compiler confusion in yy_init_buffer()
When complied with 'gcc -O3', the yy_init_buffer call can confuse gcc,
thinking the 'b' pointer may be NULL. (gcc would warn that if
'-Wnull-dereference' is used). Fix the confusion by never pass a NULL
constant to the function.

Fixes: #377

Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
2021-06-07 09:30:46 +08:00
Explorer09 dada40b50f Remove manual m4 search code. No more stat() dependency.
This reverts commit c34590c4bf
and all search code patches that followed it.

The execvp() would do the $PATH searching of m4 for flex. There's no
need to duplicate the effort.

Another reason for the removal is to remove dependency on stat()
system call, which would cause a problem in a 32-bit OS accessing a
filesystem with 64-bit inode number (see #413).

Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
2021-06-07 08:39:52 +08:00
Will Estes c26cd7bc13 Merge branch 'autogen-sh' of git://github.com/Explorer09/flex into Explorer09-autogen-sh 2021-06-05 14:37:20 -04:00
Will Estes 83aaf1b4ce Merge branch 'doc_fix_typo' of git://github.com/houtanb/flex into houtanb-doc_fix_typo 2021-06-05 14:21:51 -04:00
Joseph Langley cb2e0aacca Merge branch 'westes:master' into esr_retargeting 2021-06-05 11:36:21 -04:00
Will Estes 5bd5b0213a Create codeql-analysis.yml 2021-06-05 07:24:00 -04:00
Joseph Langley 0d5d2dd4af chore(test): Clean up debugging in tests 2021-06-05 01:29:41 -04:00
Joseph Langley 5772bb456e fix(test): Re-add posix test input to repo. 2021-06-05 01:14:26 -04:00
Joseph Langley 1e893215c5 chore(test): Enable shell '-eu' strictness 2021-06-05 01:08:37 -04:00
Joseph Langley 90713678d8 chore(test): Regenerate ruleset.am 2021-06-05 00:46:26 -04:00
Joseph Langley 455d913d34 fix(test): Make test generating scripts work in VPATH builds 2021-06-05 00:29:05 -04:00
Joseph Langley aeb2cb5539 fix(test): Re-add test inputs to tests/
Generating these test inputs on the fly breaks VPATH builds and 'make distcheck'.
Glad we have a lot fewer of them now, at least.
2021-06-05 00:26:47 -04:00
Joseph Langley 5fa412a3d9 fix(build): Set texi2* include paths for VPATH.
Override the TEXI2DVI and TEXI2PDF automake variables to add an include directory so VPATH builds work.
I'm not thrilled with doing this. The right thing is probably to move the included examples to doc/ and do the
VPATH magic in examples/manual/ where LaTeX is better able to deal with it.
2021-06-04 00:37:59 -04:00
Joseph Langley 46299d7dbc fix(build): Expand wildcards in Makefile.am.
Wildcards were causing automake to generate spurious build targets.
2021-06-04 00:34:40 -04:00
Joseph Langley e6472493e2 fix(build): Replace wildcards in Makefile.am.
Wildcards were causing automake to generate build rules for the *-filename dummies. They're not generally portable.
2021-06-04 00:33:30 -04:00
Joseph Langley e50f889082 fix(build): Prevent automake computing default _SOURCES for tests.
Automake attempts to compute default _SOURCES for the test-yydecl-*.sh runners generated by test-yydecl-gen.sh. Providing an intentionally empty _SOURCES variable for each script fixes the attendant errors.

Also removed EXTRA_DIST lines for deleted test inputs.
2021-06-03 21:56:59 -04:00
Joseph Langley a297d520ae Merge pull request #16 from eric-s-raymond/retargeting
Reviewing ESR's Retargeting branch from westes/flex
2021-06-02 20:17:38 -04:00
Eric S. Raymond 5d93876e22 Remove prrequisite from .l.go suffix rule
autogen gets indigestion iv you give a suffix rule a prerequisite,
so don't do that.
2021-02-05 07:33:45 -05:00
Eric S. Raymond f5960fabba Go back end: More Goification of names. 2020-12-04 11:31:27 -05:00
Eric S. Raymond 33bd31b74b Portability fix in tests - not all languages have ++ and --. 2020-12-04 06:49:26 -05:00
Daniel Brooks 7b022d451d check that each skeleton we build has the correct number of sections (#7)
Probably we could turn the section markers into m4 macros, but until
then this will prevent accidents.
2020-11-26 16:47:37 -05:00
Daniel Brooks d5c3fcfb3e Mollify picky C compilers some more (#8) 2020-11-26 16:24:28 -05:00
Eric S. Raymond b528c7efdc Improve standards conformance in C99 and Go skeletons. 2020-11-26 07:25:25 -05:00
Eric S. Raymond 9f1c6960ce Deal with a GCC warning elicited by upgrade to GCC 10.2.0. 2020-11-20 07:32:35 -05:00
Eric S. Raymond dd0fb2920b In the Go back end, more moves towards Go conventions.
All documented in the go-flex.skl header comment.
2020-11-20 07:32:35 -05:00
Eric S. Raymond 7b3f8db536 Improve information hiding in C99 and Go back ends.
Things that don't need to be declared before that DFA
tables shouldn't be.
2020-11-20 05:52:06 -05:00
Eric S. Raymond 0d6d37f246 In the Go back end, begin Go-ifying the public interface.
struct yyguts_t becomes FlexLexer typedef.
2020-11-20 04:52:32 -05:00
Eric S. Raymond 5a9a913893 Eliminate forwards in the C99 back end. 2020-11-19 18:26:48 -05:00
Eric S. Raymond 75da1e1d8a In the Go back end, elimate some forwards. 2020-11-19 17:33:02 -05:00
Eric S. Raymond df34448330 More Go back end cleanup.
Remove the Bison-bdidge kludge.

Rearrange yyguts_t so the public members are grouped together.
2020-11-19 17:07:37 -05:00
Eric S. Raymond 820199d2a9 In the C99 and Go back ends, rearrange code...
...to clean out a forward declaeation.
2020-11-19 09:29:22 -05:00
Eric S. Raymond 6c37e76ca5 Improve type checking in c99 and Go back ends. 2020-11-19 08:54:42 -05:00
Eric S. Raymond c1105abd8b In the Go back end, more moves towards Go-like names.
Not touching the public interface yet.
2020-11-19 08:46:41 -05:00
Eric S. Raymond e502c5d485 More massaging of the fake Go skeleton in the direction of Go. 2020-11-19 01:55:55 -05:00
Eric S. Raymond ce66818db5 Stop emitting unbalanced markup in the skeleton.
It was fixed up by generating matcing unbalanced markuo in dfa.c,
but a good idea this was not.
2020-11-19 01:28:58 -05:00
Eric S. Raymond 8b0503e168 In C88 and Go back ends, remove remnant GENTABLES conditionals. 2020-11-19 01:20:31 -05:00
Eric S. Raymond 48a25d4966 Partial move of Go back end to Go canelCasing in names.
No publicly visible names are touched yet. This is all preep work.
All tesrs pass.
2020-11-19 01:00:11 -05:00
Eric S. Raymond 866e31dafd Go back end: Change the prefix option to set Go package name...
...presebtly commented out.  All tests pass.
2020-11-18 00:02:04 -05:00
Eric S. Raymond 30d15dfae9 TYhis commit is a model for how to add a new back end.
Begin the Go back end. Right now it's a fake that generates C...

...but this commit puts all the build and testnmachinery in place
for when it's not.  All tests pass.
2020-11-17 07:28:40 -05:00
Eric S. Raymond be50e74b5c Improve cleanup of generated .txt after tests. 2020-11-17 05:52:08 -05:00
Eric S. Raymond eaf12696af Convert the debug test to be ruleset-based, 2020-11-17 05:42:50 -05:00
Eric S. Raymond e2a64fa174 Rename some rules files to make maintaining .gitignore simpler.
Due to some limitayions in git ignore wildcarding.
2020-11-17 00:07:07 -05:00
Eric S. Raymond 52e6bb3e84 Fix error in testnmaker: shell case alternations evaluate easrky. 2020-11-16 23:24:30 -05:00
Eric S. Raymond b068bede45 Merge remote-tracking branch 'westes/master' into retargeting
All tests pass.
2020-11-16 19:36:31 -05:00
Eric S. Raymond ad9f2d493e In C99, remove unneeded forward declarations. 2020-11-16 17:55:59 -05:00
Eric S. Raymond 654ab2012f Up-gun a test to use the lineno code in the array+BOL case...
...and fix the bug that turned up.
2020-11-16 17:32:40 -05:00
Eric S. Raymond a67532dd57 Remove now-unused parts of test/testwrapper.sh. 2020-11-16 06:10:47 -05:00
Eric S. Raymond 22b9ea63bd Remove the ".one" category of tests; they've been replaced by rulesets.
This reduces the complexitry of the test machinery as well as making
tests less backend-specific.
2020-11-16 05:54:38 -05:00
Eric S. Raymond f0f53f6930 Remove now-unused SOURCES declarations. 2020-11-16 05:32:38 -05:00
Eric S. Raymond eacb312e5b Improve instrumentation of test failures.
Also, yyinpt.txt is generated and does not need to be checked in.
2020-11-16 04:51:00 -05:00
Eric S. Raymond 709c1724ed Repair some bitrotted variable-trailing-context code.
It decayed because the test for this feature only exercised the nr
back end. We add a ruleset--based test to verify on all back ends.
2020-11-15 22:37:24 -05:00
Eric S. Raymond df632cf2eb Fix typo revealed by Go porting work, and improve test coverage to match.
We a ruleset test for BOL matching and a test for the array case of yymore.
Improve yymore testing by adding tests that require a BOL match in
both array and pointer cases.

Also, convert lineno sporadic test to be ruleset-based so it's
applied on all back ends.

No cide changes.
2020-11-15 12:24:35 -05:00
Eric S. Raymond 3603f03350 Minor build system fixes before starting the Go port.
Remove two dependencies that the C99 back end no longer has.

Repair to force in-time building of skel.h files.  This way of doing
it reduces where a new skel dependency has to be declared in the
vuilld recipe to the one spot where the flex.h file is made from the
flex.skl file.

The posixly correct test only needs to be done once, since it only
affects how the tables are genetated rather than setting code
conditionals in the back end.

Also, some comment typo fixes.
2020-11-13 08:23:10 -05:00
Eric S. Raymond 1a48798ca9 In C99, more rearrangement to make public API calls visible in actions...
..,without resorting to forward declarations. Last C99 cleanup before
the Go port begins.
2020-11-12 18:45:54 -05:00
Eric S. Raymond e3e0d791ea Documentation polishing. 2020-11-12 10:49:10 -05:00
Eric S. Raymond 110899d69e Clean up test/Makefile,am's EXTRA_DIST. 2020-11-12 09:53:26 -05:00
Eric S. Raymond fa6a0fc666 Declare that rulset.am depends on *.rules files...
...for automatic remake when a new one is added.
2020-11-12 08:37:50 -05:00
Eric S. Raymond 1991ad515f Fix another carnivorous typo. 2020-11-12 07:53:29 -05:00
Eric S. Raymond 6c8b6c1c1f Clean out some small C dependencies. 2020-11-11 23:15:55 -05:00
Eric S. Raymond 8a973b0efd Booleanization. 2020-11-11 22:52:47 -05:00
Eric S. Raymond 43aed9f0c9 Typo fix. 2020-11-11 20:57:39 -05:00
Eric S. Raymond 1b27cb2366 Fix two minor m4 errors found by Daniel Brooks. 2020-11-11 18:37:31 -05:00
Eric S. Raymond 01850d3ba1 Eliminate almost all forward declarations from C99.
One less C-ism to deal wit h when porting to a new target languages.
2020-11-11 18:13:15 -05:00
Eric S. Raymond 3854cd2c67 Add a test for trailing conyext rules. Fix the bug it turned up.
Also, roperly condition some variables related to trailing contexts.
Makes generated parsers ever so slightly smaller in this case.
2020-11-11 06:52:49 -05:00
Eric S. Raymond ab32ad65bb Repair some markup damage in the manual. 2020-11-10 19:56:39 -05:00
Eric S. Raymond 2056b2184d Add a trailing guard to the magic-rewrite recignizer. 2020-11-10 07:33:10 -05:00
Eric S. Raymond 87686ff2fb Successful elimination of preprocessor dependencies fromm C99 skeleton.
There's only one left. in the prefix code.  We leave that in place
because ity will be needed if we ever want to replace the default
C back end with C99.
2020-11-10 06:55:22 -05:00
Eric S. Raymond 9b68eb3634 Change two member names to make rewite rules easier. 2020-11-09 15:39:49 -05:00
Eric S. Raymond aa782b6233 Explain why 3 API functions don't have magic rewrite rules.
The functions are: yy_current_buffer(), yy_flush_current_buffer(), and
yy_set_interactive().
2020-11-09 04:26:56 -05:00
Eric S. Raymond 2995af0eeb yy_flex_debug -> yyflexdebug. 2020-11-08 17:38:42 -05:00
Eric S. Raymond db1dca76c1 Make the rewrite flag visible. 2020-11-08 17:38:42 -05:00
Eric S. Raymond 191d7068c3 Fully m4ize yymore() 2020-11-08 17:38:42 -05:00
Eric S. Raymond 8aabc897cd Add a test for yymore, and fix a bug it turned up. 2020-11-07 01:48:56 -05:00
Eric S. Raymond ec140e6477 m4ize yyreject() handling. 2020-11-06 12:04:20 -05:00
Eric S. Raymond d056db08e6 Fix errors that were masking problems with yyreject().
Ensure that derived skel.h includes are removed on every clean.

Fix a bad shell line that prevented proper cleaming of derived *.c
files from tests.
2020-11-04 06:43:47 -05:00
Eric S. Raymond b9414d653c Revert "Successful m4ization of yyreject()."
There seems to be something in the build recipe or test system that
makes the yyreject test unreliable.  Reverting until I figure out
what.
2020-11-04 02:40:37 -05:00
Eric S. Raymond 9b27be4b2e YY_AT_BOL() -> yyatbol(), yy_set_bol() -> yysetbol(), and make them magic.
The tradeoff is a bit delicate here; yy_set_bol() did not strictly
speaking need to change. On the other hand, squeezing the underscores
out of YY_AT_BOL() but not yy_set_bol() would have been exactly the
kind of irregularity that people trip over and curse.

The underlying issue is of course languages like Go and Python with
validators that get upset by all caps and embedded underscores. On the
one hand, we want to not be churning the Flex API gratuitously.  On
the other hand it is desirable if as few entry point names as possible
need to change in different target languages.

The approach I'm taking to deciding this question in individual cases
is this: if an entry point name is likely to appear in actions, and
must be recognized as magic by Flex itself in order to have a final
context argument added or an object reference prepended, then it must
be multilanguage-safe - not all-caps and no underscores.

Any name that does *not* need to be wired into Flex can be left
alone. Users may have to change it when they port.
2020-11-03 12:58:06 -05:00
Eric S. Raymond 2e6b59bb7a Documentation polishing. 2020-11-03 11:11:58 -05:00
Eric S. Raymond 35cdc7cabe Implement and document the rewrite/norewrite option. 2020-11-03 02:00:09 -05:00
Eric S. Raymond f2f38557ee Pull two random flags into the ctrl structure.
Also, some documentation polishing.
2020-11-02 20:35:28 -05:00
Eric S. Raymond eb6e30e9d5 Successful m4ization of yyreject(). 2020-11-02 05:58:28 -05:00
Eric S. Raymond 22d0a5d192 yyless is successfully m4ized. 2020-11-02 01:33:46 -05:00
Eric S. Raymond a6499117d7 Add a test for yyless. 2020-11-01 17:38:58 -05:00
Eric S. Raymond b9002f8f93 Simplify and generalize the testmaker macros. 2020-11-01 12:55:35 -05:00
Eric S. Raymond 8b1d12f0cd Portability improvement on the extended test. 2020-11-01 03:54:07 -05:00
Eric S. Raymond 2f449b4211 shellcheck cleanup on all scripts. Turned up a minor bug in testmaker.sh. 2020-11-01 03:53:46 -05:00
Eric S. Raymond a53aec8e86 Rulesets now carry their test loads with them.
Makes it easier to see what the tests are doing.
2020-10-31 18:19:29 -04:00
Eric S. Raymond 2b5ef23d70 Modify the reject.rules ruleset so it actually tests yyreject().
This turns up the fact that m4ization of yyrehect() didn't work, so
we back that change out.
2020-10-31 11:59:59 -04:00
Eric S. Raymond 3fe9c68941 m4ize handling of yyterminate, and translate another stray #define. 2020-10-31 05:15:37 -04:00
Eric S. Raymond 076ee33fc4 More small steps towards taking cpp out of the required pipeline. 2020-10-30 23:06:57 -04:00
Eric S. Raymond 48d47f6423 Convert yyreject() from a cpp macro to an m4 macro. 2020-10-30 23:06:00 -04:00
Eric S. Raymond f4de7a57a7 Fix a minor bug in gathering removables. 2020-10-30 22:32:28 -04:00
Eric S. Raymond 4cc8835d3c Add %option bufsize, required for testing under non-C targets...
...since we can't count on the C preprocessor to do it.
2020-10-29 20:34:14 -04:00
Eric S. Raymond 95efae5469 Abolish a platform microtweak after consulting with Will Estes. 2020-10-29 17:48:32 -04:00
Eric S. Raymond 8bf1889ca7 More de-preprocessorization. 2020-10-29 17:19:47 -04:00
Eric S. Raymond 59c26779eb In C99, make --nounistd a no-op. Explain this in the manual. 2020-10-29 00:18:25 -04:00
Eric S. Raymond dc11ff3020 In C99, assume <stdint.h> is available to simplify the code. 2020-10-28 23:09:26 -04:00
Eric S. Raymond 02237b18b2 Convert handling of USER_ACTION, YY_END_OF_BUFFER_CHAR, YY_STATE_BUF_SIZE...
...to use pure m4, not cpp.
2020-10-28 20:49:19 -04:00
Eric S. Raymond cbdc123fde In C99, de-cpp-izee processing of USER_INIT and RULE_SETUP.
Also, fix a harmless compiler warning introced three commits back.
2020-10-28 20:28:17 -04:00
Eric S. Raymond 15948a9b14 In C99, process yylex declaration stting directly through m4...
...instead of relying on cpp to do it. This commit also adds a
test for correctness of yydecl on all back ends.
2020-10-28 20:15:24 -04:00
Eric S. Raymond 9de953f78f In C99, remove more preprocessor dependencies. 2020-10-28 13:01:21 -04:00
Eric S. Raymond 29116efd20 Remove cpp from the way the extra type is handled, use pure m4 instead.
Has the effect of making the code a bit smaller when no extra type
is born.
2020-10-28 12:39:26 -04:00
Eric S. Raymond aea2d30573 Finally ever the dependency on the YY_FATAL_ERROR macro.
Still supported as a legacy interface in the default back end.
2020-10-28 12:39:26 -04:00
Eric S. Raymond 079b2d1c86 Eliminate YY_BREAK macro, replaced with an m4 hook. 2020-10-28 12:39:26 -04:00
Eric S. Raymond baaaa45b40 A step towards getting rid of YY_FATAL_ERROR...
...because we can no longer depend on cpp to be in the pipeline.
2020-10-28 12:39:26 -04:00
Eric S. Raymond 6ba9f483bf Remove for cpp dependencies. 2020-10-28 12:39:26 -04:00
Eric S. Raymond af8d41eb94 In C99, abolish indirection through a void pointer...
...to get to the scanner internals structure.  While this was a valiant
effort at information hiding, it won't port out of C to any other plausible
target language.  That being the case, we cut the LOC.
2020-10-28 12:39:26 -04:00
Eric S. Raymond 169612a929 Remove cpp dependencies. 2020-10-28 12:39:26 -04:00
Eric S. Raymond d1dc1c0911 Sever a number of dependencies on cpp by adding rewrite rules...
...in the flex scanner.  Presently this works for yyecho(), yyinput(),
yystart(), yybegin(), and yyunput().  These no longer need to be nacros.

A few more remain to be done, notably yyless() and yymore().

Along the way, deprecate YY_FATAL_ERROR and add a replacement option.
2020-10-28 12:39:26 -04:00
Eric S. Raymond f854b71051 Clean C preprocessor assumptions out of C99.
Also, continue booleanizing where we can.
2020-10-28 12:39:26 -04:00
Eric S. Raymond 7af5fa13bb Outside cpp #define doesn't work, so deprecate YY_FLEX_SUBMINOR_VERSION. 2020-10-28 12:39:26 -04:00
Eric S. Raymond b244d82cf0 Remove an ugly little knor in the C99 yyunput code...
..left there from a weird compromise when the default C back end also
supported C++.  Add a yyunput ruleset testing it on all back ends to
verify that the change is good.
2020-10-26 23:26:28 -04:00
Eric S. Raymond f5d2d88a6d Fix C emission lurking previously undiscovered in nfa.c. 2020-10-26 20:03:22 -04:00
Eric S. Raymond baafce5c71 In C99, factor a nasty hunk of macrology into a function. 2020-10-26 15:45:23 -04:00
Eric S. Raymond ffcdee1fa2 In C99, use bools where it is semantically reasonable.
Also, abandon the old-fashioned practice of using ! as a NULL
test on pointer-valued expressions.
2020-10-26 14:26:49 -04:00
Eric S. Raymond e8de043be2 In C99, group macros for use in user actions...
..and move the group as late in the generated code as we can.
There's no reason for those to be in scope when tables are
being generated.
2020-10-26 10:52:53 -04:00
Eric S. Raymond 9bfc5ce27d In C99, remove most code dependencies on yyin/yyout/yyleng/yytext macros.
These served a purpose when the code had to handle both reentrant and
non-reentrant cases.  Now, while they should still be available in user
actions, the generated code is much less confusing if the yyg pointer
in the references is explicit.

Also, drop VMS support and consolidate platform-specific references
at one spot. This is in the same commit with the macro cleanup because
it included getting rid of the last stray yyin/yyout references.
2020-10-26 09:56:18 -04:00
Eric S. Raymond c050411566 In C99, strip out ccp #ifndefs that can't fire if not using cpp. 2020-10-26 08:07:06 -04:00
Eric S. Raymond 18b3523680 Strip legacy macro definitions out of C99.
This is both a step towards Go/Rust and a demonstration that
all the ruleset-based tests run wtout them.
2020-10-26 07:59:36 -04:00
Eric S. Raymond 4a4cd247ca Polish documentation and fix up some uses of the old interface. 2020-10-25 22:34:23 -04:00
Eric S. Raymond 5e71dbbf5d Polish tests and test documentation. 2020-10-25 22:08:16 -04:00
Daniel Brooks e7b758041c Expand M4_HOOK_CONST_DEFINE into multiple macros for different types (#6)
The Rust backend needs to know the type of every constant; it can't
just guess and it doesn't have text macros like C.
2020-10-25 22:08:33 -04:00
Daniel Brooks ac97741a0b Fix Next link in the Overview of the Retargeting section of the manual (#3) 2020-10-25 22:08:18 -04:00
Eric S. Raymond 307645b7b7 Narrow the interface between Flex and the skeleton file...
...and reduce C preprocessor entanglement in the C99 skeleton.
2020-10-25 09:53:18 -04:00
Eric S. Raymond 393b0b5733 yyconst is a pre-ANSI archaism. Remove it from the test code...
...so the C99 back end doesn;'t have to carry it.  It's still defined
in the default C back end.
2020-10-25 00:13:56 -04:00
Eric S. Raymond 68d658f60c Sever a C99 dependency on ECHO, 2020-10-25 00:00:47 -04:00
Eric S. Raymond 7ec30d9fee Strip legacy support from the c99 back end.
Gone: C++ support, M4_YY_IN_HEADER. M4_YY_REENTRANT,
and their negation symbols. The strange macrology
requitred to makecunction signatures conditionally
compile for npn-rentrant or reentrant is gone.

The default C back end is not touched by these changes.
2020-10-25 00:00:47 -04:00
Eric S. Raymond eaf84e669d Add tests for both senses of the Lex compatibility option...
...fulfilling a promise made in " Fix buggy handling of lex
compatibility..."
2020-10-24 12:28:19 -04:00
Eric S. Raymond 8301e241dc Move some boilerplate out of rules files.
They are now pure Flex rulesets.
2020-10-24 08:52:51 -04:00
Eric S. Raymond 91b3016f9d Add a test for correctness of {n} behavior when posix_compat is off.
Also, document what the posix and posixlycorrect rulesets are doing
netter.  I lost a day because the dependency on setting POSIXLY_CORRECT
omn the envoronment was not obvious.
2020-10-24 07:46:41 -04:00
Eric S. Raymond 8bec427f3e Turn the posixlycorrect test into a ruleset-based one.
Required generating the posixlycorrrect rules with tests/ruleset.sh
so all platforms will have them.
2020-10-24 07:10:58 -04:00
Eric S. Raymond a5b4a2ee96 Force reentrancy on on the c99 back end...
...amd repair the one c99 test with a non-reentrant main.
The reentrant no longer needs to be specified in an %option line
for C99.
2020-10-23 20:06:42 -04:00
Eric S. Raymond c92f5df6a1 Make the ccl test ruleset-based for all back ends. 2020-10-22 21:03:59 -04:00
Eric S. Raymond 683fa301a7 Documentation cleanup - fix a wrong assumption about tests.
The quotes test is backend-independent and doesn't need
to be run anywhere but C.

Also, remove some debris from the C99 skeleton,
it injects noise into C output comparisons.
2020-10-22 19:50:54 -04:00
Eric S. Raymond 97b5bc730f Repair CLEANFILES and EXTRA_DIST in tests/Makefile.am/
My previous changes were based on incorrect assumptions
about time of evaluation.
2020-10-22 13:53:48 -04:00
Eric S. Raymond efb179b87d Use wildcarding and negation toi cut the verbiage in tests/.gitignore 2020-10-22 12:24:38 -04:00
Eric S. Raymond f5017c14b0 Fix buggy handling of lex compatiblity option introduced during the retargeting work.
Not caught because we don't test that option. It's on my TODO list.
2020-10-22 11:24:27 -04:00
Eric S. Raymond ee9f33ac5d Convert the "posix" test to be ruleset-based...
...so it will run automatically on all back ends.
2020-10-22 11:24:27 -04:00
Eric S. Raymond dddcaa7c97 Another big sinmplification of the test machinery.
If you drop a file with the extension ".rules" in tests/,
"make check" will now automatically make and run tests
for all back ends - presently nr, r, and c99.

It would be trivial to change ruleset.sh so all table-compression
options are checked for all rulesets, and probably a good idea.
2020-10-22 08:29:28 -04:00
Eric S. Raymond cd6fdfdadf Remove unused variable settings in tests/Makefile.am...
...and group the log-compiler settings together where they can be
audited.
2020-10-22 07:15:26 -04:00
Eric S. Raymond 2ff19867ca Abolish the cpp test extension. Those things are just tessts.
The distinction was intriduced when I was first feeling my way
through the test machinery. It doesn't buy us anything.
2020-10-22 07:06:23 -04:00
Daniel Brooks cf6e72bb33 fix a few shellcheck lints that have shown up (#5) 2020-10-21 23:02:40 -04:00
Eric S. Raymond f7cc373669 This commit adds c99 to the list of back ends for tableopts testing.
The overhaul of the test system is done for now, though there will be
more woro to do when testing has to support compilers for non-C
back ends.
2020-10-21 21:58:24 -04:00
Eric S. Raymond cf0f126d13 The new test system now covers table option tests. 2020-10-21 21:12:13 -04:00
Eric S. Raymond 2fb90cc835 Generate some dependency relationships...
...rather than maintaining them by hand.
2020-10-21 19:45:27 -04:00
Eric S. Raymond 1200a3da64 Documentation polishing. 2020-10-21 18:02:12 -04:00
Eric S. Raymond cd8e62a1b7 Teach testwrapper.sh to parse compression options from testnames. 2020-10-21 18:00:07 -04:00
Eric S. Raymond d9826a40d9 Use CxF rather than C_F to prevent case ambiguity, so...
......test names can be split on _ characters in order to parse
the compression options desired in the test.
2020-10-21 17:58:16 -04:00
Eric S. Raymond a110b3b67d Simplify testwrapper.sh by abolishing the -t option.
It's easy enough to tell if a testfile wants a table by looking at its
name.  Getting rid of this option is a step towards putting all
tableopts tests in the generated set so they are trivially portable to
new back ends.
2020-10-21 17:13:01 -04:00
Daniel Brooks 8be9597d7d Use shellcheck on most of the shell scripts in the repository.
And add a "lint" target that runs shellcheck on them.
2020-10-21 17:08:22 -04:00
Eric S. Raymond 1726f1ca2d Documentation polishing. 2020-10-20 16:28:22 -04:00
Eric S. Raymond 30b86fbc07 Abolish reject.l4; all the reject tests are in the new system now.
Still have the tableopts tests to do.
2020-10-20 15:51:58 -04:00
Eric S. Raymond 9ea7800162 Fold non-table-serialization reject tests into new test-generator system.
Enables us to get rid of some spacial-purpose stuff in Makefile.am.
2020-10-20 07:58:33 -04:00
Eric S. Raymond 2034298f3d Integrate all possible simple tests into the new test templating system.
Still to be folded in: all the reject and tableopts tests.

Note: I understand VPATH builds just well enough to suspect that this
commit and my previous broke them, but not well enough to test
or fix it. Mea culpa.
2020-10-20 06:47:15 -04:00
Eric S. Raymond 5a1544256b Greatly simplify CLEANFILES and EXTRA_DIST by using wildcarding.
This reduces the amount of hand-work trquired to add a back end.
2020-10-20 04:53:49 -04:00
Eric S. Raymond 16f19cd7ae Introduce testmaker.m4 and testmaker.sh
The existing method of generating multiple tests from l4 files is not
flexible enough to handle multilanguage - reliance on the C
preprocessor prevents that. This commit creates replacement machinery
that's more flexible and will greatly reduce the complexity of adding
new back ends.

The idea is to generate test .l files by combining a
backend-independent ruleset with backend-dependent boilerplate for
test mains and preambles.

This commit creates the rules files, the m4 to template them into
tests, and a shell wrapper to drive the m4 expansion.  The autoconf
integration works OK, but requires additional rules at the
end of tests/Makefile.am that probably ought to be autogenerated.

There was one other change forced by this.  In order for the new
testmaker to work, it needs to be possible to analyze test file names
into stems and option modifiers.  Having underscores in the stem
would make the analysis slower and bug-prone.

I wanted to change them to "-" rather than deleting them, but this
gives autoconf fits - it seems to not like filenames with embedded
dashes in certain contexts.

At this commit, only one test - array_nr.l - is generated using the new
system.
2020-10-20 03:31:20 -04:00
Eric S. Raymond c23d0161dc Cut down on input-file proliferation.
With a minor tweak to testwrapper we can allow all the versions of
a test for different back ends (counting _r and _nr as back ends)
to share a common input file.
2020-10-17 22:12:25 -04:00
Eric S. Raymond b642977f1c MAINTAINERCLEANFILES typo fix. 2020-10-17 14:59:21 -04:00
Eric S. Raymond f735bad052 Add C99 lineno test. 2020-10-17 14:52:05 -04:00
Eric S. Raymond 07440122ca Improve explanation of m4 quoting. 2020-10-17 14:13:12 -04:00
Eric S. Raymond bd08ddcf8f Fix some minor typos recently introduced in tests/Makefile.am. 2020-10-17 10:29:20 -04:00
Eric S. Raymond e858600158 Documentation polishing. 2020-10-17 10:19:36 -04:00
Eric S. Raymond 1c439cfab2 Finish up the simple-test set for C99. 2020-10-17 08:40:29 -04:00
Daniel Brooks ff0f995851 quick editing pass over recent changes to documentation and comments (#2) 2020-10-16 14:27:46 -04:00
Eric S. Raymond f07c52fdc5 Fix a gacomment garbled by an incautuius replace. 2020-10-16 14:07:03 -04:00
Eric S. Raymond 9a4495add5 Added exteded_c00 test. 2020-10-16 12:34:58 -04:00
Eric S. Raymond 4615b6420c extended -> etended_cpp. 2020-10-16 12:27:07 -04:00
Eric S. Raymond 3290c37223 Actually *commit* the documentation on test conventions. 2020-10-16 12:07:22 -04:00
Eric S. Raymond e6931c9f6c Docunent the -e/--emit backend switch and the new test convention. 2020-10-16 11:56:13 -04:00
Eric S. Raymond 4724e14e38 Adding more c99 tests: alloc_extra_c99, array_c99, ccl_c99, debug_c99.
alloc_extra -> alloc_extra_cpp
ccl -> ccl_cpp

These rena,es meam that the tests for all backends are in either two
parallel series (*_cpp, *_c99) or three (*_nr, *_r, *_c99).
2020-10-16 11:10:16 -04:00
Eric S. Raymond 3c9898eb13 Add first C99 backend test, the C99 spin of basic_r.l.
Illustrates how to adapt an exisying test - in this case,
basic_r.l - for the new c99 back end.
2020-10-16 08:57:36 -04:00
Eric S. Raymond 978a4a3a63 Begin work on a C99 front end.
The idea behind this is to exploit the existing test suite - write a
stripped-down, cleaned up C skeleton that only does reentrant scanners
and tosses out features like loadable tables and header generation
that can't be ported to other languages.

The C99 skeleton can then serve both as a launch point for the Go back
end and a model for back ends in procedural languages without OO.  The
initial version is identical to the cpp skeleton except for different
name and suffix properties abd having M4_MODE_C_OLY forcrd on.  The
latter means it blows up on the C++ tests.
2020-10-16 08:46:39 -04:00
Eric S. Raymond 0e32cd6ce3 Add and document machinery to choose a back end by name.
Back end is now reported in the metadata comments near the top of
generated files.

All is in readiness for the start of direct work on Go support.
2020-10-16 06:10:02 -04:00
Nick Downing c99e66b54d Change inner loops to use int not YY_CHAR, removing need for separate NUL table 2020-10-15 16:47:42 -04:00
Eric S. Raymond 30d0e5f954 Push some C-specific assumptions out of filter.c to the skel file.
The way this is done is by adding a capabiiliy to mine string-valued
properties out of skel files in Flex's binary.

Also, some reorganization to improve the encapsulation of
knowledge about skel files.

No changes in generated test files from this patch.
2020-10-15 15:06:48 -04:00
Eric S. Raymond d658c1c167 Make the format for detecting trace lines a backend property.
No changes in generated test code from this commit.
2020-10-15 07:36:02 -04:00
Eric S. Raymond dd60560bfd Refactor filter.c to use line_directive_out().
To make this work, use line_directive_out() had to be servered from
its deoendence on hidden globaks.  Which was a good idea anyway,

No diffs in generated test code from this commit.

Yet another well-hidden C assumption.  I begin to woner if I will
expire of old age before fkushing out all of these.
2020-10-15 06:43:21 -04:00
Eric S. Raymond 20779d47a7 Factor C/C++ assumptions out of filter.c.
No diffs in generated test code from this commit.
2020-10-15 06:13:24 -04:00
Eric S. Raymond 65b508798f More documentation polishing. 2020-10-14 18:59:05 -04:00
Eric S. Raymond f7f447793a Typo and markup fixes in the manual. 2020-10-14 13:58:29 -04:00
Eric S. Raymond e740e500e2 Documentation polishing. 2020-10-14 13:16:44 -04:00
Eric S. Raymond 35c1cf3426 Remove unused code. 2020-10-14 11:57:24 -04:00
Eric S. Raymond 10daafd5b4 Remove interpretation of %-markup.
Before this commit, "rm cpp-skel.h" may be required in addition
to "make clean".

Since there  no longer any pusging or poping operations, the sko
stack goes away.
2020-10-14 10:56:57 -04:00
Eric S. Raymond efed8275c5 Replace all conditional markup in the skeleton with macro conditionals.
Because having two different consitionalization syntaxes was ugly
and conducive to error.  After this change there are %% breakpoints
and %# comments and nothing else.  Comments on %if lines have been
preserved.

I used the following script:

========================================================================

import sys

flagstack = []
for line in sys.stdin:
    if (not line.startswith("%if")) and (not line.startswith("%endif")) and (not line.startswith("%ok-for")) and (not line.startswith("%not-for")):
        sys.stdout.write(line)
        continue
    elif line.startswith("%endif"):
        if flagstack.pop():
            sys.stdout.write("]])\n")
        continue
    fields = line.strip().split()
    trailer = " ".join(fields[1:]) + "\n"
    if line.startswith("%if-bison-bridge"):
        sys.stdout.write("m4_ifdef([[M4_YY_BISON_LVAL]], [[\n")
        flagstack.append(True)
    elif line.startswith("%if-c++-only"):
        sys.stdout.write("m4_ifdef([[M4_MODE_CXX_ONLY]], [[\n")
        flagstack.append(True)
    elif line.startswith("%if-c-only"):
        sys.stdout.write("m4_ifdef([[M4_MODE_C_ONLY]], [[\n")
        flagstack.append(True)
    elif line.startswith("%if-c-or-c++"):
        flagstack.append(False)
    elif line.startswith("%if-not-reentrant"):
        sys.stdout.write("m4_ifdef([[M4_YY_NOT_REENTRANT]], [[\n")
        flagstack.append(True)
    elif line.startswith("%if-reentrant"):
        sys.stdout.write("m4_ifdef([[M4_YY_REENTRANT]], [[\n")
        flagstack.append(True)
    elif line.startswith("%if-tables-serialization"):
        sys.stdout.write("m4_ifdef([[M4_MODE_TABLESEXT]], [[\n")
        flagstack.append(True)
    elif line.startswith("%not-for-header"):
        sys.stdout.write("m4_ifdef( [[M4_YY_IN_HEADER]],,[[m4_dnl\n")
    elif line.startswith("%ok-for-header"):
        sys.stdout.write("]])\n")
    else:
        sys.stderr.write("depercent: unrecognized %r\n" % line)
        raise SystemExit(1)
    if trailer.strip():
        sys.stdout.write("%# " + trailer)

========================================================================

One nasty little abuse if markup around yyread_r had to be fixed up by hand.
2020-10-14 06:48:07 -04:00
Eric S. Raymond ee6ae49d67 Fix typo introduced when yyunput was added.
The bad commit was:
"Rename unput() to yyunput(); follow through in option switches."

I shouldn't have missed this, but te build has normal warnings
that obscured the waning from Flex.
2020-10-14 06:23:17 -04:00
Eric S. Raymond 18ece7e249 Modernize the C in the skeleton file.
Good modern style in C is to write it as though it were a strongly typed
language even though it isn't; thius, it's no l;onger considered good practice
to apply ! to non-booleans.

Also, fix some indentation annd vraxe usage for uniformity.
2020-10-13 10:27:31 -04:00
Eric S. Raymond bcd8575897 Documentation polishing. 2020-10-13 09:29:24 -04:00
Eric S. Raymond e7611bea3c Three more namespace cleanups for multilanguage.
Replace YY_FLUSH_BUFFER with yy_flush_current_buffer()
Replace YY_CURRENT_BUFFER with yy_current_buffer().
Replace YY_BUFFER_STATE with yybuffer.

The following are the all-caps definitions still exposed:

YY_FLEX_MAJOR_VERSION
YY_FLEX_MINOR_VERSION
YY_FLEX_SUBMINOR_VERSION
YY_NULL
YY_END_OF_BUFFER_CHAR
YY_BUF_SIZE
YYLMAX

It is not idea for this list to be nonempty, but
at least these are all actual comple-time constants
rather than function calls or type names.
2020-10-13 07:44:36 -04:00
Eric S. Raymond 8d0162b80a Update all the examples to use the new API elements.
Add a fully reentrant example.  And update to TODO file.
2020-10-12 21:07:14 -04:00
Eric S. Raymond 68711fc4a7 Replace YY_USER_INIT, YY_USER_ACION, and YY_BREAK #defines with Flex options.
These were the last preprocessor abuses in the Flex interface.

Also, add a TODO listing tests that need to be added.
2020-10-12 16:23:59 -04:00
Eric S. Raymond a4dd4772d2 Make yydecl an ordinary string-valued option rather than a special directive.
This corrects a minor mistake I made earlier because I did not yet understand
the full generality of the option syntax.

Also fixes some minor markup errors in the manual.
2020-10-12 11:06:26 -04:00
Eric S. Raymond 7bd654ca0c Deprecate #define YY_EXTRA_TYPE in favor of the extra-type option.
Follow this through in the examples and manual.
2020-10-12 10:38:18 -04:00
Eric S. Raymond da0cd947c3 Make flex --help work again.
Fixes a stupid, trivial initialization-time bug introduce
during methodizatiion.
2020-10-12 09:36:44 -04:00
Eric S. Raymond aac8fe8896 Revise the manual so the reentrant interface is recommended early.
Also add the first example friom the manual, and a reentrant variant
of it, to the example set.  And document how to integrate examples.
2020-10-12 09:16:40 -04:00
Eric S. Raymond 721622ea6e Rename unput() to yyunput(); follow through in option switches.
This change was not strictly necessary to sever a preprocessor
dependency nor make the API uniform aross both C and C++.  But it
cried out to be made, because now *all* the rule hooks are in the yy*
namespace.  This makes the API easier to document and remember.

unput() is left in place as a compatibility macro for existing
users, but only documented as a legacy interface.  The "unput"
variants of switches and options have also been retained.
2020-10-12 06:56:56 -04:00
Eric S. Raymond dad680611b Deprecate input(); document yyinput() for the C back end...
...leaving an "input" macro in place for legacy compatibility.

input() had already become yyinput() in the C++ back end in order to
avoid collision with predefibed C++ inoput. In a multi-language world,
this is good policy in general.  There's no real reason for C to
be different, and excellent reason to pull all possible entry
points into the yy namespace.
2020-10-12 05:35:24 -04:00
Eric S. Raymond 526be1f459 Introduce the term "rule hook" so we can use the term "macro" less.
Non-C/C++ back ends won't have macros, so the documentation should
treat macro-ness as an implementation detail when it has to be
mentioned at all - and usually it doesn't.

The key thing about rule hooks like yyless(), yymore() etc. isn't that
they're macros, it's that they can only br used in rule actions (e.g.
inside the body of the genetated tyylex code.

This documentation patch removes the term "macro" where it isn't needed.
2020-10-11 16:55:08 -04:00
Eric S. Raymond f8225f259e Implement and document yystart(), replacing YY_START.
As usual, legacy interface left in place but deprecated.
2020-10-11 15:46:05 -04:00
Eric S. Raymond cecae8b6aa Implement and document %noyyread, replacing YY_INPUT. 2020-10-11 13:04:57 -04:00
Eric S. Raymond 956ac03b7d Refactor YY_INPUT so it calls a new yyread() internal function....
...rather than splicing a bunch of exposed guts into the middle of
yylex().  yyread() is put in the set of functions that gets
prefix-modified.

This means buffer refill can be documented without C-specific
references to YY_INPUT.

It should also enable actually having a non-macro replacement
for YY_INPUT, with a bit more work.
2020-10-11 11:05:12 -04:00
Eric S. Raymond 1094c2a137 Revise Flex manual to say useful things about multilanguage support.
No specific thing can be said about a non-C/C++ backend yet, but
this patch prepares the way by explaining which features and aspects
of the Flex interface are specific to C/C++.

It also fixes one pre-ANSI prototype - that of non-reentrant yylex(),
which should be declared yylex(void) in this day and age.

These changes make one new commitment. Observing that the YY_INPUT
macro is impossible to port out of the C/C++ context, I have observed that
it is probably extinct in the wild (due to the later introduction of
the multi-buffer primitives, though I don't say that explicitly). The
text says tat people who really need the equivalent of this capability
in a non-C/C++ back end should file an issue with the Flex maintainers.

I don't actually expect this to happen.
2020-10-11 05:14:41 -04:00
Eric S. Raymond 3158c7f072 Implement and document %option yylmax to replace #define YYLMAX.
Test in tests/test-yylmax.
2020-10-10 19:25:32 -04:00
Eric S. Raymond 0d1959c595 Implement and document %yydecl directive to replace #define YY_DECL.
Also added a deprecation note abut the old mechanism.
2020-10-10 17:21:11 -04:00
Eric S. Raymond 76affdf894 Deprecate ECHO in favor of yyecho().
I changed the tests to use yyecho(), but the ECHO macro is still
exercised in the bootstrap scanner.
2020-10-09 23:28:42 -04:00
Eric S. Raymond 3612bc281e Deprecate BEGIN in favor of yybegin(). Worst of the awkward squad. 2020-10-09 19:06:32 -04:00
Eric S. Raymond 62a13a3a3d First step towards an interface independent of C macros.
This patch implements and documents a yyreject() macro to replace
argumentless REJECT.  It does not remove REJECT, but warns that this
macro will not be supported in non-C languages and deprecates it.

This commit begins a new appendix in the Flex manual, to list
deprecated interfaces and explain why they have been superseded.
2020-10-09 08:29:55 -04:00
Eric S. Raymond 1e9c36271e Do consistent optimal packing of arrays.
Flex has a strategy of packing its arrays with in32 or imt32 depending
on length, but it wasn't applied consistently. While I don't thinlk this
kind of space optimization matters a lot in 2020, if we're going to do it at
all we should do it thoroughly.
2020-10-08 16:03:03 -04:00
Eric S. Raymond 723fd2c3b4 Remove unused code.
Indepemdent of the retargeting changes.
2020-10-08 14:13:28 -04:00
Eric S. Raymond 700f9d3b6a Eliminate the c_like backend member.
No need for it, since the skel content is in core
and the relevant hook can be searched for.

This is a postscript to the retargeting series.  It's
not necessary, but it imoroves the code slightly.
2020-10-08 14:13:28 -04:00
Eric S. Raymond 8da857acc6 Update the documentation on writing a back end,
It will doubtless need expansion and revision when we actually
write one.

No diffs in generated test code.

#70 and last in the retargeting patch series
2020-10-07 19:11:19 -04:00
Eric S. Raymond 102c7a0149 Finish up macro abstraction.
Everything Flex ships to the skeleton-file expansion phase is
now either a macro expansion or a macro call.  This almost finishes
the retargeting patch series; the wrapup will be documentation.

Sadky, this does not get us *all* the way to target-syntax independence.
The probem is the inclusion of tables_shared.c when table serialization is
enabled. Which ,eans table serialization is not practical to support
outside the C/C++ back end.

No diffs in generated test code from this commit.

#69 in the retargeting patch series
2020-10-07 17:19:31 -04:00
Eric S. Raymond de76933658 Macroize all the remaining code-generation methods.
Produces a tediously large diff in generated test code that
is all table moving around.  This is due to them being shipped
as macros and being substitured in a fixed order determined
by the calls in the skell file, rather than veing generated as
the functrions originally emitting the tables are called.

#68 in the retargeting patch series
2020-10-07 16:35:59 -04:00
Eric S. Raymond 34771445d5 Inline all yydmap entries, get rid of %tables-yydmap.
What it used to do is now handled entirely by macro conditionals.
Besides being a good complexoty reduction in itself, this is one
of the last steps in turning C backend methods into macro deliveries.

Order of the yydmap table is perturbed. No other non-whitespace
diffs and no logic changes,

#67 in the retargeting patch series
2020-10-07 06:28:09 -04:00
Eric S. Raymond fd8748a311 Preparationn for macroizing the last eight methods.
This commit collects several minor changes:

* Fix a minor type specification bug in a tablesext initializer.

* macroize the trans_offset, mkctbl, and mkftbl methods.

* Fix a bug in footprint computation.

This commit oroduces no code diffs in the generated test code, but the
footprint reports change due to the bug fix.

#66 in the retargeting patch series
2020-10-06 14:25:56 -04:00
Eric S. Raymond 716cb63ff2 Tweak the indent style of tables with macroexpanded bodies...
...to have an indent style uniform with the rest of the code,
and one that makes it easier noy to miss the trailing table delimiters.

Not all tables are generated this way yet.  I'm working on it.

Is isolated in its own commit so the format change can't confuse a
reviewer's eyeballs out of noticing real mutations in the table data.

#65 in the retargeting patch series
2020-10-06 01:17:19 -04:00
Eric S. Raymond 96e004a296 Macroize the yy_meta, gen_yy_trans and start_state_list methods.
Also macro-generate yydmap entry for the yymeta table.

We're npw about 75% of the way through pushing all
C syntax out of the method table.
Permutes table order in the generated code.

#64 in the retargeting patch series
2020-10-05 21:02:51 -04:00
Eric S. Raymond 64cf032806 Eliminate a lurking cpp-ism from scan.l
Also, remove now-unused functions from buf.c.
And corral another global.

Produces no diffs in generated test code.

#63 in the retargeting patch series
2020-10-05 20:55:47 -04:00
Eric S. Raymond fafc0ef10c Replace the comment method with a hook macro.
This required addin a new 0.0 breakpoint right after the
M4_HOOK_* definitions so they will be visible early.

Produces no diffs in generated test code.

#62 in the retargeting patch series
2020-10-05 09:28:02 -04:00
Eric S. Raymond 83d8bd5fb9 Enliminate several backend methods by shipping hook macros instead.
They were: geneol, fulltable, eecs, and debug.

To accomplish this, dataend's emission of trailing } needed to be
suppressable.

Also, remove a %% mark that is no longer required.

This doesn't change any of the generated tables, but does change the
orer in which they're generated, froducing large diffs in the
generated test code that don't actually mean anything.  The reason for
this is that tables used to come out in a variable order as functions
like geneecs were called ar variable times depending on the
compressuion mode.  Now, instead, the order is fixed by where the
tanle-body macros these functions define are expanded.

More methods remain to be turnerd into macro generators.

#61 in the retargeting patch series, following an unnumbered
bugfix patch that I shipped in too much of a hurry.
2020-10-05 05:12:49 -04:00
Eric S. Raymond aea91d7e4b Reopair a buuld recipe bug introduced in #52...
...by an icatous replace operation.  Insidious because
it's undetectibe until you run configure again,

Two-phase build systems suck.
2020-10-04 00:17:17 -04:00
Eric S. Raymond e5386ba368 Refactor so all skelout calls are in visible sequence in flex_main().
This makes the overall control flow easier to understand.

#59 in the retargeting patch series
2020-10-03 13:03:28 -04:00
Eric S. Raymond 6c1b4a95f9 Begin replacing method table entries with hook macros
Do this for table opener/closer/continuation syntax, the trace-format
string, the state entry string, constant definitions, the state-dyad
format, and the three pieces of EOF state syntax.  The documentation
appendix on how to write a back end is also updated.

There are comment diffs because I decided generating an
explicit fallthrough marker and some other new explanatory comments
was a good idea.

#58 in the retargeting patch series
2020-10-03 13:03:28 -04:00
Eric S. Raymond ea32296019 As of this commit, all mode symbolds are finally visible.
All symbols except a handful dependent on nultrans and the number of
backups are now written in one visible group right at the start of m4
generation.  The exception are exceptions because their values
are not known until after DFA computation.

Has comment diffs in generated test code due to one symbol rename and
symbols beoming visible. Should be the last time the latter happens.

#57 in the retargeting patch series
2020-10-02 21:57:54 -04:00
Eric S. Raymond 0fc45ce97c Clean up various sporadic symbol definitions that weren't going through ctrl.
Includes handling of --nounistd, --always_interactive, --never_interactive, --stack,
their corresponding lexer items, and and noinput.

An unavoidable side effect is that the place where "#define
YY_NO_INPUT 1" is inserted, if it's inserted. has to move because it's
done by a different route - m4 expansion rather than the action_define
function (which is now gone - this was the last use). I have put the
new insertion point just iin time for the first reference to the macro.

Otherwise the only diffs in generarted test code are symbol
definitions becoming visible.

#56 in the retargeting patch series
2020-10-02 13:13:40 -04:00
Eric S. Raymond 7e77d8f475 Move almost all m4 symbol setting to one spot.
Formerly, Flex's own lexer and the logic for pocessing command-line
options both did calls to write M4 conditionals to a buffer that was
later dumped into the befinning of the text that m4 expands, before
the body of the skel file.

This was bad layering.  Instead, both these places now set flags in
the ctrl structure.  Later, (almost) all the generated m4 conditionals
are shipped at once.

It's "almost" because there are a couple of awkward cases to be
cleaned up.  Again, this was the part that could be done
simply via almost mechanical cut and paste.

In generated code, there are some comment diffs because symbols that
used to be invisibly set are now visibly set - that is, shown at the
beginning of the generated C.

#55 in the retargeting patch series
2020-10-02 05:55:36 -04:00
Eric S. Raymond c5d0e408e2 Methodize a suffix computation and move headerfile into ctrl.
This cleans up some loose ends before the next big move.

#54 in the retargeting patch series. #53 slipped out unnumbered.
2020-10-02 04:55:37 -04:00
Eric S. Raymond 9dbc704ad4 yytext_is_array moves to the ctrl structure.
This is separate from the big reorganization in commit #52 because
there's a comment about this variable in flexdef.h that makes me
nervous.  According to the comment this variable is a trit, but
it looks to me like flexinit sets it to false and I can't find
anywhere in the code that sets it to a non-boolean value.

This commit asumes that the comment is stale and the member
can be typed boolean. Should be audited.
2020-10-02 00:17:31 -04:00
Eric S. Raymond 99e6b1c89a Impose some namespace control on the global variables.
As I was working on some layer separation.  I realized that I
was getting confused a lot by the huge pile of globals that
control this program.

In particular, I need to be able to clearly distinguish those that set
m4 conditional symbols from those that don't.  So I've done something
about it. Almost all globals that can be set by options are now
bundled into two context structures, "ctrl" for options that have
corresponding m4 symbols and "env" for options that don't.

The few I haven't moved have sufficiently tricky interdependencies
that I'm going to break out any changes related to them into smaller
patches that can be easier to review.  In this one I did only the bulk
of straightforward changes that could be done mechanically with search
and replace.

I changed one varuable name to reflext its senantics better;
the performance_report global is now env.performance_hint.

Ideally there ought to be a third structure that bundles all the
shared state used by DFA/NDFSA table computation, so all globals would
live in one of three context structures.  I may do that in a later
commit, but this patch is already unpleasantly large as it is.

No diffs in generated test code, nor any logic changes.

#52 in the retargeting patch series.
2020-10-01 17:40:06 -04:00
Eric S. Raymond 5c6661bb2e Eliminate all uses of buf_strdefine().
There were only two left, for YY_MAIN, and that definition
was moved so it's in the visible controls.

This is a step towards making *all* conditionalization symbols
viible in generated comments.

This commit also cleans up some misnamed mode symbols.  There are
still a couple of duplicative pairs, to be cleaned up in a later
commit.

We can now report generated M4 symbols with values in the "m4
controls" part of a generated file. Partly as a result, the following
symbols become visible in generare code from the tests:
M4_MODE_PREFIX, M4_YY_TABLES_VERIFY, M4_YY_REENTRANT, and
M4_MODE_PREFIX.

No other diffs.

#51 in the retargeting patch series. #50 was accidentally
unnumbered.
2020-10-01 01:34:07 -04:00
Eric S. Raymond 7877454e42 Eliminate the epilog member from the method table.
It was a no-op anyway in the C version, there as a placeholder
in case other languages needed it.  But in the new organization
of things, with everything being done by conditional expansion in
the skeleton file, there's no point.

No diffs at all in generated test code.

Thios does remove some cpde that was conditioned out, an abandoned
attempt to undefine all #defines at the end of code generation.
2020-09-30 21:18:34 -04:00
Eric S. Raymond 8c2d23d9a8 Eliminate the prolog method from the method table.
Now that all the mode conditionals are visible early, wverything that
used to be done in the prolog can be done as conditionalized code in the
skeleton.

Whitespace and comment diffs only.

#49 in the retargeting patch series
2020-09-30 20:53:57 -04:00
Eric S. Raymond 981867ff15 Land the footprint-reporting feature.
Also, clean up some unused and duplicative symbols.

In generated test code, comment and whitespace diffs only
except for YY_INT_ALIGNED going away.

#48 in the retargeting patch series
2020-09-30 08:37:39 -04:00
Eric S. Raymond 31c3f7703d Methodize section marker output and refactor initialization.
The point of this change is to move the setting of the M4_MODE_*
controls up to the front of the generated code so that they can be
used for conditionalization earlier, notably in replacing the prolog
method.  I tried to do this in #46 but dididn't move the mode
setting far enough up.

(Also, rename instances of a duplicated mode switch.)

In generated code, the m4 controls move but nothing else changes.

#47 in the retargeting patch series
2020-09-30 07:29:43 -04:00
Eric S. Raymond abe2c1fe70 Transplant where the mode controls are shipped to earlier.
This should make it possible to eliminate much of the C-specific
prolog code.

Sadly, because of the moves of the generated comments this makes
a rather noisy diff.  All comments and whitespace, though;
what looks like being other than that is pieces of generated code
being shifteed around.

#46 in the retargeting patch series
2020-09-29 21:23:46 -04:00
Eric S. Raymond a9e86a3299 Eliminate two backend methods in favor of m4 expansion.
Produces only whitespace diffs in generated code for tests, except the
order of items in the initializer for table serialization changes.

#45 in the retargeting patch series
2020-09-29 17:18:43 -04:00
Eric S. Raymond 4b952cbf80 Eliminate ugly %define-yytables magic in skelout().
This feature is better implemented with m4 macroexpansion;
that way skelout() does not have to know that #define is a thing.

Also in skelout(), use the backend comment method rather than
embedding knowledge about /* and */, and int_format_define
to factor out knowedge about #define.

Produces only comment diffs in the generated test code.

#44 in the retargeting patch series
2020-09-29 16:53:47 -04:00
Eric S. Raymond 34b84d5823 Narrow the driver interface.
This patch is a pure refactoring step.  It changes the
interface between gen.c and the back end so that the
method table can shed a number of methods and no headers
are generated in gen.c any more.

Most methods now return the amount of memory they
allocate.  Eventually this will be used to add
a report on this to the generated code.

No diffs in generated code, even without ignoring whitespace.

#43 in the retargeting patch series, which turned out
not to be finished after all. These is ugly magic in skelout()
that needs to be factored out.
2020-09-29 04:53:46 -04:00
Eric S. Raymond 103634e4ca Clean up the indentation and brace usage in the skeleton file.
It was in a mix of several different styles tht made it hard
to read.  I've massaged it all ibto K&R with tabs and mandatory
braces.  No logic changes.
2020-09-27 11:08:36 -04:00
Eric S. Raymond 42a39df0f5 Fo;d documentation on how to write bac ends into the Texinfo manual. 2020-09-25 22:14:32 -04:00
Eric S. Raymond 04c5b7c920 remove some gcc warnings 2020-09-06 11:21:46 -04:00
Houtan Bastani 1d27d6343e doc: fix typo 2018-11-26 15:51:23 +01:00
Explorer09 9be1980ef2 build: Fix autogen.sh $LIBTOOLIZE detection logic
* Don't silence `libtoolize --version` error message. It would be
useful for diagnosing any problem when `libtoolize --version` fails.
(libtoolize not found? No permission to execute? Now you know which
error it is.)
* Change the guessing code of libtoolize program name to a loop.
It'll perform silently.
* Silence the `libtoolize --version` output when it succeeds.

Signed-off-by: Kang-che Sung <explorer09@gmail.com>
2018-09-22 11:01:53 +08:00
Explorer09 8900923e91 build: autogen.sh libtoolize invocation minor fixes.
* Let autogen.sh error message go to stderr.
* Don't quote the variable $LIBTOOLIZE when invoking it. This would
allow invocation when LIBTOOLIZE='a-future-libtoolize --gnu-compat'

Signed-off-by: Kang-che Sung <explorer09@gmail.com>
2018-09-22 11:00:18 +08:00
184 changed files with 21112 additions and 12935 deletions
+29
View File
@@ -0,0 +1,29 @@
name: Build and Test
on:
push:
branches: [ master ]
tags-ignore:
- 'v*'
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: apt
run: sudo apt-get install gcc autoconf bison gettext autopoint help2man lzip texinfo texlive
- name: autogen
run: ./autogen.sh
- name: configure
run: ./configure
- name: make
run: make
- name: make check
run: make check
- name: make distcheck
run: make distcheck
+79
View File
@@ -0,0 +1,79 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '31 22 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Apt
run: sudo apt-get install gcc autoconf bison gettext autopoint help2man lzip texinfo texlive
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild expects to start by running configure.
# Run autogen.sh to ensure configure exists.
- name: Autogen
run: |
./autogen.sh
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following four lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- name: Build
# run: |
# ./configure
# make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
-1
View File
@@ -8,7 +8,6 @@
.libs
ABOUT-NLS
ChangeLog
INSTALL
Makefile
Makefile.in
aclocal.m4
-24
View File
@@ -1,24 +0,0 @@
language: c
compiler:
- gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- autoconf
- bison
- gcc-6
- help2man
- lzip
- texinfo
- texlive
before_script:
- ./.travis/install-gettext.sh
- ./.travis/install-automake.sh
- export PATH=$HOME/bin:$PATH
script: ./autogen.sh && ./configure && make && make check && make distcheck
-24
View File
@@ -1,24 +0,0 @@
#!/bin/bash -ex
wget -nv https://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz
# Verify tarball against hard-coded hashes. GPG signatures require an external
# keyserver which might be offline, which is undesirable for build server use.
# It's equally secure to just hard-code hashes, provided they're trusted (i.e.
# you verify a hash against a GPG signature once).
echo 'd3cd5fc9bbea9f977b51799180cde5d253dcba96 *automake-1.15.1.tar.gz'|
sha1sum -c || :
printf '%s *automake-1.15.1.tar.gz\n' \
f0d4717ebe2c76cec5d487de090f6e1c0f784b0d382fd964ffa846287e2a364a\
52531a26ab98b7033ac04ed302a247b3b114299def54819a03439bfc962ff61b|
sha512sum -c || :
tar xf automake-1.15.1.tar.gz
cd automake-1.15.1
# Don't flood Travis CI build log with dependency packages unless error occurs.
./configure --quiet --prefix="$HOME" ||
{ s=$? && cat config.log && (exit $s); }
make -s V=0 >/dev/null 2>&1 || make -s V=1
make -s install >make_install.log 2>&1 ||
{ s=$? && cat make_install.log && (exit $s); }
rm make_install.log || :
-25
View File
@@ -1,25 +0,0 @@
#!/bin/bash -ex
wget -nv https://ftp.gnu.org/gnu/gettext/gettext-0.19.8.1.tar.lz
# Verify tarball against hard-coded hashes. GPG signatures require an external
# keyserver which might be offline, which is undesirable for build server use.
# It's equally secure to just hard-code hashes, provided they're trusted (i.e.
# you verify a hash against a GPG signature once).
echo '404e072c455f79be4a2458863c19fb55a217771e *gettext-0.19.8.1.tar.lz'|
sha1sum -c || :
printf '%s *gettext-0.19.8.1.tar.lz\n' \
27c7a15be1ffd30a0182e264d0bf896850a295160872e1b1b9d1e9a15bc486cd\
93465c131f948206fa0bbe2e3eacfc8489dd0cfc5ea5dcf05eff3829e27fc60f|
sha512sum -c || :
tar xf gettext-0.19.8.1.tar.lz
cd gettext-0.19.8.1
# Don't flood Travis CI build log with dependency packages unless error occurs.
# libacl is not used in this Travis build system.
./configure --quiet --prefix="$HOME" --disable-acl ||
{ s=$? && cat config.log && (exit $s); }
make -s V=0 >/dev/null 2>&1 || make -s V=1
make -s install >make_install.log 2>&1 ||
{ s=$? && cat make_install.log && (exit $s); }
rm make_install.log || :
+67
View File
@@ -0,0 +1,67 @@
# INSTALLING Flex
## Should you be here at all?
If building, developing or compiling C programs is new to you, you probably want to use your operating system's standard means of installing software to install flex. If you do not need the latest features of flex, you probably just want to use your operating system's standard means of installing software to obtain flex.
## Now that you know you should be here ...
If you are not familiar with bootstrapping C code from a git repository or if GNU autotools seems like a jumble of tenuous incantationery to you, then make sure that you downloaded one of the release tar archives of flex. You can verify this by checking the filename of what you downloaded. If it is something like "flex-<version>.tar.<compressiontype>" then you have a release tar archives. If you have a filename like "flex.tar.gz" or "flex.zip", you have a copy of the git repository and you didn't download the thing you wanted to.
## Building from a release archive
To build flex from a release archive:
$ ./configure <any configure options you need>
$ make
To see what options are available from the configure script:
$ ./configure --help
Optionally run the test suite:
$ make check
To install the flex you just built:
$ make install
Note that you may want to make use of the DESTDIR argument on the "make install" command line or that you may want to have used the "--prefix" argument with configure (or mostly equivalently the "prefix" argument on the make command line).
## Building from the git repository
To build from the git repository:
First, make sure you have a copy of flex installed somewhere on your path so that configure can find it. You can usually do this with your operating system's standard means of installing software. Sometimes, you have to build from a recent release of flex, however.
You will also need all the programs that flex needs in order to be built from scratch --
* compiler suite - flex is built with gcc
* bash, or a good Bourne-style shell
* m4 - `m4 -P` needs to work; GNU m4 and a few others are suitable
* GNU bison; to generate parse.c from parse.y
* autoconf; for handling the build system
* automake; for Makefile generation
* gettext; for i18n support
* help2man; to generate the flex man page
* tar, gzip, lzip, etc.; for packaging of the source distribution
* GNU texinfo; to build and test the flex manual. Note that if you want
to build the dvi/ps/pdf versions of the documentation you will need
texi2dvi and related programs, along with a sufficiently powerful
implementation of TeX to process them. See your operating system
documentation for how to achieve this. The printable versions of the
manual are not built unless specifically requested, but the targets
are included by automake.
* GNU indent; for indenting the flex source the way we want it done
In cases where the versions of the above tools matter, the file
configure.ac will specify the minimum required versions.
Then:
$ ./autogen.sh
After autogen.sh finishes successfully, building flex follows the same steps as building flex from a release archive.
Note that, in addition to "make check", "make distcheck" builds a release archive and builds and tests flex from inside a directory containing only known distributed files.
+6 -2
View File
@@ -38,7 +38,8 @@ dist_doc_DATA = \
README.md
EXTRA_DIST = \
.indent.pro
.indent.pro \
INSTALL
dist_noinst_SCRIPTS = \
autogen.sh \
@@ -89,5 +90,8 @@ install-exec-hook:
cd $(DESTDIR)$(bindir) && \
$(LN_S) -f flex$(EXEEXT) flex++$(EXEEXT)
lint:
shellcheck -f gcc tests/*.sh src/*.sh *.sh
.PHONY: libfl install-libfl uninstall-libfl clean-libfl \
ChangeLog indent
ChangeLog indent lint
+2 -43
View File
@@ -1,4 +1,5 @@
[![Build Status](https://travis-ci.org/westes/flex.svg?branch=master)](https://travis-ci.org/westes/flex)
[![Build Status](https://github.com/westes/flex/actions/workflows/build.yml/badge.svg)](https://github.com/westes/flex/actions/workflows/build.yml)
This is flex, the fast lexical analyzer generator.
@@ -41,48 +42,6 @@ interest:
* tests/ - regression tests. See TESTS/README for details.
* po/ - internationalization support files.
You need the following tools to build flex from the maintainer's
repository:
* compiler suite - flex is built with gcc
* bash, or a good Bourne-style shell
* m4 - `m4 -P` needs to work; GNU m4 and a few others are suitable
* GNU bison; to generate parse.c from parse.y
* autoconf; for handling the build system
* automake; for Makefile generation
* gettext; for i18n support
* help2man; to generate the flex man page
* tar, gzip, lzip, etc.; for packaging of the source distribution
* GNU texinfo; to build and test the flex manual. Note that if you want
to build the dvi/ps/pdf versions of the documentation you will need
texi2dvi and related programs, along with a sufficiently powerful
implementation of TeX to process them. See your operating system
documentation for how to achieve this. The printable versions of the
manual are not built unless specifically requested, but the targets
are included by automake.
* GNU indent; for indenting the flex source the way we want it done
In cases where the versions of the above tools matter, the file
configure.ac will specify the minimum required versions.
Once you have all the necessary tools installed, life becomes
simple. To prepare the flex tree for building, run the script:
```bash
./autogen.sh
```
in the top level of the flex source tree.
This script calls the various tools needed to get flex ready for the
GNU-style configure script to be able to work.
From this point on, building flex follows the usual routine:
```bash
configure && make && make install
```
---
This file is part of flex.
+9
View File
@@ -0,0 +1,9 @@
Things to be worked on:
* Tests for %option user-init, %option pre-action, %option post-action.
* integrate examples directory into tests so that normal testing
proves the examples are up to date.
* Do away with any need for -lfl by generating a default yywrap
if the user doesn't specify one.
+13 -12
View File
@@ -25,19 +25,20 @@
# and procede with the "normal" build procedures.
# use LIBTOOLIZE, if set
LIBTOOLIZE_ORIG="$LIBTOOLIZE";
if test "x$LIBTOOLIZE" = "x"; then LIBTOOLIZE=libtoolize; fi
if test "x$LIBTOOLIZE" = "x"; then
for ac_prog in libtoolize glibtoolize; do
if $ac_prog --version >/dev/null 2>&1; then
LIBTOOLIZE=$ac_prog
break
fi
done
fi
# test libtoolize
$LIBTOOLIZE --version 2>/dev/null
if test "$?" -ne 0; then
LIBTOOLIZE=glibtoolize
$LIBTOOLIZE --version 2>/dev/null
if test "$?" -ne 0; then
echo "error: libtoolize not working, re-run with LIBTOOLIZE=/path/to/libtoolize"
echo " LIBTOOLIZE is currently \"$LIBTOOLIZE_ORIG\""
exit 1
fi
if test "x$LIBTOOLIZE" = "x" || ! $LIBTOOLIZE --version >/dev/null; then
echo "error: libtoolize not working, re-run with LIBTOOLIZE=/path/to/libtoolize">&2
echo " LIBTOOLIZE is currently \"$LIBTOOLIZE\"">&2
exit 1
fi
#if we pretend to have a ChangeLog, then automake is less
@@ -47,5 +48,5 @@ fi
if ! test -f ChangeLog; then
touch ChangeLog
fi
"$LIBTOOLIZE" --install --force
$LIBTOOLIZE --install --force
autoreconf --install --force
+1 -1
View File
@@ -119,7 +119,7 @@ AC_PATH_PROG([INDENT], indent, [\${top_srcdir}/build-aux/missing indent])
# checks for headers
AC_CHECK_HEADERS([regex.h strings.h sys/stat.h sys/wait.h unistd.h], [],
AC_CHECK_HEADERS([regex.h strings.h sys/wait.h unistd.h], [],
[AC_MSG_ERROR(required header not found on your system)])
AC_CHECK_HEADERS([inttypes.h libintl.h limits.h locale.h malloc.h netinet/in.h])
Regular → Executable
+3
View File
@@ -1,6 +1,9 @@
FLEX = $(top_builddir)/src/flex$(EXEEXT)
TEXI2DVI = @TEXI2DVI@ -I $(srcdir)/../examples/manual/
TEXI2PDF = @TEXI2PDF@ -I $(srcdir)/../examples/manual/
info_TEXINFOS = flex.texi
AM_MAKEINFOFLAGS = -I $(srcdir)/../examples/manual/
dist_man_MANS = flex.1
MAINTAINERCLEANFILES = flex.1
Regular → Executable
+1538 -1021
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -30,6 +30,9 @@ EXTRA_DIST = \
eof_test01.txt \
eof_test02.txt \
eof_test03.txt \
example_er.lex \
example_r.lex \
example_nr.lex \
expr.lex \
expr.y \
front.lex \
+13
View File
@@ -18,10 +18,23 @@ ALLOCA =
# DO NOT CHANGE ANYTHING FROM HERE ON !!!!!!!!!
#
############################################################
PATH := /usr/local/bin:${PATH}
all: expr front myname eof wc replace user_act string1\
string2 yymore numbers dates cat
example_r: example_r.lex
$(LEX) example_r.lex
$(CC) lex.yy.c -o example_r
example_nr: example_nr.lex
$(LEX) example_nr.lex
$(CC) lex.yy.c -o example_nr
example_er: example_er.lex
$(LEX) example_er.lex
$(CC) lex.yy.c -o example_er
expr: expr.y expr.lex
$(YACC) expr.y
$(LEX) expr.lex
+6
View File
@@ -10,3 +10,9 @@ To build the programs individually, type
For example:
make -f Makefile.examples expr
If you ad an eample to this directory, don't frget these steps:
* Add it to the EXTRA_DIST list in Makefile.am
* Add a build recipe to Makefile/examples.
+12 -12
View File
@@ -54,13 +54,13 @@ day_ext (st|nd|rd|th)?
/* the default is month-day-year */
<LONG>{day_of_the_week} strcpy(dow,yytext);
<LONG>{month} strcpy(month,yytext); BEGIN(DAY);
<LONG>{month} strcpy(month,yytext); yybegin(DAY);
/* handle the form: day-month-year */
<LONG>{nday}{day_ext} strcpy(day,yytext); BEGIN(DAY_FIRST);
<DAY_FIRST>{month} strcpy(month,yytext); BEGIN(LONG);
<DAY>{nday}{day_ext} strcpy(day,yytext); BEGIN(LONG);
<LONG>{nday}{day_ext} strcpy(day,yytext); yybegin(DAY_FIRST);
<DAY_FIRST>{month} strcpy(month,yytext); yybegin(LONG);
<DAY>{nday}{day_ext} strcpy(day,yytext); yybegin(LONG);
<LONG>{nyear}{year_ext} {
printf("Long:\n");
@@ -75,15 +75,15 @@ day_ext (st|nd|rd|th)?
/* handle dates of the form: day-month-year */
<SHORT>{nday} strcpy(day,yytext); BEGIN(YEAR_LAST);
<YEAR_LAST>{nmonth} strcpy(month,yytext);BEGIN(YLMONTH);
<YLMONTH>{nyear} strcpy(year,yytext); BEGIN(SHORT);
<SHORT>{nday} strcpy(day,yytext); yybegin(YEAR_LAST);
<YEAR_LAST>{nmonth} strcpy(month,yytext);yybegin(YLMONTH);
<YLMONTH>{nyear} strcpy(year,yytext); yybegin(SHORT);
/* handle dates of the form: year-month-day */
<SHORT>{nyear} strcpy(year,yytext); BEGIN(YEAR_FIRST);
<YEAR_FIRST>{nmonth} strcpy(month,yytext);BEGIN(YFMONTH);
<YFMONTH>{nday} strcpy(day,yytext); BEGIN(SHORT);
<SHORT>{nyear} strcpy(year,yytext); yybegin(YEAR_FIRST);
<YEAR_FIRST>{nmonth} strcpy(month,yytext);yybegin(YFMONTH);
<YFMONTH>{nday} strcpy(day,yytext); yybegin(SHORT);
<SHORT>\n {
@@ -96,8 +96,8 @@ day_ext (st|nd|rd|th)?
strcpy(month,"");
}
long\n BEGIN(LONG);
short\n BEGIN(SHORT);
long\n yybegin(LONG);
short\n yybegin(SHORT);
{skip}*
\n
+5 -5
View File
@@ -17,15 +17,15 @@ int include_count = -1;
%%
^"#include"[ \t]*\" BEGIN(INCLUDE);
<INCLUDE>\" BEGIN(INITIAL);
^"#include"[ \t]*\" yybegin(INCLUDE);
<INCLUDE>\" yybegin(INITIAL);
<INCLUDE>[^\"]+ { /* get the include file name */
if ( include_count >= MAX_NEST){
fprintf( stderr, "Too many include files" );
exit( 1 );
}
include_stack[++include_count] = YY_CURRENT_BUFFER;
include_stack[++include_count] = yy_current_buffer();
yyin = fopen( yytext, "r" );
if ( ! yyin ){
@@ -35,7 +35,7 @@ int include_count = -1;
yy_switch_to_buffer(yy_create_buffer(yyin,YY_BUF_SIZE));
BEGIN(INITIAL);
yybegin(INITIAL);
}
<INCLUDE><<EOF>>
{
@@ -48,7 +48,7 @@ int include_count = -1;
} else {
yy_delete_buffer(include_stack[include_count--] );
yy_switch_to_buffer(include_stack[include_count] );
BEGIN(INCLUDE);
yybegin(INCLUDE);
}
}
[a-z]+ ECHO;
+35
View File
@@ -0,0 +1,35 @@
/* basic example, fully reentrant thread-safe version */
%{
struct stats {
int num_lines;
int num_chars;
};
%}
%option reentrant noyywrap
%option extra-type="struct stats"
%%
\n {
struct stats ns = yyget_extra(yyscanner);
++ns.num_lines; ++ns.num_chars;
yyset_extra(ns, yyscanner);
}
. {
struct stats ns = yyget_extra(yyscanner);
++ns.num_chars;
yyset_extra(ns, yyscanner);
}
%%
int main() {
yyscan_t scanner;
struct stats ns;
yylex_init ( &scanner );
yylex ( scanner );
ns = yyget_extra(scanner);
printf( "# of lines = %d, # of chars = %d\n",
ns.num_lines, ns.num_chars);
yylex_destroy ( scanner );
}
+16
View File
@@ -0,0 +1,16 @@
/* basic example - non-reentrant version */
%{
int num_lines = 0, num_chars = 0;
%}
%option noyywrap
%%
\n ++num_lines; ++num_chars;
. ++num_chars;
%%
int main() {
yylex();
printf( "# of lines = %d, # of chars = %d\n",
num_lines, num_chars );
}
+21
View File
@@ -0,0 +1,21 @@
/* basic example - flawed reentrant version with global */
%{
int num_lines = 0, num_chars = 0;
%}
%option reentrant noyywrap
%%
\n ++num_lines; ++num_chars;
. ++num_chars;
%%
int main() {
yyscan_t scanner;
yylex_init ( &scanner );
yylex ( scanner );
yylex_destroy ( scanner );
printf( "# of lines = %d, # of chars = %d\n",
num_lines, num_chars );
}
-3
View File
@@ -3,9 +3,6 @@
#include <string.h>
#include "y.tab.h" /* this comes from bison */
#define TRUE 1
#define FALSE 0
#define copy_and_return(token_type) { strcpy(yylval.name,yytext); \
return(token_type); }
+22 -22
View File
@@ -158,7 +158,7 @@ void write_block_header(char *type)
printf("\n\n@table @b\n");
}
"Examples:"[^\.]+ ECHO;
"Examples:"[^\.]+ yyecho();
"*"[^*\n]+"*" { /* @emph{}(emphasized) text */
yytext[yyleng-1] = '\0';
@@ -205,12 +205,12 @@ void write_block_header(char *type)
yyless(loop+1);
statep++;
states[statep] = EXAMPLE2;
BEGIN(EXAMPLE2);
yybegin(EXAMPLE2);
}
<EXAMPLE,EXAMPLE2>^\n {
printf("@end example\n\n");
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
/*
@@ -231,7 +231,7 @@ void write_block_header(char *type)
yyless(loop);
statep++;
states[statep] = ENUM;
BEGIN(ENUM);
yybegin(ENUM);
}
<ENUM>"@" printf("@@");
@@ -239,7 +239,7 @@ void write_block_header(char *type)
printf(":\n\n@example\n");
statep++;
states[statep] = EXAMPLE;
BEGIN(EXAMPLE);
yybegin(EXAMPLE);
}
@@ -250,7 +250,7 @@ void write_block_header(char *type)
<ENUM>\n\n\n[ \t]+[^0-9] {
printf("\n\n@end enumerate\n\n");
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
/*
@@ -265,7 +265,7 @@ void write_block_header(char *type)
yyless(2);
statep++;
states[statep] = LITEM2;
BEGIN(LITEM2);
yybegin(LITEM2);
}
<LITEM2>^":".+":" {
(void)check_and_convert(&yytext[1]);
@@ -275,9 +275,9 @@ void write_block_header(char *type)
<LITEM2>\n\n\n+[^:\n] {
printf("\n\n@end itemize\n\n");
ECHO;
yyecho();
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
/*
@@ -300,7 +300,7 @@ void write_block_header(char *type)
yyless(loop);
statep++;
states[statep] = LITEM;
BEGIN(LITEM);
yybegin(LITEM);
}
<LITEM>^.+":" {
(void)check_and_convert(yytext);
@@ -318,7 +318,7 @@ void write_block_header(char *type)
printf("@end itemize\n\n");
printf("%s",&buffer[loop+1]);
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
/*
@@ -338,27 +338,27 @@ void write_block_header(char *type)
yyless((len-loop)+2);
statep++;
states[statep] = BITEM;
BEGIN(BITEM);
yybegin(BITEM);
}
<BITEM>^" "*"*" {
printf("@item");
statep++;
states[statep] = BITEM_ITEM;
BEGIN(BITEM_ITEM);
yybegin(BITEM_ITEM);
}
<BITEM>"@" printf("@@");
<BITEM>^\n {
printf("@end itemize\n\n");
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
<BITEM_ITEM>[^\:]* {
printf(" @b{%s}\n\n",check_and_convert(yytext));
}
<BITEM_ITEM>":" {
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
/*
@@ -369,13 +369,13 @@ void write_block_header(char *type)
(void)check_and_convert(&yytext[1]);
statep++;
states[statep] = HEADING;
BEGIN(HEADING);
yybegin(HEADING);
}
<HEADING>:[^\n] {
printf("@item @b{%s}\n",buffer);
write_underline(strlen(buffer),6,'~');
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
<HEADING>:\n"*"* {
if(need_closing == TRUE){
@@ -385,7 +385,7 @@ void write_block_header(char *type)
printf("@chapter %s\n",buffer);
write_underline(strlen(buffer),9,'*');
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
<HEADING>:\n"="* {
if(need_closing == TRUE){
@@ -395,7 +395,7 @@ void write_block_header(char *type)
printf("@section %s\n",buffer);
write_underline(strlen(buffer),9,'=');
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
<HEADING>"@" printf("@@");
<HEADING>:\n"-"* {
@@ -406,7 +406,7 @@ void write_block_header(char *type)
printf("@subsection %s\n",buffer);
write_underline(strlen(buffer),12,'-');
statep--;
BEGIN(states[statep]);
yybegin(states[statep]);
}
/*
@@ -417,10 +417,10 @@ void write_block_header(char *type)
printf("@example\n");
statep++;
states[statep] = EXAMPLE;
BEGIN(EXAMPLE);
yybegin(EXAMPLE);
}
<EXAMPLE>^" "
. ECHO;
. yyecho();
%%
+9 -9
View File
@@ -19,13 +19,13 @@ int include_count = -1;
%%
"{" BEGIN(COMMENT);
"{" yybegin(COMMENT);
<COMMENT>"}" BEGIN(INITIAL);
<COMMENT>"$include"[ \t]*"(" BEGIN(INCLUDE);
<COMMENT>"}" yybegin(INITIAL);
<COMMENT>"$include"[ \t]*"(" yybegin(INCLUDE);
<COMMENT>[ \t]* /* skip whitespace */
<INCLUDE>")" BEGIN(COMMENT);
<INCLUDE>")" yybegin(COMMENT);
<INCLUDE>[ \t]* /* skip whitespace */
<INCLUDE>[^ \t\n() ]+ { /* get the include file name */
if ( include_count >= MAX_NEST){
@@ -33,7 +33,7 @@ int include_count = -1;
exit( 1 );
}
include_stack[++include_count] = YY_CURRENT_BUFFER;
include_stack[++include_count] = yy_current_buffer();
yyin = fopen( yytext, "r" );
if ( ! yyin ){
@@ -43,7 +43,7 @@ int include_count = -1;
yy_switch_to_buffer(yy_create_buffer(yyin,YY_BUF_SIZE));
BEGIN(INITIAL);
yybegin(INITIAL);
}
<INCLUDE><<EOF>>
{
@@ -61,11 +61,11 @@ int include_count = -1;
} else {
yy_delete_buffer(include_stack[include_count--] );
yy_switch_to_buffer(include_stack[include_count] );
BEGIN(INCLUDE);
yybegin(INCLUDE);
}
}
[a-z]+ ECHO;
.|\n ECHO;
[a-z]+ yyecho();
.|\n yyecho();
+4 -4
View File
@@ -31,17 +31,17 @@ bad_string \'([^'\n]|\'\')+
%%
"{" BEGIN(COMMENT1);
"{" yybegin(COMMENT1);
<COMMENT1>[^}\n]+
<COMMENT1>\n ++line_number;
<COMMENT1><<EOF>> yyerror("EOF in comment");
<COMMENT1>"}" BEGIN(INITIAL);
<COMMENT1>"}" yybegin(INITIAL);
"(*" BEGIN(COMMENT2);
"(*" yybegin(COMMENT2);
<COMMENT2>[^)*\n]+
<COMMENT2>\n ++line_number;
<COMMENT2><<EOF>> yyerror("EOF in comment");
<COMMENT2>"*)" BEGIN(INITIAL);
<COMMENT2>"*)" yybegin(INITIAL);
<COMMENT2>[*)]
/* note that FILE and BEGIN are already
+3 -3
View File
@@ -1,12 +1,12 @@
/*
* reject.lex: An example of REJECT and unput()
* reject.lex: An example of yyreject() and yyunput()
* misuse.
*/
%%
UNIX {
unput('U'); unput('N'); unput('G'); unput('\0');
REJECT;
yyunput('U'); yyunput('N'); yyunput('G'); yyunput('\0');
yyreject();
}
GNU printf("GNU is Not Unix!\n");
%%
+1 -1
View File
@@ -16,7 +16,7 @@ char upper_replace[1024];
"yy" printf("%s",lower_replace);
"YY" printf("%s",upper_replace);
, ECHO;
, yyecho();
%%
+9 -9
View File
@@ -1,5 +1,5 @@
/*
* string1.lex: Handling strings by using input()
* string1.lex: Handling strings by using yyinput()
*/
%{
@@ -27,13 +27,13 @@ void yyerror(char *message)
buffer = malloc(ALLOC_SIZE);
max_size = ALLOC_SIZE;
inch = input();
inch = yyinput();
count = 0;
while(inch != EOF && inch != '"' && inch != '\n'){
if(inch == '\\'){
inch = input();
inch = yyinput();
switch(inch){
case '\n': inch = input(); break;
case '\n': inch = yyinput(); break;
case 'b' : inch = '\b'; break;
case 't' : inch = '\t'; break;
case 'n' : inch = '\n'; break;
@@ -41,10 +41,10 @@ void yyerror(char *message)
case 'f' : inch = '\f'; break;
case 'r' : inch = '\r'; break;
case 'X' :
case 'x' : inch = input();
case 'x' : inch = yyinput();
if(isxdigit(inch)){
temp = hextoint(toupper(inch));
inch = input();
inch = yyinput();
if(isxdigit(inch)){
temp = (temp << 4) + hextoint(toupper(inch));
} else {
@@ -59,14 +59,14 @@ void yyerror(char *message)
default:
if(isodigit(inch)){
temp = inch - '0';
inch = input();
inch = yyinput();
if(isodigit(inch)){
temp = (temp << 3) + (inch - '0');
} else {
unput(inch);
goto done;
}
inch = input();
inch = yyinput();
if(isodigit(inch)){
temp = (temp << 3) + (inch - '0');
} else {
@@ -82,7 +82,7 @@ void yyerror(char *message)
buffer = realloc(buffer,max_size + ALLOC_SIZE);
max_size += ALLOC_SIZE;
}
inch = input();
inch = yyinput();
}
if(inch == EOF || inch == '\n'){
yyerror("Unterminated string.");
+4 -4
View File
@@ -30,17 +30,17 @@ oct [0-7]{1,3}
\" {
buffer = malloc(1);
buffer_size = 1; strcpy(buffer,"");
BEGIN(STRING);
yybegin(STRING);
}
<STRING>\n {
yyerror("Unterminated string");
free(buffer);
BEGIN(INITIAL);
yybegin(INITIAL);
}
<STRING><<EOF>> {
yyerror("EOF in string");
free(buffer);
BEGIN(INITIAL);
yybegin(INITIAL);
}
<STRING>[^\\\n"] {
buffer = realloc(buffer,buffer_size+yyleng+1);
@@ -87,7 +87,7 @@ oct [0-7]{1,3}
<STRING>\" {
printf("string = \"%s\"",buffer);
free(buffer);
BEGIN(INITIAL);
yybegin(INITIAL);
}
%%
+2 -2
View File
@@ -1,6 +1,6 @@
/*
* unput.l : An example of what *not*
* to do with unput().
* to do with yyunput().
*/
@@ -24,7 +24,7 @@ void putback_yytext(void)
strcpy(buffer,yytext);
printf("Got: %s\n",yytext);
for(i=0; i<l; i++){
unput(buffer[i]);
yyunput(buffer[i]);
}
}
+3 -4
View File
@@ -4,14 +4,13 @@
void user_action(void);
#define YY_USER_ACTION user_action();
%}
%option pre-action = "user_action();"
%%
.* ECHO;
\n ECHO;
.* yyecho();
\n yyecho();
%%
+1 -2
View File
@@ -1,6 +1,4 @@
%{
#define YY_USER_INIT open_input_file()
extern FILE *yyin;
void open_input_file(void)
@@ -27,4 +25,5 @@ void open_input_file(void)
}
%}
%option user-init = "open_input_file();"
%%
+4 -4
View File
@@ -16,14 +16,14 @@ void yyerror(char *message)
%x STRING
%%
\" BEGIN(STRING);
\" yybegin(STRING);
<STRING>[^\\\n"]* yymore();
<STRING><<EOF>> yyerror("EOF in string."); BEGIN(INITIAL);
<STRING>\n yyerror("Unterminated string."); BEGIN(INITIAL);
<STRING><<EOF>> yyerror("EOF in string."); yybegin(INITIAL);
<STRING>\n yyerror("Unterminated string."); yybegin(INITIAL);
<STRING>\\\n yymore();
<STRING>\" {
yytext[yyleng-1] = '\0';
printf("string = \"%s\"",yytext); BEGIN(INITIAL);
printf("string = \"%s\"",yytext); yybegin(INITIAL);
}
%%
+4 -4
View File
@@ -16,11 +16,11 @@ void yyerror(char *message)
%x STRING
%%
\" BEGIN(STRING);
\" yybegin(STRING);
<STRING>[^\\\n"]* yymore();
<STRING><<EOF>> yyerror("EOF in string."); BEGIN(INITIAL);
<STRING>\n yyerror("Unterminated string."); BEGIN(INITIAL);
<STRING><<EOF>> yyerror("EOF in string."); yybegin(INITIAL);
<STRING>\n yyerror("Unterminated string."); yybegin(INITIAL);
<STRING>\\\n {
bcopy(yytext,yytext+2,yyleng-2);
yytext += 2; yyleng -= 2;
@@ -28,6 +28,6 @@ void yyerror(char *message)
}
<STRING>\" {
yyleng -= 1; yytext[yyleng] = '\0';
printf("string = \"%s\"",yytext); BEGIN(INITIAL);
printf("string = \"%s\"",yytext); yybegin(INITIAL);
}
%%
+293 -253
View File
File diff suppressed because it is too large Load Diff
+193 -197
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.37\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2012-12-04 17:36+0100\n"
"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
@@ -17,21 +17,13 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Ha fallat l'assignació d'un búfer per imprimir la cadena"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Ha fallat l'assignació d'un buffer per a la directiva de línia"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Ha fallat l'assignació d'un búfer per la definició m4"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Ha fallat l'assignació d'un búfer per la indefinició m4"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -65,7 +57,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "la comprovació de consistència ha fallat en epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -77,24 +69,24 @@ msgstr ""
"Bolcat AFD:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "no s'ha pogut crear un estat únic de final-de-búfer"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "estat # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "No s'ha pogut escriure yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "caràcter de transició incorrecte detectat en sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -106,29 +98,29 @@ msgstr ""
"Classes d'equivalència:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "l'estat # %d accepta: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "l'estat # %d accepta: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "No s'ha pogut escriure yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "No s'ha pogut escriure yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "No s'ha pogut escriure ecstbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -138,293 +130,277 @@ msgstr ""
"\n"
"Classes de metaequivalència:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "No s'ha pogut escriure yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "No s'ha pogut escriure yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "No s'ha pogut escriure yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "No s'ha pogut escriure yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "No s'ha pogut escriure yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "No s'ha pogut escriure ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "No s'ha pogut escriure ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "No s'ha pogut escriure eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "No s'ha pogut escriure yynultrans_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "no es pot satisfer la regla"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "S'ha especificat l'opció -s però es pot aplicar la regla per defecte"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "No es pot fer servir -+ amb l'opció -l"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "No es pot fer servir -f o -F amb l'opció -l"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "No es pot fer servir --reentrant o --bison-bridge amb l'opció -l"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF i -Cm no tenen sentit juntes"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF i -I són incompatibles"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF són incompatibles amb el mode de compatibilitat amb lex"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf i -CF són mútuament excloents"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "No es pot fer servir -+ amb l'opció -CF"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array és incompatible amb l'opció -+"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Les opcions -+ i --reentrant són mútuament excloents"
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "No es suporta «bison bridge» per a l'analitzador de C++"
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "no s'ha pogut crear %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "no s'ha pogut crear la capçalera de les taules"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "No es pot obrir el fitxer d'esquema %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "l'%opció yyclass només té sentit per a analitzadors de C++"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "Ha fallat l'assignació de la definició de la macro"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "error d'entrada al llegir el fitxer d'esquema %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "s'ha produït un error en tancar el fitxer d'esquema %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "s'ha produït un error en crear el fitxer de capçalera %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "s'ha produït un error en escriure el fitxer d'eixida %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "s'ha produït un error en tancar el fitxer d'eixida %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "s'ha produït un error en suprimir el fitxer d'eixida %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "No hi ha retrocés.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d estats de retrocés (no-acceptació).\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Les taules comprimides sempre impliquen un retard.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "s'ha produït un error en escriure el fitxer de còpia de seguretat %s"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "s'ha produït un error en tancar el fitxer de còpia de seguretat %s"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "estadístiques d'ús de %s versió %s:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " opcions de l'analitzador: -"
# NFA == Autómata finit no-determinista. jm
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d estats AFN\n"
# DFA == Autómata finit deterministic. jm
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d estats AFD (%d paraules)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d regles\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Sense retrocés\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d estats de retrocés (no-acceptació)\n"
# Es refereix a còpia de seguretat, o retrocés? jm
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Sempre es realitza còpia de seguretat de les taules comprimides\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Utilitzats patrons de principi-de-línia\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d condicions d'activació\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d estats èpsilon, %d estats doble èpsilon\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " sense classes de caràcter\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" les classes de caràcters %d/%d necessitaren %d/%d paraules de magatzement, "
"%d reutilitzades\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d parells estat/estat-següent creats\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d transicions úniques/duplicades\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d entrades de la taula\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entrades base-def creades\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (pic %d) entrades nxt-chk creades\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (pic %d) entrades de plantilla nxt-chk creades\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entrades de la tabla buides\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d prototips creats\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d plantilles creades, %d usos\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d classes d'equivalència creades\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d classes de meta-equivalència creades\n"
@@ -433,65 +409,73 @@ msgstr " %d/%d classes de meta-equivalència creades\n"
# segons un company de treballa que estudia a la UOC, allí
# les "hashtables" s'anomenen "taules de DISPERSIÓ". En aquest context
# no sé que dir-te. ear
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d desades) col·lisions d'ubicació («hash»), %d AFD iguals\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " es necessiten %d conjunts de relocalització\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " es necessiten %d entrades totals de la taula\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Error intern. Els flexopts estan malformats.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Proveu «%s --help» per a obtindre més informació.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "opció de -C desconeguda «%c»"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
# Hmm. No se si açò està be. jm
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "s'ha produït un error fatal d'anàlisi sintàctic"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "no s'ha pogut crear la capçalera de les taules"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "No es pot obrir el fitxer d'esquema %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "no s'ha pogut crear un fitxer d'informació del retrocés %s"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"-l l'opció de compatibilitat amb AT&T lex implica una penalització del "
"rendiment molt gran\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" i pot ser l'origen real d'altres penalitzacions del rendiment notificades\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -500,48 +484,47 @@ msgstr ""
"l'%%opció yylineno implica una penalització del rendiment NOMÉS en regles "
"que poden fer coincidir caràcters de nova línia\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interactiu) implica una xicoteta penalització del rendiment\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() implica una xicoteta penalització del rendiment\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT implica una penalització del rendiment molt gran\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Les regles de context posterior variable implica una penalització del "
"rendiment molt gran\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT no es pot fer servir amb -f o -F"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "l'%opció yylineno no es pot fer servir amb REJECT"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"Les regles de context posterior variable no es poden utilitzar amb -f o -F"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "l'%opció yyclass només té sentit per a analitzadors de C++"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "Ha fallat l'assignació de la definició de la macro"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Forma d'ús: %s [OPCIONS] [FITXER]...\n"
@@ -550,7 +533,7 @@ msgstr "Forma d'ús: %s [OPCIONS] [FITXER]...\n"
# molt això de text emparellat.
# Encara que coincident tampoc no m'acaba de convéncer. ear
# I que faig amb "reentrant" i "parser"? jm
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -571,7 +554,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -585,6 +568,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -599,10 +583,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -687,48 +672,35 @@ msgstr ""
" -h, --help mostra aquest missatge d'ajuda\n"
" -V, --version informa de la versió de %s\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "Ha fallat l'assignació de «sko_stack»"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "el nom «%s» és ridículament llarg"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "ha fallat l'assignació de memòria en allocate_array()"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "caràcter incorrecte «%s» detectat en check_char()"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "l'analitzador requereix l'opció -8 per a fer servir el caràcter %s"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "ha fallat l'assignació de memòria en allocate_array()"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: error intern fatal, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "ha fallat l'intent d'augmentar la mida de la matriu"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "línia incorrecta en el fitxer d'esquema"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "ha fallat l'assignació de memòria en yy_flex_xmalloc()"
@@ -762,194 +734,194 @@ msgstr "màquina buida en dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Regla de context posterior variable en la línia %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "tipus d'estat incorrecte en mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "les regles d'entrada són massa complicades (>= %d estats AFN)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "s'han trobat massa transicions en mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "massa regles (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "s'ha produït un error desconegut en processar la secció 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "condició de començament incorrecta"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "regla no reconeguda"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "s'ha utilitzat el context posterior dos vegades"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "valors d'iteració incorrectes"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "el valor d'iteració ha de ser positiu"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"el rang de caràcters [%c-%c] és ambigu en un analitzador insensible a les "
"majúscules i minúscules"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "rang negatiu en classe de caràcter"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"[:^lower:] és ambigu en un analitzador insensible a les majúscules i "
"minúscules"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"[:^upper:] és ambigu en un analitzador insensible a les majúscules i "
"minúscules"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "La línia d'entrada és massa llarga\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "directiva «%top» malformada"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "directiva «%» no reconeguda"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "El nom de la definició és massa llarg\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "«|» no emparellat"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "El valor de la definició de {%s} és massa llarg\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "definició del nom incompleta"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "La línia d'opcions és massa llarga\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%opció no reconeguda: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "classe de caràcter incorrecta"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "definició no definida {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "<condició d'activació> incorrecta: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "manca una cometa"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "expressió de la classe de caràcters incorrecta: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "caràcter incorrecte dins de {}"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "manca una }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "s'ha trobat un EOF dins d'una acció"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "s'ha trobat un EOF dins d'un patró"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "caràcter incorrecte: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "no es pot obrir %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Forma d'ús: %s [OPCIONS]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "l'opció «%s» no accepta arguments\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "l'opció «%s» requereix un argument\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "l'opció «%s» és ambígua\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Opció no reconeguda «%s»\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Error desconegut=(%d)\n"
@@ -981,9 +953,33 @@ msgstr "Marcador de fi\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Quelcom estrany* - terminal: %d val: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Ha fallat l'assignació d'un buffer per a la directiva de línia"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Ha fallat l'assignació d'un búfer per la definició m4"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Ha fallat l'assignació d'un búfer per la indefinició m4"
#~ msgid "error creating header file %s"
#~ msgstr "s'ha produït un error en crear el fitxer de capçalera %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "Ha fallat l'assignació de «sko_stack»"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "el nom «%s» és ridículament llarg"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "errada de la memòria dinàmica en copy_string()"
#~ msgid "bad line in skeleton file"
#~ msgstr "línia incorrecta en el fitxer d'esquema"
#~ msgid "consistency check failed in symfollowset"
#~ msgstr "Ha fallat la prova de consistència en symfollowset"
+193 -197
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex-2.5.38\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2015-04-26 09:12+0200\n"
"Last-Translator: Keld Simonsen <keld@keldix.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -18,21 +18,13 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Tildeling af buffer til udskrivningsstreng mislykkedes"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Tildeling af buffer til linjedirektiv mislykkedes"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Tildeling af buffer til m4 def mislykkedes"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Tildeling af buffer til m4 undef mislykkedes"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -66,7 +58,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "konsistenskontrollen mislykkedes i epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -78,26 +70,26 @@ msgstr ""
"DFA-udskrift:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "kunne ikke oprette en unik buffersluttilstand"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "tilstand %d:\n"
# Dette er ju helt sjukt. Har buggrapporteret dette at det bør
# erstatas med %s
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Kunne ikke skrive yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "forkert overgangstegn fundet i sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -109,29 +101,29 @@ msgstr ""
"Ækvivalensklasser:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "tilstand %d accepterer: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "tilstand %d accepterer: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Kunne ikke skrive yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Kunne ikke skrive yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Kunne ikke skrive esctbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -141,348 +133,340 @@ msgstr ""
"\n"
"Meta-ækvivalensklasser:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Kunne ikke skrive yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "kunne ikke oprette yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Kunne ikke oprette yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Kunne ikke skrive yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Kunne ikke skrive yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Kunne ikke skrive ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Kunne ikke skrive ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Kunne ikke skrive eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Kunne ikke skrive yynultrans_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "reglen kan ikke matches"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "flaget -s angivet, men standardreglen kan følges"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "-+ kan ikke bruges sammen med flaget -l"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "-f eller -F kan ikke bruges sammen med -l"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "Kan ikke bruge --reentrant eller --bison-bridge sammen med flaget -l"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF og -Cm kan ikke bruges sammen"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF og -I kan ikke bruges sammen"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF kan ikke bruges i lex-kompatibilitetstilstand"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf og -CF er gensidigt udelukkende"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "-+ kan ikke bruges sammen med flaget -CF"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "-+ kan ikke bruges sammen med %array"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Flagene -+ og --reentrant er gensidigt udelukkende."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bisonbro understøttes ikke for C++-skanneren."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "kunne ikke oprette %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "kunne ikke skrive tabellhoved"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan ikke åbne skabelonfilen %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass er kun meningsfyldt for C++-fortolkere"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "tildeling af makro-definition mislykkedes"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "fejl ved læsning af skabelonsfilen %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "fejl ved lukning af skabelonfilen %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "fejl ved oprettelsen af headerfilen %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "fejl ved skrivning af udfilen %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "fejl ved lukning af udfilen %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "fejl ved sletning af udfilen %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Ingen sikkerhedskopiering.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d sikkerhedskopierer (ikke-accepterende) tilstande.\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Komprimerete tabeller backer alltid tillbaka.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "fejl ved skrivning af sikkerhedskopifilen %s"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "fejl ved lukning af sikerhedskopifilen %s"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "Statistik over brugaf %s version %s:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " fortolkningsflag: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-tilstand\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-tilstand (%d ord)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d regler\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Ingen sikkerhedskopiering\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d sikkerhedskopierer (ikke-accepterende) tilstande.\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Komprimerede tabeller bakker altid tilbake\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Begyndelse-af-linje-mønster brugt\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d startbetingelse\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilontilstande, %d dobbelte epsilontilstande\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " ingen tegnklasser\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr " %d/%d tegnklasser behøvede %d/%d ord for gemning, %d genbrugte\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d par med tilstand/næste-tilstand oprettede\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d unikke/duplikerede overgange\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d tabelposter\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base/standard-poster oprettede\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (max %d) næste/test-poster oprettede\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (max %d) skablon-næste/test-poster oprettede\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d tomme tabelposter\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d prototyper oprettede\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d skabloner oprettede, %d formål\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d ækvivalensklasser oprettet\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d meta-ækvivalensklasser oprettede\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d gemte) hash-kollisioner, %d DFA'er er ens\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d opsætninger med omallokeringer krævedes\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d totale tabelposter kræves\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Intern fejl. flexopts er fejlbehæftede.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Prøv '%s --help' for mere information.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "ukendt flag til -C '%c'"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "uoprettelig fejl ved analysen"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "kunne ikke skrive tabellhoved"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan ikke åbne skabelonfilen %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "kunne ikke oprette sikkerhedskopi af info-fil %s"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"flaget -l for opførsel som AT&T's lex medfører et væsentligt præstationstab\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " og kan være den egentlige årsag til andre rapporter om dette\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -491,54 +475,53 @@ msgstr ""
"%%option yylineno medfører et præstationstab KUN på regler der kan matche "
"nylinje-tegn\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiv) medfører et mindre præstationstab\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() medfører et mindre præstationstab\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT medfører et væsentligt præstationstab\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Regler for variabel efterfølgende kontekst medfører et væsentlig "
"præstationstab\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT kan ikke bruges sammen med -f eller -F"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno kan ikke bruges sammen med REJECT"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"regler for variabel efterfølgende kontekst kan ikke bruges\n"
"sammen med -f eller -F"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass er kun meningsfyldt for C++-fortolkere"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "tildeling af makro-definition mislykkedes"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Brug: %s [FLAG] [FIL]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -559,7 +542,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -573,6 +556,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -587,10 +571,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -667,48 +652,35 @@ msgstr ""
" -h, --help udskriv denne hjælpebesked\n"
" -V, --version udskriv %s version\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "tildeling af sko_stack mislykkedes"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "navnet '%s' er latterligt langt"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "hukommelsestildelingen mislykkedes i allocate_array()"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "forkert tegn '%s' fundet i check_char()"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "skanneren kræver flaget -8 for at kunne bruge tegnet %s"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "hukommelsestildelingen mislykkedes i allocate_array()"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: uoprettelig intern fejl, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "forsøg på at øge arraystørrelse mislykkedes"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "forkert linje i skeletfilen"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "hukommelsestildelingen mislykkedes i yy_flex_xmalloc()"
@@ -742,188 +714,188 @@ msgstr "tom maskine i dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Regel for variabel efterfølgende kontekst på linje %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "forkert tilstandstype i mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "inddatareglerne er for komplicerede (>= %d NFA-tilstand)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "fandt for mange overgange i mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "for mange regler (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "ukendt fejl ved tolkning af sektion 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "forkert liste af startbetingelser"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "ukendt regel"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "efterfølgende kontekst brugt to gange"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "fejlagtige iterationsværdier"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "iterationsværdi skal være positiv"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr "tegnintervallet [%c-%c] er flertydigt i en versalufølsom skanner"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "negativt interval i tegnklasse"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] er flertydigt i en versalufølsom skanner"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] er flertydigt i en versalufølsom skanner"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "For lang inddatalinje\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "fejlagtigt '%top'-direktiv"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "ukendt '%'-direktiv"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "For langt definitionsnavn\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Ensomt '{'"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Definitionsværdi for (%s) for langt\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "ufuldstændig navnedefinition"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "For lang valgmulighedslinje\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "ukendt %%option: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "forkert tegnklasse"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "udefinieret definition {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "forkert <startbetingelse>: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "citationstegn savnes"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "forkert udtryk for tegnklasse: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "forkert tegn imellem {}"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "} savnes"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "filslutning mødt inden i en handling"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "filslutning mødt inden i et mønster"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "forkert tegn: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "kan ikke åbne %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Brug: %s [FLAG]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "flaget '%s' tager ikke noget argument\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "flaget '%s' kræver et argument\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "flaget '%s' er flertydig\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Ukendt flag: '%s'\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Ukendt fejl=(%d)\n"
@@ -955,5 +927,29 @@ msgstr "Slutmarkering\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Noget mærkeligt* - tegn: %d værdi: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Tildeling af buffer til linjedirektiv mislykkedes"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Tildeling af buffer til m4 def mislykkedes"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Tildeling af buffer til m4 undef mislykkedes"
#~ msgid "error creating header file %s"
#~ msgstr "fejl ved oprettelsen af headerfilen %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "tildeling af sko_stack mislykkedes"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "navnet '%s' er latterligt langt"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "dynamisk hukommelsesfejl i copy_string()"
#~ msgid "bad line in skeleton file"
#~ msgstr "forkert linje i skeletfilen"
+203 -208
View File
@@ -1,15 +1,15 @@
# German messages for flex
# Copyright (C) 2007 The Flex Project (msgids)
# This file is distributed under the same license as the flex package.
# Michael Piefel <piefel@informatik.hu-berlin.de>, 2002, 2003, 2008, 2012
# Michael Piefel <informatik.hu-berlin@piefel.de>, 2002, 2003, 2008, 2012, 2021
#
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.36\n"
"Project-Id-Version: flex 2.6.4\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"PO-Revision-Date: 2012-08-03 13:42+0200\n"
"Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2021-01-05 13:42+0100\n"
"Last-Translator: Michael Piefel <informatik.hu-berlin@piefel.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
@@ -17,21 +17,13 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Anlegen des Puffers zur Ausgabe der Zeichenkette fehlgeschlagen"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Anlegen des Puffers für Zeilen-Direktive fehlgeschlagen"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Anlegen des Puffers für m4 def fehlgeschlagen"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Anlegen des Puffers für m4 undef fehlgeschlagen"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -65,7 +57,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "Konsistenzprüfung fehlgeschlagen in epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -77,24 +69,24 @@ msgstr ""
"DFA-Ausgabe:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "konnte keinen einzigartigen Ende-des-Puffers-Zustand erzeugen"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "Zustand # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Konnte yynxt_tbl[][] nicht schreiben"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "ungültiges Übergangszeichen in sympartition() entdeckt"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -106,29 +98,29 @@ msgstr ""
"Äquivalenz-Klassen:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "Zustand # %d akzeptiert: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "Zustand # %d akzeptiert: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Konnte yyacclist_tbl nicht schreiben"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Konnte yyacc_tbl nicht schreiben"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Konnte ecstbl nicht schreiben"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -138,351 +130,343 @@ msgstr ""
"\n"
"Meta-Äquivalenz-Klassen:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Konnte yymeta_tbl nicht schreiben"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Konnte yybase_tbl nicht schreiben"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Konnte yydef_tbl nicht schreiben"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Konnte yynxt_tbl nicht schreiben"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Konnte yychk_tbl nicht schreiben"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Konnte ftbl nicht schreiben"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Konnte ssltbl nicht schreiben"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Konnte eoltbl nicht schreiben"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Konnte yynultrans_tbl nicht schreiben"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "Regel kann nicht passen"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "„-s“-Option gegeben, aber Vorgabe-Regel kann nicht passen"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "Kann nicht „-+“ zusammen mit „-l“-Option verwenden"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Kann nicht „-f“ oder „-F“ zusammen mit „-l“-Option verwenden"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr ""
"Kann nicht „--reentrant“ oder „--bison-bridge“ mit „-l“-Option verwenden"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "„-Cf“/„-CF“ und „-Cm“ sind zusammen nicht sinnvoll"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "„-Cf“/„-CF“ und „-I“ sind inkompatibel"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "„-Cf“/„-CF“ sind inkompatibel mit lex-Kompatibilitätsmodus"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "„-Cf“ und „-CF“ schließen sich gegenseitig aus"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "Kann nicht „-+“ zusammen mit „-CF“-Option verwenden"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "„%array“ inkompatibel mit „-+“-Option"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Optionen „-+“ und „--reentrant“ schließen sich gegenseitig aus."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "Brücke zu Bison für den C++-Scanner nicht unterstützt."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "konnte %s nicht erzeugen"
#: src/main.c:431
msgid "could not write tables header"
msgstr "konnte Tabellenköpfe nicht schreiben"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "kann Skelett-Datei %s nicht öffnen"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass ist nur bei C++-Scannern sinnvoll"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "Anlegen der Makrodefinition fehlgeschlagen"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "Eingabefehler beim Lesen der Skelett-Datei %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "Fehler beim Schließen der Skelett-Datei %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "Fehler beim Erstellen der Header-Datei %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "Fehler beim Schreiben der Ausgabe-Datei %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "Fehler beim Schließen der Ausgabe-Datei %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "Fehler beim Löschen der Ausgabe-Datei %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Kein Backing-up.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d Zustände mit Backing-up (nicht akzeptierend).\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Komprimierte Tabellen benutzen immer Backing-up.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "Fehler beim Schreiben der Backup-Datei %s"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "Fehler beim Schließen der Backup-Datei %s"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s Version %s Benutzungsstatistiken:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " Scanner-Optionen: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-Zustände\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-Zustände (%d Wörter)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d Regeln\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Kein Backing-up.\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d Zustände mit Backing-up (nicht akzeptierend).\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Komprimierte Tabellen benutzen immer Backing-up.\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Zeilenanfang-Muster benutzt\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d Startbedingungen\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d Epsilon-Zustände, %d Doppel-Epsilon-Zustände\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " keine Zeichenklassen\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d Zeichenklassen brauchten %d/%d Speicherwörter, %d wiederbenutzt\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d Zustand/Nächster-Zustand-Paare erzeugt\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d einzigartige/doppelte Übergänge\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d Tabelleneinträge\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d Einträge „base-def“ erzeugt\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (max. %d) Einträge „nxt-chk“ erzeugt\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (max. %d) Einträge „template nxt-chk“ erzeugt\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d leere Tabelleneinträge\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d Protos erzeugt\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d Schablonen erzeugt, %d Benutzungen\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d Äquivalenz-Klassen erzeugt\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d Meta-Äquivalenz-Klassen erzeugt\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d gespeichert) Hash-Kollisionen, %d DFAs gleich\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d Sätze von Neuallozierungen benötigt\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d Tabelleneinträge insgesamt benötigt\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Interner Fehler. flexopts sind missgestaltet.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Versuchen Sie es mit „%s --help“ für mehr Informationen.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "unbekannte „-C“-Option „%c“"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "fataler Parse-Fehler"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "konnte Tabellenköpfe nicht schreiben"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "kann Skelett-Datei %s nicht öffnen"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr "Präfix kann weder '[' noch ']' enthalten"
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "konnte Datei %s mit Informationen zum Backing-up nicht erzeugen"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"-l AT&T-lex-Kompatibilitätsmodus führt zu großen Geschwindigkeitseinbußen\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" und ist möglicherweise die wirkliche Quelle anderer gemeldeter Einbußen\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -491,54 +475,53 @@ msgstr ""
"%%option yylineno führt zu Geschwindigkeitseinbußen NUR für Regeln, die auf "
"einen Zeilenvorschub passen können\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiv) führt zu kleineren Geschwindigkeitseinbußen\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() führt zu kleineren Geschwindigkeitseinbußen\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT führt zu großen Geschwindigkeitseinbußen\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Regeln mit variablem folgenden Kontext führen zu großen "
"Geschwindigkeitseinbußen\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT kann nicht mit „-f“ oder „-F“ zusammen verwendet werden"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno kann nicht mit REJECT zusammen verwendet werden"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"Regeln mit variablem folgenden Kontext können nicht mit „-f“ oder „-F“ "
"verwendet werden"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass ist nur bei C++-Scannern sinnvoll"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "Anlegen der Makrodefinition fehlgeschlagen"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Aufruf: %s [OPTIONEN...] [DATEI...]\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -559,7 +542,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -573,6 +556,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -587,10 +571,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -628,6 +613,8 @@ msgstr ""
" -w, --nowarn generiere keine Warnungen\n"
" -v, --verbose schreibe Zusammenfassung der Scannerstatistiken "
"auf stdout\n"
" --hex verwende hexadezimale statt oktale Zahlen in "
"Ausgaben\n"
"\n"
"Dateien:\n"
" -o, --outfile=DATEI Ausgabe-Dateiname\n"
@@ -658,8 +645,6 @@ msgstr ""
" (Bison-Deklaration „%%pure_parser“)\n"
" --bison-locations yylloc-Unterstützung aktivieren\n"
" --stdinit initialisiere yyin/yyout mit stdin/stdout\n"
" --noansi-definitions Funktionsdefinitionen alten Stils\n"
" --noansi-prototypes leere Parameterlisten in Prototypen\n"
" --nounistd <unistd.h> nicht mit einbinden\n"
" --noFUNKTION generiere eine bestimmte FUNKTION nicht\n"
"\n"
@@ -670,48 +655,34 @@ msgstr ""
" -h, --help produziere diese Hilfenachricht\n"
" -V, --version melde %s-Version\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "Anlegen des sko_stack fehlgeschlagen"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "name „%s“ ist lächerlich lang"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "Speicheranforderung in allocate_array() fehlgeschlagen"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "ungültiges Zeichen „%s“ in check_char() entdeckt"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "Scanner erfordert Option „-8“, um das Zeichen %s benutzen zu können"
#: src/misc.c:229
#, fuzzy
#: src/misc.c:155
msgid "memory allocation failure in xstrdup()"
msgstr "Speicheranforderung in allocate_array() fehlgeschlagen"
msgstr "Speicheranforderung in xstrdup() fehlgeschlagen"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: fataler interner Fehler, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "Versuch, die Feldgröße zu erhöhen, fehlgeschlagen"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "ungültige Zeile in Skelettdatei"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "Speicheranforderung in yy_flex_xmalloc() fehlgeschlagen"
@@ -745,194 +716,194 @@ msgstr "leere Maschine in dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Regel mit veränderlichem folgenden Kontext in Zeile %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "ungültiger Zustandstyp in mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "Eingaberegeln sind zu kompliziert (>= %d NFA-Zustände)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "zu viele Übergänge in mkxtion() gefunden"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "zu viele Regeln (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "unbekannter Fehler beim Bearbeiten von Abschnitt 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "ungültige Startbedingungs-Liste"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
msgstr "Präfix darf weder [ noch ] enthalten"
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "nicht erkannte Regel"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "folgender Kontext doppelt verwendet"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "ungültige Iterationswerte"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "Iterationswerte müssen positiv sein"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"der Zeichenbereich [%c-%c] ist in Scannern ohne Beachtung von Groß-/"
"Kleinschreibung mehrdeutig"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "negativer Bereich in Zeichenklasse"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"[:^lower:] ist in Scannern ohne Beachtung von Groß-/Kleinschreibung "
"mehrdeutig"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"[:^upper:] ist in Scannern ohne Beachtung von Groß-/Kleinschreibung "
"mehrdeutig"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Eingabezeile zu lang\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "falsch geformte „%top“-Direktive"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "nicht erkannte „%“-Direktive"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Definitionsname zu lang\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Unbalancierte „{“"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Definitionswert für {%s} ist zu lang\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "unvollständige Namensdefinition"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Optionszeile zu lang\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "nicht erkannte %%option: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "ungültige Zeichenklasse"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "undefinierte Definitione {%s}"
msgstr "undefinierte Definition {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
msgstr "unbalanzierte Klammer"
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "ungültige <Startbedingung>: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "fehlendes Anführungszeichen"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "ungültiger Zeichenklassenausdruck: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "ungültiges Zeichen innerhalb von {}"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "fehlende }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "EOF innerhalb einer Aktion angetroffen"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "EOF innerhalb eines Musters angetroffen"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "ungültiges Zeichen: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "kann %s nicht öffnen"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Aufruf: %s [OPTIONEN...]\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "Option „%s“ erlaubt kein Argument\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "Option „%s“ verlangt ein Argument\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "Option „%s“ ist mehrdeutig\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "nicht erkannte Option „%s“\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Unbekannter Fehler=(%d)\n"
@@ -964,6 +935,30 @@ msgstr "Endemarkierung\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Etwas Seltsames* - tok: %d val: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Anlegen des Puffers für Zeilen-Direktive fehlgeschlagen"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Anlegen des Puffers für m4 def fehlgeschlagen"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Anlegen des Puffers für m4 undef fehlgeschlagen"
#~ msgid "error creating header file %s"
#~ msgstr "Fehler beim Erstellen der Header-Datei %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "Anlegen des sko_stack fehlgeschlagen"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "name „%s“ ist lächerlich lang"
#~ msgid "bad line in skeleton file"
#~ msgstr "ungültige Zeile in Skelettdatei"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "Fehler beim dynamischen Speicher in copy_string()"
+193 -197
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.37\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2012-09-08 07:15-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -17,21 +17,13 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Rezervo de bufro por printi ĉenon fiaskis"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Rezervo de bufro por linia instrukcio fiaskis"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Rezervo de bufro por 'm4 def' fiaskis"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Rezervo de bufro por 'm4 undef' fiaskis"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -65,7 +57,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "kontrolo pri kohereco fiaskis ĉe epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -77,24 +69,24 @@ msgstr ""
"Nekropsio DFA:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "ne eblis krei unikan staton de bufro-fino"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "stato * %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Ne eblis skribi yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "malĝusta transiga signo estis detektata en sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -106,29 +98,29 @@ msgstr ""
"Ekvivalentecaj Klasoj:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "stato # %d akceptas: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "stato # %d akceptas: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Ne eblis skribi yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Ne eblis skribi yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Ne eblis skribi ecstbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -138,351 +130,343 @@ msgstr ""
"\n"
"Meta-Ekvivalentecaj Klasoj:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Ne eblis skribi yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Ne eblis skribi yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Ne eblis skribi yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Ne eblis skribi yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Ne eblis skribi yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Ne eblis skribi ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Ne eblis skribi ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Ne eblis skribi eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Ne eblis skribi yynultrans_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "regulo ne povas esti korespondata"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr ""
"la modifilo -s estis indikata sed la apriora regulo povas esti korespondata"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "Ne eblas uzi -+ kun la modifilo -l"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Ne eblas uzi -f aŭ -F kun la modifilo -l"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "Ne eblas uzi --reentrant aŭ --bison-bridge kun la modifilo -l"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "Sensencas -Cf/-CF kaj -Cm kune"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF kaj -I malakordas"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF malakordas kun lex-akorda reĝimo"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf kaj -CF estas reciproke ekskluzivaj"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "Ne eblas uzi -+ kun la modifilo -CF"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array malakordas kun modifilo -+"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Modifiloj -+ kaj --reentrant estas reciproke ekskluzivaj."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison-ponto ne estas subtenata por la skanilo C++."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "ne eblis krei %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "ne eblis skribi tabel-kapojn"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "ne eblas malfermi la skeletan dosieron %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass nur koheras por skaniloj C++"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "rezervo de makroa difino fiaskis"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "eniga eraro dum lego de la skeleta dosiero %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "eraro dum fermo de la skeleta dosiero %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "eraro dum kreo de la kap-dosiero %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "eraro dum skribo de la eliga dosiero %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "eraro dum fermo de la eliga dosiero %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "eraro dum forigo de eliga dosiero %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Sen savkopiado.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d savkopiadas (ne-akceptantajn) statojn.\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Densigitaj tabeloj ĉiam estas savkopiataj.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "eraro dum skribo de la savkopia dosiero %s"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "eraro dum fermo de la savkopia dosiero %s"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s versio %s statistikoj pri usado:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " skanilaj modifiloj: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d statoj NFA\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d statoj DFA (%d vortoj)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d reguloj\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Sen savkopiado\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d savkopianta (ne-akceptantajn) statojn\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Densigitaj tabeloj ĉiam savkopiite\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " modeloj komenco-de-linio estas uzataj\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d komencaj kondiĉoj\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilonaj statoj, %d duoblaj epsilonaj statoj\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " neniu signo-klaso\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr " %d/%d signo-klasoj bezonis %d/%d vortojn da memoro, %d reuzitaj\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d stato/sekvstato-paroj estis kreataj\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d unikaj/duobligitaj transigoj\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d tabel-enigoj\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d bazo-def enigoj estis kreataj\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (pinto %d) enigoj nxt-chk estis kreataj\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (pinto %d) ŝablonaj enigoj nxt-chk estis kreataj\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d malplenaj tabel-enigoj\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d protoj estis kreataj\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d ŝablonoj estis kreataj, %d uzoj\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d ekvivalento-klasoj estis kreataj\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d metaekvivalento-klasoj estis kreataj\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d konservitaj) haketaj kolizioj, %d DFA egalaj\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d aroj de relokigoj estas bezonataj\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " entute %d tabel-enigoj estas bezonataj\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Interna eraro. 'flexopt' estas misformitaj.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Provu '%s --help' por pli da informo.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "nekonata modifilo -C '%c'"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "neriparebla analiz-eraro"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "ne eblis skribi tabel-kapojn"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "ne eblas malfermi la skeletan dosieron %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "ne eblis krei savkopiad-informan dosieron %s"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"La modifilo -l AT&T de akordigo al lex alportas grandan malaltigon de "
"rendimento\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" kaj povas esti la vera fonto de aliaj raportitaj malaltigoj de rendimento\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -491,50 +475,49 @@ msgstr ""
"%%option yylineno alportas malaltigon de rendimento NUR kun reguloj kiuj "
"povas akordiĝi kun novliniaj signoj\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interage) alportas etan malaltigon de rendimento\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() alportas etan malaltigon de rendimento\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT alportas grandan malaltigon de rendimento\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "Variabla vosta kunteksto alportas grandan malaltigon de rendimento\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT ne povas esti uzata kun -f aŭ F"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno ne povas esti uzata kun REJECT"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "variablaj vostaj kuntekstaj reguloj ne povas esti uzataj kun -f aŭ F"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass nur koheras por skaniloj C++"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "rezervo de makroa difino fiaskis"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Uzado: %s [MODIFILOJ] [DOSIERO]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -555,7 +538,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -569,6 +552,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -583,10 +567,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -664,48 +649,35 @@ msgstr ""
" -h, --help produkti tiun ĉi help-mesaĝon\n"
" -V, --version raporti la version de %s\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "rezervo de sko_stack fiaskis"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "la nomo \"%s\" estas ridinde longa"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "rezervo de memoro fiaskis en allocate_array()"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "malĝusta signo '%s' estis detektata en check_char()"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "la skanilo postulas la flagon -8 por uzi la signon %s"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "rezervo de memoro fiaskis en allocate_array()"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: neriparebla interna eraro, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "provo pliigi grandon de tabelo fiaskis"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "malĝusta linio en skeleta dosiero"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "rezervo de memoro fiaskis en yy_flex_xmalloc()"
@@ -739,188 +711,188 @@ msgstr "malplena maŝino en dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Variabla vosta kunteksta regulo ĉe linio %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "malĝusta stat-tipo en mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "enigaj reguloj estas tro komplikaj (>= %d statoj NFA)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "tro multe da transigoj estis trovataj en mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "tro multe da reguoloj (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "Nekonata erar-proceza sekcio 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "malĝusta komenc-kondiĉa listo"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "nerekonata regulo"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "vosta kunteksto estis uzata duoble"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "malĝustaj iteraciaj valoroj"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "iteracia valoro devas esti pozitiva"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr "la signara intervalo [%c-%c] estas dusenca en sen-uskleca skanilo"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "negativa intervalo en signo-klaso"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] estas dusenca en sen-uskleca skanilo"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] estas dusenca en sen-uskleca skanilo"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Eniga linio tro longas\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "misformita instrukcio '%top'"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "nerekonita instrukcio '%'"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Nom-difino tro longas\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Senpara '{'"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Valor-difino por {%s} tro longas\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "nekompleta nom-difino"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Linio de modifiloj tro longas\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "nerekonita %%modifilo: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "malĝusta signo-klaso"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "nedifinita difino {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "malĝusta <komenca kondiĉo>: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "mankas citilo"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "malĝusta signo-klasa esprimo: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "malĝusta signo interne de {}"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "mankas }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "EOF estis trovata interne de ago"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "EOF estis trovata interne de modelo"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "malĝusta signo: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "ne eblas malfermi %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Uzado: %s [MODIFILOJ]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "la modifilo '%s' ne permesas argumenton\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "la modifilo '%s' postulas argumenton\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "la modifilo '%s' estas dusenca\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Nerekonita modifilo '%s'\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Nekonata eraro=(%d)\n"
@@ -952,5 +924,29 @@ msgstr "Fino-markilo\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Io Stranga* - ero: %d val: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Rezervo de bufro por linia instrukcio fiaskis"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Rezervo de bufro por 'm4 def' fiaskis"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Rezervo de bufro por 'm4 undef' fiaskis"
#~ msgid "error creating header file %s"
#~ msgstr "eraro dum kreo de la kap-dosiero %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "rezervo de sko_stack fiaskis"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "la nomo \"%s\" estas ridinde longa"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "fiasko de dinamika memoro en copy_string()"
#~ msgid "bad line in skeleton file"
#~ msgstr "malĝusta linio en skeleta dosiero"
+480 -472
View File
File diff suppressed because it is too large Load Diff
+193 -197
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.36\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2012-08-02 21:16+0200\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -19,21 +19,13 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Puskurin varaaminen merkkijonon tulostamiseen epäonnistui"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Puskurin varaaminen rividirektiiville epäonnistui"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Puskurin varaaminen m4 def -määrittelylle epäonnistui"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Puskurin varaaminen m4 undef -määrittelylle epäonnistui"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -69,7 +61,7 @@ msgid "consistency check failed in epsclosure()"
msgstr "yhtenäisyystarkistus epäonnistui epsclosure()-funktiossa"
# DFA on akronyymi käsitteelle "deterministic finite automaton" eli deterministinen äärellinen automaatti.
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -81,24 +73,24 @@ msgstr ""
"Deterministisen äärellisen automaatin vedos:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "ei voitu luoda uniikkia puskurinlopputilaa"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "tila numero %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Ei voitu kirjoittaa yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "väärä siirtymämerkki havaittu funktiossa sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -110,29 +102,29 @@ msgstr ""
"Ekvivalenssiluokat:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "tila numero %d hyväksyy: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "tila numero %d hyväksyy: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Ei voitu kirjoittaa: yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Ei voitu kirjoittaa: yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Ei voitu kirjoitaa ecstbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -142,355 +134,347 @@ msgstr ""
"\n"
"Meta-ekvivalenssiluokkia:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Ei voitu kirjoittaa: yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Ei voitu kirjoittaa: yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Ei voitu kirjoittaa: yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Ei voitu kirjoittaa: yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Ei voitu kirjoittaa: yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Ei voitu kirjoittaa: ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Ei voitu kirjoittaa: ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Ei voitu kirjoittaa: eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Ei voitu kirjoittaa: yynultrans_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "sääntö ei voinut täsmätä"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "valitsin -s annettu mutta oletussääntö ei voinut täsmätä"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "Ei voi käyttää -+ valitsimen -l kanssa"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Ei voi käyttää valitsinta -f tai -F valitsimen -l kanssa"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr ""
"Ei voi käyttää valitsinta --reentrant tai --bison-bridge valitsimen -l kanssa"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF ja -Cm eivät ole järkeviä yhdessä"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF ja -I ovat yhteensopimattomia"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF ovat yhteensopimattomia lex-yhteensopivuustilassa"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf ja -CF ovat toisensa poissulkevia"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "Ei voi käyttää valitsinta -+ valitsimen -CF kanssa"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array on yhteensopimaton valitsimen -+ kanssa"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Valitsimen -+ ja --reentrant ovat toisensa poissulkevia."
# bison bridge tarkoittaa, että flex käyttää bison-ohjelmaa analyysissä
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "”bison bridge”-menettelyä ei tueta C++-skannerille."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "ei voitu luoda %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "ei voitu kirjoittaa tauluotsaketta"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "ei voi avata kehystiedostoa %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass on merkityksellinen vain C++-skannereille"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "Makromäärityksen varaaminen epäonnistui"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "syötevirhe luettaessa kehystiedostoa %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "virhe suljettaessa kehystiedostoa %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "virhe luotaessa otsaketiedostoa %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "virhe kirjoitettaessa tulostetiedostoa %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "virhe suljettaessa tulostetiedostoa %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "virhe poistettaessa tulostetiedostoa %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Ei varmuuskopiointia.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d (ei-hyväksyvää) varmuuskopiointitilaa.\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Tiivistetyt taulut varmuuskopioidaan aina.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "virhe kirjoitettaessa varmuuskopiotiedostoa %s"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "virhe suljettaessa varmuuskopiotiedostoa %s"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s-version %s käyttötilastot:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " skannerivalitsimet: -"
# Epädeterministinen äärellinen automaatti, lyh. NFA (engl. non-deterministic finite-state automaton)
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d Epädeterministisen äärellisen automaatin tilaa\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d Deterministisen äärellisen automaatin tilaa (%d sanaa)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d sääntöä\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Ei varmuuskopiointia\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d (ei-hyväksyvää) varmuuskopiotilaa\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Tiivistetyt taulut varmuuskopioidaan aina\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Rivin-alku-malleja käytetään\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d-käynnistysehtoja\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilon-tilaa, %d double epsilon-tilaa\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " ei merkkiluokkia\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d merkkiluokkaa tarvittu %d/%d tallennussanaan, %d käytetty uudelleen\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d tila/seuraavatila-paria luotu\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d uniikkia/kaksoiskappelsiirtymää\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d-tauluriviä\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def-alkiota luotu\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (huippu %d) nxt-chk-alkiota luotu\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (huippu %d) malline nxt-chk-alkiota luotu\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d tyhjää taulualkiota\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d protoa luotu\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d mallinetta luotu, %d käytetään\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d ekvivalenssiluokkaa luotu\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d meta-ekvivalenssiluokkaa luotu\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr ""
" %d (%d tallennettu) hash-törmäykset, yhtäsuuri kuin %d Deterministisen "
"äärellisen automaatin törmäystä\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d uudelleenvarausjoukkoa tarvittu\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d taulukkoalkiota tarvittu yhteensä\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Sisäinen virhe. flex-valitsimet ovat vääränmuotoisia.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Lisätietoja käskyllä ”%s --help”.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "tuntematon valitsin -C ”%c”"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "vakava jäsennysvirhe"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "ei voitu kirjoittaa tauluotsaketta"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "ei voi avata kehystiedostoa %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "ei voitu luoda varmuuskopiotietotiedostoa %s"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"-l AT&T lex-yhteensopivuusvalitsin tuo mukanaan ison suorituskykysakon\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" ja saattaa olla muiden ilmoitettujen suorituskykysakkojen todellinen lähde\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -499,51 +483,50 @@ msgstr ""
"%%option yylineno tuo mukanaan suorituskykysakon VAIN säännöissä, jotka "
"voivat täsmätä rivinvaihtomerkkeihin\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiivinen) tuo mukanaan pienemmän suorituskykysakon\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() tuo mukanaan pienemmän suorituskykysakon\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT tuo mukanaan ison suorituskykyrangaistuksen\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "Muuttujajättökontekstisäännöt tuovat mukanaan ison suorityskykysakon\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT ei voida käyttää valitsimen -f tai -F kanssa"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno ei voi käyttää REJECT:n kanssa"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"muuttujajättökontekstisääntöjä ei voida käyttää valitsimen -f tai -F kanssa"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass on merkityksellinen vain C++-skannereille"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "Makromäärityksen varaaminen epäonnistui"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Käyttö: %s [VALITSIMET] [TIEDOSTO]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -564,7 +547,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -578,6 +561,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -592,10 +576,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -677,48 +662,35 @@ msgstr ""
" -h, --help tuota tämä opastesanoma\n"
" -V, --version ilmoita %s-versio\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "sko_stack-varaaminen epäonnistui"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "nimi ”%s” on naurettavan pitkä"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "muistinvaraus epäonnistui funktiossa allocate_array()"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "väärä merkki ”%s” havaittu funktiossa check_char()"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "skanneri vaatiin lipun -8 käytettäväksi merkille %s"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "muistinvaraus epäonnistui funktiossa allocate_array()"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: vakava sisäinen virhe, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "yritys taulukon koon kasvattamiseksi epäonnistui"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "väärä rivi kehystiedostossa"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "muistinvaraus epäonnistui funktiossa yy_flex_xmalloc()"
@@ -753,194 +725,194 @@ msgstr "tyhjä kone funktiossa dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Muuttujajättökontekstisääntö rivillä %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "väärä tilatyyppi funktiossa mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr ""
"syötesäännöt ovat liian mutkikkaita (>= %d Epädeterministisen äärellisen "
"automaatin tilaa)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "löytyi liian monta siirtymää funktiossa mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "liian moni sääntöjä (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "tuntematon virhe käsiteltäessä lohkoa 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "väärä alkuehtoluettelo"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "tunnistamaton sääntö"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "jättökontekstia käytetty kahdesti"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "vääriä iteraatioarvoja"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "iteraatioarvon on oltava positiivinen"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"merkkialue [%c-%c] ei ole yksiselitteinen skannerissa, joka ei välitä "
"kirjainkoosta"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "negatiivinen lukualue merkkiluokassa"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"[:^lower:] ei ole yksiselitteinen skannerissa, joka ei välitä kirjainkoosta"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"[:^upper:] ei ole yksiselitteinen skannerissa, joka ei välit kirjainkoosta"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Syöterivi on liian pitkä\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "vääränmuotoinen ”%top”-direktiivi"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "tunnistamaton ”%”-direktiivi"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Määritysnimi on liian pitkä\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Pariton ”{”"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Määritysarvo kohteelle {%s} on liian pitkä\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "epätäydellinen nimimäärittely"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Valitsinrivi on liian pitkä\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "tunnistamaton %%valitsin: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "väärä merkkiluokka"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "määrittelemätön määrittely {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "virheellinen <aloitusehto>: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "puuttuva lainausmerkki"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "väärä merkkiluokkalauseke: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "väärä merkki aaltosulkeiden {} sisällä"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "puuttuva }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "Tiedoston loppumerkki EOF tavattu toiminnon sisällä"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "Tiedoston loppumerkki EOF tavattu mallin sisällä"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "väärä merkki: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "ei voi avata %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Käyttö: %s [VALITSIMET]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "valitsin ”%s” ei salli argumenttia\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "valitsin ”%s” vaatii argumentin\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "valitsin ”%s” ei ole yksiselitteinen\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Tunnistamaton valitsin ”%s”\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Tuntematon virhe=(%d)\n"
@@ -972,5 +944,29 @@ msgstr "Loppumerkki\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Jotain outoa - tok: %d arvo: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Puskurin varaaminen rividirektiiville epäonnistui"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Puskurin varaaminen m4 def -määrittelylle epäonnistui"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Puskurin varaaminen m4 undef -määrittelylle epäonnistui"
#~ msgid "error creating header file %s"
#~ msgstr "virhe luotaessa otsaketiedostoa %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "sko_stack-varaaminen epäonnistui"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "nimi ”%s” on naurettavan pitkä"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "dynaaminen muistivirhe funktiossa copy_string()"
#~ msgid "bad line in skeleton file"
#~ msgstr "väärä rivi kehystiedostossa"
+202 -204
View File
@@ -7,13 +7,14 @@
# Michel Robitaille <robitail@IRO.UMontreal.CA>, 2002-2008.
# François-Xavier Coudert <fxcoudert@gmail.com>, 2008.
# David Prévot <david@tilapin.org>, 2012.
# Stéphane Aulery <lkppo@free.fr>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.37\n"
"Project-Id-Version: flex 2.6.4\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"PO-Revision-Date: 2012-09-19 21:01-0400\n"
"Last-Translator: David Prévot <david@tilapin.org>\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2022-07-05 00:42+0200\n"
"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
@@ -23,21 +24,13 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 1.4\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Échec d'allocation de tampon pour afficher une chaîne"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Échec d'allocation de tampon pour la directive de ligne"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Échec d'allocation de tampon pour m4 défini"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Échec d'allocation de tampon pour m4 non défini"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -71,7 +64,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "le contrôle de cohérence a échoué dans epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -83,24 +76,24 @@ msgstr ""
"Vidage de l'AFD :\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "impossible de créer un seul état de fin de tampon"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "état nº %d :\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Impossible d'écrire yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "mauvais caractère de transition détecté dans sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -112,29 +105,29 @@ msgstr ""
"Classes d'équivalence :\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "l'état nº %d accepte : [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "l'état nº %d accepte : "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Impossible d'écrire yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Impossible d'écrire yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Impossible d'écrire ecstbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -144,355 +137,347 @@ msgstr ""
"\n"
"Classes de métaéquivalence :\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Impossible d'écrire yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Impossible d'écrire yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Impossible d'écrire yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Impossible d'écrire yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Impossible d'écrire yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Impossible d'écrire ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Impossible d'écrire ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Impossible d'écrire eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Impossible d'écrire yynultrnas_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "la règle ne peut pas correspondre"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "l'option -s est donnée mais la règle par défaut peut correspondre"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "L'option -+ ne peut pas être combinée à -l"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Les options -f et -F ne peuvent pas être combinées à -l"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr ""
"Les options --reentrant ou --bison-bridge ne peuvent pas être combinées à "
"l'option -l"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf ou -CF et -Cm ne peuvent pas être indiquées ensemble"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf ou -CF et -I sont incompatibles"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr ""
"les options -Cf ou -CF ne sont pas compatibles avec le mode de compatibilité "
"« lex »"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf et -CF sont mutuellement exclusifs"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "L'option -+ ne peut pas être combinée à -CF"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array incompatible avec l'option -+"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Les options +- et --reentrant sont mutuellement exclusives."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bridge bison n'est pas pris en charge pour l'analyseur C++"
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "impossible de créer %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "impossible d'écrire les tables d'en-tête"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "impossible d'ouvrir le fichier canevas %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass n'a de sens qu'avec les analyseurs C++"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "échec d'allocation de définition de macro"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "erreur de lecture du fichier canevas %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "erreur de fermeture du fichier canevas %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "erreur de création du fichier d'en-tête %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "erreur d'écriture du fichier de sortie %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "erreur de fermeture du fichier de sortie %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "erreur d'effacement du fichier de sortie %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Pas d'archivage.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d états d'archivage (non acceptants).\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Les tables comprimées sont toujours archivées.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "erreur d'écriture du fichier de sauvegarde %s"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "erreur de fermeture du fichier de sauvegarde %s"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "« %s » version %s, statistiques d'utilisation :\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " options de l'analyseur lexical : -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d états NFA\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d états AFD (%d mots)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d règles\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Pas d'archivage\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d états d'archivage (si non acceptants)\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Les tables comprimées sont toujours archivées\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Modèles utilisés en début de ligne\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d conditions de départ\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d états epsilon, %d états double epsilon\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " pas de classes de caractères\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d classes de caractères nécessaires %d/%d mots-mémoire, %d recyclés\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d paires state/nextstate produites\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d transitions uniques/dupliquées\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d entrées dans la table\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entrées base-def produites\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (max. %d) entrées nxt-chk produites\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (max. %d) entrées de modèle nxt-chk produites\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entrées vides dans la table\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d prototypes produits\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d modèles produits, %d usages\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d classes d'équivalence produites\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d classes de métaéquivalence produites\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d sauvés) collisions durant dispersion, %d AFD égaux\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d ensembles de réallocations nécessaires\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d entrées nécessaires dans la table, au total\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Erreur interne. Les options « flexopts » sont mal composées.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
"Exécutez « %s --help » pour obtenir des renseignements complémentaires.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "l'option -C « %c » inconnue"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "erreur de lecture fatale"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "impossible d'écrire les tables d'en-tête"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "impossible d'ouvrir le fichier canevas %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr "Le préfixe ne peut pas inclure '[' ou ']'"
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "impossible de créer le fichier d'informations d'archivage %s"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"L'option -l de compatibilité avec le « lex » d'AT&T entraîne une importante\n"
"perte de performance\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " et peuvent être cause d'autres vices de performance observés\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -501,54 +486,53 @@ msgstr ""
"%%option yylineno n'entraîne une importante perte de performance QUE sur\n"
"les règles pouvant correspondre avec le caractère de changement de ligne\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "l'option -I (interactif) entraîne une faible perte de performance\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() entraîne une faible baisse de performance\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT entraîne une importante baisse de performance\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Les règles de contexte traîné variable entraînent une importante baisse de\n"
"performance\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT ne peut pas être utilisé avec -f ou -F"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno ne peut être utilisé avec REJECT"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"les règles de contexte traîné variable ne peuvent pas être utilisées avec\n"
"-f ou -F"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass n'a de sens qu'avec les analyseurs C++"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "échec d'allocation de définition de macro"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Utilisation : %s [OPTIONS] [FICHIER]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -569,7 +553,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -583,6 +567,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -597,10 +582,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -642,6 +628,8 @@ msgstr ""
" -w, --nowarn ne pas générer d'avertissements\n"
" -v, --verbose produire des statistiques du scanner sur "
"stdout\n"
" --hex utiliser des nombres hexadécimaux au lieu "
"d'octal en sortie de débogage\n"
"\n"
"Fichiers :\n"
" -o, --outfile=FICHIER indiquer un nom de fichier de sortie\n"
@@ -684,49 +672,35 @@ msgstr ""
" -h, --help afficher l'aide-mémoire\n"
" -V, --version afficher la version %s du logiciel\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "échec d'allocation de sko_stack"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "le nom « %s » est ridiculement long"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "échec d'allocation mémoire dans allocate_array()"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "mauvais caractère « %s » détecté dans check_char()"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr ""
"l'analyseur nécessite l'option -8 pour pouvoir utiliser le caractère %s"
#: src/misc.c:229
#, fuzzy
#: src/misc.c:155
msgid "memory allocation failure in xstrdup()"
msgstr "échec d'allocation mémoire dans allocate_array()"
msgstr "échec d'allocation mémoire dans xstrdup()"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s : erreur interne fatale, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "échec de la tentative d'augmenter la taille du tableau"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "mauvaise ligne dans le fichier canevas"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "échec d'allocation mémoire dans yy_flex_xmalloc()"
@@ -760,190 +734,190 @@ msgstr "machine vide dans dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Règle de contexte traîné variable à la ligne %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "mauvais type d'état dans mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "les règles d'entrée sont trop compliquées (>= %d états NFA)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "il y a trop de transitions dans mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "trop de règles (> %d)."
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "erreur inconnue de traitement à la section 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "mauvaise liste de conditions de départ"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
msgstr "Le préfixe ne doit pas contenir [ ou ]"
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "règle non reconnue"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "contexte traîné utilisé deux fois"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "valeurs d'itération erronée"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "la valeur d'itération doit être positive"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"l'étendue de caractères [%c-%c] est ambiguë pour un scanner insensible à la "
"casse"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "plage négative dans la classe de caractères"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] est ambigu pour un scanner insensible à la casse"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] est ambigu pour un scanner insensible à la casse"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "ligne d'entrée trop longue\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "directive « %top » mal composée"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "directive « % » inconnue"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Nom de définition trop long\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "« { » non apparié"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Valeur de définition trop longue pour {%s}\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "définition de nom incomplète"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Ligne d'option trop longue\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%option non reconnue : %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "mauvaise classe de caractères"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "définition {%s} non définie"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
msgstr "parenthèse non appairées"
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "mauvaise <condition de départ> : %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "guillemet manquant"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "mauvaise expression de classe de caractères : %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "mauvais caractère entre accolades « {} »"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "« } » manquante"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "Fin de fichier rencontrée à l'intérieur d'une action"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "Fin de fichier rencontrée à l'intérieur d'un modèle"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "mauvais caractère : %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "impossible d'ouvrir %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Utilisation : %s [OPTIONS]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "l'option « %s » ne permet pas d'argument\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "l'option « %s » nécessite un argument\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "l'option « %s » est ambiguë\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Option « %s » non reconnue\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Erreur inconnue=(%d)\n"
@@ -975,6 +949,30 @@ msgstr "Marqueur de fin\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Très bizarre* — tok : %d val : %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Échec d'allocation de tampon pour la directive de ligne"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Échec d'allocation de tampon pour m4 défini"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Échec d'allocation de tampon pour m4 non défini"
#~ msgid "error creating header file %s"
#~ msgstr "erreur de création du fichier d'en-tête %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "échec d'allocation de sko_stack"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "le nom « %s » est ridiculement long"
#~ msgid "bad line in skeleton file"
#~ msgstr "mauvaise ligne dans le fichier canevas"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "échec de mémoire dynamique dans copy_string()"
+193 -197
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.38\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2017-01-10 09:37-0500\n"
"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
@@ -16,21 +16,13 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Níorbh fhéidir spás a leagan amach chun teaghrán a phriontáil"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Níorbh fhéidir spás a leagan amach do threoir líne"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Níorbh fhéidir spás a leagan amach do shainmhíniú m4"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Níorbh fhéidir spás a leagan amach do dhí-shainmhíniú m4"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -65,7 +57,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "níorbh fhéidir comhsheasmhacht a sheiceáil in epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -77,24 +69,24 @@ msgstr ""
"Dumpa DFA:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "níorbh fhéidir staid shainiúil a chruthú ag deireadh maoláin"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "staid # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Níorbh fhéidir yynxt_tbl[][] a scríobh"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "carachtar trasdula neamhbhailí i sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -106,29 +98,29 @@ msgstr ""
"Aicmí Coibhéise:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "glacann staid # %d le: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "glacann staid # %d le: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Níorbh fhéidir yyacclist_tbl a scríobh"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Níorbh fhéidir yyacc_tbl a scríobh"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Níorbh fhéidir ecstbl a scríobh"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -138,349 +130,341 @@ msgstr ""
"\n"
"Aicmí Meiteachoibhéise:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Níorbh fhéidir yymeta_tbl a scríobh"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Níorbh fhéidir yybase_tbl a scríobh"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Níorbh fhéidir yydef_tbl a scríobh"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Níorbh fhéidir yynxt_tbl a scríobh"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Níorbh fhéidir yychk_tbl a scríobh"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Níorbh fhéidir ftbl a scríobh"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Níorbh fhéidir ssltbl a scríobh"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Níorbh fhéidir eoltbl a scríobh"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Níorbh fhéidir yynultrans_tbl a scríobh"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "ní féidir an riail a mheaitseáil"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "tugadh rogha -s ach is féidir riail réamhshocraithe a mheaitseáil"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "Níl -+ ar fáil in éineacht le rogha -l"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Níl -f nó -F ar fáil in éineacht le -l"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "Níl --reentrant nó --bison-bridge ar fáil in éineacht le rogha -l"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "Ní féidir -Cf/-CF agus -Cm a úsáid le chéile"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "Ní féidir -Cf/-CF agus -I a úsáid le chéile"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "Níl -Cf/-CF ar fáil i mód comhoiriúnachta lex"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "Is comheisiatach iad na roghanna -Cf agus -CF"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "Níl -+ ar fáil in éineacht le rogha -CF"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "Ní féidir %array a úsáid le rogha -+"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Is comheisiatach iad na roghanna -+ agus --reentrant."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "níl bison bridge ar fáil don scanóir C++."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "níorbh fhéidir %s a chruthú"
#: src/main.c:431
msgid "could not write tables header"
msgstr "níorbh fhéidir ceanntásc táblaí a scríobh"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "ní féidir creatchomhad %s a oscailt"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "tá an %option yyclass gan bhrí ach amháin le scanóirí C++"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "níorbh fhéidir spás a leagan amach do shainmhíniú an mhacra"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "earráid agus creatchomhaid %s á léamh"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "earráid agus creatchomhaid %s á dhúnadh"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "earráid agus comhad ceanntáisc %s á chruthú"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "earráid agus aschomhaid %s á scríobh"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "earráid agus aschomhad %s á dhúnadh"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "earráid agus aschomhaid %s á scriosadh"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Gan cúlú.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d staid chúlaithe (nach bhfuil ina staid ghlactha).\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Cúlaíonn táblaí comhbhrúite i gcónaí.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "earráid agus comhad cúltaca %s á scríobh"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "earráid agus comhad cúltaca %s á dhúnadh"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s leagan %s staitistic d'úsáid:\n"
# fr uses "lexical analyzer"; scanóir seems fine though --KPS
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " roghanna don scanóir: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d staid NFA\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d staid DFA (%d focal)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d riail\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Gan cúlú\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d staid chúlaithe (níl ina staid ghlactha)\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Cúlaíonn táblaí comhbhrúite i gcónaí\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Patrúin úsáidte ag tús na líne\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d coinníoll tosaigh\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d staid eipsealóin, %d staid eipsealóin dúbailte\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " níl aon aicme charachtair ann\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" tá gá le %d/%d aicme charachtair %d/%d focal stórála, %d athúsáidte\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d péire state/nextstate\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d athrú sainiúil/dúblach\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d iontráil sa tábla\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d iontráil base-def\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (buaic %d) iontráil nxt-chk\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (buaic %d) iontráil teimpléid nxt-chk\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d iontráil tábla folamh\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d fréamhshamhail\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d teimpléad, %d i bhfeidhm\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d aicme choibhéise\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d aicme mheiteachoibhéise\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d sábháilte) tuairt haiseála, %d DFA comhionann le chéile\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " tá gá le %d sraith athdháilte\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " tá gá le %d iontráil tábla ar fad\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Earráid inmheánach (flexopts míchumtha).\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fháil.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "rogha -C anaithnid '%c'"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "earráid pharsála mharfach"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "níorbh fhéidir ceanntásc táblaí a scríobh"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "ní féidir creatchomhad %s a oscailt"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "níorbh fhéidir comhad %s a chruthú don eolas faoin chúlú"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "is cúis le moilliú mór an rogha -l (comhoiriúnacht le AT&T lex)\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " agus b'fhéidir gur cúis le fadhbanna luais eile é\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -489,52 +473,51 @@ msgstr ""
"is cúis le moilliú mór an %%rogha yylineno, MÁ tá rialacha ann a bhfuil "
"línte nua iontu\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "is cúis le moilliú beag an rogha -I (idirghníomhach)\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "is cúis le moilliú beag an fheidhm yymore()\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "is cúis le moilliú mór é REJECT\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"is cúis le moilliú na rialacha maidir le comhthéacs leantach athraitheach\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "Níl REJECT ar fáil leis na roghanna -f nó -F"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "níl %option yylineno ar fáil le REJECT"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"níl rialacha maidir le comhthéacs leantach athraitheach ar fáil le -f nó -F"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "tá an %option yyclass gan bhrí ach amháin le scanóirí C++"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "níorbh fhéidir spás a leagan amach do shainmhíniú an mhacra"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Úsáid: %s [ROGHANNA] [COMHAD]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -555,7 +538,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -569,6 +552,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -583,10 +567,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -663,48 +648,35 @@ msgstr ""
" -h, --help taispeáin an chabhair seo\n"
" -V, --version taispeáin leagan %s\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "níorbh fhéidir spás a leagan amach do sko_stack"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "tá an t-ainm \"%s\" i bhfad Éireann rófhada"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "theip ar dháileadh na cuimhne i allocate_array()"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "aimsíodh carachtar neamhbhailí '%s' i check_char()"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "teastaíonn rogha -8 ón scanóir chun carachtar %s a úsáid"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "theip ar dháileadh na cuimhne i allocate_array()"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: earráid inmheánach mharfach, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "theip ar mhéadú an eagair"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "drochlíne i gcreatchomhad"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "theip ar dháileadh cuimhne i yy_flex_xmalloc()"
@@ -738,194 +710,194 @@ msgstr "meaisín folamh i dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Riail maidir le comhthéacs leantach athraitheach ag líne %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "drochstaid i mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "is róchasta na rialacha ionchuir (>= %d staid NFA)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "an iomarca athruithe i mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "an iomarca rialacha (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "earráid anaithnid agus an chéad pháirt á próiseáil"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "is neamhbhailí liosta na gcoinníollacha tosaigh"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "riail anaithnid"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "baineadh úsáid as comhthéacs leantach faoi dhó"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "luachanna timthrialla neamhbhailí"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "ní foláir luach timthrialla deimhneach"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"tá an raon carachtair [%c-%c] débhríoch i scanóir a dhéanann neamhshuim ar "
"cheannlitreacha agus litreacha beaga"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "raon diúltach in aicme charachtair"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"tá [:^lower:] débhríoch i scanóir a dhéanann neamhshuim ar cheannlitreacha "
"agus litreacha beaga"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"tá [:^upper:] débhríoch i scanóir a dhéanann neamhshuim ar cheannlitreacha "
"agus litreacha beaga"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Líne ionchurtha rófhada\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "treoir '%top' míchumtha"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "treoir '%' anaithnid"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Ainm an tsainmhínithe rófhada\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "'{' corr"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Luach an tsainmhínithe {%s} rófhada\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "is neamhiomlán sainmhíniú an ainm"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Líne roghanna rófhada\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "rogha %% anaithnid: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "aicme charachtair neamhbhailí"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "sainmhíniú neamhshainithe {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "<coinníoll tosaigh> neamhbhailí: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "comhartha athfhriotal ar iarraidh"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "is neamhbhailí an slonn aicme carachtair: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "carachtar neamhbhailí idir {}"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "} ar iarraidh."
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "Buaileadh comhadchríoch laistigh de ghníomh"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "Buaileadh comhadchríoch laistigh de phatrún"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "carachtar neamhbhailí: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "ní féidir %s a oscailt"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Úsáid: %s [ROGHANNA]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "ní cheadaítear argóint i ndiaidh na rogha `%s'\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "tá argóint de dhíth i ndiaidh na rogha `%s'\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "tá an rogha `%s' débhríoch\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Rogha anaithnid `%s'\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Earráid anaithnid=(%d)\n"
@@ -957,8 +929,32 @@ msgstr "Comhartha Deiridh\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Rud Éigin Aisteach* - tok: %d val: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Níorbh fhéidir spás a leagan amach do threoir líne"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Níorbh fhéidir spás a leagan amach do shainmhíniú m4"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Níorbh fhéidir spás a leagan amach do dhí-shainmhíniú m4"
#~ msgid "error creating header file %s"
#~ msgstr "earráid agus comhad ceanntáisc %s á chruthú"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "níorbh fhéidir spás a leagan amach do sko_stack"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "tá an t-ainm \"%s\" i bhfad Éireann rófhada"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "theip ar chuimhne dhinimiciúil i copy_string()"
#~ msgid "bad line in skeleton file"
#~ msgstr "drochlíne i gcreatchomhad"
#~ msgid "consistency check failed in symfollowset"
#~ msgstr "theip ar sheiceáil chomhionannais i symfollowset"
+174 -194
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.37\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2012-10-05 16:48+0200\n"
"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -20,20 +20,12 @@ msgstr ""
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 1.4\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr ""
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr ""
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr ""
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
@@ -66,7 +58,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr ""
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -74,24 +66,24 @@ msgid ""
"\n"
msgstr ""
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr ""
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr ""
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr ""
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr ""
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -99,426 +91,416 @@ msgid ""
"\n"
msgstr ""
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr ""
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr ""
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr ""
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr ""
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr ""
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
"Meta-Equivalence Classes:\n"
msgstr ""
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr ""
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr ""
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr ""
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr ""
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr ""
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr ""
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr ""
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr ""
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr ""
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr ""
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr ""
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr ""
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr ""
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr ""
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr ""
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr ""
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr ""
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr ""
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr ""
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr ""
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr ""
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr ""
#: src/main.c:431
msgid "could not write tables header"
msgstr ""
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr ""
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr ""
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr ""
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "greška pri zatvaranju datoteke predloška %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "greška pri stvaranju datoteke zaglavlja %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "greška pri pisanju izlazne datoteke %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "greška pri zatvaranju izlazne datoteke %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "greška pri uklanjanju izlazne datoteke %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr ""
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr ""
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr ""
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr ""
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr ""
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr ""
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr ""
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr ""
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr ""
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr ""
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr ""
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr ""
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr ""
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr ""
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr ""
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr ""
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr ""
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr ""
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr ""
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr ""
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr ""
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr ""
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr ""
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr ""
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr ""
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr ""
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr ""
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr ""
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr ""
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr ""
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr ""
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr ""
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Pokušajte „%s --help” za više informacija.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "nepoznata -C opcija „%c”"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "fatalna greška analize"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr ""
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr ""
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr ""
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr ""
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr ""
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr ""
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr ""
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr ""
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr ""
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr ""
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Uporaba: %s [OPCIJE] [DATOTEKA]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -539,7 +521,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -553,6 +535,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -567,10 +550,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -584,48 +568,35 @@ msgid ""
" -V, --version report %s version\n"
msgstr ""
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr ""
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr ""
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr ""
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr ""
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr ""
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "alokacija memorije za tablicu simbola nije uspjela"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr ""
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr ""
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "neispravan redak u datoteci predloška"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr ""
@@ -656,188 +627,188 @@ msgstr ""
msgid "Variable trailing context rule at line %d\n"
msgstr ""
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr ""
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr ""
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr ""
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "previše pravila (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr ""
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr ""
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "neprepoznato pravilo"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr ""
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "neispravne vrijednosti iteracije"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "vrijednost iteracije mora biti pozitivna"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr ""
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Ulazni redak je predugačak\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr ""
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr ""
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Ime definicije je predugačko\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Neuparena „{”"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr ""
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "nepotpuna definicija imena"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Redak opcija je predugačak\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr ""
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "neispravan razred znakova"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "nedefinirana definicija {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr ""
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "nedostaje navodnik"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr ""
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "neispravan znak unutar {}"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "nedostaje }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr ""
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr ""
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "neispravan znak: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "ne mogu otvoriti %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Uporaba: %s [OPCIJE]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "opcija „%s” ne dozvoljava argument\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "opcija „%s” zahtijeva argument\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "opcija „%s” je višeznačna\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Neprepoznata opcija „%s”\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Nepoznata greška=(%d)\n"
@@ -868,3 +839,12 @@ msgstr "Oznaka kraja\n"
#, c-format
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Nešto je čudno* - simbol: %d vrijednost: %d\n"
#~ msgid "error creating header file %s"
#~ msgstr "greška pri stvaranju datoteke zaglavlja %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "bad line in skeleton file"
#~ msgstr "neispravan redak u datoteci predloška"
+177 -197
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.2\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 1997-02-05 20:30\n"
"Last-Translator: Choi Jun Ho <junker@jazz.snu.ac.kr>\n"
"Language-Team: Korean <ko@li.org>\n"
@@ -16,20 +16,12 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr ""
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr ""
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr ""
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
@@ -64,7 +56,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "epsclosure()에서 일관성 검사가 실패했습니다"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -76,24 +68,24 @@ msgstr ""
"DFA 출력:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "유일한 버퍼의 끝(end-of-buffer)상태를 만들 수 없었습니다"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "상태번호 %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr ""
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "sympartition()에서 잘못된 전이 문자를 찾았습니다"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -105,30 +97,30 @@ msgstr ""
"동치류:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "상태번호 %d는 [%d]를 받아들입니다\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "상태번호 %d는 다음을 받아들입니다: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr ""
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr ""
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#, fuzzy
msgid "Could not write ecstbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -138,406 +130,396 @@ msgstr ""
"\n"
"메타-동치류들:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr ""
#: src/gen.c:1352
#: src/gen.c:774
#, fuzzy
msgid "Could not write yybase_tbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr ""
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr ""
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr ""
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
#, fuzzy
msgid "Could not write ftbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:1614
#: src/gen.c:938
#, fuzzy
msgid "Could not write ssltbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:1665
#: src/gen.c:1014
#, fuzzy
msgid "Could not write eoltbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr ""
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "맞는 규칙을 찾을 수 없습니다"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "-s 옵션이 주어졌지만 기본 규칙이 적용될 수 있습니다"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "-l옵션에는 -+옵션을 같이 쓸 수 없습니다"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "-l옵션에 -f나 -F옵션을 쓸 수 없습니다"
#: src/main.c:228
#: src/main.c:324
#, fuzzy
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "-l옵션에 -f나 -F옵션을 쓸 수 없습니다"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF는 -Cm와 같이 쓰면 의미가 없습니다"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF와 -I는 같이 쓸 수 없습니다"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF 는 lex호환 모드와는 같이 쓸 수 없습니다"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf와 -CF는 같이 쓸 수 없습니다"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "-CF옵션에 -+옵션을 같이 쓸 수 없습니다"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array는 -+옵션과 같이 쓸 수 없습니다"
#: src/main.c:284
#: src/main.c:380
#, fuzzy
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "-Cf와 -CF는 같이 쓸 수 없습니다"
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "%s를 만들 수 없습니다"
#: src/main.c:431
#, fuzzy
msgid "could not write tables header"
msgstr "%s를 만들 수 없습니다"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "스켈레톤 파일 %s를 열 수 없습니다"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass는 C++스캐너에게만 의미가 있습니다"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr ""
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "스켈레톤 파일 %s를 읽는 도중 오류가 발생했습니다"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "스켈레톤 파일 %s를 닫는데 오류가 발생했습니다"
#: src/main.c:709
#, fuzzy, c-format
msgid "error creating header file %s"
msgstr "백업 파일 %s를 쓰는데 오류가 발생했습니다"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "출력파일 %s를 쓰는 데 오류가 발생했습니다"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "출력파일 %s를 닫는데 오류가 발생했습니다"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "출력파일 %s를 지우는 데 오류가 발생했습니다"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "되돌림이 없습니다.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d개의 되돌림(받아들이지 않는) 상태.\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr " 압축된 테이블은 항상 백업합니다.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "백업 파일 %s를 쓰는데 오류가 발생했습니다"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "백업 파일 %s를 닫는데 오류가 발생했습니다"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s 버전 %s 사용 통계:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " 스캐너 옵션: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d개의 NFA 상태\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d개의 DFA 상태 (%d 단어)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d개의 규칙\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " 되돌림이 없습니다\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d개의 되돌림(받아들이지 않는) 상태\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " 압축된 테이블은 항상 백업합니다\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " 행 시작(beginning-of-line) 유형을 사용하였습니다\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d개의 시작조건\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d개의 엡실론 상태, %d개의 이중 엡실론 상태\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " 문자류가 없습니다\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d 문자 집합에 %d/%d개의 저장용 문자가 필요했고, %d개는 재사용되었습니"
"다.\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d개의 상태/다음 상태 쌍이 만들어졌습니다\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d개의 유일한/중복되는 전이\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d개의 테이블 엔트리\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def 엔트리가 만들어졌습니다\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (최대 %d) nxt-chk 엔트리가 만들어졌습니다\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (최대 %d) 템플리트 nxt-chk 엔트리가 만들어졌습니다\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d개의 빈 테이블 엔트리\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d개의 원형이 만들어졌습니다\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d개의 템플리트가 만들어지고, %d개를 씁니다\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d개의 동치류가 만들어졌습니다\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d 메타 동치류가 만들어졌습니다\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d(%d 저장됨)개의 해싱 충돌로 %d개의 DFA가 같게 처리됩니다\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d개의 재할당 집합이 필요합니다\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " 총 %d개의 테이블 엔트리가 필요합니다\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr ""
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "알 수 없는 -C 옵션 '%c'"
#: src/main.c:1204
#, fuzzy, c-format
msgid "%s %s\n"
msgstr "%s 버전 %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "치명적인 파싱 에러"
#: src/main.c:1508
#: src/main.c:1247
#, fuzzy
msgid "could not write tables header"
msgstr "%s를 만들 수 없습니다"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "스켈레톤 파일 %s를 열 수 없습니다"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "되돌림 정보 파일 %s를 만들 수 없었습니다"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l AT&T lex 호환 옵션은 큰 성능 저하를 일으킵니다\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " 그리고 아마도 다른 보고된 성능 저하의 실제 원인일 것입니다\n"
#: src/main.c:1538
#: src/main.c:1352
#, fuzzy, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr "%%option yylineno는 큰 성능저하를 일으킵니다\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (대화형) 은 소규모의 성능저하를 일으킵니다\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore()는 소규모의 성능저하를 일으킵니다\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT는 큰 성능저하를 일으킵니다\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "가변 추적 문맥 규칙은 큰 성능저하를 일으킵니다\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT는 -f나 -F옵션과 같이 쓸 수 없습니다"
#: src/main.c:1576
#: src/main.c:1390
#, fuzzy, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno은 -f나 -F옵션과 같이 쓸 수 없습니다"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "가변 추적 문맥 규칙은 -f나 -F옵션과 같이 쓸 수 없습니다"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass는 C++스캐너에게만 의미가 있습니다"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr ""
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr ""
#: src/main.c:1794
#: src/main.c:1748
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -558,7 +540,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -572,6 +554,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -586,10 +569,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -603,48 +587,35 @@ msgid ""
" -V, --version report %s version\n"
msgstr ""
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr ""
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "이름 \"%s\"는 비정상적으로 깁니다"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "allocate_array()에서 메모리 할당이 실패했습니다"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "check_char()에서 잘못된 문자 '%s'를 찾았습니다"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "스캐너에서 문자 %s를 쓰기 위해서는 -8옵션이 필요합니다"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "allocate_array()에서 메모리 할당이 실패했습니다"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: 치명적인 내부 에러, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "배열 크기를 늘리려는 시도가 실패했습니다"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "스켈레톤 파일에 잘못된 행"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "yy_flex_xmalloc()에서 메모리 할당이 실패했습니다"
@@ -678,195 +649,195 @@ msgstr "dupmachine()
msgid "Variable trailing context rule at line %d\n"
msgstr "%d행에서 가변 추적 문맥 규칙\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "mark_beginning_as_normal()에서 잘못된 상태형"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "입력 규칙이 너무 복잡합니다(>= NFA상태 %d개)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "mkxtion()에 전이가 너무 많습니다"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "규칙이 너무 많습니다 (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr ""
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
#, fuzzy
msgid "bad start condition list"
msgstr "잘못된 <시작 조건>: %s"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
#, fuzzy
msgid "unrecognized rule"
msgstr "알 수 없는 '%' 지시자"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#, fuzzy
msgid "trailing context used twice"
msgstr "%d행에서 가변 추적 문맥 규칙\n"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr ""
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr ""
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
#: src/parse.y:821
#: src/parse.y:841
#, fuzzy
msgid "negative range in character class"
msgstr " 문자류가 없습니다\n"
#: src/parse.y:918
#: src/parse.y:938
#, fuzzy
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "\t-i 대소문자 구별없는 스캐너를 만듭니다\n"
#: src/parse.y:924
#: src/parse.y:944
#, fuzzy
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "\t-i 대소문자 구별없는 스캐너를 만듭니다\n"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr ""
#: src/scan.l:183
#: src/scan.l:185
#, fuzzy, c-format
msgid "malformed '%top' directive"
msgstr "알 수 없는 '%' 지시자"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "알 수 없는 '%' 지시자"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr ""
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr ""
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr ""
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "불완전한 이름 정의"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr ""
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "알 수 없는 %%option: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "잘못된 문자류"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "정의되지 않은 정의 {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "잘못된 <시작 조건>: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "인용기호 빠짐"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "잘못된 문자 집합 식: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "{}안의 잘못된 문자"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "}이 빠졌습니다"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "동작 도중에 EOF를 만났습니다"
#: src/scan.l:977
#: src/scan.l:1025
#, fuzzy
msgid "EOF encountered inside pattern"
msgstr "동작 도중에 EOF를 만났습니다"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "잘못된 문자: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "%s를 열 수 없습니다"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr ""
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr ""
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr ""
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr ""
#: src/scanopt.c:537
#: src/scanopt.c:497
#, fuzzy, c-format
msgid "Unrecognized option `%s'\n"
msgstr "알 수 없는 %%option: %s"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr ""
@@ -923,6 +894,9 @@ msgstr "*
#~ msgid "-Cf/-CF and %option yylineno are incompatible"
#~ msgstr "-Cf/-CF와 %option yylineno 는 같이 쓸 수 없습니다"
#~ msgid "%s version %s\n"
#~ msgstr "%s 버전 %s\n"
#~ msgid ""
#~ "%s [-bcdfhilnpstvwBFILTV78+? -C[aefFmr] -ooutput -Pprefix -Sskeleton]\n"
#~ msgstr ""
@@ -1034,5 +1008,11 @@ msgstr "*
#~ msgid "\t--version report %s version\n"
#~ msgstr "\t--version %s의 버전을 출력합니다\n"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "이름 \"%s\"는 비정상적으로 깁니다"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "copy_string()에서 동적 메모리 할당이 실패했습니다"
#~ msgid "bad line in skeleton file"
#~ msgstr "스켈레톤 파일에 잘못된 행"
+200 -211
View File
@@ -1,41 +1,32 @@
# Dutch translations for the fast parser Flex.
# Copyright (C) 2014 The Flex Project (msgids)
# Copyright (C) 2022 The Flex Project (msgids)
# This file is distributed under the same license as the flex package.
#
# Beim schwarzen Schaf...
#
# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2012, 2014.
# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2012, 2014, 2022.
msgid ""
msgstr ""
"Project-Id-Version: flex-2.5.38\n"
"Project-Id-Version: flex-2.6.4\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"PO-Revision-Date: 2014-02-13 22:25+0100\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2022-01-09 19:38+0100\n"
"Last-Translator: Benno Schulenberg <vertaling@coevern.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Geheugenreservering voor stringprintbuffer is mislukt"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Geheugenreservering voor line-commandobuffer is mislukt"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Geheugenreservering voor buffer voor m4 def is mislukt"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Geheugenreservering voor buffer voor m4 undef is mislukt"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -69,7 +60,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "consistentiecontrole is mislukt in epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -81,24 +72,24 @@ msgstr ""
"DFA-dump:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "kon geen unieke toestand voor einde-van-buffer aanmaken"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "toestand # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Kan yynxt_tbl[][] niet schrijven"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "onjuist transitieteken in sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -110,29 +101,29 @@ msgstr ""
"Equivalentieklassen:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "toestand # %d accepteert: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "toestand # %d accepteert: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Kan yyacclist_tbl niet schrijven"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Kan yyacc_tbl niet schrijven"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Kan ecstbl niet schrijven"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -142,353 +133,345 @@ msgstr ""
"\n"
"Meta-equivalentieklassen:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Kan yymeta_tbl niet schrijven"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Kan yybase_tbl niet schrijven"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Kan yydef_tbl niet schrijven"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Kan yynxt_tbl niet schrijven"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Kan yychk_tbl niet schrijven"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Kan ftbl niet schrijven"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Kan ssltbl niet schrijven"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Kan eoltbl niet schrijven"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Kan yynultrans_tbl niet schrijven"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "voorschrift geeft geen overeenkomsten"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr ""
"optie '-s' is gegeven, maar het standaardvoorschrift geeft overeenkomsten"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "Optie '-+' gaat niet samen met '-l'"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Optie '-f' of '-F' gaat niet samen met '-l'"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "Optie '--reentrant' of '--bison-bridge' gaat niet samen met '-l'"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "Opties -Cf/-CF en -Cm gaan niet samen"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "Opties -Cf/-CF en -I gaan niet samen"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "Optie -Cf of -CF gaat niet samen met lex-compatibiliteitsmodus"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "Opties -Cf en -CF sluiten elkaar uit"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "Optie '-+' gaat niet samen met '-CF'"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "Optie '-+' gaat niet samen met %array"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Opties '-+' en '--reentrant' sluiten elkaar uit."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison bridge wordt niet ondersteund voor de C++-scanner."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "kan %s niet aanmaken"
#: src/main.c:431
msgid "could not write tables header"
msgstr "kan tabellenkop niet schrijven"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan skeletbestand %s niet openen"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%optie yyclass heeft alleen betekenis voor C++-scanners"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "geheugenreservering voor macrodefinitie is mislukt"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "invoerfout tijdens lezen van skeletbestand %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "fout tijdens sluiten van skeletbestand %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "fout tijdens aanmaken van headerbestand %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "fout tijdens schrijven van uitvoerbestand %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "fout tijdens sluiten van uitvoerbestand %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "fout tijdens verwijderen van uitvoerbestand %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Terugstappen is niet mogelijk.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d terugstappende (niet-accepterende) toestanden.\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Gecomprimeerde tabellen kunnen altijd terugstappen.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "fout tijdens schrijven van terugstapbestand %s"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "fout tijdens sluiten van terugstapbestand %s"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s versie %s gebruiksstatistieken:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " scanneropties: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-toestanden\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-toestanden (%d woorden)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d voorschriften\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Terugstappen is niet mogelijk\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d terugstappende (niet-accepterende) toestanden\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Gecomprimeerde tabellen kunnen altijd terugstappen\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Begin-van-regel-patronen gebruikt\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d startvoorwaarden\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilontoestanden, %d dubbele epsilontoestanden\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " geen tekenklassen\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d tekenklassen hadden %d/%d opslagwoorden nodig, %d hergebruikt\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d toestand/volgtoestand-paren aangemaakt\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d unieke/dubbele transities\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d tabelitems\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def-items aangemaakt\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (piek %d) nxt-chk-items aangemaakt\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (piek %d) sjabloon-nxt-chk-items aangemaakt\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d lege tabelitems\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d prototypes aangemaakt\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d sjablonen aangemaakt, %d keer gebruikt\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d equivalentieklassen aangemaakt\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d meta-equivalentieklassen aangemaakt\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d bewaarde) hash-botsingen, %d DFA's gelijk\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d sets van herallocaties waren nodig\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " in totaal %d tabelitems nodig\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "*Interne fout*: ongeldige flexopts.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Typ '%s --help' voor meer informatie.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "onbekende -C-optie '%c'"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "fatale ontledingsfout"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "kan tabellenkop niet schrijven"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan skeletbestand %s niet openen"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr "prefix mag geen '[' of ']' bevatten"
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "kon terugstapbestand %s niet aanmaken"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"de AT&T-lexcompatibiliteitsoptie '-l' betekent een grote "
"prestatievermindering\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" en zou de eigenlijke bron kunnen zijn van andere gemelde "
"prestatieverminderingen\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -497,54 +480,53 @@ msgstr ""
"de %%optie yylineno betekent een prestatievermindering, maar ALLEEN voor "
"voorschriften die met het regeleindeteken overeen kunnen komen\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "optie '-I' (interactief) betekent een kleine prestatievermindering\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() betekent een kleine prestatievermindering\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT betekent een grote prestatievermindering\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Voorschriften met variabele nakomende context betekenen een grote "
"prestatievermindering\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT gaat niet samen met -f of -F"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%optie yylineno gaat niet samen met REJECT"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"voorschriften met variabele nakomende context gaan niet samen met '-f' of '-"
"F'"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%optie yyclass heeft alleen betekenis voor C++-scanners"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "geheugenreservering voor macrodefinitie is mislukt"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Gebruik: %s [OPTIE...] [BESTAND...]\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -565,7 +547,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -579,6 +561,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -593,10 +576,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -664,8 +648,6 @@ msgstr ""
" --bison-bridge een scanner voor zuivere bison-ontleder genereren\n"
" --bison-locations ondersteuning voor yylloc opnemen\n"
" --stdinit yyin/yyout naar standaardin/uitvoer initialiseren\n"
" --noansi-definitions oude-stijl functiedefinities\n"
" --noansi-prototypes lege parameterlijst in prototypes\n"
" --nounistd <unistd.h> niet insluiten\n"
" --noFUNCTIE specifieke FUNCTIE niet genereren\n"
"\n"
@@ -676,48 +658,34 @@ msgstr ""
" -h, --help deze hulptekst tonen\n"
" -V, --version de versie van %s tonen\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "geheugenreservering voor 'sko_stack' is mislukt"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "naam is belachelijk lang: \"%s\""
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "geheugenreservering is mislukt in allocate_array()"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "onjuist teken '%s' in check_char()"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "scanner heeft de optie '-8' nodig om teken %s te kunnen gebruiken"
#: src/misc.c:229
#, fuzzy
#: src/misc.c:155
msgid "memory allocation failure in xstrdup()"
msgstr "geheugenreservering is mislukt in allocate_array()"
msgstr "geheugenreservering is mislukt in xstrdup()"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: **fatale interne programmafout**, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "vergroting van array is mislukt"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "onjuiste regel in skeletbestand"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "geheugenreservering is mislukt in yy_flex_xmalloc()"
@@ -751,190 +719,190 @@ msgstr "lege machine in dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Voorschrift met variabele nakomende context op regel %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "onjuist toestandstype in mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "invoervoorschriften zijn te ingewikkeld (>= %d NFA-toestanden)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "te veel transities gevonden in mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "te veel voorschriften (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "onbekende fout tijdens verwerken van sectie 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "onjuiste lijst van startvoorwaarden"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
msgstr "prefix mag geen '[' of ']' bevatten"
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "onbekend voorschrift"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "nakomende context twee keer gebruikt"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "onjuiste iteratiewaarden"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "iteratiewaarde moet positief zijn"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"het tekenbereik [%c-%c] is niet eenduidig in een hoofdletterongevoelige "
"scanner"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "negatief bereik in tekenklasse"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] is niet eenduidig in een hoofdletterongevoelige scanner"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] is niet eenduidig in een hoofdletterongevoelige scanner"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Invoerregel is te lang\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "verkeerde opbouw van '%top'-commando"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "onbekend '%'-commando"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Definitienaam is te lang\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Ongepaarde '{'"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Definitiewaarde voor {%s} is te lang\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "onvolledige naamsdefinitie"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Optiesregel is te lang\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "onbekende %%option: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "onjuiste tekenklasse"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "ongedefinieerde definitie {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
msgstr "ongepaard haakje"
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "onjuiste <startvoorwaarde>: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "ontbrekend aanhalingsteken"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "onjuiste expressie '%s' in tekenklasse"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "onjuist teken tussen {}'s"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "ontbrekende }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "EOF werd bereikt tijdens een actie"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "EOF werd bereikt binnen een patroon"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "onjuist teken: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "kan %s niet openen"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Gebruik: %s [OPTIE...]\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "optie '%s' staat geen argument toe\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "optie '%s' vereist een argument\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "optie '%s' is niet eenduidig\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Onbekende optie '%s'\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Onbekende fout=(%d)\n"
@@ -966,5 +934,26 @@ msgstr "Eindmarkering\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Iets Raars* - token: %d waarde:%d\n"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "dynamische geheugenfout in copy_string()"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Geheugenreservering voor line-commandobuffer is mislukt"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Geheugenreservering voor buffer voor m4 def is mislukt"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Geheugenreservering voor buffer voor m4 undef is mislukt"
#~ msgid "error creating header file %s"
#~ msgstr "fout tijdens aanmaken van headerbestand %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "geheugenreservering voor 'sko_stack' is mislukt"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "naam is belachelijk lang: \"%s\""
#~ msgid "bad line in skeleton file"
#~ msgstr "onjuiste regel in skeletbestand"
+368 -376
View File
File diff suppressed because it is too large Load Diff
+452 -423
View File
File diff suppressed because it is too large Load Diff
+193 -197
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.37\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2013-11-27 08:09-0300\n"
"Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -21,21 +21,13 @@ msgstr ""
"X-Generator: Poedit 1.5.7\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "A alocação de buffer para retornar string falhou"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "A alocação de buffer para diretiva de linha falhou"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "A alocação de buffer para m4 def falhou"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "A alocação de buffer para m4 undef falhou"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -69,7 +61,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "verificação de consistência falhou em epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -81,24 +73,24 @@ msgstr ""
"Despejo DFA:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "não foi possível criar um estado único de final de buffer"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "estado # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Não foi possível escrever yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "caractere de transição inválido detectado em sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -110,29 +102,29 @@ msgstr ""
"Classes de Equivalência:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "estado # %d aceita: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "estado # %d aceita: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Não foi possível escrever yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Não foi possível escrever yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Não foi possível escrever ecstbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -142,353 +134,345 @@ msgstr ""
"\n"
"Classes de Meta-Equivalência:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Não foi possível escrever yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Não foi possível escrever yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Não foi possível escrever yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Não foi possível escrever yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Não foi possível escrever yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Não foi possível escrever ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Não foi possível escrever ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Não foi possível escrever eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Não foi possível escrever yynultrans_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "aplicação da regra não gerou nenhum resultado"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "a opção -s foi fornecida, mas a regra padrão pode ser aplicada"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "Não é possível usar -+ com a opção -l"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Não é possível usar -f ou -F com a opção -l"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "Não é possível usar --reentrant ou --bison-bridge com a opção -l"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF e -Cm não fazem sentido juntos"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF e -I são incompatíveis"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF são incompatíveis com o modo de compatibilidade lex"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf e -CF são mutuamente exclusivos"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "Não é possível usar -+ com a opção -CF"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array é incompatível com a opção -+"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "As opções -+ e --reentrant são mutuamente exclusivas."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "sem suporte à ponte bison pelo scanner de C++."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "não foi possível criar %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "não foi possível escrever o cabeçalho das tabelas"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "não é possível abrir o arquivo esqueleto %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass só tem sentido para scanners C++"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "a alocação de definição de macro falhou"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "erro lendo o arquivo esqueleto %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "erro fechando o arquivo esqueleto %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "erro ao criar o arquivo cabeçalho %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "erro ao gravar o arquivo de saída %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "erro ao fechar o arquivo de saída %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "erro ao remover o arquivo de saída %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Impossível restaurar.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d fazendo cópia de segurança de estados (não-aceita).\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Tabelas compactadas sempre têm cópias de segurança.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "erro ao gravar a cópia de segurança %s"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "erro ao fechar a cópia de segurança %s"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s versão %s estatísticas de uso:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " opções de scanner: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d estados NFA\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d estados DFA (%d palavras)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d regras\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Sem cópia de segurança\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d fazendo cópia de segurança de estados (não-aceita)\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Tabelas compactadas sempre têm cópias de segurança\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Padrões de início-de-linha usados\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d condições de início\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d estados epsilon, %d estados epsilon duplo\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " nenhuma classe de caracteres\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d classes de caracteres precisaram de %d/%d palavras de armazenamento, "
"%d reusadas\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d pares estado/próximoestado criados\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d transições únicas/duplicadas\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d entradas de tabela\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entradas base-def criadas\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (pico %d) entradas nxt-chk criadas\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (pico %d) modelos de entradas nxt-chk criadas\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entradas vazias na tabela\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d protos criados\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d modelos criados, %d usos\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d classes de equivalência criadas\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d classes de meta-equivalência criadas\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d salvas) colisões de hash, %d DFAs iguais\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d conjuntos de realocação necessários\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d total de entradas de tabela necessárias\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Erro interno. flexopts estão malformados.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Tente \"%s --help\" para maiores informações.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "opção -C \"%c\" desconhecida"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "erro fatal de análise"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "não foi possível escrever o cabeçalho das tabelas"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "não é possível abrir o arquivo esqueleto %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr ""
"não foi possível criar arquivo de cópia de segurança das informações %s"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"a opção de compatibilidade com lex da AT&T \"-l\" acarreta em uma grande "
"penalidade na performance\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" e pode ser a fonte real de outras penalidades de performance reportadas\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -497,53 +481,52 @@ msgstr ""
"%%option yylineno acarreta em uma penalidade na performance APENAS em regras "
"que podem bater caracteres de nova linha\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interativo) acarreta em uma pequena penalidade na performance\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() acarreta em uma pequena penalidade na performance\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT acarreta em uma grande penalidade na performance\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Variável seguindo regras de contexto implicam em grande perda de "
"performance\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT não pode ser usado com -f ou -F"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno não pode ser usada com REJECT"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"variáveis seguindo regras de contexto não podem ser usadas com -f ou -F"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass só tem sentido para scanners C++"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "a alocação de definição de macro falhou"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Uso: %s [OPÇÕES] [ARQUIVO]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -564,7 +547,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -578,6 +561,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -592,10 +576,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -675,48 +660,35 @@ msgstr ""
" -h, --help produz esta mensagem de ajuda\n"
" -V, --version informa a versão do %s\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "alocação de sko_stack falhou"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "nome \"%s\" ridiculamente longo"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "alocação de memória falhou em allocate_array()"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "caractere inválido \"%s\" detectado em check_char()"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "o scanner precisa da opção -8 para usar o caractere %s"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "alocação de memória falhou em allocate_array()"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: erro interno fatal, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "tentativa de aumentar o tamanho do vetor falhou"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "linha inválida no arquivo de esqueleto"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "alocação de memória falhou em yy_flex_xmalloc()"
@@ -750,189 +722,189 @@ msgstr "máquina vazia em dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Regra de final de contexto variável na linha %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "estado de tipo inválido em mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "regras de entrada são muito complicadas (>= %d estados NFA)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "muitas transições em mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "muitas regras (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "erro desconhecido processando a seção 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "lista de condições de início inválida"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "regra não reconhecida"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "contexto final usado duas vezes"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "valores de iteração inválidos"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "valor de iteração deve ser positivo"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"a faixa de caracteres [%c-%c] é ambígua em um scanner \"case-insensitive\""
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "faixa negativa na classe de caracteres"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] é ambígua em um scanner \"case-insensitive\""
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] é ambígua em um scanner \"case-insensitive\""
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Linha de entrada muito longa\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "diretiva \"%top\" malformada"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "diretiva \"%\" não reconhecida"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Nome de definição muito longo\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "'{' sem fechamento"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Valor de definição para {%s} muito longo\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "definição de nome incompleta"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Linha de opção muito longa\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%option não reconhecida: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "classe de caractere inválida"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "definição indefinida {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "<condição de início> inválida: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "faltou aspa"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "expressão de classe de caractere inválida: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "caracatere inválido entre {}'s"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "faltou }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "Fim de Arquivo encontrado dentro de uma ação"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "Fim de Arquivo encontrado dentro do padrão"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "caracter inválido: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "não foi possível abrir %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Uso: %s [OPÇÕES]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "opção \"%s\" não permite argumentos\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "opção \"%s\" requer um argumento\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "opção \"%s\" é ambígua\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Opção \"%s\" desconhecida\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Erro desconhecido=(%d)\n"
@@ -964,9 +936,33 @@ msgstr "Marca de Fim\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Algo Estranho* - tok: %d val: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "A alocação de buffer para diretiva de linha falhou"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "A alocação de buffer para m4 def falhou"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "A alocação de buffer para m4 undef falhou"
#~ msgid "error creating header file %s"
#~ msgstr "erro ao criar o arquivo cabeçalho %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "alocação de sko_stack falhou"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "nome \"%s\" ridiculamente longo"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "falha dinâmica de memória em copy_string()"
#~ msgid "bad line in skeleton file"
#~ msgstr "linha inválida no arquivo de esqueleto"
#~ msgid "consistency check failed in symfollowset"
#~ msgstr "verificação de consistência falhou em symfollowset"
+502 -420
View File
File diff suppressed because it is too large Load Diff
+206 -210
View File
File diff suppressed because it is too large Load Diff
+202 -207
View File
@@ -1,38 +1,30 @@
# Serbian translation for flex
# Copyright (C) 2013 The Flex Project (msgids)
# This file is distributed under the same license as the flex package.
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2013.
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2013–2022.
msgid ""
msgstr ""
"Project-Id-Version: flex-2.5.37\n"
"Project-Id-Version: flex-2.6.4\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"PO-Revision-Date: 2013-10-30 18:20+0200\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2022-02-15 20:00+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Није успело додељивање међумеморије нисци исписивања"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Није успело додељивање међумеморије за одредницу реда"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Није успело додељивање међумеморије за одредницу м4"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Није успело додељивање међумеморије за поништавање одреднице м4"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -66,7 +58,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "провера доследности није успела у „epsclosure()“"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -78,24 +70,24 @@ msgstr ""
"ДФА испис:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "не могу да направим јединствено стање краја међумеморије"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "стање # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Не могу да запишем „yynxt_tbl[][]“"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "откривен је лош знак прелаза у „sympartition()“"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -107,29 +99,29 @@ msgstr ""
"Разреди једнакости:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "стање # %d прихвата: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "стање # %d прихвата: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Не могу да запишем „yyacclist_tbl“"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Не могу да запишем „yyacc_tbl“"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Не могу да запишем „ecstbl“"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -139,349 +131,341 @@ msgstr ""
"\n"
"Разреди мета-једнакости:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Не могу да запишем „yymeta_tbl“"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Не могу да запишем „yybase_tbl“"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Не могу да запишем „yydef_tbl“"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Не могу да запишем „yynxt_tbl“"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Не могу да запишем „ychk_tbl“"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Не могу да запишем „ftbl“"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Не могу да запишем „ssltbl“"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Не могу да запишем „eoltbl“"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Не могу да запишем „yynultrans_tbl“"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "правило не може бити поклопљено"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "дата је опција „-s“ али основно правило може бити поклопљено"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "Не могу да користим -+ са опцијом „-l“"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Не могу да користим „-f“ или „-F“ са опцијом „-l“"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "Не могу да користим „--reentrant“ или „--bison-bridge“ са опцијом „-l“"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "„-Cf/-CF“ и „-Cm“ немају смисла заједно"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "„-Cf/-CF“ и „-I“ су несагласне"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "„-Cf/-CF“ су несагласни са режимом лекс-сагласности"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "„-Cf“ и „-CF“ се међусобно искључују"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "Не могу да користим -+ са опцијом „-CF“"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%aниз није сагласан са опцијом -+"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Опције -+ и „--reentrant“ се међусобно искључују."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "бизонов мост није подржан за Ц++ скенер."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "не могу да направим %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "не могу да запшем бестаблично заглавље"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "Не могу да отворим датотеку окоснице „%s“"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%oпција „yyclass“ има смисла само за Ц++ скенере"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "није успело додељивање одреднице макроа"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "грешка улаза читања датотеке окоснице „%s“"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "грешка затварања датотеке окоснице „%s“"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "грешка стварања датотеке заглавља „%s“"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "грешка записивања излазне датотеке „%s“"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "грешка затварања излазне датотеке „%s“"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "грешка брисања излазне датотеке „%s“"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Не правим резерву.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d стварам резерве (не-прихватам) стања.\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Сжете табеле увек стварају резерву.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "грешка записивања датотеке резерве „%s“"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "грешка затварања датотеке резерве „%s“"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "Статистика коришћења %s издања%s:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " опције прегледача: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d НФА стања\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d ДФА стања (%d речи)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d правила\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Не правим резерву\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d стварам резерве (не-прихватам) стања\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Сжете табеле увек стварају резерву\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Коришћени су шаблони почетка-реда\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d услови покретања\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d стања ипсилона, %d стања двоструког ипсилона\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " нема разреда знака\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d разредима знака беху потребне %d/%d речи складишта, %d поново "
"коришћених\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d пара стања/следећег_стања је направљено\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d јединствена/удвостручена прелаза\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d уноса табеле\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " направљено је %d/%d уноса основне одреднице\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " направљено је %d/%d (врх %d) „nxt-chk“ уноса\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " направљено је %d/%d (врх %d)шаблона „nxt-chk“ уноса\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d празна уноса табеле\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " направљених узорака — %d\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " направљених шаблона - %d, користим %d\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " направљено је %d/%d разреда једнакости\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " направљено је %d/%d разреда мета-једнакости\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (сачуваних %d) сукоба хеша, %d једнак ДФА-су\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " потребна су %d скупа поновног додељивања\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " потребна су укупно %d уноса табеле\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Унутрашња грешка. „flexopts“ је лоше обликован.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Пробајте „%s --help“ за више података.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "непозната опција -C „%c“"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "кобна грешка обраде"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "не могу да запшем бестаблично заглавље"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "Не могу да отворим датотеку окоснице „%s“"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr "Префикс не може да укључи [ или ]"
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "не могу да направим резерву датотеке података „%s“"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l опција сагласности АТ&Т лекса изазива велико смањење учинка\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " и може бити стваран извор других извешених ограничења учинка\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -490,51 +474,50 @@ msgstr ""
"%%опција „yylineno“ изазива смањење учинка САМО на правилима која могу да "
"поклопе знакове новог реда\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (међудејствено) изазива мање смањење учинка\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "„yymore()“ изазива мање смањење учинка\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "„REJECT“ изазива веће смањење учинка\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "Променљива правила пратећег контекса изазивају веће смањење учинка\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "„REJECT“ не може да се користи са „-f“ или „-F“"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%oпција „yylineno“ не може да се користи са „REJECT“"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"променљива правила пратећег контекста не могу бити коришћена са „-f“ или „-F“"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%oпција „yyclass“ има смисла само за Ц++ скенере"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "није успело додељивање одреднице макроа"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Употреба: %s [ОПЦИЈЕ] [ДАТОТЕКА]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -555,7 +538,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -569,6 +552,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -583,10 +567,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -628,6 +613,8 @@ msgstr ""
" -w, --nowarn не ствара упозорења\n"
" -v, --verbose записује сажетак статистике скенера на "
"стандардни излаз\n"
" --hex користи хексадецималне бројеве уместо "
"окталних у излазима прочишћавања\n"
"\n"
"Датотеке:\n"
" -o, --outfile=ДАТОТЕКА наводи излазни назив датотеке\n"
@@ -659,8 +646,6 @@ msgstr ""
" --bison-bridge скенер за чисто бизонов обрађивач.\n"
" --bison-locations укључујеподршку „yylloc“ support”\n"
" --stdinit започиње „yyin/yyout“ на стндулаз/стндизлаз\n"
" --noansi-definitions одреднице функције старог стила\n"
" --noansi-prototypes празан списак параметарау узорцима\n"
" --nounistd не укључује [unistd.h]\n"
" --noФУНКЦИЈА не ствара нарочиту ФУНКЦИЈУ\n"
"\n"
@@ -671,48 +656,34 @@ msgstr ""
" -h, --help исписује ову помоћ\n"
" -V, --version извештава о издању %s-а\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "није успело додељивање „sko_stack“-а"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "назив „%s“ је смешно дуг"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "није успело додељивање меморије у „allocate_array()“"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "лош знак „%s“ је откривен у „check_char()“"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "скенер захтева -8 обележја да би користио знак „%s“"
#: src/misc.c:229
#, fuzzy
#: src/misc.c:155
msgid "memory allocation failure in xstrdup()"
msgstr "није успело додељивање меморије у „allocate_array()“"
msgstr "није успело додељивање меморије у „xstrdup()“"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: кобна унутрашња грешка, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "није успео покушај повећања величине низа"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "лош ред у датотеци окоснице"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "није успело додељивање меморије у „yy_flex_xmalloc()“"
@@ -746,188 +717,188 @@ msgstr "празна машина у „dupmachine()“"
msgid "Variable trailing context rule at line %d\n"
msgstr "Променљиво правило пратећег контекста на %d. реду\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "лоша врста стања у „mark_beginning_as_normal()“"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "улазна правила су превише сложена (>= %d НФА стања)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "пронађох превише прелаза у „mkxtion()“"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "превише правила (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "непозната грешка обраде одељка 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "лош списак почетног услова"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
msgstr "Префикс не сме да садржи [ или ]"
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "непознато правило"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "пратећи контекст је коришћен два пута"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "лоша вредност опетовања"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "вредност опетовања мора бити позитивна"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr "опсег знака [%c-%c] је нејасан у скенеру неосетљивом на величину слова"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "негативан опсег у разреду знака"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] је нејасно у скенеру неосетљивом на величину слова"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] је нејасно у скенеру неосетљивом на величину слова"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Улазни ред је предуг\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "лоша одредница „%top“"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "непозната "
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Назив одреднице је предуг\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Неупарена „{“"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Вредност одреднице за {%s} је предуга\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "непотпуна одредница назива"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Ред опције је предуг\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "непозната %%опција: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "лош разред знака"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "неодређена одредница {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
msgstr "неуравнотежене заграде"
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "лош [почетни услов]: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "недостају наводници"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "лош израз разреда знака: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "лош знак унутар {}"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "недостаје }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "наишао сам на крај датотеке унутар радње"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "наишао сам на крај датотеке унутар шаблона"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "лош знак: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "не могу да отворим „%s“"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Употреба: %s [ОПЦИЈЕ]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "опција „%s“ не дозвољава аргумент\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "опција „%s“ захтева аргумент\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "опција „%s“ је нејасна\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Непозната опција „%s“\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Непозната грешка=(%d)\n"
@@ -959,5 +930,29 @@ msgstr "Завршни означавач\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Нешто је чудно* — ток: %d вред: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Није успело додељивање међумеморије за одредницу реда"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Није успело додељивање међумеморије за одредницу м4"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Није успело додељивање међумеморије за поништавање одреднице м4"
#~ msgid "error creating header file %s"
#~ msgstr "грешка стварања датотеке заглавља „%s“"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "није успело додељивање „sko_stack“-а"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "назив „%s“ је смешно дуг"
#~ msgid "bad line in skeleton file"
#~ msgstr "лош ред у датотеци окоснице"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "неуспех динамичке меморије у „copy_string()“"
+203 -211
View File
@@ -1,18 +1,18 @@
# Swedish messages for flex.
# Copyright (C) 2014 The Flex Project (msgids)
# Copyright (C) 2014, 2022 The Flex Project (msgids)
# This file is distributed under the same license as the flex package.
#
# Johan Linde <jl@theophys.kth.se>, 1996.
# Christian Rose <menthos@menthos.com>, 2002, 2004.
# Göran Uddeborg <goeran@uddeborg.se>, 2016
# Göran Uddeborg <goeran@uddeborg.se>, 2016, 2022
#
# $Revision: 1.5 $
# $Revision: 1.8 $
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.38\n"
"Project-Id-Version: flex 2.6.4\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"PO-Revision-Date: 2016-06-06 19:10+0200\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2022-01-05 12:46+0100\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -21,21 +21,13 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Allokeringen av buffert för utskriftssträng misslyckades"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Allokeringen av buffert för raddirektiv misslyckades"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Allokeringen av buffert för m4-def misslyckades"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Allokering av buffert för m4-undef misslyckades"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -69,7 +61,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "konsekvenskontrollen misslyckades i epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -81,26 +73,26 @@ msgstr ""
"DFA-utskrift:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "kunde inte skapa ett unikt buffertsluttillstånd"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "tillstånd %d:\n"
# Det här är ju helt sjukt. Har buggrapporterat detta att det bör
# ersättas med %s
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Kunde inte skriva yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "otillåtet övergångstecken funnet i sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -112,29 +104,29 @@ msgstr ""
"Ekvivalensklasser:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "tillstånd %d accepterar: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "tillstånd %d accepterar: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Kunde inte skriva yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Kunde inte skriva yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Kunde inte skriva ecstbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -144,350 +136,342 @@ msgstr ""
"\n"
"Metaekvivalensklasser:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Kunde inte skriva yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Kunde inte skriva yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Kunde inte skriva yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Kunde inte skriva yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Kunde inte skriva yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Kunde inte skriva ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Kunde inte skriva ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Kunde inte skriva eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Kunde inte skriva yynultrans_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "regeln kan inte matchas"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "flaggan -s angiven men standardregeln kan följas"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "-+ kan inte användas tillsammans med flaggan -l"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "-f eller -F kan inte användas tillsammans med flaggan -l"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr ""
"--reentrant eller --bison-bridge kan inte användas tillsammans med flaggan -l"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF och -Cm kan inte användas tillsammans"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF och -I kan inte användas tillsammans"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF kan inte användas i lex-kompatibilitetsläge"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf och -CF är ömsesidigt uteslutande"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "-+ kan inte användas tillsammans med flaggan -CF"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array kan inte användas tillsammans med flaggan -+"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Flaggorna -+ och --reentrant är ömsesidigt uteslutande."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bisonbrygga stöds inte för C++-inläsaren."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "kunde inte skapa %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "kunde inte skriva tabellhuvud"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan inte öppna mallfilen %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass är bara meningsfull för C++-inläsare"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "allokering av makrodefinitioner misslyckades"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "indatafel vid läsande av mallfilen %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "fel vid stängande av mallfilen %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "fel vid skapande av huvudfilen %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "fel vid skrivande av utfilen %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "fel vid stängande av utfilen %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "fel vid borttagning av utfilen %s"
# "Back up" i det här sammanhanget handlar om att flexmaskinen backar.
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Backar inte.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d backar (icke-accepterande) tillstånd.\n"
msgstr "%d backande (icke-accepterande) tillstånd.\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Komprimerade tabeller backar alltid.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "fel när backningsfilen %s skrevs"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "fel när backningsfilen %s stängdes"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "Statistik över användning av %s version %s:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " inläsarflaggor: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-tillstånd\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-tillstånd (%d ord)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d regler\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Inget backande\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d backande (icke-accepterande) tillstånd\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Komprimerade tabeller backar alltid\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Början-av-rad-mönster använda\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d startvillkor\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilontillstånd, %d dubbla epsilontillstånd\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " inga teckenklasser\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr " %d/%d teckenklasser behövde %d/%d ord för lagring, %d återanvända\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d par med tillstånd/nästa-tillstånd skapade\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d unika/duplicerade övergångar\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d tabellposter\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d basstandardposter skapade\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (max %d) poster för nästa kontroll skapade\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (max %d) mallposter för nästa kontroll skapade\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d tomma tabellposter\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d prototyper skapade\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d mallar skapade, %d användningar\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d ekvivalensklasser skapade\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d metaekvivalensklasser skapade\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d sparade) hashkollisioner, %d DFA lika\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d uppsättningar med omallokeringar krävdes\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d tabellposter krävs totalt\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Internt fel. flexopts är felaktiga.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Prova \"%s --help\" för mer information.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "okänd flagga till -C \"%c\""
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "allvarligt fel vid tolkningen"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "kunde inte skriva tabellhuvud"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan inte öppna mallfilen %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr "Prefix kan inte innehålla ”[” eller ”]”"
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "kunde inte skapa filen %s med backningsinformation"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"flaggan -l för beteende som AT&T:s lex medför en väsentlig prestandaförlust\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " och kan vara den egentliga orsaken till andra rapporter om detta\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -496,54 +480,53 @@ msgstr ""
"%%option yylineno medför en prestandaförlust ENDAST på regler som kan matcha "
"nyradstecken\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiv) medför en mindre prestandaförlust\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() medför en mindre prestandaförlust\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT medför en väsentlig prestandaförlust\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Regler för varierbar efterföljande kontext medför en väsentlig "
"prestandaförlust\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT kan inte användas tillsammans med -f eller -F"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno kan inte användas tillsammans med REJECT"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"regler för varierbar efterföljande kontext kan inte användas\n"
"tillsammans med -f eller -F"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass är bara meningsfull för C++-inläsare"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "allokering av makrodefinitioner misslyckades"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Användning: %s [FLAGGOR] [FIL]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -564,7 +547,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -578,6 +561,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -592,10 +576,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -631,6 +616,8 @@ msgstr ""
" -w, --nowarn generera inte varningar\n"
" -v, --verbose skriv sammanfattning av inläsarstatistik till\n"
" standard ut\n"
" --hex använd hexadecimala tal istället för oktala i\n"
" felmeddelandeutdata\n"
"\n"
"Filer:\n"
" -o, --outfile=FIL ange namn på utfil\n"
@@ -659,8 +646,6 @@ msgstr ""
" --bison-bridge inläsare för ren bisontolk.\n"
" --bison-locations inkludera stöd för yylloc.\n"
" --stdinit initiera yyin/yyout till standard in/ut\n"
" --noansi-definitions funktionsdefinitioner i gammal stil\n"
" --noansi-prototypes tom parameterlista i prototyper\n"
" --nounistd inkludera inte <unistd.h>\n"
" --noFUNKTION generera inte en speciell FUNKTION\n"
"\n"
@@ -671,48 +656,34 @@ msgstr ""
" -h, --help visa detta hjälpmeddelande\n"
" -V, --version visa versionsinformation för %s\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "allokering av sko_stack misslyckades"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "namnet \"%s\" är löjligt långt"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "minnesallokeringen misslyckades i allocate_array()"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "otillåtet tecken \"%s\" funnet i check_char()"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "inläsaren kräver flaggan -8 för att kunna använda tecknet %s"
#: src/misc.c:229
#, fuzzy
#: src/misc.c:155
msgid "memory allocation failure in xstrdup()"
msgstr "minnesallokeringen misslyckades i allocate_array()"
msgstr "minnesallokeringen misslyckades i xstrdup()"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: allvarligt internt fel, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "försök att öka arraystorlek misslyckades"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "otillåten rad i mallfilen"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "minnesallokeringen misslyckades i yy_flex_xmalloc()"
@@ -746,189 +717,189 @@ msgstr "tom maskin i dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Regel för varierbar efterföljande kontext på rad %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "otillåten tillståndstyp i mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "indatareglerna är för komplicerade (>= %d NFA-tillstånd)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "fann för många övergångar i mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "för många regler (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "okänt fel vid tolkning av avsnitt 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "felaktig lista med startvillkor"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
msgstr "Prefix får inte innehålla [ eller ]"
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "okänd regel"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "efterföljande kontext används två gånger"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "felaktiga iterationsvärden"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "iterationsvärde måste vara positivt"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"teckenintervallet [%c-%c] är tvetydigt i en skiftlägesokänslig inläsare"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "negativt intervall i teckenklass"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] är tvetydigt i en skiftlägesokänslig inläsare"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] är tvetydigt i en skiftlägesokänslig inläsare"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "För lång indatarad\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "felaktigt \"%top\"-direktiv"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "okänt \"%\"-direktiv"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "För långt definitionsnamn\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Ensamt \"{\""
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Definitionsvärdet för {%s} är för långt\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "ofullständig namndefinition"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "För lång alternativrad\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "okänd %%option: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "otillåten teckenklass"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "odefinierad definition {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
msgstr "obalanserade parenteser"
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "otillåtet <startvillkor>: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "citationstecken saknas"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "otillåtet uttryck för teckenklass: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "otillåtet tecken inom {}"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "} saknas"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "filslut påträffat inuti en handling"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "filslut påträffat inuti ett mönster"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "otillåtet tecken: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "kan inte öppna %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Användning: %s [FLAGGOR]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "flaggan \"%s\" tar inget argument\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "flaggan \"%s\" kräver ett argument\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "flaggan \"%s\" är tvetydig\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Okänd flagga \"%s\"\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Okänt fel=(%d)\n"
@@ -960,5 +931,26 @@ msgstr "Slutmarkering\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Något märkligt* - tecken: %d värde: %d\n"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "dynamiskt minnesfel i copy_string()"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Allokeringen av buffert för raddirektiv misslyckades"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Allokeringen av buffert för m4-def misslyckades"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Allokering av buffert för m4-undef misslyckades"
#~ msgid "error creating header file %s"
#~ msgstr "fel vid skapande av huvudfilen %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "allokering av sko_stack misslyckades"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "namnet \"%s\" är löjligt långt"
#~ msgid "bad line in skeleton file"
#~ msgstr "otillåten rad i mallfilen"
+180 -196
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.31\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2004-05-16 18:36+0300\n"
"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -17,20 +17,12 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: KBabel 1.0.2\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr ""
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr ""
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr ""
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
@@ -65,7 +57,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "epsclosure() içindeki tutarlılık kontrolü başarısız"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -77,24 +69,24 @@ msgstr ""
"DFA Dökümü:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "tekil tampon sonu durumu yaratılamadı"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "durum # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "yynxt_tbl[][] yazılamadı"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "sympartition() içinde hatalı geçiş karakterleri saptandı"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -106,29 +98,29 @@ msgstr ""
"Denklik Sınıfları:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "durum # %d kabul eder: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "durum # %d kabul eder: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "yyacclist_tbl yazılamadı"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "yyacc_tbl yazılamadı"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "ecstbl yazılamadı"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -138,350 +130,342 @@ msgstr ""
"\n"
"Ara-Denklik Sınıfları:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "yymeta_tbl yazılamadı"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "yybase_tbl yazılamadı"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "yydef_tbl yazılamadı"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "yynxt_tbl yazılamadı"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "yychk_tbl yazılamadı"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "ftbl yazılamadı"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "ssltbl yazılamadı"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "eoltbl yazılamadı"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "yynultrans_tbl yazılamadı"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "kural eşlenemedi"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "-s seçeneği verilmiş fakat öntanımlı kural eşlenebiliyor"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "-+'yi -l seçeneği ile kullanma"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "-f veya -F'yi -l seçeneği ile kullanma"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "-l seçeneği ile --reentrant veya --bison-bridge bir arada kullanılamaz"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF ve -Cm birlikte anlam ifade etmiyor"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF ve -I uyumsuz"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF lex-uyumluluk kipi ile uyumsuz"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf ve -CF bir arada kullanılamaz"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "-+, -CF seçeneği ile kullanılamaz"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array, -+ seçeneği ile uyumsuz"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "-+ ve --reentrant seçenekleri bir arada kullanılamaz"
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison bridge, C++ tarayıcısı için desteklenmiyor."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "%s oluşturulamadı"
#: src/main.c:431
msgid "could not write tables header"
msgstr "tablo başlığı yazılamadı"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "iskelet dosyası %s açılamadı"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass, sadece C++ tarayıcıları için anlamlıdır"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr ""
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "iskelet dosyası %s okunurken girdi hatası"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "iskelet dosyası %s kapatılırken hata"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "başlık dosyası %s oluşturulurken hata"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "çıktı dosyası %s yazılırken hata"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "çıktı dosyası %s kapatılırken hata"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "çıktı dosyası %s silinirken hata"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Yedekleme yok.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d yedeklenen (kabul-etmeyen) durumlar.\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Sıkıştırılmış tablolar daima yedeklidir.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "yedek dosyası %s yazılırken hata"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "yedek dosyası %s kapatılırken hata"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s sürüm %s kullanım istatistikleri:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " tarayıcı seçenekleri: -"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA durumu\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA durumu (%d sözcük)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d kural\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Yedekleme yok\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d yedeklenmiş (kabul-edilmeyen) durum\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Sıkıştırılmış tablolar daima yedeklenir\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Başlangıç-satırı kalıpları kullanıldı\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d başlangıç şartları\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilon durumu, %d çift epsilon durumu\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " karakter sınıfı yok\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d ihtiyaç duyulan karakter sınıfı %d/%d depolanan sözcük, %d yeniden "
"kullanıldı\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d durumu/sonrakidurum çifti yaratıldı\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d tekil/çift geçişler\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d tablo girdileri\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d temel-tanım girdileri yaratıldı\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (en yüksek %d) nxt-chk girdileri yaratıldı\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (en yüksek %d) şablon nxt-chk girdileri yaratıldı\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d boş tablo girdileri\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d prototip yaratıldı\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d şablon yaratıldı, %d kullanıldı\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d denklik sınıfı yaratıldı\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d ara-denklik sınıfı yaratıldı\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d kaydedildi) saçılma çarpışması, %d DFA denk\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d tekrar ayırım kümesine ihtiyaç var\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d toplam tablo girdisine ihtiyaç var\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "İç hata. flexopt'lar bozuk.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Daha fazla bilgi için `%s --help' yazın.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "bilinmeyen -C seçeneği '%c'"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "ölümcül ayrıştırma hatası"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "tablo başlığı yazılamadı"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "iskelet dosyası %s açılamadı"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "yedekleme bilgi dosyası %s oluşturulamadı"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l AT&T lex uyumluluğu seçeneği önemli ölçüde yavaşlamaya yol açar\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" ve belki bildirilen başka performans kayıplarının da kaynağı olabilir\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -490,51 +474,50 @@ msgstr ""
"yylineno %%seçeneği YALNIZCA yenisatır karakterlerini de eşleyen satırlarda "
"yavaşlar.\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (etkileşimli) küçük ölçekli bir yavaşlamaya neden olur\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() küçük ölçekli bir yavaşlamaya neden olur\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT büyük ölçekli bir yavaşlamaya neden olur\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Değişken izleyen bağlam kuralları, büyük ölçekli yavaşlamaya neden olur\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT, -f veya -F ile kullanılamaz"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno, REJECT ile birlikte kullanılamaz"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "değişken izleme ortamı kuralları, -f veya -F ile birlikte kullanılamaz"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass, sadece C++ tarayıcıları için anlamlıdır"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr ""
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Kullanım: %s [SEÇENEKLER...] [DOSYA...]\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -555,7 +538,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -569,6 +552,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -583,10 +567,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -661,48 +646,35 @@ msgstr ""
" -h, --help bu yardım bilgisini gösterir\n"
" -V, --version %s sürümünü bildirir\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr ""
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "\"%s\" ismi gülünç derecede uzun"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "allocate_array() içinde bellek ayırımı başarısız"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "check_char() içinde hatalı karakter '%s' saptandı"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "tarayıcı %s karakterini kullanmak için -8 bayrağına ihtiyaç duyar"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "allocate_array() içinde bellek ayırımı başarısız"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: ölümcül iç hata, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "dizi boyutunu artırma denemesi başarısız"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "iskelet dosya içinde hatalı satır"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "yy_flex_xmalloc() içinde bellek ayırımı başarısız"
@@ -736,199 +708,199 @@ msgstr "dupmachine() içinde boş makine"
msgid "Variable trailing context rule at line %d\n"
msgstr "%d satırında değişken izleyen bağlam kuralı\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "mark_beginning_as_normal() içinde hatalı durum türü"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "girdi kuralları fazla karışık (>= %d NFA durumu)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "mkxtion() içinde çok fazla geçiş bulundu"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "çok fazla kural (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "1. bölüm işlenirken bilinmeyen hata oluştu"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "hatalı başlangıç şart listesi"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "bilinmeyen kural"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "izleyen bağlam iki defa kullanılmış"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "hatalı yineleme değerleri"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "yineleme değeri pozitif olmalı"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"[%c-%c] karakter aralığı, büyük/küçük harf farkı gözetmeyen bir tarayıcıda\n"
"belirsiz anlamlı"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "karakter sınıflarında negatif aralık"
#: src/parse.y:918
#: src/parse.y:938
#, fuzzy
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"[%c-%c] karakter aralığı, büyük/küçük harf farkı gözetmeyen bir tarayıcıda\n"
"belirsiz anlamlı"
#: src/parse.y:924
#: src/parse.y:944
#, fuzzy
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"[%c-%c] karakter aralığı, büyük/küçük harf farkı gözetmeyen bir tarayıcıda\n"
"belirsiz anlamlı"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Girdi satırı fazla uzun\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "hatalı `%top' yönergesi"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "'%' yönergesi bilinmiyor"
#: src/scan.l:214
#: src/scan.l:216
#, fuzzy
msgid "Definition name too long\n"
msgstr "Girdi satırı fazla uzun\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "'{' eşleşmiyor"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr ""
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "eksik isim tanımlaması"
#: src/scan.l:467
#: src/scan.l:486
#, fuzzy
msgid "Option line too long\n"
msgstr "Girdi satırı fazla uzun\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "geçersiz %%seçenek: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "hatalı karakter sınıfı"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "belirsiz tanım {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "hatalı <başlangıç şartı>: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "eksik çift tırnak"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "bozuk karakter sınıfı ifadesi: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "{}'ler içinde hatalı karakter"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "eksik }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "bir eylem içinde EOF ile karşılaşıldı"
#: src/scan.l:977
#: src/scan.l:1025
#, fuzzy
msgid "EOF encountered inside pattern"
msgstr "bir eylem içinde EOF ile karşılaşıldı"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "hatalı karakter: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "%s açılamıyor"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Kullanım: %s [SEÇENEKLER...]\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "`%s' seçeneği argüman kullanmaz\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "`%s' seçeneği için argüman zorunludur\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "`%s' seçeneği belirsiz\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Bilinmeyen seçenek: `%s'\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Bilinmeyen hata=(%d)\n"
@@ -963,5 +935,17 @@ msgstr "*Garip Bir Şey* -andaç: %d değer: %d\n"
#~ msgid "consistency check failed in symfollowset"
#~ msgstr "symfollowset içindeki tutarlık kontrolü başarısız"
#~ msgid "error creating header file %s"
#~ msgstr "başlık dosyası %s oluşturulurken hata"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "\"%s\" ismi gülünç derecede uzun"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "copy_string() içinde dinamik bellek hatası"
#~ msgid "bad line in skeleton file"
#~ msgstr "iskelet dosya içinde hatalı satır"
+200 -204
View File
@@ -3,15 +3,15 @@
# This file is distributed under the same license as the flex package.
#
# Viktor Shepel <shepelvictor@bigmir.net>, 2017.
# Yuri Chornoivan <yurchor@ukr.net>, 2017.
# Yuri Chornoivan <yurchor@ukr.net>, 2017, 2022.
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.38\n"
"Project-Id-Version: flex 2.6.4\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-24 18:00-0400\n"
"PO-Revision-Date: 2017-06-17 09:26+0300\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2022-01-03 11:33+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,23 +19,15 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 1.5\n"
"X-Generator: Lokalize 20.12.0\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Не вдалось виділити буфер для рядка, що виводиться"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Не вдалось виділити буфер для рядкової директиви"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Не вдалось виділити буфер для m4 def"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Не вдалось виділити буфер для m4 undef"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -69,7 +61,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "помилка при перевірці на цілісність у epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -81,24 +73,24 @@ msgstr ""
"Дамп ДСА:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "неможливо створити унікальний стан end_of_buffer"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "стан # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Неможливо записати yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "виявлено невірний символ переходу в sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -110,29 +102,29 @@ msgstr ""
"Класи еквівалентності:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "стан # %d приймає: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "стан # %d приймає: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Неможливо записати yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Неможливо записати yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Неможливо записати ecstbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -142,352 +134,344 @@ msgstr ""
"\n"
"Мета-Еквівалентні Класи:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Неможливо записати yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Неможливо записати yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Неможливо записати yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Неможливо записати yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Неможливо записати yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Неможливо записати ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Неможливо записати ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Неможливо записати eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Неможливо записати yynultrans_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "неможливо застосувати правило"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr ""
"вказано параметр -s, але правило за замовчуванням може бути застосоване"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "Неможливо використовувати -+ з параметром -l"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Неможливо використовувати -f або -F з параметром -l"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr ""
"Неможливо використовувати --reentrant або --bison-bridge з параметром -l"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "Параметри -Cf/-CF і -Cm разом не мають сенсу"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "Параметри -Cf/-CF і -I несумісні"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "Параметри -Cf/-CF несумісні з режимом lex-compatibility"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "Параметри -Cf і -CF є взаємовиключними"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "Неможливо використовувати -+ з параметром -CF"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array несумісний з параметром -+"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Параметри -+ і --reentrant є взаємовиключними."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison bridge не підтримується для сканера C++."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "неможливо створити %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "Неможливо записати заголовок таблиць"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "Неможливо відкрити файл-каркас %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass має сенс тільки для сканерів C++"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr "Префікс не може містити «[» або «]»"
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "Не вдалось розмістити визначення макросу"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "помилка читання файла-каркаса %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "помилка при закритті файла-каркаса %s"
#: src/main.c:711
#, c-format
msgid "error creating header file %s"
msgstr "помилка створення файла-заголовку %s"
#: src/main.c:719
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "помилка запису у вихідний файл %s"
#: src/main.c:723
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "помилка закриття вихідного файла %s"
#: src/main.c:727
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "помилка видалення вихідного файла %s"
#: src/main.c:734
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Резервне копіювання вимкнено.\n"
#: src/main.c:738
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "резервне копіювання %d (недопустимих) станів.\n"
#: src/main.c:742
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Створення резервних копій стислих таблиць виконується завжди.\n"
#: src/main.c:745
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "помилка запису резервної копії файла %s"
#: src/main.c:749
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "помилка закриття резервної копії файла %s"
#: src/main.c:754
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "статистика використання %s версії %s:\n"
#: src/main.c:757
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " параметри сканера: -"
#: src/main.c:836
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d станів НСА\n"
#: src/main.c:838
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d станів ДСА (%d слів)\n"
#: src/main.c:840
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d правил\n"
#: src/main.c:845
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Резервне копіювання вимкнено\n"
#: src/main.c:849
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " резервне копіювання %d (недопустимих) станів\n"
#: src/main.c:854
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Створення резервних копій стислих таблиць виконується завжди\n"
#: src/main.c:858
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Використовуються шаблони початку рядка\n"
#: src/main.c:860
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d початкових умов\n"
#: src/main.c:864
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d епсилон-станів, %d подвійних епсилон-станів\n"
#: src/main.c:868
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " відсутні класи символів\n"
#: src/main.c:872
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d символьних класів потребують %d/%d слів для зберігання, %d "
"використано вдруге\n"
#: src/main.c:877
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " створено %d пар стан/наступний-стан\n"
#: src/main.c:880
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d унікальних/повторюваних переходів\n"
#: src/main.c:885
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d елементів таблиці\n"
#: src/main.c:893
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " створено %d/%d base-def елементів\n"
#: src/main.c:897
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " створено %d/%d (пік %d) записів nxt-chk\n"
#: src/main.c:901
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " створено %d/%d (пік %d) шаблонних записів nxt-chk\n"
#: src/main.c:905
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d порожніх елементів таблиці\n"
#: src/main.c:907
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " створено %d прототипів\n"
#: src/main.c:910
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " створено %d шаблонів, %d використовується\n"
#: src/main.c:918
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " створено класів еквівалентності %d/%d\n"
#: src/main.c:926
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " створено класів мета-еквівалентності %d/%d\n"
#: src/main.c:932
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d записано) колізій хеш-таблиці, %d еквівалентних ДСА\n"
#: src/main.c:934
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " потрібно %d наборів повторних розміщень\n"
#: src/main.c:936
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " всього потрібно %d елементів таблиці\n"
#: src/main.c:1010
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Внутрішня помилка. Неправильне значення flexopts.\n"
#: src/main.c:1020
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Спробуйте «%s --help» для отримання більш докладного опису.\n"
#: src/main.c:1077
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "невідоме значення «%c» для параметру -C"
#: src/main.c:1206
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1486
#: src/main.c:1195
msgid "fatal parse error"
msgstr "фатальна помилка розбору"
#: src/main.c:1518
#: src/main.c:1247
msgid "could not write tables header"
msgstr "Неможливо записати заголовок таблиць"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "Неможливо відкрити файл-каркас %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr "Префікс не може містити «[» або «]»"
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "неможливо створити резервну копію інформаційного файла %s"
#: src/main.c:1539
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"Параметр -l сумісності з AT&T lex спричиняє значне зниження продуктивності\n"
#: src/main.c:1542
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr "і також може бути істинним джерелом проблем з продуктивністю\n"
#: src/main.c:1548
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -496,54 +480,53 @@ msgstr ""
"%%option yylineno спричиняе значне зниження продуктивності ТІЛЬКИ для "
"правил, котрі описують символи нового рядка\n"
#: src/main.c:1555
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (інтерактивний) спричиняе незначне зниження продуктивності\n"
#: src/main.c:1560
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() спричиняе незначне зниження продуктивності\n"
#: src/main.c:1566
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT спричиняе значне зниження продуктивності\n"
#: src/main.c:1571
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Правила котрі мають замикаючий контекст змінної довжини значно знижують "
"продуктивність\n"
#: src/main.c:1583
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT не може бути використано разом з -f або -F"
#: src/main.c:1586
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno не може бути використано з REJECT"
#: src/main.c:1589
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"Правила котрі мають замикаючий контекст змінної довжини не можуть бути "
"використані з -f or -F"
#: src/main.c:1714
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass має сенс тільки для сканерів C++"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "Не вдалось розмістити визначення макросу"
#: src/main.c:1801
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Використання: %s [ПАРАМЕТРИ] [ФАЙЛ]…\n"
#: src/main.c:1804
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -564,7 +547,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -578,6 +561,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -592,10 +576,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -634,6 +619,8 @@ msgstr ""
" -T, --trace %s повинен запускатися у режимі трасування\n"
" -w, --nowarn не видавати попереджень\n"
" -v, --verbose записати підсумкову статистику сканера до stdout\n"
" --hex шістнадцяткові числа замість вісімкових у "
"діагностиці\n"
"\n"
"Файли:\n"
" -o, --outfile=ФАЙЛ вказати ім'я вихідного файла\n"
@@ -664,8 +651,6 @@ msgstr ""
" --bison-bridge сканер тільки для bison аналізатору\n"
" --bison-locations додати підтримку yylloc\n"
" --stdinit ініціалізувати yyin/yyout до stdin/stdout\n"
" --noansi-definitions визначення функцій у застарілому стилі\n"
" --noansi-prototypes порожній список параметрів у прототипах\n"
" --nounistd не додавати <unistd.h>\n"
" --noФУНКЦІЯ не генерувати задану функцію ФУНКЦІЯ\n"
"\n"
@@ -676,47 +661,34 @@ msgstr ""
" -h, --help показати цю довідку\n"
" -V, --version показати версію %s\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "не вдалось отримати пам’ять під sko_stack"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "ім'я «%s» занадто довге"
#: src/misc.c:149 src/misc.c:162
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "помилка виділення пам'яті у allocate_array()"
#: src/misc.c:212
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "check_char() виявив недопустимий символ «%s»"
#: src/misc.c:217
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "для використання символу %s сканер потребує опцію -8"
#: src/misc.c:236
#: src/misc.c:155
msgid "memory allocation failure in xstrdup()"
msgstr "помилка виділення пам'яті у xstrdup()"
#: src/misc.c:310
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: фатальна внутрішня помилка, %s\n"
#: src/misc.c:671 src/misc.c:683
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "помилка при спробі збільшити розмір масиву"
#: src/misc.c:807
msgid "bad line in skeleton file"
msgstr "невідомий рядок у файлі-каркасі"
#: src/misc.c:857
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "помилка виділення пам'яті у yy_flex_xmalloc()"
@@ -750,196 +722,196 @@ msgstr "порожній автомат у dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Правило із замикаючим контекстом змінної довжини у стрічці %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "невідомий тип стану у mark_beginning_as_normal()"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "вхідні правила занадто складні (>= %d станів НСА)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "знайдено занадто багато переходів у mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "занадто багато правил (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "невідома помилка при обробці розділу 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "невірний список початкових умов"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr "Префікс не може містити символи «[» або «]»"
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "нерозпізнане правило"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "замикаючий контекст використано двічі"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "невірно сформований діапазон ітерацій"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "кількість ітерацій повинна бути додатнім числом"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"використання діапазону символів [%c-%c] є двозначним для сканера, що не "
"чутливий до регістру символів"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr ""
"символьний клас описано діапазоном, перший елемент котрого більший за "
"останній"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"використання [:^lower:] є невизначеним для сканера, що не чутливий до "
"регістру символів"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"використання [:^upper:] є невизначеним для сканера, що не чутливий до "
"регістру символів"
#: src/scan.l:82 src/scan.l:646 src/scan.l:704
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "Занадто довгий вхідний рядок\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "нерозпізнана директива «%top»"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "нерозпізнана директива «%»"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Визначення має занадто довге ім'я\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Непарна «{»"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Визначення {%s} має занадто довге значення\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "неповне визначення імені"
#: src/scan.l:469
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "Занадто довгий параметр\n"
#: src/scan.l:477
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "нерозпізнаний %%option: %s"
#: src/scan.l:661 src/scan.l:834
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "помилковий символьний клас"
#: src/scan.l:711
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "нерозпізнане визначення {%s}"
#: src/scan.l:774
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr "незбалансовані круглі дужки"
#: src/scan.l:789
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "невірно сформованана <умова, що активує правило>: %s"
#: src/scan.l:802
#: src/scan.l:818
msgid "missing quote"
msgstr "відсутні лапки"
#: src/scan.l:868
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "символьний клас заданий некоректним виразом: %s"
#: src/scan.l:890
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "неприйнятний символ всередині {}"
#: src/scan.l:896
#: src/scan.l:912
msgid "missing }"
msgstr "відсутній }"
#: src/scan.l:974
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "знайдено EOF всередині коду котрий асоційований з правилом"
#: src/scan.l:979
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "знайдено EOF всередині шаблону, що задає правило"
#: src/scan.l:1012
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "неочікуваний символ: %s"
#: src/scan.l:1040
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "неможливо відкрити %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Використання: %s [ПАРАМЕТРИ]…\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "параметр «%s» повинен використовуватись без аргументу\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "параметр «% s» повинен використовуватись з аргументом\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "параметр «%s» є двозначним\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Нерозпізнаний параметр «%s»\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Невідома помилка=(%d)\n"
@@ -971,5 +943,29 @@ msgstr "Мітка кінця\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Щось не так* — tok: %d val: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Не вдалось виділити буфер для рядкової директиви"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Не вдалось виділити буфер для m4 def"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Не вдалось виділити буфер для m4 undef"
#~ msgid "error creating header file %s"
#~ msgstr "помилка створення файла-заголовку %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "не вдалось отримати пам’ять під sko_stack"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "ім'я «%s» занадто довге"
#~ msgid "bad line in skeleton file"
#~ msgstr "невідомий рядок у файлі-каркасі"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "помилка під час роботи з динамічною пам’яттю у copy_string()"
+193 -197
View File
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex-2.5.38\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2014-02-14 08:17+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -23,21 +23,13 @@ msgstr ""
"X-Generator: Poedit 1.5.5\n"
"X-Poedit-SourceCharset: utf-8\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "Việc phân bổ bộ đệm cho lệnh in chuỗi gặp lỗi"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Việc phân bổ bộ đệm cho chỉ thị dòng gặp lỗi"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Việc phân bổ bộ đệm cho “m4 def” gặp lỗi"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Việc phân bổ bộ đệm cho “m4 undef” gặp lỗi"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -71,7 +63,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "việc kiểm tra sự thống nhất bị lỗi trong epsclosure()"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -83,24 +75,24 @@ msgstr ""
"Đổ DFA:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "không thể tạo trạng thái kết-thúc-bộ-đệm duy nhất"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "trạng thái# %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "Không thể ghi \"yynxt_tbl[][]\""
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "phát hiện ký tự chuyển tiếp sai trong sympartition()"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -112,29 +104,29 @@ msgstr ""
"Lớp tương đương:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "trạng thái # %d chấp nhận: [%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "trạng thái # %d chấp nhận: "
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "Không thể ghi \"yyacclist_tbl\""
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "Không thể ghi \"yyacc_tbl\""
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "Không thể ghi \"ecstbl\""
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -144,353 +136,345 @@ msgstr ""
"\n"
"Lớp tương-đương-meta:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "Không thể ghi \"yymeta_tbl\""
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "Không thể ghi \"yybase_tbl\""
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "Không thể ghi \"yydef_tbl\""
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "Không thể ghi \"yynxt_tbl\""
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "Không thể ghi \"yychk_tbl\""
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "Không thể ghi \"ftbl\""
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "Không thể ghi \"ssltbl\""
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "Không thể ghi \"eoltbl\""
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "Không thể ghi \"yynultrans_tbl\""
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "quy tắc không thể được khớp"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "đưa ra tùy chọn \"-s\" còn quy tắc mặc định có thể được khớp"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "Không thể dùng ký tự \"-+\" với tùy chọn \"-l\""
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "Không thể dùng cờ \"-f\" hoặc \"-F\" với tùy chọn \"-l\""
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr ""
"Không thể dùng đối số \"--reentrant\" (điều vào lại) hoặc \"--bison-bridge"
"\" (chiếc cầu bison) với tùy chọn \"-l\""
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "Hai tùy chọn \"-Cf/-CF\" và \"-Cm\" với nhau thì không có ý nghĩa"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "Hai tùy chọn \"-Cf/-CF\" và \"-I\" không tương thích với nhau"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr ""
"Tùy chọn \"-Cf/-CF\" không tương thích với chế độ \"lex-compatibility"
"\" (tương thích với lex)"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "Hai tùy chọn \"-Cf\" and \"-CF\" loại từ lẫn nhau"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "Không thể dùng ký tự \"-+\" với tùy chọn \"-CF\""
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "\"%array\" (mảng) không tương thích với tùy chọn \"-+\""
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Hai tùy chọn \"- +\" và \"--reentrant\" xung đột với nhau."
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison bridge (chiếc cầu bison) không được hỗ trợ với bộ quét C++."
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "không thể tạo %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "không thể ghi phần đầu bảng"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "không thể mở tập tin khung sườn %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option (tùy chọn) \"yyclass\" chỉ có ý nghĩa với bộ quét C++"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "việc phân bổ cho định nghĩa macro gặp lỗi"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "gặp lỗi nhập vào khi đọc tập tin khung sườn %s"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "gặp lỗi khi đóng tập tin khung sườn %s"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "gặp lỗi khi tạo tập tin phần đầu %s"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "gặp lỗi khi ghi tập tin xuất %s"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "gặp lỗi khi đóng tập tin xuất %s"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "gặp lỗi khi xoá bỏ tập tin xuất %s"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "Không sao lưu.\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d đang sao lưu các trạng thái (kiểu không chấp nhận).\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Bảng đã nén lúc nào cũng sao lưu.\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "găp lỗi khi ghi tập tin sao lưu %s"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "gặp lỗi khi đóng tập tin sao lưu %s"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s phiên bản %s thống kê sử dụng:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " tùy chọn bộ quét: —"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d trạng thái NFA\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d trạng thái DFA (%d từ)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d quy tắc\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " Không sao lưu\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d đang sao lưu các trạng thái (kiểu không chấp nhận)\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Bảng đã nén lúc nào cũng sao lưu\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Dùng mẫu kiểu đầu dòng\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d điều kiện bắt đầu\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d trạng thái épxilông (ε), %d trạng thái épxilông đôi\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " không có lớp ký tự\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr " %d/%d lớp ký tự cần %d/%d từ bộ nhớ, %d được dùng lại\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d cặp trạng_thái/trạng_thái_kế đã được tạo\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d việc chuyển tiếp duy nhất/trùng\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d mục tin bảng\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d mục tin base-def (định nghĩa cơ bản) đã được tạo\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (tối đa %d) mục tin nxt-chk (kiểm tra kế tiếp) đã được tạo\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr ""
" %d/%d (tối đa %d) mục tin biểu mẫu nxt-chk (kiểm tra kế tiếp) đã được tạo\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d mục tin bảng trống\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d proto (khai báo nguyên mẫu) đã được tạo\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d mẫu đã được tạo, %d lần dùng\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d lớp kiểu tương đương đã được tạo\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d lớp tương-đương-meta đã được tạo\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d được lưu) lần va chạm mã băm, %d DFA bằng nhau\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " cần %d tập hợp tái cấp phát\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " cần tổng %d mục tin bảng\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Gặp lỗi nội bộ vì những flexopts sai dạng.\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Hãy thử lệnh \"%s --help\" (trợ giúp) để xem thêm thông tin.\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "không hiểu tùy chọn \"-C\" là \"%c\""
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "gặp lỗi phân tích nghiêm trọng"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "không thể ghi phần đầu bảng"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "không thể mở tập tin khung sườn %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "không thể tạo tập tin thông tin sao lưu %s"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"Tùy chọn kiểu tương thích lex AT&T \"-l\" làm giảm hiệu suất rất nhiều\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " thì có lẽ thật gây ra trường hợp giảm hiệu suất khác\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -499,53 +483,52 @@ msgstr ""
"%%tùy chọn \"yylineno\" giảm hiệu suất CHỈ với quy tắc khớp với ký tự dòng "
"mới\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "Tùy chọn \"-I\" (tương tác) giảm hiệu suất một ít\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() giảm hiệu suất một ít\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT (đẩy ra) làm suy giảm hiệu suất nghiêm trọng\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "Quy tắc ngữ cảnh theo sau biến rất giảm hiệu suất\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "Không cho phép dùng REJECT (đẩy ra) với tùy chọn \"-f\" hay \"-F\""
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr ""
"Không cho phép dùng %option (tùy chọn) \"yylineno\" với REJECT (đẩy ra)"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"không cho phép dùng quy tắc ngữ cảnh theo sau biến với tùy chọn \"-f\" hay "
"\"-F\""
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option (tùy chọn) \"yyclass\" chỉ có ý nghĩa với bộ quét C++"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "việc phân bổ cho định nghĩa macro gặp lỗi"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Cách dùng: %s [TÙY_CHỌN] [TẬP_TIN]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -566,7 +549,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -580,6 +563,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -594,10 +578,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -682,48 +667,35 @@ msgstr ""
" -h, --help hiển thị _trợ giúp_ này\n"
" -V, --version thông báo phiên bản %s\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "việc phân bổ cho sko_stack gặp lỗi"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "tên \"%s\" là dài nhố nhăng"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "việc phân chia bộ nhớ bị lỗi trong allocate_array() (phân bổ mảng)"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "phát hiện ký tự sai \"%s\" trong check_char() (kiểm tra ký tự)"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "bộ quét cần thiết cờ \"-8\" để dùng ký tự %s"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "việc phân chia bộ nhớ bị lỗi trong allocate_array() (phân bổ mảng)"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: gặp lỗi nôi bộ nghiêm trọng, %s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "việc thử tăng kích cỡ mảng đã thất bại"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "gặp dòng sai trong tập tin khung sườn"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "việc phân bổ bộ nhớ bị lỗi trong yy_flex_xmalloc()"
@@ -757,191 +729,191 @@ msgstr "máy trống trong dupmachine() (nhân đôi máy)"
msgid "Variable trailing context rule at line %d\n"
msgstr "Gặp quy tắc ngữ cảnh theo sau biến tại dòng %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr ""
"kiểu trạng thái sai trong mark_beginning_as_normal() (đánh dấu đầu là thường)"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "các quy tắc đầu vào là quá phức tạp (≥ %d trạng thái NFA)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "gặp quá nhiều chuyển tiếp trong mkxtion()"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "quá nhiều quy tắc (> %d) !"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "gặp lỗi không rõ khi xử lý phần 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "danh sách điều kiện bắt đầu là sai"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "gặp quy tắc không được thừa nhận"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "ngữ cảnh theo sau được dùng hai lần"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "gặp giá trị lặp lại sai"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "giá trị lặp lại phải là số dương"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"phạm vi ký tự [%c-%c] là chưa rõ ràng trong trường hợp quét bỏ qua chữ HOA/"
"thường"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "gặp phạm vi âm trong lớp ký tự"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] là chưa rõ ràng trong trường hợp quét bỏ qua chữ HOA/thường"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] là chưa rõ ràng trong trường hợp quét bỏ qua chữ HOA/thường"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "dòng nhập quá dài\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "chỉ thị kiểu \"%top\" (đầu) dạng sai"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "gặp chỉ thị kiểu \"%\" không được nhận dạng"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "Tên định nghĩa quá dài\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "Chưa khớp \"{\""
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Giá trị định nghĩa cho {%s} quá dài\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "lời đinh nghĩa tên chưa hoàn tất"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "dòng tùy chọn quá dài\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "gặp tùy chọn %% không được nhận dạng: %s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "lớp ký tự sai"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "chưa định nghĩa định danh {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "<start condition> (điệu kiện bắt đầu) sai: %s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "thiếu dấu trích dẫn"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "biểu thức lớp ký tự sai: %s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "có ký tự sai ở trong hai dấu ngoặc móc {}"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "thiếu }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "gặp kết thúc tập tin ở trong một hành động"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "gặp kết thúc tập tin ở trong mẫu"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "ký tự sai: %s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "không thể mở %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Cách dùng: %s [TÙY_CHỌN]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "tùy chọn \"%s\" không cho phép đối số\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "tùy chọn \"%s\" cần một đối số\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "tùy chọn \"%s\" chưa rõ ràng\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Không nhận ra tùy chọn \"%s\"\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Không rõ lỗi=(%d)\n"
@@ -973,5 +945,29 @@ msgstr "Dấu kết thúc\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "* Điều lạ * — thẻ bài: %d giá trị: %d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "Việc phân bổ bộ đệm cho chỉ thị dòng gặp lỗi"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "Việc phân bổ bộ đệm cho “m4 def” gặp lỗi"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "Việc phân bổ bộ đệm cho “m4 undef” gặp lỗi"
#~ msgid "error creating header file %s"
#~ msgstr "gặp lỗi khi tạo tập tin phần đầu %s"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "việc phân bổ cho sko_stack gặp lỗi"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "tên \"%s\" là dài nhố nhăng"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "bộ nhớ động đã thất bại trong copy_string() (sao chép chuỗi)"
#~ msgid "bad line in skeleton file"
#~ msgstr "gặp dòng sai trong tập tin khung sườn"
+193 -197
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.38\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2015-08-27 16:54+0800\n"
"Last-Translator: Mingye Wang <arthur200126@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -19,21 +19,13 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 1.8.4\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "给予缓冲区配额以打印字串时失败"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "给予缓冲区配额用于列指令时失败"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "给予缓冲区配额用于 m4 def 时失败"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "给予缓冲区配额用于 m4 undef 时失败"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -67,7 +59,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "epsclosure() 中的一致性检查失败"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -79,24 +71,24 @@ msgstr ""
"DFA 转储:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "无法创建独立的 end-of-buffer 状态"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "状态 # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "无法写入 yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "在 sympartition() 检测到错误的变换字符"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -108,29 +100,29 @@ msgstr ""
"等价类:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "状态 # %d 接受:[%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "状态 # %d 接受:"
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "无法写入 yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "无法写入 yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "无法写入 ecstbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -140,398 +132,389 @@ msgstr ""
"\n"
"元等价类:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "无法写入 yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "无法写入 yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "无法写入 yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "无法写入 yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "无法写入 yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "无法写入 ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "无法写入 ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "无法写入 eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "无法写入 yynultrans_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "无法匹配规则"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "-s 选项已给定但是可以吻合缺省规则"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "无法将 -+ 与 -l 选项共同使用"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "无法将 -f 或 -F 与 -l 选项共同使用"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "无法将 --reentrant 或 --bison-bridge 与 -l 选项共同使用"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF 和 -Cm 共用时不具任何意义"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF 和 -I 是不兼容的"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF 与 lex 兼容模式是不兼容的"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf 和 -CF 是互斥的"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "无法将 -+ 与 -CF 选项共同使用"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array 与 -+ 选项不兼容"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "选项 -+ 和 --reentrant 是互斥的。"
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison 桥接器不受 C++ 扫描程序支持。"
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "无法创建 %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "无法写入表头"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "无法打开骨架文件 %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass 只对于 C++ 扫描程序有意义"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "给予宏定义配额时失败"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "读取骨架文件 %s 时输入错误"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "关闭骨架文件 %s 出错"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "创建头文件 %s 出错"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "写入输出文件 %s 出错"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "关闭输出文件 %s 出错"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "删除输出文件 %s 出错"
# See Concept Index. fr translation is wrong for that 'archive'.
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "没有回溯。\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d 回溯 (非接受) 状态。\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "压缩过的表格总会自动回溯。\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "写入回溯文件 %s 出错"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "关闭回溯文件 %s 出错"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s 版本 %s 用法统计:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " 扫描器选项:-"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA 状态\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA 状态 (%d 个字词)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d 条规则\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " 没有回溯\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d 回溯 (非接受) 状态\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " 压缩过的表格总会自动回溯\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " 列首式样已使用\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d 起始条件\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d ε状态,%d 双倍ε状态\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " 无字符类别\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr " %d/%d 字符类别所需 %d/%d 字词的保存体,%d 重新使用\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d 状态/下一状态对已创建\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d 独一/重复转换\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d 表格项目\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def 项目已创建\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (峰值 %d) nxt-chk 项目已创建\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (峰值 %d) 模板 nxt-chk 项目已创建\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d 清空表格项目\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d 原型已创建\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d 范本已创建,%d 使用\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d 等价类别已创建\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d 后设等价类别已创建\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d 已保存) 哈希碰撞,%d DFAs 相等\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " 需要 %d 组重新配置\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " 总计需要 %d 表格项目\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "内部错误。flexopts 功能异常。\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "尝试「%s --help」以获得更多信息。\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "未知的 -C 选项“%c”"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "致命的解析错误"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "无法写入表头"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "无法打开骨架文件 %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "无法创建回溯信息文件 %s"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l AT&T lex 兼容性选项会导致大幅性能减退\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " 同时也许是其他回报性能减退的实际来源\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr "%%option yylineno 导致性能减退,只有当该规则该吻合新列字符时才会\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (交互式) 导致小幅性能减退\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() 导致小幅性能减退\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT 导致大幅性能减退\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "变量末尾上下文规则导致大幅性能减退\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT 无法与 -f 或 -F 共同使用"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno 无法与 REJECT 共同使用"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "变量末尾上下文规则无法与 -f 或 -F 共同使用"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass 只对于 C++ 扫描程序有意义"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "给予宏定义配额时失败"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "用法:%s [选项] [文件]...\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -552,7 +535,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -566,6 +549,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -580,10 +564,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -657,48 +642,35 @@ msgstr ""
" -h, --help 产生这个说明消息\n"
" -V, --version 报告 %s 版本\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "给予 sko_stack 配额时失败"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "名称「%s」有荒谬的长度"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "在 allocatearray() 中内存配置失败"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "在 checkchar() 中侦测到不当的字符「%s」"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "扫描程序需要 -8 旗标以使用字符 %s"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "在 allocatearray() 中内存配置失败"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s:严重内部错误,%s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "试图增加数组大小时失败"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "骨架文件中错误的行"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "在 yy_flex_xmalloc() 中的内存分配失败"
@@ -732,188 +704,188 @@ msgstr "在 dupmachine() 中清空机器"
msgid "Variable trailing context rule at line %d\n"
msgstr "变量末尾上下文规则于列 %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "在 mark_beginning_as_normal() 中有不当的状态输入"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "输入规则太复杂 (>= %d NFA 状态)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "在 mkxtion() 中找到太多转换"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "规则过多 (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "未知的错误处理节 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "错误的起始状态列表"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "不能识别的规则"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "末尾上下文已使用两次"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "不当的迭代值"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "迭代值必须是正值"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr "在大小写不须相符的扫描程序中,字符范围 [%c-%c] 是模棱两可的"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "在字符类别中有负值范围"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "在大小写不须相符的扫描程序中,[:^lower:] 是模棱两可的"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "在大小写不须相符的扫描程序中,[:^upper:] 是模棱两可的"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "输入列太长\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "异常的「%top」指令"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "无法辨识的「%」指令"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "定义名称太长\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "不成对的「{」"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "{%s} 的定义值太长\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "不完整的名称定义"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "选项列太长\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "不能识别的 %%选项:%s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "错误的字符类别"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "未定义的定义 {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "错误 <起始条件>:%s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "遗漏引号"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "错误的字符类别表达式:%s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "不当字符于 {} 内部"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "遗漏 }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "在动作中文件结束"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "在式样之内遇到文件结束"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "错误的字符:%s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "无法打开 %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "用法:%s [选项]...\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "选项“%s”不接受参数\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "选项“%s”需要一个参数\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "选项「%s」是模棱两可的\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "未知的选项“%s”\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "未知错误=(%d)\n"
@@ -945,9 +917,33 @@ msgstr "结束标志\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*情况很怪异* - tok:%d val:%d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "给予缓冲区配额用于列指令时失败"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "给予缓冲区配额用于 m4 def 时失败"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "给予缓冲区配额用于 m4 undef 时失败"
#~ msgid "error creating header file %s"
#~ msgstr "创建头文件 %s 出错"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "给予 sko_stack 配额时失败"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "名称「%s」有荒谬的长度"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "在 copystring() 中动态内存失败"
#~ msgid "bad line in skeleton file"
#~ msgstr "骨架文件中错误的行"
#~ msgid "consistency check failed in symfollowset"
#~ msgstr "symfollowset 中的一致性检查失败"
+193 -197
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.37\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2013-02-12 23:23+0800\n"
"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -19,21 +19,13 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: src/buf.c:79
#: src/buf.c:61
msgid "Allocation of buffer to print string failed"
msgstr "給予緩衝區配額以列印字串時失敗"
#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "給予緩衝區配額用於列指令時失敗"
#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "給予緩衝區配額用於 m4 def 時失敗"
#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "給予緩衝區配額用於 m4 undef 時失敗"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: src/dfa.c:59
#, c-format
@@ -67,7 +59,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "epsclosure() 中的一致性檢查失敗"
#: src/dfa.c:419
#: src/dfa.c:422
msgid ""
"\n"
"\n"
@@ -79,24 +71,24 @@ msgstr ""
" DFA 傾印:\n"
"\n"
#: src/dfa.c:587
#: src/dfa.c:558
msgid "could not create unique end-of-buffer state"
msgstr "無法建立獨一的緩衝區結尾狀態"
#: src/dfa.c:608
#: src/dfa.c:579
#, c-format
msgid "state # %d:\n"
msgstr "狀態 # %d:\n"
#: src/dfa.c:768
#: src/dfa.c:738
msgid "Could not write yynxt_tbl[][]"
msgstr "無法寫入 yynxt_tbl[][]"
#: src/dfa.c:1028
#: src/dfa.c:1001
msgid "bad transition character detected in sympartition()"
msgstr "在 sympartition() 偵測到不當的轉換字元"
#: src/gen.c:480
#: src/gen.c:379
msgid ""
"\n"
"\n"
@@ -108,29 +100,29 @@ msgstr ""
"等價類別:\n"
"\n"
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "狀態 # %d 接受:[%d]\n"
#: src/gen.c:1115
#: src/gen.c:533
#, c-format
msgid "state # %d accepts: "
msgstr "狀態 # %d 接受:"
#: src/gen.c:1162
#: src/gen.c:582
msgid "Could not write yyacclist_tbl"
msgstr "無法寫入 yyacclist_tbl"
#: src/gen.c:1236
#: src/gen.c:659
msgid "Could not write yyacc_tbl"
msgstr "無法寫入 yyacc_tbl"
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
msgid "Could not write ecstbl"
msgstr "無法寫入 ecstbl"
#: src/gen.c:1271
#: src/gen.c:694
msgid ""
"\n"
"\n"
@@ -140,397 +132,388 @@ msgstr ""
"\n"
" 後設等價類別:\n"
#: src/gen.c:1293
#: src/gen.c:714
msgid "Could not write yymeta_tbl"
msgstr "無法寫入 yymeta_tbl"
#: src/gen.c:1352
#: src/gen.c:774
msgid "Could not write yybase_tbl"
msgstr "無法寫入 yybase_tbl"
#: src/gen.c:1384
#: src/gen.c:805
msgid "Could not write yydef_tbl"
msgstr "無法寫入 yydef_tbl"
#: src/gen.c:1422
#: src/gen.c:844
msgid "Could not write yynxt_tbl"
msgstr "無法寫入 yynxt_tbl"
#: src/gen.c:1456
#: src/gen.c:877
msgid "Could not write yychk_tbl"
msgstr "無法寫入 yychk_tbl"
#: src/gen.c:1608 src/gen.c:1637
#: src/gen.c:932 src/gen.c:965
msgid "Could not write ftbl"
msgstr "無法寫入 ftbl"
#: src/gen.c:1614
#: src/gen.c:938
msgid "Could not write ssltbl"
msgstr "無法寫入 ssltbl"
#: src/gen.c:1665
#: src/gen.c:1014
msgid "Could not write eoltbl"
msgstr "無法寫入 eoltbl"
#: src/gen.c:1722
#: src/gen.c:1061
msgid "Could not write yynultrans_tbl"
msgstr "無法寫入 yynultrans_tbl"
#: src/main.c:178
#: src/main.c:169
msgid "rule cannot be matched"
msgstr "規則無法吻合"
#: src/main.c:183
#: src/main.c:174
msgid "-s option given but default rule can be matched"
msgstr "-s 選項已給定但是可以吻合預設規則"
#: src/main.c:221
#: src/main.c:317
msgid "Can't use -+ with -l option"
msgstr "無法將 -+ 與 -l 選項共同使用"
#: src/main.c:224
#: src/main.c:320
msgid "Can't use -f or -F with -l option"
msgstr "無法將 -f 或 -F 與 -l 選項共同使用"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgstr "無法將 --reentrant 或 --bison-bridge 與 -l 選項共同使用"
#: src/main.c:260
#: src/main.c:356
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF 和 -Cm 共用時不具任何意義"
#: src/main.c:263
#: src/main.c:359
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF 和 -I 是不相容的"
#: src/main.c:267
#: src/main.c:363
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF 與 lex 相容模式是不相容的"
#: src/main.c:272
#: src/main.c:368
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf 和 -CF 是互斥的"
#: src/main.c:276
#: src/main.c:372
msgid "Can't use -+ with -CF option"
msgstr "無法將 -+ 與 -CF 選項共同使用"
#: src/main.c:279
#: src/main.c:375
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array 與 -+ 選項不相容"
#: src/main.c:284
#: src/main.c:380
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "選項 -+ 和 --reentrant 是互斥的。"
#: src/main.c:287
#: src/main.c:383
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison 橋接器不受 C++ 掃描程式支援。"
#: src/main.c:336 src/main.c:419
#: src/main.c:422 src/main.c:1235
#, c-format
msgid "could not create %s"
msgstr "無法建立 %s"
#: src/main.c:431
msgid "could not write tables header"
msgstr "無法寫入表頭"
#: src/main.c:435
#: src/main.c:443
#, c-format
msgid "can't open skeleton file %s"
msgstr "無法開啟架構檔案 %s"
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass 只對於 C++ 掃描程式有意義"
#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "給予巨集定義配額時失敗"
#: src/main.c:521
#: src/main.c:447
#, c-format
msgid "input error reading skeleton file %s"
msgstr "讀取架構檔案 %s 時輸入錯誤"
#: src/main.c:525
#: src/main.c:451
#, c-format
msgid "error closing skeleton file %s"
msgstr "關閉架構檔案 %s 時發生錯誤"
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "建立標頭檔案 %s 時發生錯誤"
#: src/main.c:717
#: src/main.c:457
#, c-format
msgid "error writing output file %s"
msgstr "寫入輸出檔案 %s 時發生錯誤"
#: src/main.c:721
#: src/main.c:461
#, c-format
msgid "error closing output file %s"
msgstr "關閉輸出檔案 %s 時發生錯誤"
#: src/main.c:725
#: src/main.c:465
#, c-format
msgid "error deleting output file %s"
msgstr "刪除輸出檔案 %s 時發生錯誤"
#: src/main.c:732
#: src/main.c:472
#, c-format
msgid "No backing up.\n"
msgstr "沒有備份。\n"
#: src/main.c:736
#: src/main.c:476
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d 備份 (非接受) 狀態。\n"
#: src/main.c:740
#: src/main.c:480
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "壓縮過的表格自動備份。\n"
#: src/main.c:743
#: src/main.c:483
#, c-format
msgid "error writing backup file %s"
msgstr "寫入備份檔案 %s 時發生錯誤"
#: src/main.c:747
#: src/main.c:487
#, c-format
msgid "error closing backup file %s"
msgstr "關閉備份檔案 %s 時發生錯誤"
#: src/main.c:752
#: src/main.c:492
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s 版本 %s 用法統計:\n"
#: src/main.c:755
#: src/main.c:495
#, c-format
msgid " scanner options: -"
msgstr " 掃描程式選項:-"
#: src/main.c:834
#: src/main.c:574
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA 狀態\n"
#: src/main.c:836
#: src/main.c:576
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA 狀態 (%d 個字詞)\n"
#: src/main.c:838
#: src/main.c:578
#, c-format
msgid " %d rules\n"
msgstr " %d 條規則\n"
#: src/main.c:843
#: src/main.c:583
#, c-format
msgid " No backing up\n"
msgstr " 沒有備份\n"
#: src/main.c:847
#: src/main.c:587
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d 備份 (非接受) 狀態\n"
#: src/main.c:852
#: src/main.c:592
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " 壓縮過的表格自動備份\n"
#: src/main.c:856
#: src/main.c:596
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " 列首式樣已使用\n"
#: src/main.c:858
#: src/main.c:598
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d 起始條件\n"
#: src/main.c:862
#: src/main.c:602
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d ε狀態,%d 雙倍ε狀態\n"
#: src/main.c:866
#: src/main.c:606
#, c-format
msgid " no character classes\n"
msgstr " 無字元類別\n"
#: src/main.c:870
#: src/main.c:610
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr " %d/%d 字元類別所需 %d/%d 字詞的儲存體,%d 重新使用\n"
#: src/main.c:875
#: src/main.c:615
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d 狀態/下一狀態對已建立\n"
#: src/main.c:878
#: src/main.c:618
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d 獨一/重複轉換\n"
#: src/main.c:883
#: src/main.c:623
#, c-format
msgid " %d table entries\n"
msgstr " %d 表格項目\n"
#: src/main.c:891
#: src/main.c:631
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def 項目已建立\n"
#: src/main.c:895
#: src/main.c:635
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (尖峰 %d) nxt-chk 項目已建立\n"
#: src/main.c:899
#: src/main.c:639
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (尖峰 %d) 模板 nxt-chk 項目已建立\n"
#: src/main.c:903
#: src/main.c:643
#, c-format
msgid " %d empty table entries\n"
msgstr " %d 清空表格項目\n"
#: src/main.c:905
#: src/main.c:645
#, c-format
msgid " %d protos created\n"
msgstr " %d 原型已建立\n"
#: src/main.c:908
#: src/main.c:648
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d 範本已建立,%d 使用\n"
#: src/main.c:916
#: src/main.c:656
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d 等價類別已建立\n"
#: src/main.c:924
#: src/main.c:664
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d 後設等價類別已建立\n"
#: src/main.c:930
#: src/main.c:670
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d 已儲存) 雜湊碰撞,%d DFAs 相等\n"
#: src/main.c:932
#: src/main.c:672
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " 需要 %d 組重新配置\n"
#: src/main.c:934
#: src/main.c:674
#, c-format
msgid " %d total table entries needed\n"
msgstr " 總計需要 %d 表格項目\n"
#: src/main.c:1008
#: src/main.c:735
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "內部錯誤。flexopts 功能異常。\n"
#: src/main.c:1018
#: src/main.c:745
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "嘗試「%s --help」以獲得更多資訊。\n"
#: src/main.c:1075
#: src/main.c:807
#, c-format
msgid "unknown -C option '%c'"
msgstr "不明 -C 選項「%c」"
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
#: src/main.c:1195
msgid "fatal parse error"
msgstr "嚴重的解析錯誤"
#: src/main.c:1508
#: src/main.c:1247
msgid "could not write tables header"
msgstr "無法寫入表頭"
#: src/main.c:1251
#, c-format
msgid "can't open skeleton file %s"
msgstr "無法開啟架構檔案 %s"
#: src/main.c:1254
msgid "Prefix cannot include '[' or ']'"
msgstr ""
#: src/main.c:1322
#, c-format
msgid "could not create backing-up info file %s"
msgstr "無法建立備份資訊檔案 %s"
#: src/main.c:1529
#: src/main.c:1343
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l AT&T lex 相容性選項會導致大幅效能減退\n"
#: src/main.c:1532
#: src/main.c:1346
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " 同時也許是其他回報效能減退的實際來源\n"
#: src/main.c:1538
#: src/main.c:1352
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr "%%option yylineno 導致效能減退,只有當該規則該吻合新列字元時才會\n"
#: src/main.c:1545
#: src/main.c:1359
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (互動式) 導致小幅效能減退\n"
#: src/main.c:1550
#: src/main.c:1364
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() 導致小幅效能減退\n"
#: src/main.c:1556
#: src/main.c:1370
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT 導致大幅效能減退\n"
#: src/main.c:1561
#: src/main.c:1375
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "變數末尾內文規則導致大幅效能減退\n"
#: src/main.c:1573
#: src/main.c:1387
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT 無法與 -f 或 -F 共同使用"
#: src/main.c:1576
#: src/main.c:1390
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno 無法與 REJECT 共同使用"
#: src/main.c:1579
#: src/main.c:1393
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "變數末尾內文規則無法與 -f 或 -F 共同使用"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass 只對於 C++ 掃描程式有意義"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "給予巨集定義配額時失敗"
#: src/main.c:1791
#: src/main.c:1745
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "用法:%s [選項] [檔案]…\n"
#: src/main.c:1794
#: src/main.c:1748
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -551,7 +534,7 @@ msgid ""
" -b, --backup write backing-up information to %s\n"
" -p, --perf-report write performance report to stderr\n"
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
" -T, --trace %s should run in trace mode\n"
" -T, --env.trace %s should run in env.trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
" --hex use hexadecimal numbers instead of octal in debug "
@@ -565,6 +548,7 @@ msgid ""
" --header-file=FILE create a C header file in addition to the "
"scanner\n"
" --tables-file[=FILE] write tables to FILE\n"
" --backup-file=FILE write backing-up information to FILE\n"
"\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
@@ -579,10 +563,11 @@ msgid ""
"Generated code:\n"
" -+, --c++ generate C++ scanner class\n"
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
" -e, --emit=LANG Specify target language\n"
" -L, --noline suppress #line directives in scanner\n"
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
" -R, --reentrant generate a reentrant C scanner\n"
" --bison-bridge scanner for bison pure parser.\n"
" -R, --reentrant generate a reentrant scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
" --nounistd do not include <unistd.h>\n"
@@ -656,48 +641,35 @@ msgstr ""
" -h, --help 產生這個說明訊息\n"
" -V, --version 報告 %s 版本\n"
#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "給予 sko_stack 配額時失敗"
#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "名稱「%s」有荒謬的長度"
#: src/misc.c:155
#: src/misc.c:70 src/misc.c:81
msgid "memory allocation failed in allocate_array()"
msgstr "在 allocatearray() 中記憶體配置失敗"
#: src/misc.c:205
#: src/misc.c:131
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "在 checkchar() 中偵測到不當的字元「%s」"
#: src/misc.c:210
#: src/misc.c:136
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "掃描程式需要 -8 旗標以使用字元 %s"
#: src/misc.c:229
#: src/misc.c:155
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "在 allocatearray() 中記憶體配置失敗"
#: src/misc.c:303
#: src/misc.c:231
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s:嚴重內部錯誤,%s\n"
#: src/misc.c:671
#: src/misc.c:587 src/misc.c:598
msgid "attempt to increase array size failed"
msgstr "試圖增加陣列大小時失敗"
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "架構檔案中不當的列"
#: src/misc.c:845
#: src/misc.c:645
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "在 yy_flex_xmalloc() 中的記憶體配置失敗"
@@ -731,188 +703,188 @@ msgstr "在 dupmachine() 中清空機器"
msgid "Variable trailing context rule at line %d\n"
msgstr "變數末尾內文規則於列 %d\n"
#: src/nfa.c:357
#: src/nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr "在 mark_beginning_as_normal() 中有不當的狀態輸入"
#: src/nfa.c:595
#: src/nfa.c:593
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "輸入規則太複雜 (>= %d NFA 狀態)"
#: src/nfa.c:673
#: src/nfa.c:671
msgid "found too many transitions in mkxtion()"
msgstr "在 mkxtion() 中找到太多轉換"
#: src/nfa.c:699
#: src/nfa.c:697
#, c-format
msgid "too many rules (> %d)!"
msgstr "太多規則 (> %d)!"
#: src/parse.y:159
#: src/parse.y:163
msgid "unknown error processing section 1"
msgstr "不明的錯誤處理區段 1"
#: src/parse.y:184 src/parse.y:353
#: src/parse.y:188 src/parse.y:373
msgid "bad start condition list"
msgstr "不當的起始條件清單"
#: src/parse.y:204
#: src/parse.y:208
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:317
#: src/parse.y:337
msgid "unrecognized rule"
msgstr "無法辨識的規則"
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
msgid "trailing context used twice"
msgstr "末尾內文已使用兩次"
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
msgid "bad iteration values"
msgstr "不當的迭代值"
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
msgid "iteration value must be positive"
msgstr "迭代值必須是正值"
#: src/parse.y:806 src/parse.y:816
#: src/parse.y:826 src/parse.y:836
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr "在大小寫不須相符的掃描程式中,字元範圍 [%c-%c] 是模稜兩可的"
#: src/parse.y:821
#: src/parse.y:841
msgid "negative range in character class"
msgstr "在字元類別中有負值範圍"
#: src/parse.y:918
#: src/parse.y:938
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "在大小寫不須相符的掃描程式中,[:^lower:] 是模稜兩可的"
#: src/parse.y:924
#: src/parse.y:944
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "在大小寫不須相符的掃描程式中,[:^upper:] 是模稜兩可的"
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
msgid "Input line too long\n"
msgstr "輸入列太長\n"
#: src/scan.l:183
#: src/scan.l:185
#, c-format
msgid "malformed '%top' directive"
msgstr "異常的「%top」指令"
#: src/scan.l:205
#: src/scan.l:207
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "無法辨識的「%」指令"
#: src/scan.l:214
#: src/scan.l:216
msgid "Definition name too long\n"
msgstr "定義名稱太長\n"
#: src/scan.l:309
#: src/scan.l:311
msgid "Unmatched '{'"
msgstr "不成對的「{」"
#: src/scan.l:325
#: src/scan.l:327
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "{%s} 的定義值太長\n"
#: src/scan.l:342
#: src/scan.l:344
msgid "incomplete name definition"
msgstr "不完整的名稱定義"
#: src/scan.l:467
#: src/scan.l:486
msgid "Option line too long\n"
msgstr "選項列太長\n"
#: src/scan.l:475
#: src/scan.l:494
#, c-format
msgid "unrecognized %%option: %s"
msgstr "無法辨識的 %%option:%s"
#: src/scan.l:659 src/scan.l:832
#: src/scan.l:677 src/scan.l:850
msgid "bad character class"
msgstr "不當的字元類別"
#: src/scan.l:709
#: src/scan.l:727
#, c-format
msgid "undefined definition {%s}"
msgstr "未定義的定義 {%s}"
#: src/scan.l:772
#: src/scan.l:790
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:787
#: src/scan.l:805
#, c-format
msgid "bad <start condition>: %s"
msgstr "不當的 <起始條件>:%s"
#: src/scan.l:800
#: src/scan.l:818
msgid "missing quote"
msgstr "缺少引號"
#: src/scan.l:866
#: src/scan.l:884
#, c-format
msgid "bad character class expression: %s"
msgstr "不當的字元類別運算式:%s"
#: src/scan.l:888
#: src/scan.l:906
msgid "bad character inside {}'s"
msgstr "不當字元於 {} 內部"
#: src/scan.l:894
#: src/scan.l:912
msgid "missing }"
msgstr "缺少 }"
#: src/scan.l:972
#: src/scan.l:1020
msgid "EOF encountered inside an action"
msgstr "在動作之內遇到檔案結束"
#: src/scan.l:977
#: src/scan.l:1025
msgid "EOF encountered inside pattern"
msgstr "在式樣之內遇到檔案結束"
#: src/scan.l:1010
#: src/scan.l:1058
#, c-format
msgid "bad character: %s"
msgstr "不當的字元:%s"
#: src/scan.l:1038
#: src/scan.l:1086
#, c-format
msgid "can't open %s"
msgstr "無法開啟 %s"
#: src/scanopt.c:259
#: src/scanopt.c:248
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "用法:%s [選項]…\n"
#: src/scanopt.c:524
#: src/scanopt.c:484
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "選項「%s」不允許任何引數\n"
#: src/scanopt.c:529
#: src/scanopt.c:489
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "選項「%s」需要一個引數\n"
#: src/scanopt.c:533
#: src/scanopt.c:493
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "選項「%s」是模稜兩可的\n"
#: src/scanopt.c:537
#: src/scanopt.c:497
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "無法辨識的選項 %s\n"
#: src/scanopt.c:541
#: src/scanopt.c:501
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "不明錯誤=(%d)\n"
@@ -944,5 +916,29 @@ msgstr "結束標誌\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*情況很怪異* - tok:%d val:%d\n"
#~ msgid "Allocation of buffer for line directive failed"
#~ msgstr "給予緩衝區配額用於列指令時失敗"
#~ msgid "Allocation of buffer for m4 def failed"
#~ msgstr "給予緩衝區配額用於 m4 def 時失敗"
#~ msgid "Allocation of buffer for m4 undef failed"
#~ msgstr "給予緩衝區配額用於 m4 undef 時失敗"
#~ msgid "error creating header file %s"
#~ msgstr "建立標頭檔案 %s 時發生錯誤"
#~ msgid "%s %s\n"
#~ msgstr "%s %s\n"
#~ msgid "allocation of sko_stack failed"
#~ msgstr "給予 sko_stack 配額時失敗"
#~ msgid "name \"%s\" ridiculously long"
#~ msgstr "名稱「%s」有荒謬的長度"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "在 copystring() 中動態記憶體失敗"
#~ msgid "bad line in skeleton file"
#~ msgstr "架構檔案中不當的列"
+1 -1
View File
@@ -1,6 +1,7 @@
*.la
*.lo
*.o
*-flex.h
config.h
config.h.in
flex
@@ -8,6 +9,5 @@ libfl.pc
parse.c
parse.h
scan.c
cpp-skel.h
stage1scan.[cl]
stage1flex
+7 -5
View File
@@ -95,14 +95,14 @@ public:
int lineno() const { return yylineno; }
int debug() const { return yy_flex_debug; }
void set_debug( int flag ) { yy_flex_debug = flag; }
int debug() const { return yyflexdebug; }
void set_debug( int flag ) { yyflexdebug = flag; }
protected:
char* yytext;
int yyleng;
int yylineno; // only maintained if you use %option yylineno
int yy_flex_debug; // only has effect with -d or "%option debug"
int yyflexdebug; // only has effect with -d or "%option debug"
};
}
@@ -139,6 +139,7 @@ public:
void yypush_buffer_state( yy_buffer_state* new_buffer );
void yypop_buffer_state();
virtual int yyread(char *buf, size_t);
virtual int yylex();
virtual void switch_streams( std::istream& new_in, std::ostream& new_out );
virtual void switch_streams( std::istream* new_in = 0, std::ostream* new_out = 0 );
@@ -148,8 +149,8 @@ protected:
virtual int LexerInput( char* buf, int max_size );
virtual void LexerOutput( const char* buf, int size );
virtual void LexerError( const char* msg );
void yyunput( int c, char* buf_ptr );
void yyunput_r( int c, char* buf_ptr );
int yyinput();
void yy_load_buffer_state();
@@ -201,6 +202,7 @@ protected:
yy_state_type* yy_state_buf;
yy_state_type* yy_state_ptr;
size_t yy_state_buf_max;
char* yy_full_match;
int* yy_full_state;
+33 -12
View File
@@ -53,8 +53,6 @@ flex_CFLAGS = $(AM_CFLAGS) $(WARNINGFLAGS)
COMMON_SOURCES = \
buf.c \
ccl.c \
cpp_backend.c \
cpp_skel.h \
dfa.c \
ecs.c \
filter.c \
@@ -72,6 +70,7 @@ COMMON_SOURCES = \
scanflags.c \
scanopt.c \
scanopt.h \
skeletons.c \
sym.c \
tables.c \
tables.h \
@@ -89,17 +88,36 @@ include_HEADERS = \
FlexLexer.h
EXTRA_DIST = \
c99-flex.skl \
cpp-flex.skl \
go-flex.skl \
mkskel.sh \
gettext.h \
backend.adoc
chkskel.sh
CLEANFILES = stage1scan.c stage1flex$(EXEEXT)
MAINTAINERCLEANFILES = c9pp-skel.h
BUILT_SOURCES = \
cpp-flex.h \
c99-flex.h \
go-flex.h
cpp-skel.h: cpp-flex.skl mkskel.sh flexint_shared.h tables_shared.h tables_shared.c
clean-local:
rm -f $(BUILT_SOURCES)
cpp-flex.h: cpp-flex.skl mkskel.sh flexint_shared.h tables_shared.h tables_shared.c
$(SHELL) $(srcdir)/mkskel.sh cpp $(srcdir) $(m4) $(VERSION) > $@.tmp
$(SHELL) $(srcdir)/chkskel.sh $@.tmp
mv -f $@.tmp $@
c99-flex.h: c99-flex.skl mkskel.sh
$(SHELL) $(srcdir)/mkskel.sh c99 $(srcdir) $(m4) $(VERSION) > $@.tmp
$(SHELL) $(srcdir)/chkskel.sh $@.tmp
mv -f $@.tmp $@
go-flex.h: go-flex.skl mkskel.sh
$(SHELL) $(srcdir)/mkskel.sh go $(srcdir) $(m4) $(VERSION) > $@.tmp
$(SHELL) $(srcdir)/chkskel.sh $@.tmp
mv -f $@.tmp $@
if ENABLE_BOOTSTRAP
@@ -112,20 +130,23 @@ endif
dist-hook: scan.l flex$(EXEEXT)
chmod u+w $(distdir) && \
chmod u+w $(distdir)/scan.c && \
./flex$(EXEEXT) -o scan.c $< && \
mv -f scan.c $(distdir)
# make needs to be told to make parse.h so that parallelized runs will
# make needs to be told to make inclusions so that parallelized runs will
# not fail.
stage1flex-main.$(OBJEXT): parse.h
flex-main.$(OBJEXT): parse.h
SKELINCLUDES := $(subst skl,h,$(wildcard *.skl))
stage1flex-yylex.$(OBJEXT): parse.h
flex-yylex.$(OBJEXT): parse.h
stage1flex-main.$(OBJEXT): parse.h $(SKELINCLUDES)
flex-main.$(OBJEXT): parse.h $(SKELINCLUDES)
stage1flex-scan.$(OBJEXT): parse.h
flex-stage1scan.$(OBJEXT): parse.h
stage1flex-yylex.$(OBJEXT): parse.h $(SKELINCLUDES)
flex-yylex.$(OBJEXT): parse.h $(SKELINCLUDES)
stage1flex-scan.$(OBJEXT): parse.h $(SKELINCLUDES)
flex-stage1scan.$(OBJEXT): parse.h $(SKELINCLUDES)
# Run GNU indent on sources. Don't run this unless all the sources compile cleanly.
#
-94
View File
@@ -1,94 +0,0 @@
= How to add a support for a new language to flex
= Theory
The flex code was historically written to generate parsers in C, but
it has factored to isolate knowledge of the specifics of each target
languageas from the logic for byukilding the lexer state tables much
as possible.
The only assumption that is absolutely baked into all of flex is that
the bodies of initializers for arrays of integers consist of decimal
numeric kiterals sepaerated by commas (and optional whitespace).
Otherwise, knowledge of each target langage's syntax lives in two
places: (1) a table of langyuge-specific syntax-generator methods,
and (2) A language-specific skeleton file.
For example: The methods for the C and C++ back end live in a source
file named cpp_backend.c (so named because both languages use the C
preprocessor), and in a skeleton file names cpp-flex.skl.
Syntactically C-like languages such as Go, Rust, and Java should be easy
target. Alnost anything generally descended from Algol shouldn't be
much more difficult; this certainly includes the whole
Pascal/Modula/Oberon family.
= Writing a new backend
All the code that accesses language-specific code generators goes
through a global pointer named "backend" to a method table. The
results of these generators are used to fill in some parts of the
language-specifoc skeleton file amd conditionalize other.
Read the definition of struct backend_t in src/flexdefs.h, and
attached comments, to get a feel for the methods. Don't worry
about understandng table generator names at first.
To write support for a language, you'll want to do the following
steps:
1. Clone one of the existing back-end/skeleton pairs. If the language
you are supporting is named "foo", you should create files named
foo_backend.c and foo-flex.skl.
2. Add foo_backend.c to COMMON_SOURCES in src.Makefile.am. Add the
name of your skeleton file to EXTRA_DIST.
3. Add a production to src/Makefile.am parallel to the one that
priduces cpp-skel.h. Your objecting is to make a string list
initializer from your skeleton file that can be linked with flex
and is opointed at by the skel nember of your language back end.
4. Add some logic to main.c that enables the new back end with a
new command-line option. Following this step you should be
able to run flex on a specification and get code out in the
language of whatever back end you cloned.
5. The interesting part: mutate your new back end and skeleton so they
produce code in your desired target langage.
6. Write a test suite for your back end. You should be able to clone
one of the existing sets of test loads to get good coverage. Note
that is highly unlikely your back end will be accepted into the
flex distribution without a test suite.
A hint about step 5:
* Don't bother supporting non-reentrant parser generation.
The interface of original lex with all those globals hanging out
needs to be supported in C for backwards compatibility, but
there
The following assumptions in the code might trip you up and
require fixes outside a back end.
1. The language has a case-arm syntax that looks like
a (possibly empty) prefix, followed by a value
expression, followed by a colon.
2. Either case arms can be stacked as in C; that is, there is
an implicit fallthrough if the case arm has no code. Or,
there is an explicit fallthrough keyword that enables this,
as in Go.
3. The item separator in data initializers is a comma.
By putting a yyterminate() call in the fallthrough member
and a null pointer in the endcase member, you could handle
languages like Pascal.
// end
-120
View File
@@ -47,26 +47,8 @@
/* global buffers. */
struct Buf userdef_buf; /**< for user #definitions triggered by cmd-line. */
struct Buf defs_buf; /**< for #define's autogenerated. List of strings. */
struct Buf yydmap_buf; /**< string buffer to hold yydmap elements */
struct Buf m4defs_buf; /**< m4 definitions. List of strings. */
struct Buf top_buf; /**< contains %top code. String buffer. */
struct Buf *buf_print_strings(struct Buf * buf, FILE* out)
{
int i;
if(!buf || !out)
return buf;
for (i=0; i < buf->nelts; i++){
const char * s = ((char**)buf->elts)[i];
if(s)
fprintf(out, "%s", s);
}
return buf;
}
/* Append a "%s" formatted string to a string buffer */
struct Buf *buf_prints (struct Buf *buf, const char *fmt, const char *s)
{
@@ -83,52 +65,6 @@ struct Buf *buf_prints (struct Buf *buf, const char *fmt, const char *s)
return buf;
}
/** Append a line directive to the string buffer.
* @param buf A string buffer.
* @param filename file name
* @param lineno line number
* @return buf
*/
struct Buf *buf_linedir (struct Buf *buf, const char* filename, int lineno)
{
char *dst, *t;
const char *src;
size_t tsz;
if (gen_line_dirs)
return buf;
tsz = strlen("#line \"\"\n") + /* constant parts */
2 * strlen (filename) + /* filename with possibly all backslashes escaped */
(size_t) (1 + ceil (log10 (abs (lineno)))) + /* line number */
1; /* NUL */
t = malloc(tsz);
if (!t)
flexfatal (_("Allocation of buffer for line directive failed"));
for (dst = t + snprintf (t, tsz, "#line %d \"", lineno), src = filename; *src; *dst++ = *src++)
if (*src == '\\') /* escape backslashes */
*dst++ = '\\';
*dst++ = '"';
*dst++ = '\n';
*dst = '\0';
buf = buf_strappend (buf, t);
free(t);
return buf;
}
/** Append the contents of @a src to @a dest.
* @param @a dest the destination buffer
* @param @a dest the source buffer
* @return @a dest
*/
struct Buf *buf_concat(struct Buf* dest, const struct Buf* src)
{
buf_append(dest, src->elts, src->nelts);
return dest;
}
/* Appends n characters in str to buf. */
struct Buf *buf_strnappend (struct Buf *buf, const char *str, int n)
{
@@ -146,62 +82,6 @@ struct Buf *buf_strappend (struct Buf *buf, const char *str)
return buf_strnappend (buf, str, (int) strlen (str));
}
/* appends "#define str def\n" */
struct Buf *buf_strdefine (struct Buf *buf, const char *str, const char *def)
{
buf_strappend (buf, "#define ");
buf_strappend (buf, " ");
buf_strappend (buf, str);
buf_strappend (buf, " ");
buf_strappend (buf, def);
buf_strappend (buf, "\n");
return buf;
}
/** Pushes "m4_define( [[def]], [[val]])m4_dnl" to end of buffer.
* @param buf A buffer as a list of strings.
* @param def The m4 symbol to define.
* @param val The definition; may be NULL.
* @return buf
*/
struct Buf *buf_m4_define (struct Buf *buf, const char* def, const char* val)
{
const char * fmt = "m4_define( [[%s]], [[[[%s]]]])m4_dnl\n";
char * str;
size_t strsz;
val = val?val:"";
strsz = strlen(fmt) + strlen(def) + strlen(val) + 2;
str = malloc(strsz);
if (!str)
flexfatal (_("Allocation of buffer for m4 def failed"));
snprintf(str, strsz, fmt, def, val);
buf_append(buf, &str, 1);
return buf;
}
/** Pushes "m4_undefine([[def]])m4_dnl" to end of buffer.
* @param buf A buffer as a list of strings.
* @param def The m4 symbol to undefine.
* @return buf
*/
struct Buf *buf_m4_undefine (struct Buf *buf, const char* def)
{
const char * fmt = "m4_undefine( [[%s]])m4_dnl\n";
char * str;
size_t strsz;
strsz = strlen(fmt) + strlen(def) + 2;
str = malloc(strsz);
if (!str)
flexfatal (_("Allocation of buffer for m4 undef failed"));
snprintf(str, strsz, fmt, def);
buf_append(buf, &str, 1);
return buf;
}
/* create buf with 0 elements, each of size elem_size. */
void buf_init (struct Buf *buf, size_t elem_size)
{
+2544
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -101,7 +101,7 @@ static void dump_cclp (FILE* file, int cclp)
putc ('[', file);
for (i = 0; i < csize; ++i) {
for (i = 0; i < ctrl.csize; ++i) {
if (ccl_contains(cclp, i)){
int start_char = i;
@@ -109,7 +109,7 @@ static void dump_cclp (FILE* file, int cclp)
fputs (readable_form (i), file);
while (++i < csize && ccl_contains(cclp,i)) ;
while (++i < ctrl.csize && ccl_contains(cclp,i)) ;
if (i - 1 > start_char)
/* this was a run */
@@ -138,7 +138,7 @@ ccl_set_diff (int a, int b)
* addding each char in a that is not in b.
* (This could be O(n^2), but n is small and bounded.)
*/
for ( ch = 0; ch < csize; ++ch )
for ( ch = 0; ch < ctrl.csize; ++ch )
if (ccl_contains (a, ch) && !ccl_contains(b, ch))
ccladd (d, ch);
@@ -250,7 +250,7 @@ void list_character_set (FILE *file, int cset[])
putc ('[', file);
for (i = 0; i < csize; ++i) {
for (i = 0; i < ctrl.csize; ++i) {
if (cset[i]) {
int start_char = i;
@@ -258,7 +258,7 @@ void list_character_set (FILE *file, int cset[])
fputs (readable_form (i), file);
while (++i < csize && cset[i]) ;
while (++i < ctrl.csize && cset[i]) ;
if (i - 1 > start_char)
/* this was a run */
+33
View File
@@ -0,0 +1,33 @@
#! /bin/sh
# This file is part of flex.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# Neither the name of the University nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
if test ! $# = 1; then
echo 'Usage: chkskel.sh file' >&2
exit 1
fi
file=$1
lines=$(grep -c '^ "%%' "${file}")
if [ ! "${lines}" -eq 6 ]; then
echo 'ERROR: skeleton does not have the right number of %% section lines'
exit 2
fi
+2076 -1754
View File
File diff suppressed because it is too large Load Diff
-639
View File
@@ -1,639 +0,0 @@
/* flex - tool to generate fast lexical analyzers */
/* Copyright (c) 1990 The Regents of the University of California. */
/* All rights reserved. */
/* This code is derived from software contributed to Berkeley by */
/* Vern Paxson. */
/* The United States Government has rights in this work pursuant */
/* to contract no. DE-AC03-76SF00098 between the United States */
/* Department of Energy and the University of California. */
/* This file is part of flex. */
/* Redistribution and use in source and binary forms, with or without */
/* modification, are permitted provided that the following conditions */
/* are met: */
/* 1. Redistributions of source code must retain the above copyright */
/* notice, this list of conditions and the following disclaimer. */
/* 2. Redistributions in binary form must reproduce the above copyright */
/* notice, this list of conditions and the following disclaimer in the */
/* documentation and/or other materials provided with the distribution. */
/* Neither the name of the University nor the names of its contributors */
/* may be used to endorse or promote products derived from this software */
/* without specific prior written permission. */
/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */
/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
/* PURPOSE. */
#include "flexdef.h"
/* Code specific to the C/C++ back end starts here */
static const char *cpp_suffix (void)
{
char *suffix;
if (C_plus_plus)
suffix = "cc";
else
suffix = "c";
return suffix;
}
/* cpp_prolog - make rules prolog specific to cpp-using languages.
*
* If you don't ship this, you will effectively be assuming that your
* parsers are always reentrant, always allow reject, always have a
* yywrap() method, have a debug member in the wrapper class, and are
* interactive. This eliminates most of the boilerplate in the C/C++
* scanner prolog. It means such parsers will be a bit larger and
* slower than C/C++ ones, but since we're not running on 1987's
* hardware we officially do not care.
*
* A detail to beware of: If you're not issuing this prologue, you may
* want to write your own definition of YY_CHAR in your skel
* file. It's a typedef to an unsigned octet in C/C++, but if your
* target language has a Unicode code-point type like Go's 'rune' is
* may be appropriate.
*/
static void cpp_prolog (void)
{
static char yy_stdinit[] = "FILE *yyin = stdin, *yyout = stdout;";
static char yy_nostdinit[] =
"FILE *yyin = NULL, *yyout = NULL;";
if (!do_yywrap) {
if (!C_plus_plus) {
if (reentrant)
out_str ("\n#define %swrap(yyscanner) (/*CONSTCOND*/1)\n", prefix);
else
out_str ("\n#define %swrap() (/*CONSTCOND*/1)\n", prefix);
}
outn ("#define YY_SKIP_YYWRAP");
}
if (ddebug)
outn ("\n#define FLEX_DEBUG");
OUT_BEGIN_CODE ();
outn ("typedef flex_uint8_t YY_CHAR;");
OUT_END_CODE ();
if (C_plus_plus) {
outn ("#define yytext_ptr yytext");
if (interactive)
outn ("#define YY_INTERACTIVE");
}
else {
OUT_BEGIN_CODE ();
/* In reentrant scanner, stdinit is handled in flex.skl. */
if (do_stdinit) {
if (reentrant){
outn ("#ifdef VMS");
outn ("#ifdef __VMS_POSIX");
outn ("#define YY_STDINIT");
outn ("#endif");
outn ("#else");
outn ("#define YY_STDINIT");
outn ("#endif");
}
outn ("#ifdef VMS");
outn ("#ifndef __VMS_POSIX");
outn (yy_nostdinit);
outn ("#else");
outn (yy_stdinit);
outn ("#endif");
outn ("#else");
outn (yy_stdinit);
outn ("#endif");
}
else {
if(!reentrant)
outn (yy_nostdinit);
}
OUT_END_CODE ();
}
OUT_BEGIN_CODE ();
if (fullspd)
outn ("typedef const struct yy_trans_info *yy_state_type;");
else if (!C_plus_plus)
outn ("typedef int yy_state_type;");
OUT_END_CODE ();
if (lex_compat)
outn ("#define YY_FLEX_LEX_COMPAT");
if (!C_plus_plus && !reentrant) {
outn ("extern int yylineno;");
OUT_BEGIN_CODE ();
outn ("int yylineno = 1;");
OUT_END_CODE ();
}
if (C_plus_plus) {
outn ("\n#include <FlexLexer.h>");
if (!do_yywrap) {
outn("\nint yyFlexLexer::yywrap() { return 1; }");
}
if (yyclass) {
outn ("int yyFlexLexer::yylex()");
outn ("\t{");
outn ("\tLexerError( \"yyFlexLexer::yylex invoked but %option yyclass used\" );");
outn ("\treturn 0;");
outn ("\t}");
out_str ("\n#define YY_DECL int %s::yylex()\n",
yyclass);
}
}
else {
/* Watch out: yytext_ptr is a variable when yytext is an array,
* but it's a macro when yytext is a pointer.
*/
if (yytext_is_array) {
if (!reentrant)
outn ("extern char yytext[];\n");
}
else {
if (reentrant) {
outn ("#define yytext_ptr yytext_r");
}
else {
outn ("extern char *yytext;");
outn("#ifdef yytext_ptr");
outn("#undef yytext_ptr");
outn("#endif");
outn ("#define yytext_ptr yytext");
}
}
if (yyclass)
flexerror (_
("%option yyclass only meaningful for C++ scanners"));
}
}
static void cpp_epilog (void)
{
#if 0
fprintf (header_out,
"#ifdef YY_HEADER_EXPORT_START_CONDITIONS\n");
fprintf (header_out,
"/* Beware! Start conditions are not prefixed. */\n");
/* Special case for "INITIAL" */
fprintf (header_out,
"#undef INITIAL\n#define INITIAL 0\n");
for (i = 2; i <= lastsc; i++)
fprintf (header_out, "#define %s %d\n", scname[i], i - 1);
fprintf (header_out,
"#endif /* YY_HEADER_EXPORT_START_CONDITIONS */\n\n");
/* Kill ALL flex-related macros. This is so the user
* can #include more than one generated header file. */
fprintf (header_out, "#ifndef YY_HEADER_NO_UNDEFS\n");
fprintf (header_out,
"/* Undefine all internal macros, etc., that do no belong in the header. */\n\n");
{
const char * undef_list[] = {
"BEGIN",
"ECHO",
"EOB_ACT_CONTINUE_SCAN",
"EOB_ACT_END_OF_FILE",
"EOB_ACT_LAST_MATCH",
"FLEX_SCANNER",
"REJECT",
"YYFARGS0",
"YYFARGS1",
"YYFARGS2",
"YYFARGS3",
"YYLMAX",
"YYSTATE",
"YY_AT_BOL",
"YY_BREAK",
"YY_BUFFER_EOF_PENDING",
"YY_BUFFER_NEW",
"YY_BUFFER_NORMAL",
"YY_BUF_SIZE",
"M4_YY_CALL_LAST_ARG",
"M4_YY_CALL_ONLY_ARG",
"YY_CURRENT_BUFFER",
"YY_DECL",
"M4_YY_DECL_LAST_ARG",
"M4_YY_DEF_LAST_ARG",
"M4_YY_DEF_ONLY_ARG",
"YY_DO_BEFORE_ACTION",
"YY_END_OF_BUFFER",
"YY_END_OF_BUFFER_CHAR",
"YY_EXIT_FAILURE",
"YY_EXTRA_TYPE",
"YY_FATAL_ERROR",
"YY_FLEX_DEFINED_ECHO",
"YY_FLEX_LEX_COMPAT",
"YY_FLEX_MAJOR_VERSION",
"YY_FLEX_MINOR_VERSION",
"YY_FLEX_SUBMINOR_VERSION",
"YY_FLUSH_BUFFER",
"YY_G",
"YY_INPUT",
"YY_INTERACTIVE",
"YY_INT_ALIGNED",
"YY_LAST_ARG",
"YY_LESS_LINENO",
"YY_LEX_ARGS",
"YY_LEX_DECLARATION",
"YY_LEX_PROTO",
"YY_MAIN",
"YY_MORE_ADJ",
"YY_NEED_STRLEN",
"YY_NEW_FILE",
"YY_NULL",
"YY_NUM_RULES",
"YY_ONLY_ARG",
"YY_PARAMS",
"YY_PROTO",
"M4_YY_PROTO_LAST_ARG",
"M4_YY_PROTO_ONLY_ARG void",
"YY_READ_BUF_SIZE",
"YY_REENTRANT",
"YY_RESTORE_YY_MORE_OFFSET",
"YY_RULE_SETUP",
"YY_SC_TO_UI",
"YY_SKIP_YYWRAP",
"YY_START",
"YY_START_STACK_INCR",
"YY_STATE_EOF",
"YY_STDINIT",
"YY_TRAILING_HEAD_MASK",
"YY_TRAILING_MASK",
"YY_USER_ACTION",
"YY_USE_CONST",
"YY_USE_PROTOS",
"unput",
"yyTABLES_NAME",
"yy_create_buffer",
"yy_delete_buffer",
"yy_flex_debug",
"yy_flush_buffer",
"yy_init_buffer",
"yy_load_buffer_state",
"yy_new_buffer",
"yy_scan_buffer",
"yy_scan_bytes",
"yy_scan_string",
"yy_set_bol",
"yy_set_interactive",
"yy_switch_to_buffer",
"yypush_buffer_state",
"yypop_buffer_state",
"yyensure_buffer_stack",
"yyalloc",
"const",
"yyextra",
"yyfree",
"yyget_debug",
"yyget_extra",
"yyget_in",
"yyget_leng",
"yyget_column",
"yyget_lineno",
"yyget_lloc",
"yyget_lval",
"yyget_out",
"yyget_text",
"yyin",
"yyleng",
"yyless",
"yylex",
"yylex_destroy",
"yylex_init",
"yylex_init_extra",
"yylineno",
"yylloc",
"yylval",
"yymore",
"yyout",
"yyrealloc",
"yyrestart",
"yyset_debug",
"yyset_extra",
"yyset_in",
"yyset_column",
"yyset_lineno",
"yyset_lloc",
"yyset_lval",
"yyset_out",
"yytables_destroy",
"yytables_fload",
"yyterminate",
"yytext",
"yytext_ptr",
"yywrap",
/* must be null-terminated */
NULL};
for (i=0; undef_list[i] != NULL; i++)
fprintf (header_out, "#undef %s\n", undef_list[i]);
}
/* undef any of the auto-generated symbols. */
for (i = 0; i < defs_buf.nelts; i++) {
/* don't undef start conditions */
if (sclookup (((char **) defs_buf.elts)[i]) > 0)
continue;
fprintf (header_out, "#undef %s\n",
((char **) defs_buf.elts)[i]);
}
fprintf (header_out,
"#endif /* !YY_HEADER_NO_UNDEFS */\n");
fprintf (header_out, "\n");
fprintf (header_out, "#undef %sIN_HEADER\n", prefix);
fprintf (header_out, "#endif /* %sHEADER_H */\n", prefix);
if (ferror (header_out))
lerr (_("error creating header file %s"),
headerfilename);
fflush (header_out);
fclose (header_out);
#endif
}
static const char *cpp_yy_int_aligned(void)
{
return long_align ? "long int" : "short int";
}
static void cpp_comment(const char *txt)
{
out_str("/* [[%s]] */\n", txt);
}
static const char *cpp_get_int16_decl (void)
{
return (gentables)
? "static const flex_int16_t %s[%d] =\n { 0,\n"
: "static const flex_int16_t * %s = 0;\n";
}
static const char *cpp_get_int32_decl (void)
{
return (gentables)
? "static const flex_int32_t %s[%d] =\n { 0,\n"
: "static const flex_int32_t * %s = 0;\n";
}
static const char *cpp_get_state_decl (void)
{
return (gentables)
? "static const yy_state_type %s[%d] =\n { 0,\n"
: "static const yy_state_type * %s = 0;\n";
}
static const char *cpp_get_yy_char_decl (void)
{
return (gentables)
? "static const YY_CHAR %s[%d] =\n { 0,\n"
: "static const YY_CHAR * %s = 0;\n";
}
static void cpp_ntod(size_t num_full_table_rows)
// Generate nxt table for ntod
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_NXT, (void**)&yy_nxt, sizeof(%s)},\n",
long_align ? "flex_int32_t" : "flex_int16_t");
/* Unless -Ca, declare it "short" because it's a real
* long-shot that that won't be large enough.
*/
if (gentables)
out_str_dec
("static const %s yy_nxt[][%d] =\n {\n",
long_align ? "flex_int32_t" : "flex_int16_t",
num_full_table_rows);
else {
out_dec ("#undef YY_NXT_LOLEN\n#define YY_NXT_LOLEN (%d)\n", num_full_table_rows);
out_str ("static const %s *yy_nxt =0;\n",
long_align ? "flex_int32_t" : "flex_int16_t");
}
}
static void cpp_mkeoltbl()
// Make end-of-line-table - only used when yylinemo tracking is on
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_RULE_CAN_MATCH_EOL, (void**)&yy_rule_can_match_eol, sizeof(%s)},\n",
"flex_int32_t");
}
static void cpp_geneoltbl(size_t sz)
// Generate end-of-line-transitions - only used when yylineno tracking is on
{
outn ("/* Table of booleans, true if rule could match eol. */");
out_str_dec (cpp_get_int32_decl (), "yy_rule_can_match_eol", sz);
}
static void cpp_mkctbl (size_t sz)
// Make full-speed compressed transition table
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_TRANSITION, (void**)&yy_transition, sizeof(%s)},\n",
(sz >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
}
static void cpp_mkssltbl (void)
// Make start_state_list table
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_START_STATE_LIST, (void**)&yy_start_state_list, sizeof(%s)},\n",
"struct yy_trans_info*");
}
static void cpp_gen_yy_trans(size_t sz)
// Table of verify for transition and offset to next state. (sic)
{
if (gentables)
out_dec ("static const struct yy_trans_info yy_transition[%d] =\n {\n", sz);
else
outn ("static const struct yy_trans_info *yy_transition = 0;");
}
static void cpp_start_state_list(size_t sz)
// Start initializer for table of pointers to start state
{
/* Table of pointers to start states. */
if (gentables)
out_dec ("static const struct yy_trans_info *yy_start_state_list[%d] =\n", sz);
else
outn ("static const struct yy_trans_info **yy_start_state_list =0;");
}
static void cpp_mkecstbl(void)
// Make equivalence-class tables
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_EC, (void**)&yy_ec, sizeof(%s)},\n",
"YY_CHAR");
}
static void cpp_mkftbl(void)
// Make full table
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_ACCEPT, (void**)&yy_accept, sizeof(%s)},\n",
long_align ? "flex_int32_t" : "flex_int16_t");
}
static void cpp_gentabs_acclist(void)
// Generate accept list initializer
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_ACCLIST, (void**)&yy_acclist, sizeof(%s)},\n",
long_align ? "flex_int32_t" : "flex_int16_t");
}
static void cpp_gentabs_accept(void)
// Generate accept table initializer
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_ACCEPT, (void**)&yy_accept, sizeof(%s)},\n",
long_align ? "flex_int32_t" : "flex_int16_t");
}
static void cpp_gentabs_yy_meta(void)
// Generate yy_meta table initializer
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_META, (void**)&yy_meta, sizeof(%s)},\n",
"YY_CHAR");
}
static void cpp_gentabs_yy_base(void)
// Generate yy_meta base initializer
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_BASE, (void**)&yy_base, sizeof(%s)},\n",
(tblend >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
}
static void cpp_gentabs_yy_def(size_t total_states)
// Generate yy_def initializer
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_DEF, (void**)&yy_def, sizeof(%s)},\n",
(total_states >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
}
static void cpp_gentabs_yy_nxt(size_t total_states)
// Generate yy_nxt initializer
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_NXT, (void**)&yy_nxt, sizeof(%s)},\n",
(total_states >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
}
static void cpp_gentabs_yy_chk(size_t total_states)
// Generate yy_chk initializer
{
buf_prints (&yydmap_buf,
"\t{YYTD_ID_CHK, (void**)&yy_chk, sizeof(%s)},\n",
(total_states >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
}
static void cpp_nultrans(int fullspd)
// Generate nulltrans initializer
{
// Making this a backend method may be overzealous.
// How many other languages have to sprcial-case NUL
// because it's a string terminator?
buf_prints (&yydmap_buf,
"\t{YYTD_ID_NUL_TRANS, (void**)&yy_NUL_trans, sizeof(%s)},\n",
(fullspd) ? "struct yy_trans_info*" :
"flex_int32_t");
}
static const char *cpp_trans_offset_type(int total_table_size)
{
return (total_table_size >= INT16_MAX || long_align) ?
"flex_int32_t" : "flex_int16_t";
}
const char *cpp_skel[] = {
#include "cpp-skel.h"
0,
};
/* This backend is only accessed through this method table */
struct flex_backend_t cpp_backend = {
.suffix = cpp_suffix,
.prolog = cpp_prolog,
.skel = cpp_skel,
.epilog = cpp_epilog,
.yy_int_aligned = cpp_yy_int_aligned,
.trace_fmt = "#line %d \"%s\"\n",
.int_define_fmt = "#define %s %d\n",
.string_define_fmt = "#define %s %s\n",
.table_opener = " {",
.table_continuation = " },\n",
.table_closer = " };\n",
.dyad = " {%4d,%4d },",
.comment = cpp_comment,
.get_int16_decl = cpp_get_int16_decl,
.get_int32_decl = cpp_get_int32_decl,
.get_state_decl = cpp_get_state_decl,
.get_yy_char_decl = cpp_get_yy_char_decl,
.ntod = cpp_ntod,
.mkeoltbl = cpp_mkeoltbl,
.geneoltbl = cpp_geneoltbl,
.mkctbl = cpp_mkctbl,
.mkssltbl = cpp_mkssltbl,
.gen_yy_trans = cpp_gen_yy_trans,
.start_state_list = cpp_start_state_list,
.state_entry_fmt = " &yy_transition[%d],\n",
.mkecstbl = cpp_mkecstbl,
.mkftbl = cpp_mkftbl,
.gentabs_acclist = cpp_gentabs_acclist,
.gentabs_accept = cpp_gentabs_accept,
.gentabs_yy_meta = cpp_gentabs_yy_meta,
.gentabs_yy_base = cpp_gentabs_yy_base,
.gentabs_yy_def = cpp_gentabs_yy_def,
.gentabs_yy_nxt = cpp_gentabs_yy_nxt,
.gentabs_yy_chk = cpp_gentabs_yy_chk,
.nultrans = cpp_nultrans,
.trans_offset_type = cpp_trans_offset_type,
.caseprefix = "case ",
.fallthrough = NULL,
.endcase = "yyterminate();",
.c_like = 1,
};
+47 -55
View File
@@ -54,19 +54,19 @@ void check_for_backing_up (int ds, int state[])
if ((reject && !dfaacc[ds].dfaacc_set) || (!reject && !dfaacc[ds].dfaacc_state)) { /* state is non-accepting */
++num_backing_up;
if (backing_up_report) {
fprintf (backing_up_file,
if (env.backing_up_report) {
fprintf (ctrl.backing_up_file,
_("State #%d is non-accepting -\n"), ds);
/* identify the state */
dump_associated_rules (backing_up_file, ds);
dump_associated_rules (ctrl.backing_up_file, ds);
/* Now identify it further using the out- and
* jam-transitions.
*/
dump_transitions (backing_up_file, state);
dump_transitions (ctrl.backing_up_file, state);
putc ('\n', backing_up_file);
putc ('\n', ctrl.backing_up_file);
}
}
}
@@ -185,7 +185,7 @@ void dump_transitions (FILE *file, int state[])
int i, ec;
int out_char_set[CSIZE];
for (i = 0; i < csize; ++i) {
for (i = 0; i < ctrl.csize; ++i) {
ec = ABS (ecgroup[i]);
out_char_set[i] = state[ec];
}
@@ -195,7 +195,7 @@ void dump_transitions (FILE *file, int state[])
list_character_set (file, out_char_set);
/* now invert the members of the set to get the jam transitions */
for (i = 0; i < csize; ++i)
for (i = 0; i < ctrl.csize; ++i)
out_char_set[i] = !out_char_set[i];
fprintf (file, _("\n jam-transitions: EOF "));
@@ -366,9 +366,12 @@ void increase_max_dfas (void)
*
* Creates the dfa corresponding to the ndfa we've constructed. The
* dfa starts out in state #1.
*
* Return the amount of space, in bytes, allocated for the next table.
* In some modes this can be zero.
*/
void ntod (void)
size_t ntod (void)
{
int *accset, ds, nacc, newds;
int sym, hashval, numstates, dsize;
@@ -406,7 +409,7 @@ void ntod (void)
*/
todo_head = todo_next = 0;
for (i = 0; i <= csize; ++i) {
for (i = 0; i <= ctrl.csize; ++i) {
duplist[i] = NIL;
symlist[i] = false;
}
@@ -414,7 +417,7 @@ void ntod (void)
for (i = 0; i <= num_rules; ++i)
accset[i] = NIL;
if (trace) {
if (env.trace) {
dumpnfa (scset[1]);
fputs (_("\n\nDFA Dump:\n\n"), stderr);
}
@@ -452,33 +455,14 @@ void ntod (void)
/* Note that the test for ecgroup[0] == numecs below accomplishes
* both (1) and (2) above
*
* New way: we will only use NUL table for fulltbl, because the
* scanner will use an integer instead of YY_CHAR as noted above
*/
if (!fullspd && ecgroup[0] == numecs) {
/* NUL is alone in its equivalence class, which is the
* last one.
*/
int use_NUL_table = (numecs == csize);
if (ctrl.fulltbl && ecgroup[0] == numecs && is_power_of_2(numecs))
nultrans = allocate_integer_array (current_max_dfas);
if (fulltbl && !use_NUL_table) {
/* We still may want to use the table if numecs
* is a power of 2.
*/
if (numecs <= csize && is_power_of_2(numecs)) {
use_NUL_table = true;
}
}
if (use_NUL_table)
nultrans =
allocate_integer_array (current_max_dfas);
/* From now on, nultrans != nil indicates that we're
* saving null transitions for later, separate encoding.
*/
}
if (fullspd) {
if (ctrl.fullspd) {
for (i = 0; i <= numecs; ++i)
state[i] = 0;
@@ -486,7 +470,7 @@ void ntod (void)
dfaacc[0].dfaacc_state = 0;
}
else if (fulltbl) {
else if (ctrl.fulltbl) {
if (nultrans)
/* We won't be including NUL's transitions in the
* table, so build it for entries from 0 .. numecs - 1.
@@ -512,15 +496,19 @@ void ntod (void)
yynxt_tbl->td_hilen = 1;
yynxt_tbl->td_lolen = (flex_uint32_t) num_full_table_rows;
yynxt_tbl->td_data = yynxt_data =
calloc(yynxt_tbl->td_lolen *
yynxt_tbl->td_hilen,
sizeof (flex_int32_t));
calloc(yynxt_tbl->td_lolen *
yynxt_tbl->td_hilen,
sizeof (flex_int32_t));
yynxt_curr = 0;
backend->ntod(num_full_table_rows);
struct packtype_t *ptype = optimize_pack(0);
/* Note: Used when ctrl.fulltbl is on. Alternately defined elsewhere */
out_str ("m4_define([[M4_HOOK_NXT_TYPE]], [[%s]])", ptype->name);
out_dec ("m4_define([[M4_HOOK_NXT_ROWS]], [[%d]])", num_full_table_rows);
outn ("m4_define([[M4_HOOK_NXT_BODY]], [[m4_dnl");
outn ("M4_HOOK_TABLE_OPENER");
if (gentables)
outn (backend->table_opener);
outn ("M4_HOOK_TABLE_OPENER");
/* Generate 0 entries for state #0. */
for (i = 0; i < num_full_table_rows; ++i) {
@@ -530,7 +518,7 @@ void ntod (void)
dataflush ();
if (gentables)
outn (backend->table_continuation);
outn ("M4_HOOK_TABLE_CONTINUE");
}
/* Create the first states. */
@@ -564,7 +552,7 @@ void ntod (void)
}
}
if (!fullspd) {
if (!ctrl.fullspd) {
if (!snstods (nset, 0, accset, 0, 0, &end_of_buffer_state))
flexfatal (_
("could not create unique end-of-buffer state"));
@@ -587,7 +575,7 @@ void ntod (void)
dset = dss[ds];
dsize = dfasiz[ds];
if (trace)
if (env.trace)
fprintf (stderr, _("state # %d:\n"), ds);
sympartition (dset, dsize, symlist, duplist);
@@ -624,7 +612,7 @@ void ntod (void)
state[sym] = newds;
if (trace)
if (env.trace)
fprintf (stderr,
"\t%d\t%d\n", sym,
newds);
@@ -642,7 +630,7 @@ void ntod (void)
targ = state[duplist[sym]];
state[sym] = targ;
if (trace)
if (env.trace)
fprintf (stderr,
"\t%d\t%d\n", sym,
targ);
@@ -674,7 +662,7 @@ void ntod (void)
state[NUL_ec] = 0; /* remove transition */
}
if (fulltbl) {
if (ctrl.fulltbl) {
/* Each time we hit here, it's another td_hilen, so we realloc. */
yynxt_tbl->td_hilen++;
@@ -684,7 +672,7 @@ void ntod (void)
yynxt_tbl->td_lolen *
sizeof (flex_int32_t));
if (gentables)
outn (backend->table_opener);
outn ("M4_HOOK_TABLE_OPENER");
/* Supply array's 0-element. */
if (ds == end_of_buffer_state) {
@@ -709,10 +697,10 @@ void ntod (void)
dataflush ();
if (gentables)
out (backend->table_continuation);
outn ("M4_HOOK_TABLE_CONTINUE");
}
else if (fullspd)
else if (ctrl.fullspd)
place_state (state, ds, totaltrans);
else if (ds == end_of_buffer_state)
@@ -740,8 +728,9 @@ void ntod (void)
}
}
if (fulltbl) {
dataend ();
if (ctrl.fulltbl) {
dataend ("M4_HOOK_TABLE_CLOSER");
outn("/* body */]])");
if (tablesext) {
yytbl_data_compress (yynxt_tbl);
if (yytbl_data_fwrite (&tableswr, yynxt_tbl) < 0)
@@ -754,7 +743,7 @@ void ntod (void)
}
}
else if (!fullspd) {
else if (!ctrl.fullspd) {
cmptmps (); /* create compressed template entries */
/* Create tables for all the states with only one
@@ -769,8 +758,11 @@ void ntod (void)
mkdeftbl ();
}
free(accset);
free(nset);
return (yynxt_tbl != NULL) ? (yynxt_tbl->td_hilen * sizeof(int32_t)) : 0;
}
@@ -1004,7 +996,7 @@ void sympartition (int ds[], int numstates, int symlist[], int duplist[])
tch = transchar[ns];
if (tch != SYM_EPSILON) {
if (tch < -lastccl || tch >= csize) {
if (tch < -lastccl || tch >= ctrl.csize) {
flexfatal (_
("bad transition character detected in sympartition()"));
}
+31 -36
View File
@@ -160,13 +160,13 @@ bool filter_apply_chain (struct filter * chain)
* to sync the stream. This is a Hail Mary situation. It seems to work.
*/
close (pipes[1]);
clearerr(stdin);
clearerr(stdin);
if (dup2 (pipes[0], fileno (stdin)) == -1)
flexfatal (_("dup2(pipes[0],0)"));
close (pipes[0]);
fseek (stdin, 0, SEEK_CUR);
ungetc(' ', stdin); /* still an evil hack, but one that works better */
(void)fgetc(stdin); /* on NetBSD than the fseek attempt does */
fseek (stdin, 0, SEEK_CUR);
ungetc(' ', stdin); /* still an evil hack, but one that works better */
(void)fgetc(stdin); /* on NetBSD than the fseek attempt does */
/* run as a filter, either internally or by exec */
if (chain->filter_func) {
@@ -179,8 +179,8 @@ clearerr(stdin);
else {
execvp (chain->argv[0],
(char **const) (chain->argv));
lerr_fatal ( _("exec of %s failed"),
chain->argv[0]);
lerr_fatal ( _("exec of %s failed"),
chain->argv[0]);
}
FLEX_EXIT (1);
@@ -191,7 +191,7 @@ clearerr(stdin);
if (dup2 (pipes[1], fileno (stdout)) == -1)
flexfatal (_("dup2(pipes[1],1)"));
close (pipes[1]);
fseek (stdout, 0, SEEK_CUR);
fseek (stdout, 0, SEEK_CUR);
return true;
}
@@ -256,29 +256,24 @@ int filter_tee_header (struct filter *chain)
*/
if (write_header) {
fputs (check_4_gnu_m4, to_h);
fputs (check_4_gnu_m4, to_h);
fputs ("m4_changecom`'m4_dnl\n", to_h);
fputs ("m4_changequote`'m4_dnl\n", to_h);
fputs ("m4_changequote([[,]])[[]]m4_dnl\n", to_h);
fputs ("m4_define([[M4_YY_NOOP]])[[]]m4_dnl\n", to_h);
fputs ("m4_define( [[M4_YY_IN_HEADER]],[[]])m4_dnl\n",
to_h);
fprintf (to_h, "#ifndef %sHEADER_H\n", prefix);
fprintf (to_h, "#define %sHEADER_H 1\n", prefix);
fprintf (to_h, "#define %sIN_HEADER 1\n\n", prefix);
fputs ("m4_changequote([[,]])[[]]m4_dnl\n", to_h);
fputs ("m4_define([[M4_YY_NOOP]])[[]]m4_dnl\n", to_h);
fputs ("m4_define([[M4_YY_IN_HEADER]],[[]])m4_dnl\n", to_h);
fprintf (to_h,
"m4_define( [[M4_YY_OUTFILE_NAME]],[[%s]])m4_dnl\n",
headerfilename ? headerfilename : "<stdout>");
env.headerfilename != NULL ? env.headerfilename : "<stdout>");
}
fputs (check_4_gnu_m4, to_c);
fputs (check_4_gnu_m4, to_c);
fputs ("m4_changecom`'m4_dnl\n", to_c);
fputs ("m4_changequote`'m4_dnl\n", to_c);
fputs ("m4_changequote([[,]])[[]]m4_dnl\n", to_c);
fputs ("m4_define([[M4_YY_NOOP]])[[]]m4_dnl\n", to_c);
fprintf (to_c, "m4_define( [[M4_YY_OUTFILE_NAME]],[[%s]])m4_dnl\n",
outfilename ? outfilename : "<stdout>");
env.outfilename != NULL ? env.outfilename : "<stdout>");
while (fgets (buf, sizeof buf, stdin)) {
fputs (buf, to_c);
@@ -290,13 +285,8 @@ int filter_tee_header (struct filter *chain)
fprintf (to_h, "\n");
/* write a fake line number. It will get fixed by the linedir filter. */
if (gen_line_dirs)
fprintf (to_h, "#line 4000 \"M4_YY_OUTFILE_NAME\"\n");
fprintf (to_h, "#undef %sIN_HEADER\n", prefix);
fprintf (to_h, "#endif /* %sHEADER_H */\n", prefix);
fputs ("m4_undefine( [[M4_YY_IN_HEADER]])m4_dnl\n", to_h);
if (ctrl.gen_line_dirs)
line_directive_out (to_h, NULL, 4000);
fflush (to_h);
if (ferror (to_h))
lerr (_("error writing output file %s"),
@@ -310,11 +300,11 @@ int filter_tee_header (struct filter *chain)
fflush (to_c);
if (ferror (to_c))
lerr (_("error writing output file %s"),
outfilename ? outfilename : "<stdout>");
env.outfilename != NULL ? env.outfilename : "<stdout>");
else if (fclose (to_c))
lerr (_("error closing output file %s"),
outfilename ? outfilename : "<stdout>");
env.outfilename != NULL ? env.outfilename : "<stdout>");
while (wait (0) > 0) ;
@@ -338,6 +328,7 @@ static bool is_blank_line (const char *str)
int filter_fix_linedirs (struct filter *chain)
{
char buf[4096];
const char *traceline_template, *cp;
const size_t readsz = sizeof buf;
int lineno = 1;
bool in_gen = true; /* in generated code */
@@ -350,9 +341,12 @@ int filter_fix_linedirs (struct filter *chain)
regmatch_t m[10];
/* Check for #line directive. */
if (buf[0] == '#'
&& regexec (&regex_linedir, buf, 3, m, 0) == 0) {
/* Check for directive. Note wired-in assumption:
* field reference 1 is line number, 2 is filename.
*/
if (ctrl.traceline_re != NULL &&
ctrl.traceline_template != NULL &&
regexec (&regex_linedir, buf, 3, m, 0) == 0) {
char *fname;
@@ -360,10 +354,10 @@ int filter_fix_linedirs (struct filter *chain)
fname = regmatch_dup (&m[2], buf);
if (strcmp (fname,
outfilename ? outfilename : "<stdout>")
env.outfilename != NULL ? env.outfilename : "<stdout>")
== 0
|| strcmp (fname,
headerfilename ? headerfilename : "<stdout>")
env.headerfilename != NULL ? env.headerfilename : "<stdout>")
== 0) {
char *s1, *s2;
@@ -387,8 +381,9 @@ int filter_fix_linedirs (struct filter *chain)
/* Adjust the line directives. */
in_gen = true;
snprintf (buf, readsz, "#line %d \"%s\"\n",
snprintf (buf, readsz, traceline_template,
lineno + 1, filename);
strncat(buf, "\n", sizeof(buf)-1);
}
else {
/* it's a #line directive for code we didn't write */
@@ -418,11 +413,11 @@ int filter_fix_linedirs (struct filter *chain)
fflush (stdout);
if (ferror (stdout))
lerr (_("error writing output file %s"),
outfilename ? outfilename : "<stdout>");
env.outfilename != NULL ? env.outfilename : "<stdout>");
else if (fclose (stdout))
lerr (_("error closing output file %s"),
outfilename ? outfilename : "<stdout>");
env.outfilename != NULL ? env.outfilename : "<stdout>");
return 0;
}
+169 -141
View File
@@ -64,8 +64,6 @@
#ifdef HAVE_SYS_PARAMS_H
#include <sys/params.h>
#endif
/* Required: stat() in <sys/stat.h> */
#include <sys/stat.h>
/* Required: wait() in <sys/wait.h> */
#include <sys/wait.h>
#include <stdbool.h>
@@ -113,8 +111,6 @@
/* Whether an integer is a power of two */
#define is_power_of_2(n) ((n) > 0 && ((n) & ((n) - 1)) == 0)
#define unspecified -1
/* Special chk[] values marking the slots taking by end-of-buffer and action
* numbers.
*/
@@ -298,101 +294,140 @@
*/
#define BAD_SUBSCRIPT -32767
/* Absolute value of largest number that can be stored in a short, with a
* bit of slop thrown in for general paranoia.
typedef enum trit_t {
trit_unspecified = -1,
trit_false = 0,
trit_true = 1,
} trit;
/* Control variables. These are in a struct to avoid having to replicate definitions
* twice for each option, instead a single struct can be declared and externed.
* If it's in this structure, it has a corresponding m4 symbol.
*/
#define MAX_SHORT 32700
/* Method table describing a language-specific back end */
struct flex_backend_t {
const char *(*suffix)(void); // Generate suffix for lexer source code
void (*prolog)(void);
const char **skel;
void (*epilog)(void);
const char *(*yy_int_aligned)(void); // Generate aligned type for this back end
char *trace_fmt; // Trace message format
// Language syntax generation
char *int_define_fmt; // Format for integer constant definitions
char *string_define_fmt; // Format for string constant definitions
char *table_opener; // Open an array initializer with this
char *table_continuation; // Open an array initializer with this
char *table_closer; // How to continue a two-level initializer
char *dyad; // How to format and int[2] initializer
void (*comment)(const char *); // Wrap a comment line
const char *(*get_int16_decl)(void); // Format for declaring array initializer of int16s
const char *(*get_int32_decl)(void); // Format for declaring array initializer of int32s
const char *(*get_state_decl)(void); // Format for declaring array initializer of state values
const char *(*get_yy_char_decl)(void); // Format for declaring array initializer of input chars
// Flex table generation
void (*ntod)(size_t); // Generate nxt table for ntod
void (*mkeoltbl)(void); // Make end-of-line table
void (*geneoltbl)(size_t); // Generate end-of-line transitions
void (*mkctbl)(size_t); // Make full-speed compressed table
void (*mkssltbl)(void); // Make start_state_list table
void (*gen_yy_trans)(size_t); // Table of verify for transition and offset to next state. (sic)
void (*start_state_list)(size_t); // Start initializer for table of pointers to start states
void (*mkftbl)(); // Make full table
const char *state_entry_fmt; // Format of state table entry
void (*mkecstbl)(void); // Make equivalence-class tables
void (*gentabs_acclist)(void); // Generate accept list initializer
void (*gentabs_accept)(void); // Generate accept table initializer
void (*gentabs_yy_meta)(void); // Generate yy_meta table initializer
void (*gentabs_yy_base)(void); // Generate yy_base table initializer
void (*gentabs_yy_def)(size_t); // Generate yy_def initializer
void (*gentabs_yy_nxt)(size_t); // Generate yy_nxt initializer
void (*gentabs_yy_chk)(size_t); // Generate yy_chk initializer
void (*nultrans)(int); // Generate nulltrans initializer
const char *(*trans_offset_type)(int); // Compute an efficient type for transition tables
char *caseprefix; // Prefix of an arm in the language's case construct
char *fallthrough; // Finish a case arm with this to fall through
char *endcase; // What to ship after all EOF-state case arms
int c_like; // Will &yy_transition[%d]," produce a pointer table entry?
struct ctrl_bundle_t {
bool always_interactive;// always use cheacter-by-character input
FILE *backing_up_file; // file to summarize backing-up states to
bool bison_bridge_lval; // (--bison-bridge), bison pure calling convention.
bool bison_bridge_lloc; // (--bison-locations), bison yylloc.
size_t bufsize; // input buffer size
bool C_plus_plus; // (-+ flag) generate a C++ scanner class
int csize; // size of character set for the scanner
// 128 for 7-bit chars and 256 for 8-bit
bool ddebug; // (-d) make a "debug" scanner
trit do_main; // generate main part to make lexer standalone.
bool do_stdinit; // whether to initialize yyin/yyout to stdin/stdout
bool do_yylineno; // if true, generate code to maintain yylineno
bool do_yywrap; // do yywrap() processing on EOF.
// If false, EOF treated as "no more files"
bool fullspd; // (-F flag) use Jacobson method of table representation
bool fulltbl; // (-Cf flag) don't compress the DFA state table
bool gen_line_dirs; // (no -L flag) generate #line directives
trit interactive; // (-I) generate an interactive scanner
bool never_interactive; // always use buffered input, don't check for tty.
bool lex_compat; // (-l), maximize compatibility with AT&T lex
bool long_align; // (-Ca flag), favor long-word alignment for speed
bool no_yyinput; // suppress use of yyinput()
bool no_unistd; // suppress inclusion of unistd.h
bool posix_compat; // (-X) maximize compatibility with POSIX lex
char *prefix; // prefix for externally visible names, default "yy"
trit reject_really_used;// Force generation of support code for reject operation
bool reentrant; // if true (-R), generate a reentrant C scanner
bool rewrite; // Appl;y magic rewre rles to special fumctions
bool stack_used; // Enable use of start-condition stacks
bool no_section3_escape;// True if the undocumented option --unsafe-no-m4-sect3-escape was passed
bool spprdflt; // (-s) suppress the default rule
bool useecs; // (-Ce flag) use equivalence classes
bool usemecs; // (-Cm flag), use meta-equivalence classes
bool use_read; // (-f, -F, or -Cr) use read() for scanner input
// otherwise, use fread().
char *yyclass; // yyFlexLexer subclass to use for YY_DECL
char *yydecl; // user-specfied prototype for yylex.
int yylmax; // Maximum buffer length if %array
trit yymore_really_used;// Force geberation of support code for yymore
bool yytext_is_array; // if true (i.e., %array directive), then declare
// yytext as array instead of a character pointer.
// Nice and inefficient.
bool noyyread; // User supplied a yyread function, don't generate default
char *userinit; // Code fragment to be inserted before scanning
char *preaction; // Code fragment to be inserted before each action
char *postaction; // Code fragment to be inserted after each action
char *emit; // Specify target language to emit.
char *yyterminate; // Set a non-default termination hook.
bool no_yypanic; // if true, no not generate default yypanic function
// flags corresponding to the huge mass of --no-yy options
bool no_yy_push_state;
bool no_yy_pop_state;
bool no_yy_top_state;
bool no_yyunput;
bool no_yy_scan_buffer;
bool no_yy_scan_bytes;
bool no_yy_scan_string;
bool no_yyget_extra;
bool no_yyset_extra;
bool no_yyget_leng;
bool no_yyget_text;
bool no_yyget_lineno;
bool no_yyset_lineno;
bool no_yyget_column;
bool no_yyset_column;
bool no_yyget_in;
bool no_yyset_in;
bool no_yyget_out;
bool no_yyset_out;
bool no_yyget_lval;
bool no_yyset_lval;
bool no_yyget_lloc;
bool no_yyset_lloc;
bool no_flex_alloc;
bool no_flex_realloc;
bool no_flex_free;
bool no_get_debug;
bool no_set_debug;
// Properties read from the skeleton
const char *backend_name; // What the back end tells you its name is
const char *traceline_re; // Regular expression for recognizing tracelines */
const char *traceline_template; // templare for emitting trace lines */
bool have_state_entry_format; // Do we know how to make a state entry address?
};
extern bool gentables;
/* Environment variables. These control the lexer operation, but do
* not have corresponding m4 symbols and do not affect the behavior of
* the generated parser.
*/
struct env_bundle_t {
bool backing_up_report; // (-b flag), generate "lex.backup" file
// listing backing-up states
bool did_outfilename; // whether outfilename was explicitly set
char *headerfilename; // name of the .h file to generate
bool nowarn; // (-w) do not generate warnings
int performance_hint; // if > 0 (i.e., -p flag), generate a report
// relating to scanner performance;
// if > 1 (-p -p), report
// on minor performance problems, too.
char *outfilename; // output file name
bool printstats; // (-v) dump statistics
char *skelname; // name of skeleton for code generation
FILE *skelfile; // the skeleton file'd descriptor
bool trace; // (-T) env.trace processing
bool trace_hex; // use hex in trace/debug outputs not octal
bool use_stdout; // the -t flag
};
extern struct flex_backend_t cpp_backend;
/* Name and byte-width information on a type for code-generation purposes. */
struct packtype_t {
char *name;
size_t width;
};
extern struct ctrl_bundle_t ctrl;
extern struct env_bundle_t env;
/* Declarations for global variables. */
/* Variables for flags:
* printstats - if true (-v), dump statistics
* syntaxerror - true if a syntax error has been found
* eofseen - true if we've seen an eof in the input file
* ddebug - if true (-d), make a "debug" scanner
* trace - if true (-T), trace processing
* nowarn - if true (-w), do not generate warnings
* spprdflt - if true (-s), suppress the default rule
* interactive - if true (-I), generate an interactive scanner
* lex_compat - if true (-l), maximize compatibility with AT&T lex
* posix_compat - if true (-X), maximize compatibility with POSIX lex
* do_yylineno - if true, generate code to maintain yylineno
* useecs - if true (-Ce flag), use equivalence classes
* fulltbl - if true (-Cf flag), don't compress the DFA state table
* usemecs - if true (-Cm flag), use meta-equivalence classes
* fullspd - if true (-F flag), use Jacobson method of table representation
* gen_line_dirs - if true (i.e., no -L flag), generate #line directives
* performance_report - if > 0 (i.e., -p flag), generate a report relating
* to scanner performance; if > 1 (-p -p), report on minor performance
* problems, too
* backing_up_report - if true (i.e., -b flag), generate "lex.backup" file
* listing backing-up states
* C_plus_plus - if true (i.e., -+ flag), generate a C++ scanner class;
* otherwise, a standard C scanner
* reentrant - if true (-R), generate a reentrant C scanner.
* bison_bridge_lval - if true (--bison-bridge), bison pure calling convention.
* bison_bridge_lloc - if true (--bison-locations), bison yylloc.
* long_align - if true (-Ca flag), favor long-word alignment.
* use_read - if true (-f, -F, or -Cr) then use read() for scanner input;
* otherwise, use fread().
* yytext_is_array - if true (i.e., %array directive), then declare
* yytext as a array instead of a character pointer. Nice and inefficient.
* do_yywrap - do yywrap() processing on EOF. If false, EOF treated as
* "no more files".
* csize - size of character set for the scanner we're generating;
* 128 for 7-bit chars and 256 for 8-bit
* yymore_used - if true, yymore() is used in input rules
* reject - if true, generate back-up tables for REJECT macro
* real_reject - if true, scanner really uses REJECT (as opposed to just
@@ -403,42 +438,20 @@ extern struct flex_backend_t cpp_backend;
* yymore_really_used - whether to treat yymore() as really used, regardless
* of what we think based on references to it in the user's actions.
* reject_really_used - same for REJECT
* trace_hex - use hexadecimal numbers in trace/debug outputs instead of octals
*/
*/
extern int printstats, syntaxerror, eofseen, ddebug, trace, nowarn,
spprdflt;
extern int interactive, lex_compat, posix_compat, do_yylineno;
extern int useecs, fulltbl, usemecs, fullspd;
extern int gen_line_dirs, performance_report, backing_up_report;
extern int reentrant, bison_bridge_lval, bison_bridge_lloc;
extern int C_plus_plus, long_align, use_read, yytext_is_array, do_yywrap;
extern int csize;
extern int syntaxerror, eofseen;
extern int yymore_used, reject, real_reject, continued_action, in_rule;
extern int yymore_really_used, reject_really_used;
extern int trace_hex;
extern struct flex_backend_t *backend;
/* Variables used in the flex input routines:
* datapos - characters on current output line
* dataline - number of contiguous lines of data in current data
* statement. Used to generate readable -f output
* linenum - current input line number
* skelfile - the skeleton file
* skel - compiled-in skeleton array
* skel_ind - index into "skel" array, if skelfile is nil
* yyin - input file
* backing_up_file - file to summarize backing-up states to
* infilename - name of input file
* outfilename - name of output file
* headerfilename - name of the .h file to generate
* did_outfilename - whether outfilename was explicitly set
* prefix - the prefix used for externally visible names ("yy" by default)
* yyclass - yyFlexLexer subclass to use for YY_DECL
* do_stdinit - whether to initialize yyin/yyout to stdin/stdout
* use_stdout - the -t flag
* input_files - array holding names of input files
* num_input_files - size of input_files array
* program_name - name with which program was invoked
@@ -454,13 +467,9 @@ extern struct flex_backend_t *backend;
*/
extern int datapos, dataline, linenum;
extern FILE *skelfile, *backing_up_file;
extern const char *skel[];
extern int skel_ind;
extern char *infilename, *outfilename, *headerfilename;
extern int did_outfilename;
extern char *prefix, *yyclass, *extra_type;
extern int do_stdinit, use_stdout;
extern char *infilename;
extern char *extra_type;
extern char **input_files;
extern int num_input_files;
extern char *program_name;
@@ -513,6 +522,7 @@ extern int onenext[ONE_STACK_SIZE], onedef[ONE_STACK_SIZE], onesp;
* rule_has_nl - true if rule could possibly match a newline
* ccl_has_nl - true if current ccl could match a newline
* nlch - default eol char
* footprint - total size of tables, in bytes.
*/
extern int maximum_mns, current_mns, current_max_rules;
@@ -522,6 +532,8 @@ extern int *accptnum, *assoc_rule, *state_type;
extern int *rule_type, *rule_linenum, *rule_useful;
extern bool *rule_has_nl, *ccl_has_nl;
extern int nlch;
extern size_t footprint;
/* Different types of states; values are useful as masks, as well, for
* routines like check_trailing_context().
@@ -661,6 +673,7 @@ extern unsigned char *ccltbl;
/* Variables for miscellaneous information:
* nmstr - last NAME scanned by the scanner
* nmval - last numeric scanned by the scanner
* sectnum - section number currently being parsed
* nummt - number of empty nxt/chk table entries
* hshcol - number of hash collisions detected by snstods
@@ -680,7 +693,7 @@ extern unsigned char *ccltbl;
*/
extern char nmstr[MAXLINE];
extern int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs;
extern int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs, nmval;
extern int tmpuses, totnst, peakpairs, numuniq, numdup, hshsave;
extern int num_backing_up, bol_needed;
@@ -759,7 +772,7 @@ extern int *epsclosure(int *, int *, int[], int *, int *);
/* Increase the maximum number of dfas. */
extern void increase_max_dfas(void);
extern void ntod(void); /* convert a ndfa to a dfa */
extern size_t ntod(void); /* convert a ndfa to a dfa */
/* Converts a set of ndfa states into a dfa state. */
extern int snstods(int[], int, int[], int, int, int *);
@@ -784,6 +797,15 @@ extern void mkechar(int, int[], int[]);
extern void do_indent(void); /* indent to the current level */
/* Set a conditional amd make it visible in generated code */
extern void visible_define (const char *);
/* And again, with an explicit value part. */
extern void visible_define_str (const char *, const char *);
/* This time the value part is an int */
extern void visible_define_int (const char *, const int);
/* Generate full speed compressed transition table. */
extern void genctbl(void);
@@ -799,8 +821,11 @@ extern void indent_put2s(const char *, const char *);
/* Write out a string + newline at the current indentation level. */
extern void indent_puts(const char *);
extern void make_tables(void); /* generate transition tables */
/* generate transition tables */
extern void make_tables(void);
/* Select a type for optimal packing */
struct packtype_t *optimize_pack(size_t);
/* from file main.c */
@@ -811,9 +836,6 @@ extern void usage(void);
/* from file misc.c */
/* Add a #define to the action file. */
extern void action_define(const char *defname, int value);
/* Add the given text to the stored actions. */
extern void add_action(const char *new_text);
@@ -839,7 +861,7 @@ extern char *xstrdup(const char *);
extern int cclcmp(const void *, const void *);
/* Finish up a block of data declarations. */
extern void dataend(void);
extern void dataend(const char *);
/* Flush generated data statements. */
extern void dataflush(void);
@@ -886,7 +908,7 @@ extern void lerr_fatal(const char *, ...)
;
/* Spit out a "#line" statement. */
extern void line_directive_out(FILE *, int);
extern void line_directive_out(FILE *, char *, int);
/* Mark the current position in the action array as the end of the section 1
* user defs.
@@ -913,7 +935,6 @@ extern void out_dec(const char *, int);
extern void out_dec2(const char *, int, int);
extern void out_hex(const char *, unsigned int);
extern void out_str(const char *, const char *);
extern void out_str3(const char *, const char *, const char *, const char *);
extern void out_str_dec(const char *, const char *, int);
extern void outc(int);
extern void outn(const char *);
@@ -924,9 +945,6 @@ extern void out_m4_define(const char* def, const char* val);
*/
extern char *readable_form(int);
/* Write out one section of the skeleton file. */
extern void skelout(void);
/* Output a yy_trans_info structure. */
extern void transition_struct_out(int, int);
@@ -1001,6 +1019,8 @@ extern void lwarn(const char *); /* report a warning */
extern void yyerror(const char *); /* report a parse error */
extern int yyparse(void); /* the YACC parser */
/* Ship a comment to the generated output */
extern void comment(const char *);
/* from file scan.l */
@@ -1010,6 +1030,22 @@ extern int flexscan(void);
/* Open the given file (if NULL, stdin) for scanning. */
extern void set_input_file(char *);
/* from file skeletons.c */
/* return the correct file suffix for the selrcted back end */
const char *suffix (void);
/* Mine a text-valued property out of the skeleton file */
extern const char *skel_property(const char *);
/* Is the default back end selected?*/
extern bool is_default_backend(void);
/* Select a backend by name */
extern void backend_by_name(const char *);
/* Write out one section of the skeleton file. */
extern void skelout(bool);
/* from file sym.c */
@@ -1029,6 +1065,8 @@ extern void scinstal(const char *, int); /* make a start condition */
/* Lookup the number associated with a start condition. */
extern int sclookup(const char *);
/* Supply context argument for a function if required */
extern void context_call(char *);
/* from file tblcmp.c */
@@ -1072,22 +1110,12 @@ struct Buf {
extern void buf_init(struct Buf * buf, size_t elem_size);
extern void buf_destroy(struct Buf * buf);
extern struct Buf *buf_append(struct Buf * buf, const void *ptr, int n_elem);
extern struct Buf *buf_concat(struct Buf* dest, const struct Buf* src);
extern struct Buf *buf_strappend(struct Buf *, const char *str);
extern struct Buf *buf_strnappend(struct Buf *, const char *str, int nchars);
extern struct Buf *buf_strdefine(struct Buf * buf, const char *str, const char *def);
extern struct Buf *buf_prints(struct Buf *buf, const char *fmt, const char* s);
extern struct Buf *buf_m4_define(struct Buf *buf, const char* def, const char* val);
extern struct Buf *buf_m4_undefine(struct Buf *buf, const char* def);
extern struct Buf *buf_print_strings(struct Buf * buf, FILE* out);
extern struct Buf *buf_linedir(struct Buf *buf, const char* filename, int lineno);
extern struct Buf userdef_buf; /* a string buffer for #define's generated by user-options on cmd line. */
extern struct Buf defs_buf; /* a char* buffer to save #define'd some symbols generated by flex. */
extern struct Buf yydmap_buf; /* a string buffer to hold yydmap elements */
extern struct Buf m4defs_buf; /* Holds m4 definitions. */
extern struct Buf top_buf; /* contains %top code. String buffer. */
extern bool no_section3_escape; /* True if the undocumented option --unsafe-no-m4-sect3-escape was passed */
/* For blocking out code from the header file. */
#define OUT_BEGIN_CODE() outn("m4_ifdef( [[M4_YY_IN_HEADER]],,[[m4_dnl")
@@ -1158,7 +1186,7 @@ extern int filter_fix_linedirs(struct filter *chain);
*/
extern regex_t regex_linedir;
bool flex_init_regex(void);
bool flex_init_regex(const char *);
void flex_regcomp(regex_t *preg, const char *regex, int cflags);
char *regmatch_dup (regmatch_t * m, const char *src);
char *regmatch_cpy (regmatch_t * m, char *dest, const char *src);
+9
View File
@@ -4,6 +4,11 @@
#define YYFLEX_INTTYPES_DEFINED
/* Prefer C99 integer types if available. */
# if defined(__cplusplus) && __cplusplus >= 201103L
#include <cstdint>
# define YYFLEX_USE_STDINT
# endif
# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
/* Include <inttypes.h> and not <stdint.h> because Solaris 2.6 has the former
* and not the latter.
@@ -33,7 +38,11 @@ typedef unsigned short int flex_uint16_t;
# ifdef __STDC__
typedef signed char flex_int8_t;
/* ISO C only requires at least 16 bits for int. */
# ifdef __cplusplus
#include <climits>
# else
#include <limits.h>
# endif
# if UINT_MAX >= 4294967295
# define YYFLEX_INT32_DEFINED
typedef int flex_int32_t;
+200 -303
View File
@@ -34,11 +34,31 @@
#include "flexdef.h"
#include "tables.h"
/* These typedefs are only used for computing footprint sizes,
* You need to make sure they match reality in the skeleton file to
* get accurate numbers, but they don't otherwise matter.
*/
typedef char YY_CHAR;
struct yy_trans_info {int32_t yy_verify; int32_t yy_nxt;};
/* declare functions that have forward references */
void genecs(void);
struct packtype_t *optimize_pack(size_t sz)
{
/* FIXME: There's a 32-bit assumption lurking here */
static struct packtype_t out;
if (sz == 0) {
out.name = ctrl.long_align ? "M4_HOOK_INT32" : "M4_HOOK_INT16";
out.width = ctrl.long_align ? 32 : 16;
} else {
out.name = (ctrl.long_align || sz >= INT16_MAX) ? "M4_HOOK_INT32" : "M4_HOOK_INT16";
out.width = (ctrl.long_align || sz >= INT16_MAX) ? 32 : 16;
}
return &out;
}
/** Make the table for possible eol matches.
* @return the newly allocated rule_can_match_eol table
*/
@@ -58,7 +78,6 @@ static struct yytbl_data *mkeoltbl (void)
for (i = 1; i <= num_rules; i++)
tdata[i] = rule_has_nl[i] ? 1 : 0;
backend->mkeoltbl();
return tbl;
}
@@ -66,9 +85,12 @@ static struct yytbl_data *mkeoltbl (void)
static void geneoltbl (void)
{
int i;
struct packtype_t *ptype = optimize_pack(num_rules);
outn ("m4_ifdef( [[M4_YY_USE_LINENO]],[[");
backend->geneoltbl(num_rules + 1);
outn ("m4_ifdef( [[M4_MODE_YYLINENO]],[[");
out_str ("m4_define([[M4_HOOK_EOLTABLE_TYPE]], [[%s]])\n", ptype->name);
out_dec ("m4_define([[M4_HOOK_EOLTABLE_SIZE]], [[%d]])", num_rules + 1);
outn ("m4_define([[M4_HOOK_EOLTABLE_BODY]], [[m4_dnl");
if (gentables) {
for (i = 1; i <= num_rules; i++) {
@@ -77,8 +99,9 @@ static void geneoltbl (void)
if ((i % 20) == 19)
out ("\n ");
}
outn (backend->table_closer);
}
footprint += num_rules * ptype->width;
outn ("]])");
outn ("]])");
}
@@ -97,7 +120,8 @@ static struct yytbl_data *mkctbl (void)
flex_int32_t *tdata = 0, curr = 0;
int end_of_buffer_action = num_rules + 1;
backend->mkctbl(tblend + numecs + 1);
struct packtype_t *ptype = optimize_pack(tblend + numecs + 1);
out_str ("m4_define([[M4_HOOK_MKCTBL_TYPE]], [[%s]])", ptype->name);
tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (tbl, YYTD_ID_TRANSITION);
@@ -174,7 +198,6 @@ static struct yytbl_data *mkctbl (void)
}
}
/* Here's the final, end-of-buffer state. */
tdata[curr++] = chk[tblend + 1];
tdata[curr++] = nxt[tblend + 1];
@@ -207,8 +230,6 @@ static struct yytbl_data *mkssltbl (void)
for (i = 0; i <= lastsc * 2; ++i)
tdata[i] = base[i];
backend->mkssltbl();
return tbl;
}
@@ -222,7 +243,8 @@ void genctbl (void)
int end_of_buffer_action = num_rules + 1;
/* Table of verify for transition and offset to next state. */
backend->gen_yy_trans(tblend + numecs + 1);
out_dec ("m4_define([[M4_HOOK_TRANSTABLE_SIZE]], [[%d]])", tblend + numecs + 1);
outn ("m4_define([[M4_HOOK_TRANSTABLE_BODY]], [[m4_dnl");
/* We want the transition to be represented as the offset to the
* next state, not the actual state number, which is what it currently
@@ -289,21 +311,22 @@ void genctbl (void)
transition_struct_out (chk[tblend + 1], nxt[tblend + 1]);
transition_struct_out (chk[tblend + 2], nxt[tblend + 2]);
if (gentables)
outn (backend->table_closer);
outn ("]])");
footprint += sizeof(struct yy_trans_info) * (tblend + numecs + 1);
backend->start_state_list(lastsc * 2 + 1);
out_dec ("m4_define([[M4_HOOK_STARTTABLE_SIZE]], [[%d]])", lastsc * 2 + 1);
if (gentables) {
outn (backend->table_opener);
outn ("m4_define([[M4_HOOK_STARTTABLE_BODY]], [[m4_dnl");
for (i = 0; i <= lastsc * 2; ++i)
out_dec (backend->state_entry_fmt, base[i]);
out_dec ("M4_HOOK_STATE_ENTRY_FORMAT(%d)", base[i]);
dataend ();
dataend (NULL);
outn("]])");
footprint += sizeof(struct yy_trans_info *) * (lastsc * 2 + 1);
}
if (useecs)
if (ctrl.useecs)
genecs ();
}
@@ -320,18 +343,16 @@ static struct yytbl_data *mkecstbl (void)
yytbl_data_init (tbl, YYTD_ID_EC);
tbl->td_flags |= YYTD_DATA32;
tbl->td_hilen = 0;
tbl->td_lolen = (flex_uint32_t) csize;
tbl->td_lolen = (flex_uint32_t) ctrl.csize;
tbl->td_data = tdata =
calloc(tbl->td_lolen, sizeof (flex_int32_t));
for (i = 1; i < csize; ++i) {
for (i = 1; i < ctrl.csize; ++i) {
ecgroup[i] = ABS (ecgroup[i]);
tdata[i] = ecgroup[i];
}
backend->mkecstbl();
return tbl;
}
@@ -342,23 +363,26 @@ void genecs (void)
int ch, row;
int numrows;
out_str_dec (backend->get_yy_char_decl (), "yy_ec", csize);
out_dec ("m4_define([[M4_HOOK_ECSTABLE_SIZE]], [[%d]])", ctrl.csize);
outn ("m4_define([[M4_HOOK_ECSTABLE_BODY]], [[m4_dnl");
for (ch = 1; ch < csize; ++ch) {
for (ch = 1; ch < ctrl.csize; ++ch) {
ecgroup[ch] = ABS (ecgroup[ch]);
mkdata (ecgroup[ch]);
}
dataend ();
dataend (NULL);
outn("]])");
footprint += sizeof(YY_CHAR) * ctrl.csize;
if (trace) {
if (env.trace) {
fputs (_("\n\nEquivalence Classes:\n\n"), stderr);
/* Print in 8 columns */
numrows = csize / 8;
numrows = ctrl.csize / 8;
for (row = 0; row < numrows; ++row) {
for (ch = row; ch < csize; ch += numrows) {
for (ch = row; ch < ctrl.csize; ch += numrows) {
fprintf (stderr, "%4s = %-2d",
readable_form (ch), ecgroup[ch]);
@@ -397,12 +421,11 @@ struct yytbl_data *mkftbl (void)
tdata[i] = anum;
if (trace && anum)
if (env.trace && anum)
fprintf (stderr, _("state # %d accepts: [%d]\n"),
i, anum);
}
backend->mkftbl();
return tbl;
}
@@ -413,25 +436,30 @@ void genftbl (void)
{
int i;
int end_of_buffer_action = num_rules + 1;
out_str_dec (long_align ? backend->get_int32_decl () : backend->get_int16_decl (),
"yy_accept", lastdfa + 1);
struct packtype_t *ptype = optimize_pack(num_rules + 1);
dfaacc[end_of_buffer_state].dfaacc_state = end_of_buffer_action;
outn ("m4_define([[M4_HOOK_NEED_ACCEPT]], 1)");
out_str ("m4_define([[M4_HOOK_ACCEPT_TYPE]], [[%s]])", ptype->name);
out_dec ("m4_define([[M4_HOOK_ACCEPT_SIZE]], [[%d]])", lastdfa + 1);
outn ("m4_define([[M4_HOOK_ACCEPT_BODY]], [[m4_dnl");
for (i = 1; i <= lastdfa; ++i) {
int anum = dfaacc[i].dfaacc_state;
mkdata (anum);
if (trace && anum)
if (env.trace && anum)
fprintf (stderr, _("state # %d accepts: [%d]\n"),
i, anum);
}
dataend ();
dataend (NULL);
outn("]])");
footprint += (lastdfa + 1) * ptype->width;
if (useecs)
if (ctrl.useecs)
genecs ();
/* Don't have to dump the actual full table entries - they were
@@ -443,13 +471,14 @@ void genftbl (void)
void gentabs (void)
{
int i, j, k, *accset, nacc, *acc_array, total_states;
int sz, i, j, k, *accset, nacc, *acc_array, total_states;
int end_of_buffer_action = num_rules + 1;
struct yytbl_data *yyacc_tbl = 0, *yymeta_tbl = 0, *yybase_tbl = 0,
*yydef_tbl = 0, *yynxt_tbl = 0, *yychk_tbl = 0, *yyacclist_tbl=0;
flex_int32_t *yyacc_data = 0, *yybase_data = 0, *yydef_data = 0,
*yynxt_data = 0, *yychk_data = 0, *yyacclist_data=0;
flex_int32_t yybase_curr = 0, yyacclist_curr=0,yyacc_curr=0;
struct packtype_t *ptype;
acc_array = allocate_integer_array (current_max_dfas);
nummt = 0;
@@ -477,12 +506,12 @@ void gentabs (void)
dfaacc[end_of_buffer_state].dfaacc_set =
EOB_accepting_list;
out_str_dec (long_align ? backend->get_int32_decl () :
backend->get_int16_decl (), "yy_acclist", MAX (numas,
1) + 1);
sz = MAX (numas, 1) + 1;
ptype = optimize_pack(sz);
out_str ("m4_define([[M4_HOOK_ACCLIST_TYPE]], [[%s]])", ptype->name);
out_dec ("m4_define([[M4_HOOK_ACCLIST_SIZE]], [[%d]])", sz);
outn ("m4_define([[M4_HOOK_ACCLIST_BODY]], [[m4_dnl");
backend->gentabs_acclist();
yyacclist_tbl = calloc(1,sizeof(struct yytbl_data));
yytbl_data_init (yyacclist_tbl, YYTD_ID_ACCLIST);
yyacclist_tbl->td_lolen = (flex_uint32_t) (MAX(numas,1) + 1);
@@ -499,7 +528,7 @@ void gentabs (void)
accset = dfaacc[i].dfaacc_set;
nacc = accsiz[i];
if (trace)
if (env.trace)
fprintf (stderr,
_("state # %d accepts: "),
i);
@@ -526,7 +555,7 @@ void gentabs (void)
mkdata (accnum);
yyacclist_data[yyacclist_curr++] = accnum;
if (trace) {
if (env.trace) {
fprintf (stderr, "[%d]",
accset[k]);
@@ -544,7 +573,9 @@ void gentabs (void)
/* add accepting number for the "jam" state */
acc_array[i] = j;
dataend ();
dataend (NULL);
outn("]])");
footprint += sz * ptype->width;
if (tablesext) {
yytbl_data_compress (yyacclist_tbl);
if (yytbl_data_fwrite (&tableswr, yyacclist_tbl) < 0)
@@ -575,7 +606,7 @@ void gentabs (void)
/* "lastdfa + 2" is the size of "yy_accept"; includes room for C arrays
* beginning at 0 and for "jam" state.
*/
k = lastdfa + 2;
sz = lastdfa + 2;
if (reject)
/* We put a "cap" on the table associating lists of accepting
@@ -583,16 +614,18 @@ void gentabs (void)
* where the end of an accepting list is by looking at where
* the list for the next state starts.
*/
++k;
++sz;
out_str_dec (long_align ? backend->get_int32_decl () : backend->get_int16_decl (),
"yy_accept", k);
/* Note that this table is alternately defined if ctrl.fulltbl */
ptype = optimize_pack(sz);
outn ("m4_define([[M4_HOOK_NEED_ACCEPT]], 1)");
out_str ("m4_define([[M4_HOOK_ACCEPT_TYPE]], [[%s]])", ptype->name);
out_dec ("m4_define([[M4_HOOK_ACCEPT_SIZE]], [[%d]])", sz);
outn ("m4_define([[M4_HOOK_ACCEPT_BODY]], [[m4_dnl");
backend->gentabs_accept();
yyacc_tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (yyacc_tbl, YYTD_ID_ACCEPT);
yyacc_tbl->td_lolen = (flex_uint32_t) k;
yyacc_tbl->td_lolen = (flex_uint32_t) sz;
yyacc_tbl->td_data = yyacc_data =
calloc(yyacc_tbl->td_lolen, sizeof (flex_int32_t));
yyacc_curr=1;
@@ -601,7 +634,7 @@ void gentabs (void)
mkdata (acc_array[i]);
yyacc_data[yyacc_curr++] = acc_array[i];
if (!reject && trace && acc_array[i])
if (!reject && env.trace && acc_array[i])
fprintf (stderr, _("state # %d accepts: [%d]\n"),
i, acc_array[i]);
}
@@ -616,7 +649,10 @@ void gentabs (void)
yyacc_data[yyacc_curr++] = acc_array[i];
}
dataend ();
dataend (NULL);
outn ("]])");
footprint += sz * ptype->width;
if (tablesext) {
yytbl_data_compress (yyacc_tbl);
if (yytbl_data_fwrite (&tableswr, yyacc_tbl) < 0)
@@ -626,7 +662,7 @@ void gentabs (void)
yyacc_tbl = NULL;
/* End generating yy_accept */
if (useecs) {
if (ctrl.useecs) {
genecs ();
if (tablesext) {
@@ -641,7 +677,7 @@ void gentabs (void)
}
}
if (usemecs) {
if (ctrl.usemecs) {
/* Begin generating yy_meta */
/* Write out meta-equivalence classes (used to index
* templates with).
@@ -654,15 +690,14 @@ void gentabs (void)
calloc(yymeta_tbl->td_lolen,
sizeof (flex_int32_t));
if (trace)
if (env.trace)
fputs (_("\n\nMeta-Equivalence Classes:\n"),
stderr);
out_str_dec (backend->get_yy_char_decl (), "yy_meta", numecs + 1);
backend->gentabs_yy_meta();
out_dec ("m4_define([[M4_HOOK_MECSTABLE_SIZE]], [[%d]])", numecs+1);
outn ("m4_define([[M4_HOOK_MECSTABLE_BODY]], [[m4_dnl");
for (i = 1; i <= numecs; ++i) {
if (trace)
if (env.trace)
fprintf (stderr, "%d = %d\n",
i, ABS (tecbck[i]));
@@ -670,7 +705,9 @@ void gentabs (void)
yymecs_data[i] = ABS (tecbck[i]);
}
dataend ();
dataend (NULL);
outn ("]])");
footprint += sizeof(YY_CHAR) * (numecs + 1);
if (tablesext) {
yytbl_data_compress (yymeta_tbl);
if (yytbl_data_fwrite (&tableswr, yymeta_tbl) < 0)
@@ -684,11 +721,12 @@ void gentabs (void)
total_states = lastdfa + numtemps;
/* Begin generating yy_base */
out_str_dec ((tblend >= INT16_MAX || long_align) ?
backend->get_int32_decl () : backend->get_int16_decl (),
"yy_base", total_states + 1);
sz = total_states + 1;
ptype = optimize_pack(sz);
out_str ("m4_define([[M4_HOOK_BASE_TYPE]], [[%s]])", ptype->name);
out_dec ("m4_define([[M4_HOOK_BASE_SIZE]], [[%d]])", sz);
outn ("m4_define([[M4_HOOK_BASE_BODY]], [[m4_dnl");
backend->gentabs_yy_base();
yybase_tbl = calloc (1, sizeof (struct yytbl_data));
yytbl_data_init (yybase_tbl, YYTD_ID_BASE);
yybase_tbl->td_lolen = (flex_uint32_t) (total_states + 1);
@@ -726,7 +764,10 @@ void gentabs (void)
def[i] = jamstate;
}
dataend ();
dataend (NULL);
outn ("]])");
footprint += sz * ptype->width;
if (tablesext) {
yytbl_data_compress (yybase_tbl);
if (yytbl_data_fwrite (&tableswr, yybase_tbl) < 0)
@@ -738,15 +779,14 @@ void gentabs (void)
/* Begin generating yy_def */
out_str_dec ((total_states >= INT16_MAX || long_align) ?
backend->get_int32_decl () : backend->get_int16_decl (),
"yy_def", total_states + 1);
backend->gentabs_yy_def(total_states);
ptype = optimize_pack(total_states + 1);
out_str ("m4_define([[M4_HOOK_DEF_TYPE]], [[%s]])", ptype->name);
out_dec ("m4_define([[M4_HOOK_DEF_SIZE]], [[%d]])", total_states + 1);
outn ("m4_define([[M4_HOOK_DEF_BODY]], [[m4_dnl");
yydef_tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (yydef_tbl, YYTD_ID_DEF);
yydef_tbl->td_lolen = (flex_uint32_t) (total_states + 1);
yydef_tbl->td_lolen = (flex_uint32_t)(total_states + 1);
yydef_tbl->td_data = yydef_data =
calloc(yydef_tbl->td_lolen, sizeof (flex_int32_t));
@@ -755,7 +795,10 @@ void gentabs (void)
yydef_data[i] = def[i];
}
dataend ();
dataend (NULL);
outn ("]])");
footprint += (total_states + 1) * ptype->width;
if (tablesext) {
yytbl_data_compress (yydef_tbl);
if (yytbl_data_fwrite (&tableswr, yydef_tbl) < 0)
@@ -766,12 +809,13 @@ void gentabs (void)
/* End generating yy_def */
/* Begin generating yy_nxt */
out_str_dec ((total_states >= INT16_MAX || long_align) ?
backend->get_int32_decl () : backend->get_int16_decl (), "yy_nxt",
tblend + 1);
backend->gentabs_yy_nxt(total_states);
ptype = optimize_pack(tblend + 1);
/* Note: Used when !ctrl.fulltbl && !ctrl.fullspd).
* (Alternately defined when ctrl.fullspd)
*/
out_str ("m4_define([[M4_HOOK_YYNXT_TYPE]], [[%s]])", ptype->name);
out_dec ("m4_define([[M4_HOOK_YYNXT_SIZE]], [[%d]])", tblend + 1);
outn ("m4_define([[M4_HOOK_YYNXT_BODY]], [[m4_dnl");
yynxt_tbl = calloc (1, sizeof (struct yytbl_data));
yytbl_data_init (yynxt_tbl, YYTD_ID_NXT);
@@ -790,7 +834,10 @@ void gentabs (void)
yynxt_data[i] = nxt[i];
}
dataend ();
dataend (NULL);
outn("]])");
footprint += ptype->width * (tblend + 1);
if (tablesext) {
yytbl_data_compress (yynxt_tbl);
if (yytbl_data_fwrite (&tableswr, yynxt_tbl) < 0)
@@ -801,11 +848,10 @@ void gentabs (void)
/* End generating yy_nxt */
/* Begin generating yy_chk */
out_str_dec ((total_states >= INT16_MAX || long_align) ?
backend->get_int32_decl () : backend->get_int16_decl (), "yy_chk",
tblend + 1);
backend->gentabs_yy_chk(total_states);
ptype = optimize_pack(tblend + 1);
out_str ("m4_define([[M4_HOOK_CHK_TYPE]], [[%s]])", ptype->name);
out_dec ("m4_define([[M4_HOOK_CHK_SIZE]], [[%d]])", tblend + 1);
outn ("m4_define([[M4_HOOK_CHK_BODY]], [[m4_dnl");
yychk_tbl = calloc (1, sizeof (struct yytbl_data));
yytbl_data_init (yychk_tbl, YYTD_ID_CHK);
@@ -821,7 +867,10 @@ void gentabs (void)
yychk_data[i] = chk[i];
}
dataend ();
dataend (NULL);
outn ("]])");
footprint += ptype->width * (tblend + 1);
if (tablesext) {
yytbl_data_compress (yychk_tbl);
if (yytbl_data_fwrite (&tableswr, yychk_tbl) < 0)
@@ -835,159 +884,44 @@ void gentabs (void)
}
static void visible_define (const char *symname)
void visible_define (const char *symname)
{
out_m4_define(symname, NULL);
backend->comment(symname);
comment(symname);
outc ('\n');
}
/* make_tables - generate transition tables and finishes generating output file
void visible_define_str (const char *symname, const char *val)
{
char buf[128];
out_m4_define(symname, val);
snprintf(buf, sizeof(buf), "%s = %s", symname, val);
comment(buf);
outc ('\n');
}
void visible_define_int (const char *symname, const int val)
{
char nbuf[24], buf[128];
snprintf(nbuf, sizeof(nbuf), "%d", val);
out_m4_define(symname, nbuf);
snprintf(buf, sizeof(buf), "%s = %d", symname, val);
comment(buf);
outc ('\n');
}
/* make_tables - generate transition tables
*/
void make_tables (void)
{
char buf[128];
int i;
int did_eof_rule = false;
struct yytbl_data *yynultrans_tbl = NULL;
// These are used to conditionalize code in the lex skeleton
// that historically used to be generated by C code in flex
// itself; by shoving all this stuff out to the skeleton file
// we make it easier to retarget the code generation.
backend->comment("m4 controls begin");
// mode switches for YY_DO_BEFORE_ACTION code generation
if (yytext_is_array)
visible_define ( "M4_MODE_YYTEXT_IS_ARRAY");
else
visible_define ( "M4_MODE_NO_YYTEXT_IS_ARRAY");
if (yymore_used)
visible_define ( "M4_MODE_YYMORE_USED");
else
visible_define ( "M4_MODE_NO_YYMORE_USED");
// mode switches for yy_trans_info specification
if (fullspd)
visible_define ( "M4_MODE_REAL_FULLSPD");
else
visible_define ( "M4_MODE_NO_REAL_FULLSPD");
// niode switches for YYINPUT code generation
if (use_read)
visible_define ( "M4_MODE_CPP_USE_READ");
else
visible_define ( "M4_MODE_NO_CPP_USE_READ");
// mode switches for next-action code
if (variable_trailing_context_rules) {
visible_define ( "M4_MODE_VARIABLE_TRAILING_CONTEXT_RULES");
} else {
visible_define ( "M4_MODE_NO_VARIABLE_TRAILING_CONTEXT_RULES");
}
if (real_reject)
visible_define ( "M4_MODE_REAL_REJECT");
if (reject_really_used)
visible_define ( "M4_MODE_FIND_ACTION_REJECT_REALLY_USED");
if (reject)
visible_define ( "M4_MODE_USES_REJECT");
else
visible_define ( "M4_MODE_NO_USES_REJECT");
// mode switches for computing next compressed state
if (usemecs)
visible_define ( "M4_MODE_USEMECS");
// mode switches for find-action code
if (fullspd)
visible_define ( "M4_MODE_FULLSPD");
else if (fulltbl)
visible_define ( "M4_MODE_FIND_ACTION_FULLTBL");
else if (reject)
visible_define ( "M4_MODE_FIND_ACTION_REJECT");
else
visible_define ( "M4_MODE_FIND_ACTION_COMPRESSED");
// mode switches for backup generation and gen_start_state
if (!fullspd)
visible_define ( "M4_MODE_NO_FULLSPD");
if (bol_needed)
visible_define ( "M4_MODE_BOL_NEEDED");
else
visible_define ( "M4_MODE_NO_BOL_NEEDED");
// yylineno
if (do_yylineno)
visible_define ( "M4_MODE_YYLINENO");
// Equivalence classes
if (useecs)
visible_define ( "M4_MODE_USEECS");
else
visible_define ( "M4_NOT_MODE_USEECS");
// mode switches for getting next action
if (gentables)
visible_define ( "M4_MODE_GENTABLES");
else
visible_define ( "M4_MODE_NO_GENTABLES");
if (interactive)
visible_define ( "M4_MODE_INTERACTIVE");
else
visible_define ( "M4_MODE_NO_INTERACTIVE");
if (!(fullspd || fulltbl))
visible_define ( "M4_MODE_NO_FULLSPD_OR_FULLTBL");
if (reject || interactive)
visible_define ( "M4_MODE_FIND_ACTION_REJECT_OR_INTERACTIVE");
// nultrans
if (nultrans)
visible_define ( "M4_MODE_NULTRANS");
else {
visible_define ( "M4_MODE_NO_NULTRANS");
if (fulltbl)
visible_define ( "M4_MODE_NULTRANS_FULLTBL");
else
visible_define ( "M4_MODE_NO_NULTRANS_FULLTBL");
if (fullspd)
visible_define ( "M4_MODE_NULTRANS_FULLSPD");
else
visible_define ( "M4_MODE_NO_NULTRANS_FULLSPD");
}
if (ddebug)
visible_define ( "M4_MODE_DEBUG");
// Kluge to get around the fact that the %if-not-reentrant and
// %if-c-only gates can't be combined by nesting one inside the
// other.
if (backend == &cpp_backend && !C_plus_plus)
visible_define ( "M4_MODE_C_ONLY");
backend->comment("m4 controls end");
out ("\n");
// There are a couple more modes we can't compute until after
// tables have been generated.
out_dec ("#define YY_NUM_RULES %d\n", num_rules);
out_dec ("#define YY_END_OF_BUFFER %d\n", num_rules + 1);
fprintf (stdout, backend->int_define_fmt, "YY_JAMBASE", jambase);
fprintf (stdout, backend->int_define_fmt, "YY_JAMSTATE", jamstate);
fprintf (stdout, backend->int_define_fmt, "YY_NUL_EC", NUL_ec);
/* Need to define the transet type as a size large
* enough to hold the biggest offset.
*/
fprintf (stdout, backend->string_define_fmt, "YY_OFFSET_TYPE", backend->trans_offset_type(tblend + numecs + 1));
skelout (); /* %% [2.0] - tables get dumped here */
/* This is where we REALLY begin generating the tables. */
if (fullspd) {
if (ctrl.fullspd) {
genctbl ();
if (tablesext) {
struct yytbl_data *tbl;
@@ -1005,7 +939,7 @@ void make_tables (void)
yytbl_data_destroy (tbl);
tbl = 0;
if (useecs) {
if (ctrl.useecs) {
tbl = mkecstbl ();
yytbl_data_compress (tbl);
if (yytbl_data_fwrite (&tableswr, tbl) < 0)
@@ -1016,19 +950,23 @@ void make_tables (void)
}
}
}
else if (fulltbl) {
else if (ctrl.fulltbl) {
genftbl ();
if (tablesext) {
struct yytbl_data *tbl;
/* Alternately defined if !ctrl.ffullspd && !ctrl.fulltbl */
struct packtype_t *ptype;
tbl = mkftbl ();
yytbl_data_compress (tbl);
ptype = optimize_pack(tbl->td_lolen);
out_str ("m4_define([[M4_HOOK_ACCEPT_TYPE]], [[%s]])", ptype->name);
if (yytbl_data_fwrite (&tableswr, tbl) < 0)
flexerror (_("Could not write ftbl"));
yytbl_data_destroy (tbl);
tbl = 0;
if (useecs) {
if (ctrl.useecs) {
tbl = mkecstbl ();
yytbl_data_compress (tbl);
if (yytbl_data_fwrite (&tableswr, tbl) < 0)
@@ -1042,24 +980,28 @@ void make_tables (void)
else
gentabs ();
snprintf(buf, sizeof(buf), "footprint: %ld bytes\n", footprint);
comment(buf);
outc ('\n');
// Only at this point do we know if the automaton has backups.
// Some m4 conditionals require this information.
backend->comment("m4 controls begin");
comment("m4 controls begin\n");
if (num_backing_up > 0)
visible_define ( "M4_MODE_HAS_BACKING_UP");
// These are used for NUL transitions
if ((num_backing_up > 0 && !reject) && (!nultrans || fullspd || fulltbl))
if ((num_backing_up > 0 && !reject) && (!nultrans || ctrl.fullspd || ctrl.fulltbl))
visible_define ( "M4_MODE_NEED_YY_CP");
if ((num_backing_up > 0 && !reject) && (fullspd || fulltbl))
if ((num_backing_up > 0 && !reject) && (ctrl.fullspd || ctrl.fulltbl))
visible_define ( "M4_MODE_NULTRANS_WRAP");
backend->comment("m4 controls end");
comment("m4 controls end\n");
out ("\n");
if (do_yylineno) {
if (ctrl.do_yylineno) {
geneoltbl ();
@@ -1079,22 +1021,23 @@ void make_tables (void)
flex_int32_t *yynultrans_data = 0;
/* Begin generating yy_NUL_trans */
out_str_dec (backend->get_state_decl (), "yy_NUL_trans",
lastdfa + 1);
backend->nultrans(fullspd);
out_str ("m4_define([[M4_HOOK_NULTRANS_TYPE]], [[%s]])", (ctrl.fullspd) ? "struct yy_trans_info*" : "M4_HOOK_INT32");
out_dec ("m4_define([[M4_HOOK_NULTRANS_SIZE]], [[%d]])", lastdfa + 1);
outn ("m4_define([[M4_HOOK_NULTRANS_BODY]], [[m4_dnl");
yynultrans_tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (yynultrans_tbl, YYTD_ID_NUL_TRANS);
// Performance kludge for C. Gives a small improvement
// in table loading time.
if (fullspd && backend->c_like)
if (ctrl.fullspd && ctrl.have_state_entry_format)
yynultrans_tbl->td_flags |= YYTD_PTRANS;
yynultrans_tbl->td_lolen = (flex_uint32_t) (lastdfa + 1);
yynultrans_tbl->td_data = yynultrans_data =
calloc(yynultrans_tbl->td_lolen,
sizeof (flex_int32_t));
calloc(yynultrans_tbl->td_lolen,
sizeof (flex_int32_t));
for (i = 1; i <= lastdfa; ++i) {
if ((yynultrans_tbl->td_flags & YYTD_PTRANS) != 0) {
if ((yynultrans_tbl->td_flags & YYTD_PTRANS) != 0) {
// Only works in very C-like languages
out_dec (" &yy_transition[%d],\n",
base[i]);
@@ -1107,7 +1050,9 @@ void make_tables (void)
}
}
dataend ();
dataend (NULL);
outn("]])");
footprint += (lastdfa + 1) * (ctrl.fullspd ? sizeof(struct yy_trans_info *) : sizeof(int32_t));
if (tablesext) {
yytbl_data_compress (yynultrans_tbl);
if (yytbl_data_fwrite (&tableswr, yynultrans_tbl) <
@@ -1119,71 +1064,23 @@ void make_tables (void)
if (yynultrans_tbl != NULL) {
yytbl_data_destroy (yynultrans_tbl);
yynultrans_tbl = NULL;
}
}
/* End generating yy_NUL_trans */
}
if (ddebug) { /* Spit out table mapping rules to line numbers. */
out_str_dec (long_align ? backend->get_int32_decl () :
backend->get_int16_decl (), "yy_rule_linenum",
num_rules);
if (ctrl.ddebug) { /* Spit out table mapping rules to line numbers. */
/* Policy choice: we don't include this space
* in the table metering.
*/
struct packtype_t *ptype = optimize_pack(num_rules);
out_str ("m4_define([[M4_HOOK_DEBUGTABLE_TYPE]], [[%s]])", ptype->name);
out_dec ("m4_define([[M4_HOOK_DEBUGTABLE_SIZE]], [[%d]])", num_rules);
outn ("m4_define([[M4_HOOK_DEBUGTABLE_BODY]], [[m4_dnl");
for (i = 1; i < num_rules; ++i)
mkdata (rule_linenum[i]);
dataend ();
}
skelout (); /* %% [3.0] - mode-dependent static declarations get dumped here */
out (&action_array[defs1_offset]);
line_directive_out (stdout, 0);
skelout (); /* %% [4.0] - various random yylex internals get dumped here */
/* Copy prolog to output file. */
out (&action_array[prolog_offset]);
line_directive_out (stdout, 0);
skelout (); /* %% [5.0] - main loop of matching-emngine code gets dumped here */
/* Copy actions to output file. */
out (&action_array[action_offset]);
line_directive_out (stdout, 0);
/* generate cases for any missing EOF rules */
for (i = 1; i <= lastsc; ++i)
if (!sceof[i]) {
outc ('\t');
out_str3 ("%sYY_STATE_EOF(%s):\n", backend->caseprefix, scname[i], "");
if (backend->fallthrough != NULL) {
outc ('\t');
outn (backend->fallthrough);
}
did_eof_rule = true;
}
if (did_eof_rule) {
outc ('\t');
outc ('\t');
outn (backend->endcase);
}
skelout ();
/* Copy remainder of input to output. */
line_directive_out (stdout, 1);
if (sectnum == 3) {
OUT_BEGIN_CODE ();
if (!no_section3_escape)
fputs("[[", stdout);
(void) flexscan (); /* copy remainder of input to output */
if (!no_section3_escape)
fputs("]]", stdout);
OUT_END_CODE ();
dataend (NULL);
outn("]])");
}
}
+2391
View File
File diff suppressed because it is too large Load Diff
+888 -627
View File
File diff suppressed because it is too large Load Diff
+45 -240
View File
@@ -33,83 +33,6 @@
#include "flexdef.h"
#include "tables.h"
#define CMD_IF_TABLES_SER "%if-tables-serialization"
#define CMD_TABLES_YYDMAP "%tables-yydmap"
#define CMD_DEFINE_YYTABLES "%define-yytables"
#define CMD_IF_CPP_ONLY "%if-c++-only"
#define CMD_IF_C_ONLY "%if-c-only"
#define CMD_IF_C_OR_CPP "%if-c-or-c++"
#define CMD_NOT_FOR_HEADER "%not-for-header"
#define CMD_OK_FOR_HEADER "%ok-for-header"
#define CMD_PUSH "%push"
#define CMD_POP "%pop"
#define CMD_IF_REENTRANT "%if-reentrant"
#define CMD_IF_NOT_REENTRANT "%if-not-reentrant"
#define CMD_IF_BISON_BRIDGE "%if-bison-bridge"
#define CMD_IF_NOT_BISON_BRIDGE "%if-not-bison-bridge"
#define CMD_ENDIF "%endif"
/* we allow the skeleton to push and pop. */
struct sko_state {
bool dc; /**< do_copy */
};
static struct sko_state *sko_stack=0;
static int sko_len=0,sko_sz=0;
static void sko_push(bool dc)
{
if(!sko_stack){
sko_sz = 1;
sko_stack = malloc(sizeof(struct sko_state) * (size_t) sko_sz);
if (!sko_stack)
flexfatal(_("allocation of sko_stack failed"));
sko_len = 0;
}
if(sko_len >= sko_sz){
sko_sz *= 2;
sko_stack = realloc(sko_stack,
sizeof(struct sko_state) * (size_t) sko_sz);
}
/* initialize to zero and push */
sko_stack[sko_len].dc = dc;
sko_len++;
}
static void sko_peek(bool *dc)
{
if(sko_len <= 0)
flex_die("peek attempt when sko stack is empty");
if(dc)
*dc = sko_stack[sko_len-1].dc;
}
static void sko_pop(bool* dc)
{
sko_peek(dc);
sko_len--;
if(sko_len < 0)
flex_die("popped too many times in skeleton.");
}
/* Append "#define defname value\n" to the running buffer. */
void action_define (const char *defname, int value)
{
char buf[MAXLINE];
char *cpy;
if ((int) strlen (defname) > MAXLINE / 2) {
format_pinpoint_message (_
("name \"%s\" ridiculously long"),
defname);
return;
}
snprintf (buf, sizeof(buf), "#define %s %d\n", defname, value);
add_action (buf);
/* track #defines so we can undef them when we're done. */
cpy = xstrdup(defname);
buf_append (&defs_buf, &cpy, 1);
}
/* Append "new_text" to the running buffer. */
void add_action (const char *new_text)
{
@@ -208,7 +131,7 @@ void check_char (int c)
lerr (_("bad character '%s' detected in check_char()"),
readable_form (c));
if (c >= csize)
if (c >= ctrl.csize)
lerr (_
("scanner requires -8 flag to use the character %s"),
readable_form (c));
@@ -239,19 +162,19 @@ char *xstrdup(const char *s)
int cclcmp (const void *a, const void *b)
{
if (!*(const unsigned char *) a)
return 1;
else
if (!*(const unsigned char *) b)
return - 1;
if (!*(const unsigned char *) a)
return 1;
else
return *(const unsigned char *) a - *(const unsigned char *) b;
if (!*(const unsigned char *) b)
return - 1;
else
return *(const unsigned char *) a - *(const unsigned char *) b;
}
/* dataend - finish up a block of data declarations */
void dataend (void)
void dataend (const char *endit)
{
/* short circuit any output */
if (gentables) {
@@ -260,7 +183,8 @@ void dataend (void)
dataflush ();
/* add terminator for initialization; { for vi */
outn (backend->table_closer);
if (endit)
outn (endit);
}
dataline = 0;
datapos = 0;
@@ -275,7 +199,8 @@ void dataflush (void)
if (!gentables)
return;
outc ('\n');
if (datapos > 0)
outc ('\n');
if (++dataline >= NUMDATALINES) {
/* Put out a blank line so that the table is grouped into
@@ -337,20 +262,20 @@ void lerr_fatal (const char *msg, ...)
}
/* line_directive_out - spit out a "#line" statement */
void line_directive_out (FILE *output_file, int do_infile)
/* line_directive_out - spit out a "#line" statement or equivalent */
void line_directive_out (FILE *output_file, char *path, int linenum)
{
char *trace_fmt = "m4_ifdef([[M4_HOOK_TRACE_LINE_FORMAT]], [[M4_HOOK_TRACE_LINE_FORMAT([[%d]], [[%s]])]])";
char directive[MAXLINE*2], filename[MAXLINE];
char *s1, *s2, *s3;
if (!gen_line_dirs)
if (!ctrl.gen_line_dirs)
return;
s1 = do_infile ? infilename : "M4_YY_OUTFILE_NAME";
s1 = (path != NULL) ? path : "M4_YY_OUTFILE_NAME";
if (do_infile && !s1)
s1 = "<stdin>";
if ((path != NULL) && !s1)
s1 = "<stdin>";
s2 = filename;
s3 = &filename[sizeof (filename) - 2];
@@ -365,12 +290,11 @@ void line_directive_out (FILE *output_file, int do_infile)
*s2 = '\0';
if (backend->trace_fmt)
if (do_infile)
snprintf (directive, sizeof(directive), backend->trace_fmt, linenum, filename);
else {
snprintf (directive, sizeof(directive), backend->trace_fmt, 0, filename);
}
if (path != NULL)
snprintf (directive, sizeof(directive), trace_fmt, linenum, filename);
else {
snprintf (directive, sizeof(directive), trace_fmt, 0, filename);
}
/* If output_file is nil then we should put the directive in
* the accumulated actions.
@@ -453,7 +377,7 @@ void mkdata (int value)
if (datapos == 0)
/* Indent. */
out (" ");
out (" ");
else
outc (',');
@@ -579,11 +503,6 @@ void out_str (const char *fmt, const char str[])
fprintf (stdout,fmt, str);
}
void out_str3 (const char *fmt, const char s1[], const char s2[], const char s3[])
{
fprintf (stdout,fmt, s1, s2, s3);
}
void out_str_dec (const char *fmt, const char str[], int n)
{
fprintf (stdout,fmt, str, n);
@@ -637,7 +556,7 @@ char *readable_form (int c)
case '\v':
return "\\v";
default:
if(trace_hex)
if(env.trace_hex)
snprintf (rform, sizeof(rform), "\\x%.2x", (unsigned int) c);
else
snprintf (rform, sizeof(rform), "\\%.3o", (unsigned int) c);
@@ -682,138 +601,6 @@ void *reallocate_array (void *array, int size, size_t element_size)
}
/* skelout - write out one section of the skeleton file
*
* Description
* Copies skelfile or skel array to stdout until a line beginning with
* "%%" or EOF is found.
*/
void skelout (void)
{
char buf_storage[MAXLINE];
char *buf = buf_storage;
bool do_copy = true;
/* "reset" the state by clearing the buffer and pushing a '1' */
if(sko_len > 0)
sko_peek(&do_copy);
sko_len = 0;
sko_push(do_copy=true);
/* Loop pulling lines either from the skelfile, if we're using
* one, or from the selected back end's skel[] array.
*/
while (skelfile ?
(fgets (buf, MAXLINE, skelfile) != NULL) :
((buf = (char *) backend->skel[skel_ind++]) != 0)) {
if (skelfile)
chomp (buf);
/* copy from skel array */
if (buf[0] == '%') { /* control line */
/* print the control line as a comment. */
if (ddebug && buf[1] != '#') {
if (buf[strlen (buf) - 1] == '\\')
out_str ("/* %s */\\\n", buf);
else
out_str ("/* %s */\n", buf);
}
/* We've been accused of using cryptic markers in the skel.
* So we'll use emacs-style-hyphenated-commands.
* We might consider a hash if this if-else-if-else
* chain gets too large.
*/
#define cmd_match(s) (strncmp(buf,(s),strlen(s))==0)
if (buf[1] == '#') {
/* %# indicates comment line to be ignored */
}
else if (buf[1] == '%') {
/* %% is a break point for skelout() */
return;
}
else if (cmd_match (CMD_PUSH)){
sko_push(do_copy);
if(ddebug){
out_str("/*(state = (%s) */",do_copy?"true":"false");
}
out_str("%s\n", buf[strlen (buf) - 1] =='\\' ? "\\" : "");
}
else if (cmd_match (CMD_POP)){
sko_pop(&do_copy);
if(ddebug){
out_str("/*(state = (%s) */",do_copy?"true":"false");
}
out_str("%s\n", buf[strlen (buf) - 1] =='\\' ? "\\" : "");
}
else if (cmd_match (CMD_IF_REENTRANT)){
sko_push(do_copy);
do_copy = reentrant && do_copy;
}
else if (cmd_match (CMD_IF_NOT_REENTRANT)){
sko_push(do_copy);
do_copy = !reentrant && do_copy;
}
else if (cmd_match(CMD_IF_BISON_BRIDGE)){
sko_push(do_copy);
do_copy = bison_bridge_lval && do_copy;
}
else if (cmd_match(CMD_IF_NOT_BISON_BRIDGE)){
sko_push(do_copy);
do_copy = !bison_bridge_lval && do_copy;
}
else if (cmd_match (CMD_ENDIF)){
sko_pop(&do_copy);
}
else if (cmd_match (CMD_IF_TABLES_SER)) {
do_copy = do_copy && tablesext;
}
else if (cmd_match (CMD_TABLES_YYDMAP)) {
if (tablesext && yydmap_buf.elts)
outn ((char *) (yydmap_buf.elts));
}
else if (cmd_match (CMD_DEFINE_YYTABLES)) {
if ( tablesext )
out_str( "#define YYTABLES_NAME \"%s\"\n",
tablesname ? tablesname : "yytables" );
}
else if (cmd_match (CMD_IF_CPP_ONLY)) {
/* only for C++ */
sko_push(do_copy);
do_copy = C_plus_plus;
}
else if (cmd_match (CMD_IF_C_ONLY)) {
/* %- only for C */
sko_push(do_copy);
do_copy = !C_plus_plus;
}
else if (cmd_match (CMD_IF_C_OR_CPP)) {
/* %* for C and C++ */
sko_push(do_copy);
do_copy = true;
}
else if (cmd_match (CMD_NOT_FOR_HEADER)) {
/* %c begin linkage-only (non-header) code. */
OUT_BEGIN_CODE ();
}
else if (cmd_match (CMD_OK_FOR_HEADER)) {
/* %e end linkage-only code. */
OUT_END_CODE ();
}
else {
flexfatal (_("bad line in skeleton file"));
}
}
else if (do_copy)
outn (buf);
} /* end while */
}
/* transition_struct_out - output a yy_trans_info structure
*
* outputs the yy_trans_info structure with the two elements, element_v and
@@ -827,7 +614,8 @@ void transition_struct_out (int element_v, int element_n)
if (!gentables)
return;
out_dec2 (backend->dyad, element_v, element_n);
out_dec2 ("M4_HOOK_TABLE_OPENER[[%4d]],[[%4d]]M4_HOOK_TABLE_CONTINUE", element_v, element_n);
outc ('\n');
datapos += TRANS_STRUCT_PRINT_LENGTH;
@@ -880,3 +668,20 @@ char *chomp (char *str)
*p-- = 0;
return str;
}
void comment(const char *txt)
{
char buf[MAXLINE];
bool eol;
strncpy(buf, txt, MAXLINE-1);
eol = buf[strlen(buf)-1] == '\n';
if (eol)
buf[strlen(buf)-1] = '\0';
out_str("M4_HOOK_COMMENT_OPEN [[%s]] M4_HOOK_COMMENT_CLOSE", buf);
if (eol)
outc ('\n');
}
+3 -1
View File
@@ -33,7 +33,9 @@ case $VERSION in
*[!0-9.]*) echo 'Invalid version number' >&2; exit 1;;
esac
IFS=.
set $VERSION
# we do want word splitting, so we won't put double quotes around it (see IFS above)
# shellcheck disable=2086
set -- $VERSION
sed 's/4_/a4_/g
s/m4preproc_/m4_/g
' "$srcdir/${lang}-flex.skl" |
+16 -20
View File
@@ -216,10 +216,10 @@ void finish_rule (int mach, int variable_trail_rule, int headcnt, int trailcn
if (pcont_act && rule_has_nl[num_rules - 1])
rule_has_nl[num_rules] = true;
snprintf (action_text, sizeof(action_text), "case %d:\n", num_rules);
snprintf (action_text, sizeof(action_text), "M4_HOOK_NORMAL_STATE_CASE_ARM(%d)\n", num_rules);
add_action (action_text);
if (rule_has_nl[num_rules]) {
snprintf (action_text, sizeof(action_text), "/* rule %d can match eol */\n",
snprintf (action_text, sizeof(action_text), "M4_HOOK_COMMENT_OPEN rule %d can match eol M4_HOOK_COMMENT_CLOSE\n",
num_rules);
add_action (action_text);
}
@@ -228,7 +228,7 @@ void finish_rule (int mach, int variable_trail_rule, int headcnt, int trailcn
if (variable_trail_rule) {
rule_type[num_rules] = RULE_VARIABLE;
if (performance_report > 0)
if (env.performance_hint > 0)
fprintf (stderr,
_
("Variable trailing context rule at line %d\n"),
@@ -244,49 +244,45 @@ void finish_rule (int mach, int variable_trail_rule, int headcnt, int trailcn
/* Do trailing context magic to not match the trailing
* characters.
*/
char *scanner_cp = "YY_G(yy_c_buf_p) = yy_cp";
char *scanner_bp = "yy_bp";
add_action
("*yy_cp = YY_G(yy_hold_char); /* undo effects of setting up yytext */\n");
add_action ("M4_HOOK_RELEASE_YYTEXT\n");
if (headcnt > 0) {
if (rule_has_nl[num_rules]) {
snprintf (action_text, sizeof(action_text),
"YY_LINENO_REWIND_TO(%s + %d);\n", scanner_bp, headcnt);
"M4_HOOK_LINE_FORWARD(%d)\n", headcnt);
add_action (action_text);
}
snprintf (action_text, sizeof(action_text), "%s = %s + %d;\n",
scanner_cp, scanner_bp, headcnt);
snprintf (action_text, sizeof(action_text), "M4_HOOK_CHAR_FORWARD(%d)\n",
headcnt);
add_action (action_text);
}
else {
if (rule_has_nl[num_rules]) {
snprintf (action_text, sizeof(action_text),
"YY_LINENO_REWIND_TO(yy_cp - %d);\n", trailcnt);
"M4_HOOK_LINE_REWIND(%d)\n", trailcnt);
add_action (action_text);
}
snprintf (action_text, sizeof(action_text), "%s -= %d;\n",
scanner_cp, trailcnt);
snprintf (action_text, sizeof(action_text), "M4_HOOK_CHAR_REWIND(%d)\n",
trailcnt);
add_action (action_text);
}
add_action
("YY_DO_BEFORE_ACTION; /* set up yytext again */\n");
("M4_HOOK_TAKE_YYTEXT\n");
}
}
/* Okay, in the action code at this point yytext and yyleng have
* their proper final values for this rule, so here's the point
* to do any user action. But don't do it for continued actions,
* as that'll result in multiple YY_RULE_SETUP's.
* as that'll result in multiple rule-setup calls.
*/
if (!continued_action)
add_action ("YY_RULE_SETUP\n");
add_action ("M4_HOOK_SET_RULE_SETUP\n");
line_directive_out(NULL, 1);
line_directive_out(NULL, infilename, linenum);
add_action("[[");
}
@@ -646,9 +642,9 @@ current_mns);
else {
check_char (sym);
if (useecs)
if (ctrl.useecs)
/* Map NUL's to csize. */
mkechar (sym ? sym : csize, nextecm, ecgroup);
mkechar (sym ? sym : ctrl.csize, nextecm, ecgroup);
}
return lastnfa;
+17 -3
View File
@@ -33,7 +33,7 @@
#include "options.h"
/* Be sure to synchronize these options with those defined in "options.h",
/* Be sure to synchronize these options with those defined in "ctrl.h",
* the giant switch() statement in "main.c", and the %option processing in
* "scan.l".
*/
@@ -100,7 +100,11 @@ optspec_t flexopts[] = {
{"-n", OPT_DONOTHING, 0}
, /* For POSIX lex compatibility. */
{"--ecs", OPT_ECS, 0}
, /* Construct equivalence classes. */
,
{"--emit=LANG", OPT_EMIT, 0}
, /* select language to emit */
{"-e LANG", OPT_EMIT, 0}
,
{"--noecs", OPT_NO_ECS, 0}
,
{"-F", OPT_FAST, 0}
@@ -231,7 +235,13 @@ optspec_t flexopts[] = {
{"--yywrap", OPT_YYWRAP, 0}
,
{"--nounput", OPT_NO_UNPUT, 0}
{"--noinput", OPT_NO_YYINPUT, 0}
,
{"--noyyinput", OPT_NO_YYINPUT, 0}
,
{"--nounput", OPT_NO_YYUNPUT, 0}
,
{"--noyyunput", OPT_NO_YYUNPUT, 0}
,
{"--noyy_push_state", OPT_NO_YY_PUSH_STATE, 0}
,
@@ -277,6 +287,10 @@ optspec_t flexopts[] = {
,
{"--noyyset_lloc", OPT_NO_YYSET_LLOC, 0}
,
{"--noyyget_debug", OPT_NO_YYGET_DEBUG, 0}
,
{"--noyyset_debug", OPT_NO_YYSET_DEBUG, 0}
,
{"--unsafe-no-m4-sect3-escape", OPT_NO_SECT3_ESCAPE, 0}
,
{0, 0, 0} /* required final NULL entry. */
+5 -1
View File
@@ -57,6 +57,7 @@ enum flexopt_flag_t {
OPT_DEFAULT,
OPT_DONOTHING,
OPT_ECS,
OPT_EMIT,
OPT_FAST,
OPT_FULL,
OPT_HEADER_FILE,
@@ -78,7 +79,8 @@ enum flexopt_flag_t {
OPT_NO_REENTRANT,
OPT_NO_REJECT,
OPT_NO_STDINIT,
OPT_NO_UNPUT,
OPT_NO_YYINPUT,
OPT_NO_YYUNPUT,
OPT_NO_WARN,
OPT_NO_YYGET_EXTRA,
OPT_NO_YYGET_IN,
@@ -88,6 +90,7 @@ enum flexopt_flag_t {
OPT_NO_YYGET_LLOC,
OPT_NO_YYGET_LVAL,
OPT_NO_YYGET_OUT,
OPT_NO_YYGET_DEBUG,
OPT_NO_YYGET_TEXT,
OPT_NO_YYLINENO,
OPT_NO_YYMORE,
@@ -98,6 +101,7 @@ enum flexopt_flag_t {
OPT_NO_YYSET_LLOC,
OPT_NO_YYSET_LVAL,
OPT_NO_YYSET_OUT,
OPT_NO_YYSET_DEBUG,
OPT_NO_YYWRAP,
OPT_NO_YY_POP_STATE,
OPT_NO_YY_PUSH_STATE,
+51 -31
View File
@@ -2,7 +2,8 @@
%token CHAR NUMBER SECTEND SCDECL XSCDECL NAME PREVCCL EOF_OP
%token TOK_OPTION TOK_OUTFILE TOK_PREFIX TOK_YYCLASS TOK_HEADER_FILE TOK_EXTRA_TYPE
%token TOK_TABLES_FILE
%token TOK_TABLES_FILE TOK_YYLMAX TOK_NUMERIC TOK_YYDECL TOK_PREACTION TOK_POSTACTION
%token TOK_USERINIT TOK_EMIT TOK_BUFSIZE TOK_YYTERMINATE
%token CCE_ALNUM CCE_ALPHA CCE_BLANK CCE_CNTRL CCE_DIGIT CCE_GRAPH
%token CCE_LOWER CCE_PRINT CCE_PUNCT CCE_SPACE CCE_UPPER CCE_XDIGIT
@@ -87,7 +88,7 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
#define CCL_EXPR(func) \
do{ \
int c; \
for ( c = 0; c < csize; ++c ) \
for ( c = 0; c < ctrl.csize; ++c ) \
if ( isascii(c) && func(c) ) \
ccladd( currccl, c ); \
}while(0)
@@ -96,7 +97,7 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
#define CCL_NEG_EXPR(func) \
do{ \
int c; \
for ( c = 0; c < csize; ++c ) \
for ( c = 0; c < ctrl.csize; ++c ) \
if ( !func(c) ) \
ccladd( currccl, c ); \
}while(0)
@@ -134,13 +135,16 @@ goal : initlex sect1 sect1end sect2 initforrule
for ( i = 1; i <= lastsc; ++i )
scset[i] = mkbranch( scset[i], def_rule );
if ( spprdflt )
add_action(
"YY_FATAL_ERROR( \"flex scanner jammed\" )" );
else
add_action( "ECHO" );
add_action("]]");
add_action( ";\n\tYY_BREAK]]\n" );
if ( ctrl.spprdflt )
add_action(
"M4_HOOK_FATAL_ERROR(\"flex scanner jammed\")");
else {
add_action("M4_HOOK_ECHO");
}
add_action( "\n\tM4_HOOK_STATE_CASE_BREAK\n" );
}
;
@@ -193,21 +197,37 @@ optionlist : optionlist option
option : TOK_OUTFILE '=' NAME
{
outfilename = xstrdup(nmstr);
did_outfilename = 1;
env.outfilename = xstrdup(nmstr);
env.did_outfilename = 1;
}
| TOK_EXTRA_TYPE '=' NAME
{ extra_type = xstrdup(nmstr); }
| TOK_PREFIX '=' NAME
{ prefix = xstrdup(nmstr);
if (strchr(prefix, '[') || strchr(prefix, ']'))
{ ctrl.prefix = xstrdup(nmstr);
if (strchr(ctrl.prefix, '[') || strchr(ctrl.prefix, ']'))
flexerror(_("Prefix must not contain [ or ]")); }
| TOK_YYCLASS '=' NAME
{ yyclass = xstrdup(nmstr); }
{ ctrl.yyclass = xstrdup(nmstr); }
| TOK_HEADER_FILE '=' NAME
{ headerfilename = xstrdup(nmstr); }
| TOK_TABLES_FILE '=' NAME
{ tablesext = true; tablesfilename = xstrdup(nmstr); }
{ env.headerfilename = xstrdup(nmstr); }
| TOK_YYLMAX '=' TOK_NUMERIC
{ ctrl.yylmax = nmval; }
| TOK_YYDECL '=' NAME
{ ctrl.yydecl = xstrdup(nmstr); }
| TOK_PREACTION '=' NAME
{ ctrl.preaction = xstrdup(nmstr); }
| TOK_POSTACTION '=' NAME
{ ctrl.postaction = xstrdup(nmstr); }
| TOK_BUFSIZE '=' TOK_NUMERIC
{ ctrl.bufsize = nmval; }
| TOK_EMIT '=' NAME
{ ctrl.emit = xstrdup(nmstr); backend_by_name(ctrl.emit); }
| TOK_USERINIT '=' NAME
{ ctrl.userinit = xstrdup(nmstr); }
| TOK_YYTERMINATE '=' NAME
{ ctrl.yyterminate = xstrdup(nmstr); }
| TOK_TABLES_FILE '=' NAME
{ tablesext = true; tablesfilename = xstrdup(nmstr); }
;
sect2 : sect2 scon initforrule flexrule '\n'
@@ -260,7 +280,7 @@ flexrule : '^' rule
{
bol_needed = true;
if ( performance_report > 1 )
if ( env.performance_hint > 1 )
pinpoint_message(
"'^' operator results in sub-optimal performance" );
}
@@ -409,7 +429,7 @@ rule : re2 re
}
if ( lex_compat || (varlength && headcnt == 0) )
if ( ctrl.lex_compat || (varlength && headcnt == 0) )
{ /* variable trailing context rule */
/* Mark the first part of the rule as the
* accepting "head" part of a trailing
@@ -461,7 +481,7 @@ rule : re2 re
varlength = true;
}
if ( lex_compat || varlength )
if ( ctrl.lex_compat || varlength )
{
/* Again, see the comment in the rule for
* "re2 re" above.
@@ -484,7 +504,7 @@ rule : re2 re
if ( trlcontxt )
{
if ( lex_compat || (varlength && headcnt == 0) )
if ( ctrl.lex_compat || (varlength && headcnt == 0) )
/* Both head and trail are
* variable-length.
*/
@@ -698,19 +718,19 @@ singleton : singleton '*'
ccladd( ccldot, '\n' );
cclnegate( ccldot );
if ( useecs )
if ( ctrl.useecs )
mkeccl( ccltbl + cclmap[ccldot],
ccllen[ccldot], nextecm,
ecgroup, csize, csize );
ecgroup, ctrl.csize, ctrl.csize );
/* Create the (?s:'.') character class. */
cclany = cclinit();
cclnegate( cclany );
if ( useecs )
if ( ctrl.useecs )
mkeccl( ccltbl + cclmap[cclany],
ccllen[cclany], nextecm,
ecgroup, csize, csize );
ecgroup, ctrl.csize, ctrl.csize );
madeany = true;
}
@@ -729,9 +749,9 @@ singleton : singleton '*'
*/
qsort( ccltbl + cclmap[$1], (size_t) ccllen[$1], sizeof (*ccltbl), cclcmp );
if ( useecs )
if ( ctrl.useecs )
mkeccl( ccltbl + cclmap[$1], ccllen[$1],
nextecm, ecgroup, csize, csize );
nextecm, ecgroup, ctrl.csize, ctrl.csize);
++rulelen;
@@ -978,7 +998,7 @@ void build_eof_action(void)
}
}
line_directive_out(NULL, 1);
line_directive_out(NULL, infilename, linenum);
add_action("[[");
/* This isn't a normal rule after all - don't count it as
@@ -1035,7 +1055,7 @@ void lwarn( const char *str )
void format_pinpoint_message( const char *msg, const char arg[] )
{
char errmsg[MAXLINE];
char errmsg[MAXLINE*2];
snprintf( errmsg, sizeof(errmsg), msg, arg );
pinpoint_message( errmsg );
@@ -1054,9 +1074,9 @@ void pinpoint_message( const char *str )
void line_warning( const char *str, int line )
{
char warning[MAXLINE];
char warning[MAXLINE*2];
if ( ! nowarn )
if ( ! env.nowarn )
{
snprintf( warning, sizeof(warning), "warning, %s", str );
line_pinpoint( warning, line );
+6 -7
View File
@@ -24,18 +24,17 @@
#include "flexdef.h"
static const char* REGEXP_LINEDIR = "^#line ([[:digit:]]+) \"(.*)\"";
regex_t regex_linedir; /**< matches line directives */
/** Initialize the regular expressions.
* @return true upon success.
*/
bool flex_init_regex(void)
bool flex_init_regex(const char *traceline_re)
{
flex_regcomp(&regex_linedir, REGEXP_LINEDIR, REG_EXTENDED);
return true;
if (traceline_re != NULL)
flex_regcomp(&regex_linedir, traceline_re, REG_EXTENDED);
return true;
}
/** Compiles a regular expression or dies trying.
@@ -45,7 +44,7 @@ bool flex_init_regex(void)
*/
void flex_regcomp(regex_t *preg, const char *regex, int cflags)
{
int err;
int err;
memset (preg, 0, sizeof (regex_t));
@@ -100,7 +99,7 @@ char *regmatch_cpy (regmatch_t * m, char *dest, const char *src)
}
snprintf (dest, (size_t) regmatch_len(m), "%s", src + m->rm_so);
return dest;
return dest;
}
/** Get the length in characters of the match.
+192 -116
View File
@@ -50,23 +50,9 @@ extern const char *escaped_qstart, *escaped_qend;
#define ESCAPED_QEND M4QEND "]" M4QSTART M4QEND "]" M4QSTART
#define ACTION_ECHO add_action( yytext )
#define ACTION_IFDEF(def, should_define) \
{ \
if ( should_define ) \
action_define( def, 1 ); \
}
#define ACTION_ECHO_QSTART add_action (ESCAPED_QSTART)
#define ACTION_ECHO_QEND add_action (ESCAPED_QEND)
#define ACTION_M4_IFDEF(def, should_define) \
do{ \
if ( should_define ) \
buf_m4_define( &m4defs_buf, def, NULL);\
else \
buf_m4_undefine( &m4defs_buf, def);\
} while(0)
#define MARK_END_OF_PROLOG mark_prolog();
#define YY_DECL \
@@ -98,19 +84,19 @@ extern const char *escaped_qstart, *escaped_qend;
if ( all_upper( str ) ) \
reject = true;
#define CHECK_YYMORE(str) \
#define CHECK_YYREJECT(str) \
if ( all_lower( str ) ) \
yymore_used = true;
reject = true;
#define YY_USER_INIT \
if ( getenv("POSIXLY_CORRECT") ) \
posix_compat = true;
ctrl.posix_compat = true;
#define START_CODEBLOCK(x) do { \
/* Emit the needed line directive... */\
if (indented_code == false) { \
linenum++; \
line_directive_out(NULL, 1); \
line_directive_out(NULL, infilename, linenum); \
} \
add_action(M4QSTART); \
yy_push_state(CODEBLOCK); \
@@ -120,7 +106,7 @@ extern const char *escaped_qstart, *escaped_qend;
#define END_CODEBLOCK do { \
yy_pop_state();\
add_action(M4QEND); \
if (!indented_code) line_directive_out(NULL, 0);\
if (!indented_code) line_directive_out(NULL, NULL, linenum); \
} while (0)
%}
@@ -160,6 +146,13 @@ LEXOPT [aceknopr]
M4QSTART "[""["
M4QEND "]""]"
FUNARGS [^)]*
%{
void context_call(char *);
void context_member(char *, const char *);
#undef yyreject
%}
%%
static int bracelevel, didadef, indented_code;
static int doing_rule_action = false;
@@ -178,9 +171,13 @@ M4QEND "]""]"
^"%x"{NAME}? return XSCDECL;
^"%{".*{NL} START_CODEBLOCK(false);
^"%top"[[:blank:]]*"{"[[:blank:]]*{NL} {
char trampoline[512];
brace_start_line = linenum;
++linenum;
buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum);
snprintf(trampoline, sizeof(trampoline),
"M4_HOOK_TRACE_LINE_FORMAT(%d, [[%s]])",
linenum, infilename?infilename:"<stdin>");
buf_strappend(&top_buf, trampoline);
brace_depth = 1;
yy_push_state(CODEBLOCK_MATCH_BRACE);
}
@@ -193,13 +190,13 @@ M4QEND "]""]"
sectnum = 2;
bracelevel = 0;
mark_defs1();
line_directive_out(NULL, 1);
line_directive_out(NULL, infilename, linenum);
BEGIN(SECT2PROLOG);
return SECTEND;
}
^"%pointer".*{NL} yytext_is_array = false; ++linenum;
^"%array".*{NL} yytext_is_array = true; ++linenum;
^"%pointer".*{NL} ctrl.yytext_is_array = false; ++linenum;
^"%array".*{NL} ctrl.yytext_is_array = true; ++linenum;
^"%option" BEGIN(OPTION); return TOK_OPTION;
@@ -312,7 +309,7 @@ M4QEND "]""]"
<<EOF>> {
linenum = brace_start_line;
synerr(_("Unmatched '{'"));
yyterminate();
return YY_NULL;
}
}
@@ -356,105 +353,120 @@ M4QEND "]""]"
{WS} option_sense = true;
"=" return '=';
[[:digit:]]+ {nmval = atoi(yytext); return TOK_NUMERIC;}
no option_sense = ! option_sense;
7bit csize = option_sense ? 128 : 256;
8bit csize = option_sense ? 256 : 128;
7bit ctrl.csize = option_sense ? 128 : 256;
8bit ctrl.csize = option_sense ? 256 : 128;
align long_align = option_sense;
align ctrl.long_align = option_sense;
always-interactive {
ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense );
interactive = option_sense;
ctrl.always_interactive = option_sense;
ctrl.interactive = (trit)option_sense;
}
array yytext_is_array = option_sense;
backup backing_up_report = option_sense;
batch interactive = ! option_sense;
bison-bridge bison_bridge_lval = option_sense;
bison-locations { if((bison_bridge_lloc = option_sense))
bison_bridge_lval = true;
}
"c++" C_plus_plus = option_sense;
array ctrl.yytext_is_array = option_sense;
backup env.backing_up_report = option_sense;
batch ctrl.interactive = (trit)!option_sense;
bison-bridge ctrl.bison_bridge_lval = option_sense;
bison-locations { if((ctrl.bison_bridge_lloc = option_sense))
ctrl.bison_bridge_lval = true;
}
"c++" ctrl.C_plus_plus = option_sense;
caseful|case-sensitive sf_set_case_ins(!option_sense);
caseless|case-insensitive sf_set_case_ins(option_sense);
debug ddebug = option_sense;
default spprdflt = ! option_sense;
ecs useecs = option_sense;
debug ctrl.ddebug = option_sense;
default ctrl.spprdflt = ! option_sense;
ecs ctrl.useecs = option_sense;
fast {
useecs = usemecs = false;
use_read = fullspd = true;
ctrl.useecs = ctrl.usemecs = false;
ctrl.use_read = ctrl.fullspd = true;
}
full {
useecs = usemecs = false;
use_read = fulltbl = true;
ctrl.useecs = ctrl.usemecs = false;
ctrl.use_read = ctrl.fulltbl = true;
}
input ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
interactive interactive = option_sense;
lex-compat lex_compat = option_sense;
posix-compat posix_compat = option_sense;
line gen_line_dirs = option_sense;
input ctrl.no_yyinput = ! option_sense;
yyinput ctrl.no_yyinput = ! option_sense;
interactive ctrl.interactive = (trit)option_sense;
lex-compat ctrl.lex_compat = option_sense;
posix-compat ctrl.posix_compat = option_sense;
line ctrl.gen_line_dirs = option_sense;
main {
ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense);
/* Override yywrap */
if( option_sense == true )
do_yywrap = false;
ctrl.do_main = option_sense;
/* Override yywrap */
if( option_sense == true )
ctrl.do_yywrap = false;
}
meta-ecs usemecs = option_sense;
meta-ecs ctrl.usemecs = option_sense;
never-interactive {
ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense );
interactive = !option_sense;
ctrl.never_interactive = option_sense;
ctrl.interactive = (trit)!option_sense;
}
perf-report performance_report += option_sense ? 1 : -1;
pointer yytext_is_array = ! option_sense;
read use_read = option_sense;
reentrant reentrant = option_sense;
reject reject_really_used = option_sense;
stack ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense );
stdinit do_stdinit = option_sense;
stdout use_stdout = option_sense;
unistd ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense);
unput ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense);
verbose printstats = option_sense;
warn nowarn = ! option_sense;
yylineno do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense);
yymore yymore_really_used = option_sense;
yywrap do_yywrap = option_sense;
perf-report env.performance_hint += option_sense ? 1 : -1;
pointer ctrl.yytext_is_array = ! option_sense;
read ctrl.use_read = option_sense;
reentrant ctrl.reentrant = option_sense;
reject ctrl.reject_really_used = option_sense;
rewrite ctrl.rewrite = option_sense;
stack ctrl.stack_used = option_sense;
stdinit ctrl.do_stdinit = option_sense;
stdout env.use_stdout = option_sense;
unistd ctrl.no_unistd = ! option_sense;
unput ctrl.no_yyunput = ! option_sense;
yyunput ctrl.no_yyunput = ! option_sense;
verbose env.printstats = option_sense;
warn env.nowarn = ! option_sense;
yylineno ctrl.do_yylineno = option_sense;
yymore ctrl.yymore_really_used = option_sense;
yywrap ctrl.do_yywrap = option_sense;
yyread ctrl.noyyread = !option_sense;
yy_push_state ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense);
yy_pop_state ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense);
yy_top_state ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense);
yypanic ctrl.no_yypanic = !option_sense;
yy_scan_buffer ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense);
yy_scan_bytes ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense);
yy_scan_string ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense);
yy_push_state ctrl.no_yy_push_state = ! option_sense;
yy_pop_state ctrl.no_yy_pop_state = ! option_sense;
yy_top_state ctrl.no_yy_top_state = ! option_sense;
yyalloc ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense);
yyrealloc ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense);
yyfree ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense);
yy_scan_buffer ctrl.no_yy_scan_buffer = ! option_sense;
yy_scan_bytes ctrl.no_yy_scan_bytes = ! option_sense;
yy_scan_string ctrl.no_yy_scan_string = ! option_sense;
yyget_debug ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense);
yyset_debug ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense);
yyget_extra ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense);
yyset_extra ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense);
yyget_leng ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense);
yyget_text ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense);
yyget_column ACTION_M4_IFDEF("M4""_YY_NO_GET_COLUMN", ! option_sense);
yyset_column ACTION_M4_IFDEF("M4""_YY_NO_SET_COLUMN", ! option_sense);
yyget_lineno ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense);
yyset_lineno ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense);
yyget_in ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense);
yyset_in ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense);
yyget_out ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense);
yyset_out ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense);
yyget_lval ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense);
yyset_lval ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense);
yyget_lloc ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense);
yyset_lloc ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense);
yyalloc ctrl.no_flex_alloc = ! option_sense;
yyrealloc ctrl.no_flex_realloc = ! option_sense;
yyfree ctrl.no_flex_free = ! option_sense;
yyget_debug ctrl.no_get_debug = ! option_sense;
yyset_debug ctrl.no_set_debug = ! option_sense;
yyget_extra ctrl.no_yyget_extra = ! option_sense;
yyset_extra ctrl.no_yyset_extra = ! option_sense;
yyget_leng ctrl.no_yyget_leng = ! option_sense;
yyget_text ctrl.no_yyget_text = ! option_sense;
yyget_column ctrl.no_yyget_column = ! option_sense;
yyset_column ctrl.no_yyset_column = ! option_sense;
yyget_lineno ctrl.no_yyget_lineno = ! option_sense;
yyset_lineno ctrl.no_yyset_lineno = ! option_sense;
yyget_in ctrl.no_yyget_in = ! option_sense;
yyset_in ctrl.no_yyset_in = ! option_sense;
yyget_out ctrl.no_yyget_out = ! option_sense;
yyset_out ctrl.no_yyset_out = ! option_sense;
yyget_lval ctrl.no_yyget_lval = ! option_sense;
yyset_lval ctrl.no_yyset_lval = ! option_sense;
yyget_lloc ctrl.no_yyget_lloc = ! option_sense;
yyset_lloc ctrl.no_yyset_lloc = ! option_sense;
bufsize return TOK_BUFSIZE;
emit return TOK_EMIT;
extra-type return TOK_EXTRA_TYPE;
outfile return TOK_OUTFILE;
prefix return TOK_PREFIX;
yyclass return TOK_YYCLASS;
yylmax return TOK_YYLMAX;
yydecl return TOK_YYDECL;
yyterminate return TOK_YYTERMINATE;
pre-action return TOK_PREACTION;
post-action return TOK_POSTACTION;
user-init return TOK_USERINIT;
header(-file)? return TOK_HEADER_FILE;
tables-file return TOK_TABLES_FILE;
tables-verify {
@@ -513,7 +525,7 @@ M4QEND "]""]"
<<EOF>> {
mark_prolog();
sectnum = 0;
yyterminate(); /* to stop the parser */
return YY_NULL; /* to stop the parser */
}
}
@@ -537,7 +549,7 @@ M4QEND "]""]"
"\"" BEGIN(QUOTE); return '"';
"{"/[[:digit:]] {
BEGIN(NUM);
if ( lex_compat || posix_compat )
if ( ctrl.lex_compat || ctrl.posix_compat )
return BEGIN_REPEAT_POSIX;
else
return BEGIN_REPEAT_FLEX;
@@ -633,8 +645,7 @@ M4QEND "]""]"
^"%%".* {
sectnum = 3;
BEGIN(no_section3_escape ? SECT3_NOESCAPE : SECT3);
outn("/* Begin user sect3 */");
BEGIN(ctrl.no_section3_escape ? SECT3_NOESCAPE : SECT3);
yyterminate(); /* to stop the parser */
}
@@ -662,7 +673,7 @@ M4QEND "]""]"
*/
&& (cclval = ccllookup( nmstr )) != 0 )
{
if ( input() != ']' )
if ( yyinput() != ']' )
synerr( _( "bad character class" ) );
yylval = cclval;
@@ -722,7 +733,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
if (end_is_ws)
unput(end_ch);
if ( lex_compat || nmdefptr[0] == '^' ||
if ( ctrl.lex_compat || nmdefptr[0] == '^' ||
(len > 0 && nmdefptr[len - 1] == '$')
|| (end_is_ws && trlcontxt && !sf_skip_ws()))
{ /* don't use ()'s after all */
@@ -752,7 +763,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
"(?#" {
if (lex_compat || posix_compat){
if (ctrl.lex_compat || ctrl.posix_compat){
/* Push back the "?#" and treat it like a normal parens. */
yyless(1);
sf_push();
@@ -763,7 +774,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
"(?" {
sf_push();
if (lex_compat || posix_compat)
if (ctrl.lex_compat || ctrl.posix_compat)
/* Push back the "?" and treat it like a normal parens. */
yyless(1);
else
@@ -885,7 +896,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
"," return ',';
"}" {
BEGIN(SECT2);
if ( lex_compat || posix_compat )
if ( ctrl.lex_compat || ctrl.posix_compat )
return END_REPEAT_POSIX;
else
return END_REPEAT_FLEX;
@@ -913,12 +924,19 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
<CODEBLOCK,ACTION>{
"reject" {
ACTION_ECHO;
CHECK_REJECT(yytext);
ACTION_ECHO;
CHECK_REJECT(yytext);
}
"yymore" {
ACTION_ECHO;
CHECK_YYMORE(yytext);
"yyreject()" {
add_action("]""]M4_HOOK_REJECT[""[");
CHECK_YYREJECT(yytext);
}
"yymore()" {
yymore_used = true;
if (ctrl.rewrite)
context_call(yytext);
else
ACTION_ECHO;
}
}
@@ -928,7 +946,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
ACTION_ECHO;
if (bracelevel <= 0 || (doing_codeblock && indented_code)) {
if ( doing_rule_action )
add_action( "\tYY_BREAK]""]\n" );
add_action( "\t]""]M4_HOOK_STATE_CASE_BREAK\n" );
doing_rule_action = doing_codeblock = false;
BEGIN(SECT2);
@@ -937,11 +955,34 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
/* yyreject and yymore() are checked for above, in PERCENT_BRACE_ACTION */
<ACTION>{
"{" ACTION_ECHO; ++bracelevel;
"}" ACTION_ECHO; --bracelevel;
[^[:alpha:]_{}""''/\n\[\]]+ ACTION_ECHO;
yyecho\(\)|yyinput\(\)|yystart\({FUNARGS}\)|yybegin\({FUNARGS}\)|yyunput\({FUNARGS}\)|yypanic\({FUNARGS}\)|yyatbol\(\)|yysetbol\({FUNARGS}\) {
if (ctrl.rewrite)
context_call(yytext);
else
ACTION_ECHO;
}
yyterminate\(\)|yyless\({FUNARGS}\) {
add_action("]""]");
add_action(yytext);
add_action("[""[");
}
(yyin|yyout|yyextra|yyleng|yytext|yyflexdebug)/[^[:alnum:]_] {
if (ctrl.rewrite)
context_member(yytext, "M4_PROPERTY_CONTEXT_FORMAT");
else
ACTION_ECHO;
}
(yylineno|yycolumn)/[^[:alnum:]_] {
if (ctrl.rewrite)
context_member(yytext, "M4_PROPERTY_BUFFERSTACK_CONTEXT_FORMAT");
else
ACTION_ECHO;
}
[^[:Alpha:]_{}""''/\n\[\]]+ ACTION_ECHO;
{NAME} ACTION_ECHO;
"'"([^''\\\n]|\\.)"'" ACTION_ECHO; /* character constant */
"'" ACTION_ECHO; BEGIN(CHARACTER_CONSTANT);
@@ -951,7 +992,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
ACTION_ECHO;
if (bracelevel <= 0) {
if ( doing_rule_action )
add_action( "\tYY_BREAK]""]\n" );
add_action( "\t]""]M4_HOOK_STATE_CASE_BREAK\n" );
doing_rule_action = false;
BEGIN(SECT2);
@@ -1053,3 +1094,38 @@ void set_input_file( char *file )
linenum = 1;
}
void context_call(char *txt) {
const char *context_arg = skel_property("M4_PROPERTY_CONTEXT_ARG");
/* if there's no such property, simply pass through */
if (context_arg == NULL) {
add_action(txt);
} else {
char buf[BUFSIZ];
/* otherwise, supply the context string as a final argument */
assert(txt[strlen(txt)-1] == ')');
strncpy(buf, txt, sizeof(buf));
buf[strlen(buf)-1] = '\0'; /* remove trailing ) */
add_action(buf);
if (txt[strlen(buf)-1] != '(') {
add_action(", ");
}
add_action(context_arg);
add_action(")");
}
}
void context_member(char *txt, const char *prop) {
const char *context_format = skel_property(prop);
/* if there's no such property, simply pass through */
if (context_format == NULL) {
add_action(txt);
} else {
char buf[128];
snprintf(buf, sizeof(buf), context_format, txt);
add_action(buf);
}
}
+2 -2
View File
@@ -76,7 +76,7 @@ extern "C" {
/* Initializes scanner and checks option list for errors.
* Parameters:
* options - Array of options.
* options - Array of ctrl.
* argc - Same as passed to main().
* argv - Same as passed to main(). First element is skipped.
* flags - Control behavior.
@@ -110,7 +110,7 @@ extern "C" {
* If return is zero, then optindex is the NEXT valid option index.
*
* Return: > 0 on success. Return value is from optspec_t->rval.
* == 0 if at end of options.
* == 0 if at end of ctrl.
* < 0 on error (return value is an error code).
*
*/
+255
View File
@@ -0,0 +1,255 @@
/* flex - tool to generate fast lexical analyzers */
/* Copyright (c) 1990 The Regents of the University of California. */
/* All rights reserved. */
/* This code is derived from software contributed to Berkeley by */
/* Vern Paxson. */
/* The United States Government has rights in this work pursuant */
/* to contract no. DE-AC03-76SF00098 between the United States */
/* Department of Energy and the University of California. */
/* This file is part of flex. */
/* Redistribution and use in source and binary forms, with or without */
/* modification, are permitted provided that the following conditions */
/* are met: */
/* 1. Redistributions of source code must retain the above copyright */
/* notice, this list of conditions and the following disclaimer. */
/* 2. Redistributions in binary form must reproduce the above copyright */
/* notice, this list of conditions and the following disclaimer in the */
/* documentation and/or other materials provided with the distribution. */
/* Neither the name of the University nor the names of its contributors */
/* may be used to endorse or promote products derived from this software */
/* without specific prior written permission. */
/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */
/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
/* PURPOSE. */
#include "flexdef.h"
#include "tables.h"
/* START digested skeletons */
const char *cpp_skel[] = {
#include "cpp-flex.h"
0,
};
const char *c99_skel[] = {
#include "c99-flex.h"
0,
};
const char *go_skel[] = {
#include "go-flex.h"
0,
};
/* END digested skeletons */
/* Method table describing a language-specific back end.
* Even if this never gets a member other than the skel
* array, it prevents us from getting lost in a maze of
* twisty array reference levels, all different.
*/
struct flex_backend_t {
const char **skel; // Digested skeleton file
};
static struct flex_backend_t backends[] = {
{.skel=cpp_skel},
{.skel=c99_skel},
{.skel=go_skel},
{NULL}
};
static struct flex_backend_t *backend = &backends[0];
/* Functions for querying skeleton properties. */
bool is_default_backend(void)
{
return backend == &backends[0];
}
/* Search for a string in the skeleton prolog, where macros are defined.
*/
static bool boneseeker(const char *bone)
{
int i;
for (i = 0; backend->skel[i] != NULL; i++) {
const char *line = backend->skel[i];
if (strstr(line, bone) != NULL)
return true;
else if (strncmp(line, "%%", 2) == 0)
break;
}
return false;
}
void backend_by_name(const char *name)
{
const char *prefix_property;
if (name != NULL) {
if (strcmp(name, "nr") == 0) {
backend = &backends[0];
ctrl.reentrant = false;
goto backend_ok;
}
if (strcmp(name, "r") == 0) {
backend = &backends[0];
ctrl.reentrant = true;
goto backend_ok;
}
for (backend = &backends[0]; backend->skel != NULL; backend++) {
if (strcasecmp(skel_property("M4_PROPERTY_BACKEND_NAME"), name) == 0)
goto backend_ok;
}
flexerror(_("no such back end"));
}
backend_ok:
ctrl.rewrite = !is_default_backend();
ctrl.backend_name = xstrdup(skel_property("M4_PROPERTY_BACKEND_NAME"));
ctrl.traceline_re = xstrdup(skel_property("M4_PROPERTY_TRACE_LINE_REGEXP"));
ctrl.traceline_template = xstrdup(skel_property("M4_PROPERTY_TRACE_LINE_TEMPLATE"));
ctrl.have_state_entry_format = boneseeker("m4_define([[M4_HOOK_STATE_ENTRY_FORMAT]]");
prefix_property = skel_property("M4_PROPERTY_PREFIX");
if (prefix_property != NULL)
ctrl.prefix = xstrdup(prefix_property);
flex_init_regex(ctrl.traceline_re);
}
const char *suffix (void)
{
const char *suffix;
if (is_default_backend()) {
if (ctrl.C_plus_plus)
suffix = "cc";
else
suffix = "c";
} else {
suffix = skel_property("M4_PROPERTY_SOURCE_SUFFIX");
}
return suffix;
}
/* Search for a m4 define of the property key, retrieve the value. The
* definition must be single-line. Don't call this a second time before
* stashing away the previous return, we cheat with static buffers.
*/
const char *skel_property(const char *propname)
{
int i;
static char name[256], value[256], *np, *vp;;
const char *cp;
for (i = 0; backend->skel[i] != NULL; i++) {
const char *line = backend->skel[i];
if (line[0] == '\0')
continue;
/* only scan before first skell breakpoint */
if (strncmp(line, "%%", 2) == 0)
break;
/* ignore anything that's not a definition */
if (strncmp(line, "m4_define(", 10) != 0)
continue;
/* skip space and quotes before macro name */
for (cp = line + 10; isspace(*cp) || *cp == '['; *cp++)
continue;
/* copy up to following ] into the name buffer */
np = name;
while (*cp != ']' && *cp != '\0' && (np < name + sizeof(name)-1)) {
*np++ = *cp++;
}
*np = '\0';
/* check for valid and matching name */
if (*cp == ']') {
if (strcmp(name, propname) != 0)
continue; /* try next line */
} else {
flexerror(_("unterminated or too long property name"));
continue;
}
/* skip to the property value */
while (*cp != '\0' && (*cp == ']' || isspace(*cp) || *cp == ','))
cp++;
while (*cp == '[')
cp++;
if (*cp == '\0')
flexerror(_("garbled property line"));
/* extract the value */
vp = value;
while (*cp != '\0' && vp < value + sizeof(value) - 1 && (cp[0] != ']' || cp[1] != ']'))
*vp++ = *cp++;
if (*cp == ']') {
*vp = '\0';
return value;
} else {
flexerror(_("unterminated or too long property value"));
}
}
return NULL;
}
/* skelout - write out one section of the skeleton file
*
* Description
* Copies skelfile or skel array to stdout until a line beginning with
* "%%" or EOF is found.
*/
void skelout (bool announce)
{
char buf_storage[MAXLINE];
char *buf = buf_storage;
bool do_copy = true;
/* Loop pulling lines either from the skelfile, if we're using
* one, or from the selected back end's skel[] array.
*/
while (env.skelfile != NULL ?
(fgets (buf, MAXLINE, env.skelfile) != NULL) :
((buf = (char *) backend->skel[skel_ind++]) != 0)) {
if (env.skelfile != NULL)
chomp (buf);
/* copy from skel array */
if (buf[0] == '%') { /* control line */
/* print the control line as a comment. */
if (ctrl.ddebug && buf[1] != '#') {
comment(buf);
outc ('\n');
}
if (buf[1] == '#') {
/* %# indicates comment line to be ignored */
}
else if (buf[1] == '%') {
/* %% is a break point for skelout() */
if (announce) {
comment(buf);
outc ('\n');
}
return;
}
else {
flexfatal (_("bad line in skeleton file"));
}
}
else if (do_copy)
outn (buf);
} /* end while */
}
/* end */
+2 -2
View File
@@ -128,11 +128,11 @@ struct yytbl_data {
#endif
#ifdef FLEX_SCANNER
%not-for-header
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],[[
#endif
yyskel_static flex_int32_t yytbl_calc_total_len (const struct yytbl_data *tbl);
#ifdef FLEX_SCANNER
%ok-for-header
]])
#endif
/* vim:set noexpandtab cindent tabstop=8 softtabstop=0 shiftwidth=8 textwidth=0: */
+4 -4
View File
@@ -228,7 +228,7 @@ void cmptmps (void)
peakpairs = numtemps * numecs + tblend;
if (usemecs) {
if (ctrl.usemecs) {
/* Create equivalence classes based on data gathered on
* template transitions.
*/
@@ -250,7 +250,7 @@ void cmptmps (void)
for (j = 1; j <= numecs; ++j) {
trans = tnxt[numecs * i + j];
if (usemecs) {
if (ctrl.usemecs) {
/* The absolute value of tecbck is the
* meta-equivalence class of a given
* equivalence class, as set up by cre8ecs().
@@ -426,7 +426,7 @@ void inittbl (void)
firstfree = tblend + 1;
numtemps = 0;
if (usemecs) {
if (ctrl.usemecs) {
/* Set up doubly-linked meta-equivalence classes; these
* are sets of equivalence classes which all have identical
* transitions out of TEMPLATES.
@@ -708,7 +708,7 @@ void mktemplate (int state[], int statenum, int comstate)
tnxt[tmpbase + i] = comstate;
}
if (usemecs)
if (ctrl.usemecs)
mkeccl (transset, tsptr, tecfwd, tecbck, numecs, 0);
mkprot (tnxt + tmpbase, -numtemps, comstate);
+2 -2
View File
@@ -63,7 +63,7 @@ int yylex (void)
toktype = 0;
}
if (trace) {
if (env.trace) {
if (beglin) {
fprintf (stderr, "%d\t", num_rules + 1);
beglin = 0;
@@ -152,7 +152,7 @@ int yylex (void)
default:
if (!isascii (yylval) || !isprint (yylval)) {
if(trace_hex)
if(env.trace_hex)
fprintf (stderr, "\\x%02x", (unsigned int) yylval);
else
fprintf (stderr, "\\%.3o", (unsigned int) yylval);
Regular → Executable
+82 -43
View File
@@ -2,16 +2,16 @@
*.trs
*.o
*.tables
alloc_extra
alloc_extra.c
array_nr
array_nr.c
array_r
array_r.c
basic_nr
basic_nr.c
basic_r
basic_r.c
alloc_extra_nr
alloc_extra_nr.c
alloc_extra_c99
alloc_extra_c99.c
array*
!array.rules
!array.txt
basic*
!basic.rules
!basic.txt
bison_nr
bison_nr_scanner.[ch]
bison_nr_parser.[ch]
@@ -21,12 +21,16 @@ bison_yylloc_scanner.[ch]
bison_yylval
bison_yylval_parser.[ch]
bison_yylval_scanner.[ch]
bol*
!bol.rules
!bol.txt
c_cxx_nr
c_cxx_nr.cc
c_cxx_r
c_cxx_r.cc
ccl
ccl.c
ccl*
!ccl.rules
!ccl.txt
cxx_basic
cxx_basic.cc
cxx_multiple_scanners
@@ -35,12 +39,18 @@ cxx_restart
cxx_restart.cc
cxx_yywrap.i3
cxx_yywrap.cc
debug_nr
debug_nr.c
debug_r
debug_r.c
extended
extended.c
debug*
!debug.rules
!debug.txt
extended*
!extended.rules
!extended.txt
fixedtrailing*
!fixedtrailing.rules
!fixedtrailing.txt
flexname*
!flexname.rules
!flexname.txt
header_nr
header_nr_scanner.[ch]
header_r
@@ -51,55 +61,84 @@ include_by_push.direct
include_by_push.direct.c
include_by_reentrant.direct
include_by_reentrant.direct.c
lineno_nr.one
lineno_nr.c
lineno_r.one
lineno_r.c
lineno_trailing.one
lineno_trailing.c
lexcompat*
!lexcompat.rules
!lexcompat.txt
lineno*
!lineno.rules
!lineno.txt
mem_nr
mem_nr.c
mem_r
mem_r.c
mem_c99
mem_c99.c
multiple_scanners_nr
multiple_scanners_nr_[12].[ch]
multiple_scanners_r
multiple_scanners_r_[12].[ch]
posix
posix.c
posixly_correct
posixly_correct.c
posix*
!posix.rules
!posix.txt
posixlycorrect*
!posixlycorrect.rules
!posixlycorrect.txt
prefix_nr
prefix_nr.c
prefix_r
prefix_r.c
prefix_c99
prefix_c99.c
preposix*
!preposix.rules
!preposix.txt
pthread.pthread
pthread.c
reject_nr.reject
reject_nr.reject.c
reject_r.reject
reject_r.reject.c
reject_ver.table
reject_ver.table.c
reject_ser.table
reject_ser.table.c
quoteincomment*
!quoteincomment.rules
!quoteincomment.txt
quotes
quotes.c
reject*
!reject.rules
!reject.txt
rescan_nr.direct
rescan_nr.direct.c
rescan_r.direct
rescan_r.direct.c
quote_in_comment
quote_in_comment.c
quotes
quotes.c
string_nr
string_nr.c
string_r
string_r.c
string_c99
string_c99.c
tableopts*
!tableopts.rules
!tableopts.txt
top
top.[ch]
yyextra
yyextra.c
tableopts_*.c
vartrailing*
!vartrailing.rules
!vartrailing.txt
yyextra_nr
yyextra_nr.c
yyextra_c99
yyextra_c99.c
yyless*
!yyless.rules
!yyless.txt
yymore*
!yymore.rules
!yymore.txt
!yymorearray.rules
!yymorearray.txt
!yymorearraybol.rules
!yymorearraybol.txt
yyunput*
!yyunput.rules
!yyunput.txt
test-yydecl-*
!test-yydecl-gen.sh
*.opt
*.ser
*.ver
+119 -198
View File
@@ -24,22 +24,16 @@ AM_CFLAGS = $(WARNINGFLAGS)
TESTS = $(check_PROGRAMS) options.cn
# The script testwrapper.sh will run most tests as is. A couple tests
# in the suite end in .reject, .table and the like so that we can pass
# in the suite end in .direct, .cn. and the like so that we can pass
# different arguments to the test runner. We list those extensions so
# automake knows how to distinguish between the various kinds of tests
# we have.
TEST_EXTENSIONS = .reject .table .direct .cn .i3 .pthread .one .opt .ser .ver
TEST_EXTENSIONS = .direct .cn .i3 .pthread .opt .ser .ver
LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_LOG_FLAGS = -d $(srcdir) -r
REJECT_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_REJECT_LOG_FLAGS = -d $(srcdir) -i $(srcdir)/reject.txt -r
TABLE_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_TABLE_LOG_FLAGS = -d $(builddir) -i $(srcdir)/reject.txt -t
DIRECT_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper-direct.sh
AM_DIRECT_LOG_FLAGS = -b $(abs_builddir) -s $(srcdir)
@@ -52,81 +46,68 @@ AM_I3_LOG_FLAGS = -i $(srcdir)/cxx_yywrap.txt -i $(srcdir)/cxx_yywrap.txt -i $(s
PTHREAD_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_PTHREAD_LOG_FLAGS = -i $(srcdir)/pthread_1.txt -i $(srcdir)/pthread_2.txt -i $(srcdir)/pthread_3.txt -i $(srcdir)/pthread_4.txt -i $(srcdir)/pthread_5.txt
ONE_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_ONE_LOG_FLAGS = -1 -d $(srcdir)
OPT_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_OPT_LOG_FLAGS = -d $(srcdir) -i $(srcdir)/tableopts.txt -r
SER_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_SER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r
VER_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_VER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r
AM_YFLAGS = -d -p test
AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src
check_PROGRAMS = $(simple_tests) $(reject_tests) $(TABLE_TESTS) $(DIRECT_TESTS) $(I3_TESTS) $(PTHREAD_TESTS) $(ONE_TESTS) $(TABLEOPTS_TESTS)
check_PROGRAMS = $(RULESET_TESTS) $(SPORADIC_TESTS) $(DIRECT_TESTS) $(I3_TESTS) $(PTHREAD_TESTS)
simple_tests = \
alloc_extra \
array_nr \
array_r \
basic_nr \
basic_r \
SPORADIC_TESTS = \
alloc_extra_nr \
alloc_extra_c99 \
bison_nr \
bison_yylloc \
bison_yylval \
c_cxx_nr \
c_cxx_r \
ccl \
cxx_basic \
cxx_multiple_scanners \
cxx_restart \
debug_nr \
debug_r \
extended \
header_nr \
header_r \
mem_nr \
mem_r \
mem_c99 \
multiple_scanners_nr \
multiple_scanners_r \
posix \
posixly_correct \
prefix_nr \
prefix_r \
quote_in_comment \
prefix_c99 \
quotes \
string_nr \
string_r \
string_c99 \
top \
yyextra
yyextra_nr \
yyextra_c99
reject_tests = \
reject_nr.reject \
reject_r.reject
TABLE_TESTS = \
reject_ver.table \
reject_ser.table
DIRECT_TESTS = \
include_by_buffer.direct \
include_by_push.direct \
include_by_reentrant.direct \
rescan_nr.direct \
rescan_r.direct
rescan_r.direct \
state_buf.direct \
state_buf_multiple.direct
I3_TESTS = \
cxx_yywrap.i3
cxx_yywrap.i3 \
yywrap_r.i3
PTHREAD_TESTS = \
pthread.pthread
ONE_TESTS = \
lineno_nr.one \
lineno_r.one \
lineno_trailing.one
quote_in_comment_SOURCES = quote_in_comment.l
alloc_extra_SOURCES = alloc_extra.l
array_nr_SOURCES = array_nr.l
array_r_SOURCES = array_r.l
basic_nr_SOURCES = basic_nr.l
basic_r_SOURCES = basic_r.l
alloc_extra_nr_SOURCES = alloc_extra_nr.l
alloc_extra_c99_SOURCES = alloc_extra_c99.l
if HAVE_BISON
bison_nr_SOURCES = bison_nr_scanner.l bison_nr_parser.y bison_nr_main.c
nodist_bison_nr_SOURCES = bison_nr_parser.h bison_nr_scanner.h
@@ -141,14 +122,10 @@ bison_yylval_SOURCES = no_bison_stub.c
endif
c_cxx_nr_SOURCES = c_cxx_nr.lll
c_cxx_r_SOURCES = c_cxx_r.lll
ccl_SOURCES = ccl.l
cxx_basic_SOURCES = cxx_basic.ll
cxx_restart_SOURCES = cxx_restart.ll
cxx_multiple_scanners_SOURCES = cxx_multiple_scanners_main.cc cxx_multiple_scanners_1.ll cxx_multiple_scanners_2.ll
cxx_yywrap_i3_SOURCES = cxx_yywrap.ll
debug_nr_SOURCES = debug_nr.l
debug_r_SOURCES = debug_r.l
extended_SOURCES = extended.l
header_nr_SOURCES = header_nr_scanner.l header_nr_main.c
nodist_header_nr_SOURCES = header_nr_scanner.h
header_r_SOURCES = header_r_scanner.l header_r_main.c
@@ -156,32 +133,30 @@ nodist_header_r_SOURCES = header_r_scanner.h
include_by_buffer_direct_SOURCES = include_by_buffer.direct.l
include_by_push_direct_SOURCES = include_by_push.direct.l
include_by_reentrant_direct_SOURCES = include_by_reentrant.direct.l
lineno_nr_one_SOURCES = lineno_nr.l
lineno_r_one_SOURCES = lineno_r.l
lineno_trailing_one_SOURCES = lineno_trailing.l
mem_nr_SOURCES = mem_nr.l
mem_r_SOURCES = mem_r.l
mem_c99_SOURCES = mem_c99.l
multiple_scanners_nr_SOURCES = multiple_scanners_nr_main.c multiple_scanners_nr_1.l multiple_scanners_nr_2.l
nodist_multiple_scanners_nr_SOURCES = multiple_scanners_nr_1.h multiple_scanners_nr_2.h
multiple_scanners_r_SOURCES = multiple_scanners_r_main.c multiple_scanners_r_1.l multiple_scanners_r_2.l
nodist_multiple_scanners_r_SOURCES = multiple_scanners_nr_1.h multiple_scanners_nr_2.h
posix_SOURCES = posix.l
posixly_correct_SOURCES = posixly_correct.l
prefix_nr_SOURCES = prefix_nr.l
prefix_r_SOURCES = prefix_r.l
prefix_c99_SOURCES = prefix_c99.l
pthread_pthread_SOURCES = pthread.l
quotes_SOURCES = quotes.l
reject_nr_reject_SOURCES = reject.l4
reject_r_reject_SOURCES = reject.l4
reject_ver_table_SOURCES = reject.l4
reject_ser_table_SOURCES = reject.l4
rescan_nr_direct_SOURCES = rescan_nr.direct.l
rescan_r_direct_SOURCES = rescan_r.direct.l
string_nr_SOURCES = string_nr.l
string_r_SOURCES = string_r.l
string_c99_SOURCES = string_c99.l
top_SOURCES = top.l top_main.c
nodist_top_SOURCES = top.h
yyextra_SOURCES = yyextra.l
yyextra_nr_SOURCES = yyextra_nr.l
yyextra_c99_SOURCES = yyextra_c99.l
yywrap_r_i3_SOURCES = yywrap_r.i3.l
state_buf_direct_SOURCES = state_buf.direct.lll
state_buf_multiple_direct_SOURCES = state_buf_multiple.direct.lll
# Normally, automake would distribute files built by flex. Since the
# point of the test suite is to test the files that flex builds, and
@@ -193,11 +168,8 @@ yyextra_SOURCES = yyextra.l
# it.
CLEANFILES = \
alloc_extra.c \
array_nr.c \
array_r.c \
basic_nr.c \
basic_r.c \
alloc_extra_nr.c \
alloc_extra_c99.c \
bison_nr_parser.c \
bison_nr_parser.h \
bison_nr_scanner.c \
@@ -212,15 +184,11 @@ CLEANFILES = \
bison_yylval_scanner.h \
c_cxx_nr.cc \
c_cxx_r.cc \
ccl.c \
cxx_basic.cc \
cxx_multiple_scanners_1.cc \
cxx_multiple_scanners_2.cc \
cxx_restart.cc \
cxx_yywrap.cc \
debug_nr.c \
debug_r.c \
extended.c \
header_nr_scanner.c \
header_nr_scanner.h \
header_r_scanner.c \
@@ -228,11 +196,9 @@ CLEANFILES = \
include_by_buffer.direct.c \
include_by_push.direct.c \
include_by_reentrant.direct.c \
lineno_nr.c \
lineno_r.c \
lineno_trailing.c \
mem_nr.c \
mem_r.c \
mem_c99.c \
multiple_scanners_nr_1.c \
multiple_scanners_nr_1.h \
multiple_scanners_nr_2.c \
@@ -241,55 +207,47 @@ CLEANFILES = \
multiple_scanners_r_1.h \
multiple_scanners_r_2.c \
multiple_scanners_r_2.h \
posix.c \
posixly_correct.c \
prefix_nr.c \
prefix_r.c \
prefix_c99.c \
pthread.c \
quote_in_comment.c \
quotes.c \
reject_nr.reject.c \
reject_r.reject.c \
reject_ser.table.c \
reject_ser.table.tables \
reject_ver.table.c \
reject_ver.table.tables \
quotes_c99.c \
rescan_nr.direct.c \
rescan_r.direct.c \
string_nr.c \
string_r.c \
string_c99.c \
string_c99.c \
top.c \
top.h \
yyextra.c \
$(tableopts_c) \
$(tableopts_tables)
yyextra_nr.c \
yyextra_c99.c \
yywrap_r.i3.c \
state_buf.direct.cc \
state_buf_multiple.direct.cc \
$(RULESET_REMOVABLES)
dist-hook:
chmod u+w $(distdir) && \
for file in $(CLEANFILES) ; do \
rm -f $(distdir)/$$file \
; done
chmod u+w $(distdir)/$$file 2>/dev/null; \
rm -f $(distdir)/$$file; \
done
EXTRA_DIST = \
README \
testmaker.m4 \
alloc_extra.txt \
array_nr.txt \
array_r.txt \
basic_nr.txt \
basic_r.txt \
bison_nr.txt \
bison_yylloc.txt \
bison_yylval.txt \
c_cxx_nr.txt \
c_cxx_r.txt \
ccl.txt \
cxx_basic.txt \
cxx_multiple_scanners.txt \
cxx_restart.txt \
cxx_yywrap.txt \
debug_nr.txt \
debug_r.txt \
extended.txt \
header_nr.txt \
header_r.txt \
include_by_buffer.direct.txt \
@@ -301,29 +259,48 @@ EXTRA_DIST = \
include_by_reentrant.direct.txt \
include_by_reentrant.direct_2.txt \
include_by_reentrant.direct_3.txt \
lineno_nr.one.txt \
lineno_r.one.txt \
lineno_trailing.one.txt \
mem_nr.txt \
mem_r.txt \
prefix_nr.txt \
prefix_r.txt \
mem.txt \
prefix.txt \
pthread_1.txt \
pthread_2.txt \
pthread_3.txt \
pthread_4.txt \
pthread_5.txt \
reject.txt \
rescan_nr.direct.txt \
rescan_r.direct.txt \
quote_in_comment.txt \
quotes.txt \
top.txt \
yyextra.txt \
tableopts.txt
array.txt \
basic.txt \
bol.txt \
ccl.txt \
debug.txt \
extended.txt \
fixedtrailing.txt \
flexname.txt \
lexcompat.txt \
lineno.txt \
posix.txt \
posixlycorrect.txt \
preposix.txt \
quoteincomment.txt \
reject.txt \
tableopts.txt \
vartrailing.txt \
yyless.txt \
yymore.txt \
yymorearray.txt \
yymorearraybol.txt \
yyunput.txt \
state_buf.direct.txt \
state_buf_multiple.direct.txt \
$(RULESETS)
dist_noinst_SCRIPTS = \
tableopts.sh
ruleset.sh \
testmaker.sh \
test-yydecl-gen.sh
dist_check_SCRIPTS = \
options.cn \
@@ -403,108 +380,52 @@ multiple_scanners_r_2.h: multiple_scanners_r_2.c
@if test ! -f $@; then rm -f $<; else :; fi
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) $<; else :; fi
posixly_correct.c: posixly_correct.l $(FLEX)
$(AM_V_LEX)POSIXLY_CORRECT=1 $(FLEX) $(TESTOPTS) -o $@ $<
reject_nr.reject.c: reject.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -o $@ $<
reject_nr.reject$(EXEEXT): reject_nr.reject.$(OBJEXT)
$(AM_V_CCLD)$(LINK) $^
reject_r.reject.c: reject.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape --reentrant -o $@ $<
reject_r.reject.$(OBJEXT): reject_r.reject.c
$(AM_V_CC)$(COMPILE) -DTEST_IS_REENTRANT -c -o $@ $<
reject_r.reject$(EXEEXT): reject_r.reject.$(OBJEXT)
$(AM_V_CCLD)$(LINK) $^
reject_ver.table.c: reject.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -o $@ --tables-verify --tables-file=$(basename $@).tables $<
reject_ver.table.$(OBJEXT): reject_ver.table.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
reject_ver.table$(EXEEXT): reject_ver.table.$(OBJEXT)
$(AM_V_CCLD)$(LINK) $^
reject_ser.table.c: reject.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) -o $@ --unsafe-no-m4-sect3-escape --tables-file=$(basename $@).tables $<
reject_ser.table.$(OBJEXT): reject_ser.table.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
reject_ser.table$(EXEEXT): reject_ser.table.$(OBJEXT)
$(AM_V_CCLD)$(LINK) $^
top_main.$(OBJEXT): top.h
top.h: top.c
# We separate out the tableopts _SOURCES variables and the linking
# rules for those programs because automake has no way to specify such
# things with a loop in a variable (even though make can do such
# things) and the resultant list is both long an unenlightening. And
# it can be / is generated by a shell script, tableopts.sh.
# Build rules for non-C back ends
$(srcdir)/tableopts.am: tableopts.sh
$(SHELL) $(srcdir)/tableopts.sh > $(srcdir)/tableopts.am
.l.go:
$(AM_V_LEX)$(FLEX) $(TESTOPTS) -o $@ $<
include $(srcdir)/tableopts.am
# This is a temporary fake rule for use while the Go back end still
# actually generates C.
.go:
$(CC) $< -o $*_go
tableopts := -Ca -Ce -Cf -CF -Cm -Cem -Cae -Caef -CaeF -Cam -Caem
tableopts_opt_tests := $(foreach opt,$(tableopts), tableopts_opt_nr$(opt) tableopts_opt_r$(opt))
tableopts_sertests := $(foreach opt,$(tableopts), tableopts_ser_nr$(opt) tableopts_ser_r$(opt))
tableopts_vertests := $(foreach opt,$(tableopts), tableopts_ver_nr$(opt) tableopts_ver_r$(opt))
tableopts_tests := $(tableopts_opttests) $(tableopts_vertests) $(tableopts_sertests)
# Most test productions can be autogenerated from ruleset files, but
# automake has no way to specify such things with a loop in a variable
# (even though make can do such things) and the resultant list is both
# long and unenlightening. And it can be / is generated by a shell
# script, ruleset.sh.
tableopts_c := $(addsuffix .c,$(tableopts_tests))
RULESETS = \
$(srcdir)/array.rules \
$(srcdir)/basic.rules \
$(srcdir)/bol.rules \
$(srcdir)/ccl.rules \
$(srcdir)/debug.rules \
$(srcdir)/extended.rules \
$(srcdir)/fixedtrailing.rules \
$(srcdir)/flexname.rules \
$(srcdir)/lexcompat.rules \
$(srcdir)/lineno.rules \
$(srcdir)/posix.rules \
$(srcdir)/posixlycorrect.rules \
$(srcdir)/preposix.rules \
$(srcdir)/quoteincomment.rules \
$(srcdir)/reject.rules \
$(srcdir)/tableopts.rules \
$(srcdir)/vartrailing.rules \
$(srcdir)/yyless.rules \
$(srcdir)/yymore.rules \
$(srcdir)/yymorearray.rules \
$(srcdir)/yymorearraybol.rules \
$(srcdir)/yyunput.rules
OPT_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_OPT_LOG_FLAGS = -d $(srcdir) -i $(srcdir)/tableopts.txt -r
$(srcdir)/ruleset.am: $(srcdir)/ruleset.sh $(RULESETS)
$(SHELL) $(srcdir)/ruleset.sh nr r c99 go > $(srcdir)/ruleset.am
tableopts_opt_nr%.c: tableopts.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) $(*:_F=F) -o $@ $<
include $(srcdir)/ruleset.am
tableopts_opt_nr%.$(OBJEXT): tableopts_opt_nr%.c
$(AM_V_CC)$(COMPILE) -c -o $@ $<
tableopts_opt_r%.c: tableopts.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --reentrant $(subst _F,F,$*) -o $@ $<
tableopts_opt_r%.$(OBJEXT): tableopts_opt_r%.c
$(AM_V_CC)$(COMPILE) -DTEST_IS_REENTRANT -c -o $@ $<
SER_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_SER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r -t
tableopts_ser_nr%.c: tableopts.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ser_nr$*.ser.tables" $(subst _F,F,$*) -o $@ $<
tableopts_ser_nr%.$(OBJEXT): tableopts_ser_nr%.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
tableopts_ser_r%.c: tableopts.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ser_r$*.ser.tables" $(subst _F,F,$*) -o $@ $<
tableopts_ser_r%.$(OBJEXT): tableopts_ser_r%.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT -c -o $@ $<
VER_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_VER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r -t
tableopts_ver_nr%.c: tableopts.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ver_nr$*.ver.tables" --tables-verify $(subst _F,F,$*) -o $@ $<
tableopts_ver_nr%.$(OBJEXT): tableopts_ver_nr%.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
tableopts_ver_nr%.ver$(EXEEXT): tableopts_ver_nr%.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $^
tableopts_ver_r%.c: tableopts.l4 $(FLEX)
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ver_r$*.ver.tables" --tables-verify $(subst _F,F,$*) -o $@ $<
tableopts_ver_r%.$(OBJEXT): tableopts_ver_r%.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT -c -o $@ $<
+60 -13
View File
@@ -8,14 +8,14 @@ this directory and its contents.
* STRUCTURE OF THE TEST SUITE
The testsuite consists of several tests. Each test is centered around
a scanner known to work with the most recent version of flex. In
general, after you modify your copy of the flex distribution, you
should re-run the test suite. Some of the tests may require certain
tools to be available (e.g., bison, diff). If any test returns an
error or generates an error message, then your modifications *may*
have broken a feature of flex. At a minimum, you'll want to
investigate the failure and determine if it's truly significant.
Each test is centered around a scanner known to work with the most
recent version of flex. In general, after you modify your copy of the
flex distribution, you should re-run the test suite. Some of the tests
may require certain tools to be available (e.g., bison, diff). If any
test returns an error or generates an error message, then your
modifications *may* have broken a feature of flex. At a minimum,
you'll want to investigate the failure and determine if it's truly
significant.
* HOW TO RUN THE TEST SUITE
@@ -34,20 +34,27 @@ To build and execute a single test:
* HOW TO ADD A NEW TEST TO THE TEST SUITE
** List your test in the TESTS variable in Makefile.am in this
directory. Note that due to the large number of tests, we use
** If possible, just write a *.rules file. Exit with status 1 to
indicate failure, e.g. with a "." production if nothing
prior properly consumed every input token. The test machinery
will expand a rules file into tests for all back ends. Note that
text following ### at the end of the ruleset will be used as input.
** Otherwise, list your test in the TESTS variable in Makefile.am in
this directory. Note that due to the large number of tests, we use
variables to group similar tests together. This also helps with
handling the automake test suite requirements. Hopefully your test
can be listed in SIMPLE_TESTS. You'll need to add the appropriate
automake _SOURCES variable as well. If you're unsure, then consult
automake _SOURCES variable as well, and .gitignore lines for the
binary and generated code. If you're unsure, then consult
the automake manual, paying attention to the parallel test harness
section.
** On success, your test should return zero.
** On error, your test should return 1 (one) and print a message to
stderr, which will have been redirected to the log file created by the
automake test suite harness.
stderr, which will have been redirected to the log file created by the
automake test suite harness.
** If your test is skipped (e.g., because bison was not found), then
the test should return 77 (seventy-seven). This is the exit status that
@@ -56,3 +63,43 @@ automake test suite harness.
** Once your work is done, submit a patch via the flex development
mailing list, the github pull request mechanism or some other
suitable means.
* NAMING CONVENTIONS
A test with an _nr suffix exercises a non-reentrant scanner built
with the default cpp back end.
A test with an _r suffix exercises a reentrant scanner built
with the default cpp back end.
A test with a c99 suffix exercises the c99 back end. All C99
scanners are re-entrant.
Most tests occur in groups with a common stem in the names, like
alloc_extra_ or debug_. These are exercising the same token grammar
under different back ends. As new target languages are added these
groups of parallel tests will grow. Tests that are not part of one of
these series are usually of features supported on the default cpp
back end only.
The "generated" tests are made by wrapping boilerplate code around a
rules file. The assumption is that the test binary should consume the
data following ### in the rules file, exercising some set of Flex
features and not returning a nonzero status.
If you can express your test as a ruleset within in this orotocol,
please do so. Those tests are easy to port to new back ends, as that
whole job can be done by enhabcing testmaker.m4.
* WHY SOME TESTS ARE MISSING
The "top" test is backend-independent; what it's really testing
is Flex's ability to accumulate and ship preamble code sections.
The "quotes" test is also backend-indepedent; it's testing that
m4 expansion doesn't leak through the genertated scanner.
The C99 backend is missing tests for the Bison bridge, header
generation, and loadable tables because it omits those features in
order to be a simpler starting point for wring new back ends.
+123
View File
@@ -0,0 +1,123 @@
/*
* This file is part of flex.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE.
*/
%{
/* A file to build "scanner.c". */
/* This tests that we can use "yyextra".
We buffer all input into a growable array, then print it.
We run diff on the input and output.
*/
#include <stdio.h>
#include <stdlib.h>
#include "config.h"
/* We'll store the entire input in this buffer, growing as necessary. */
struct Check {
char foo;
char *bar;
char qux;
};
void *yyalloc(size_t, yyscan_t);
/* Save char into junk array at next position. */
static void check_extra ( yyscan_t scanner );
%}
%option emit="c99"
%option 8bit
%option nounput nomain noyywrap nodefault noinput
%option warn
%option extra-type="struct Check *"
%option noyyalloc
%%
.|\r|\n { check_extra (yyscanner); }
%%
int main(void);
int
main (void)
{
yyscan_t scanner;
struct Check check;
check.foo = 'a';
check.bar = NULL;
check.qux = 'z';
yylex_init_extra(&check, &scanner);
yyset_in(stdin, scanner);
yyset_out(stdout, scanner);
/* Test to confirm that testalloc was called from
* testlex_init_extra with the testextra argument.
*/
check_extra(scanner);
yylex(scanner);
yylex_destroy(scanner);
return 0;
}
/* Replaces the stock yyalloc */
void *yyalloc(size_t size, yyscan_t scanner)
{
struct Check *check;
check = yyget_extra(scanner);
if (!check->bar)
check->bar = "Hello World";
check_extra(scanner);
return malloc(size);
}
/* Save char into junk array at next position. */
static void check_extra(yyscan_t scanner)
{
struct Check *check;
check = yyget_extra(scanner);
if (check->foo != 'a') {
fprintf(stderr, "foo is not 'a'\n");
exit(1);
}
if (strcmp(check->bar, "Hello World") != 0) {
fprintf(stderr, "bar is not Hello World\n");
exit(1);
}
if (check->qux != 'z') {
fprintf(stderr, "qux is not 'z'\n");
exit(1);
}
}
+5 -29
View File
@@ -1,5 +1,4 @@
/*
* This file is part of flex.
/* This file is part of flex.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -20,36 +19,13 @@
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE.
*/
%{
/* A template scanner file to build "scanner.c". */
#include <stdio.h>
#include <stdlib.h>
#include "config.h"
/*#include "parser.h" */
%}
%option 8bit prefix="test"
%option 8bit
%option nounput nomain noyywrap noinput
%option warn array
%%
.|\n { }
%%
int main (void);
int
main (void)
{
yyin = stdin;
yyout = stdout;
yylex();
printf("TEST RETURNING OK.\n");
return 0;
}
###
0000 foo 1111 foo 0000 bar
0000 foo 1111 foo 0000 bar
-2
View File
@@ -1,2 +0,0 @@
0000 foo 1111 foo 0000 bar
0000 foo 1111 foo 0000 bar
+10 -23
View File
@@ -1,20 +1,20 @@
/*
* This file is part of flex.
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
*
* Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
@@ -22,7 +22,6 @@
*/
/* TEST scanner.
Basic non-reentrant scanner.
Sample Input:
# this is a comment
@@ -30,11 +29,7 @@
bar = "string value"
integer = 43
*/
%{
#include "config.h"
%}
%option prefix="test"
%option nounput noyywrap noyylineno warn nodefault noinput
IDENT [[:alnum:]_-]
@@ -46,19 +41,11 @@ WS [[:blank:]]
^{IDENT}+{WS}*={WS}*[[:digit:]]+{WS}*\r?\n { return 102;}
^{WS}*#.*\r?\n { }
^{WS}*\r?\n { }
.|\n { fprintf(stderr,"Invalid line.\n"); exit(-1);}
.|\n {M4_TEST_FAILMESSAGE}
%%
###
# this is a comment
foo = "bar"
num = 43
setting = false
int main(void);
int main (void)
{
yyin = stdin;
yyout = stdout;
while( yylex() )
{
}
printf("TEST RETURNING OK.\n");
return 0;
}
-68
View File
@@ -1,68 +0,0 @@
/*
* This file is part of flex.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE.
*/
/* A reentrant scanner.
This file will not compile under flex version <= 2.5.4.
Sample Input:
# this is a comment
foo = true
bar = "string value"
integer = 43
*/
%{
#include "config.h"
%}
%option prefix="test"
%option nounput noyywrap noyylineno warn nodefault noinput
%option reentrant
IDENT [[:alnum:]_-]
WS [[:blank:]]
%%
^{IDENT}+{WS}*={WS}*(true|false){WS}*\r?\n { return 100;}
^{IDENT}+{WS}*={WS}*\"[^\"\n\r]*\"{WS}*\r?\n { return 101;}
^{IDENT}+{WS}*={WS}*[[:digit:]]+{WS}*\r?\n { return 102;}
^{WS}*#.*\r?\n { }
^{WS}*\r?\n { }
.|\n { fprintf(stderr,"Invalid line.\n"); exit(-1);}
%%
int main(void);
int main (void)
{
yyscan_t lexer;
testlex_init( &lexer );
testset_out ( stdout,lexer);
testset_in ( stdin, lexer);
while( testlex(lexer) )
{
}
testlex_destroy( lexer );
printf("TEST RETURNING OK.\n");
return 0;
}

Some files were not shown because too many files have changed in this diff Show More