Author SHA1 Message Date
Eric S. Raymond 585889745c 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 14:26:29 -04:00
Will Estes f8fd9731d4 build: set dependency info involving cpp-skel.h 2020-09-26 20:09:29 -04:00
Eric S. Raymond 695cab8a1e Fold documentation on how to write bac ends into the Texinfo manual 2020-09-26 20:08:02 -04:00
179 changed files with 12261 additions and 20501 deletions
-29
View File
@@ -1,29 +0,0 @@
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
@@ -1,79 +0,0 @@
# 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,6 +8,7 @@
.libs
ABOUT-NLS
ChangeLog
INSTALL
Makefile
Makefile.in
aclocal.m4
+24
View File
@@ -0,0 +1,24 @@
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
@@ -0,0 +1,24 @@
#!/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
@@ -0,0 +1,25 @@
#!/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
@@ -1,67 +0,0 @@
# 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.
+2 -6
View File
@@ -38,8 +38,7 @@ dist_doc_DATA = \
README.md
EXTRA_DIST = \
.indent.pro \
INSTALL
.indent.pro
dist_noinst_SCRIPTS = \
autogen.sh \
@@ -90,8 +89,5 @@ 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 lint
ChangeLog indent
+43 -2
View File
@@ -1,5 +1,4 @@
[![Build Status](https://github.com/westes/flex/actions/workflows/build.yml/badge.svg)](https://github.com/westes/flex/actions/workflows/build.yml)
[![Build Status](https://travis-ci.org/westes/flex.svg?branch=master)](https://travis-ci.org/westes/flex)
This is flex, the fast lexical analyzer generator.
@@ -42,6 +41,48 @@ 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
@@ -1,9 +0,0 @@
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.
+12 -13
View File
@@ -25,20 +25,19 @@
# and procede with the "normal" build procedures.
# use LIBTOOLIZE, if set
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
LIBTOOLIZE_ORIG="$LIBTOOLIZE";
if test "x$LIBTOOLIZE" = "x"; then LIBTOOLIZE=libtoolize; fi
# test libtoolize
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
$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
fi
#if we pretend to have a ChangeLog, then automake is less
@@ -48,5 +47,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/wait.h unistd.h], [],
AC_CHECK_HEADERS([regex.h strings.h sys/stat.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])
Executable → Regular
-3
View File
@@ -1,9 +1,6 @@
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
Executable → Regular
+1051 -1459
View File
File diff suppressed because it is too large Load Diff
-3
View File
@@ -30,9 +30,6 @@ 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,23 +18,10 @@ 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,9 +10,3 @@ 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); yybegin(DAY);
<LONG>{month} strcpy(month,yytext); BEGIN(DAY);
/* handle the form: day-month-year */
<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>{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>{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); yybegin(YEAR_LAST);
<YEAR_LAST>{nmonth} strcpy(month,yytext);yybegin(YLMONTH);
<YLMONTH>{nyear} strcpy(year,yytext); yybegin(SHORT);
<SHORT>{nday} strcpy(day,yytext); BEGIN(YEAR_LAST);
<YEAR_LAST>{nmonth} strcpy(month,yytext);BEGIN(YLMONTH);
<YLMONTH>{nyear} strcpy(year,yytext); BEGIN(SHORT);
/* handle dates of the form: year-month-day */
<SHORT>{nyear} strcpy(year,yytext); yybegin(YEAR_FIRST);
<YEAR_FIRST>{nmonth} strcpy(month,yytext);yybegin(YFMONTH);
<YFMONTH>{nday} strcpy(day,yytext); yybegin(SHORT);
<SHORT>{nyear} strcpy(year,yytext); BEGIN(YEAR_FIRST);
<YEAR_FIRST>{nmonth} strcpy(month,yytext);BEGIN(YFMONTH);
<YFMONTH>{nday} strcpy(day,yytext); BEGIN(SHORT);
<SHORT>\n {
@@ -96,8 +96,8 @@ day_ext (st|nd|rd|th)?
strcpy(month,"");
}
long\n yybegin(LONG);
short\n yybegin(SHORT);
long\n BEGIN(LONG);
short\n BEGIN(SHORT);
{skip}*
\n
+5 -5
View File
@@ -17,15 +17,15 @@ int include_count = -1;
%%
^"#include"[ \t]*\" yybegin(INCLUDE);
<INCLUDE>\" yybegin(INITIAL);
^"#include"[ \t]*\" BEGIN(INCLUDE);
<INCLUDE>\" BEGIN(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));
yybegin(INITIAL);
BEGIN(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] );
yybegin(INCLUDE);
BEGIN(INCLUDE);
}
}
[a-z]+ ECHO;
-35
View File
@@ -1,35 +0,0 @@
/* 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
@@ -1,16 +0,0 @@
/* 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
@@ -1,21 +0,0 @@
/* 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,6 +3,9 @@
#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:"[^\.]+ yyecho();
"Examples:"[^\.]+ ECHO;
"*"[^*\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;
yybegin(EXAMPLE2);
BEGIN(EXAMPLE2);
}
<EXAMPLE,EXAMPLE2>^\n {
printf("@end example\n\n");
statep--;
yybegin(states[statep]);
BEGIN(states[statep]);
}
/*
@@ -231,7 +231,7 @@ void write_block_header(char *type)
yyless(loop);
statep++;
states[statep] = ENUM;
yybegin(ENUM);
BEGIN(ENUM);
}
<ENUM>"@" printf("@@");
@@ -239,7 +239,7 @@ void write_block_header(char *type)
printf(":\n\n@example\n");
statep++;
states[statep] = EXAMPLE;
yybegin(EXAMPLE);
BEGIN(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--;
yybegin(states[statep]);
BEGIN(states[statep]);
}
/*
@@ -265,7 +265,7 @@ void write_block_header(char *type)
yyless(2);
statep++;
states[statep] = LITEM2;
yybegin(LITEM2);
BEGIN(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");
yyecho();
ECHO;
statep--;
yybegin(states[statep]);
BEGIN(states[statep]);
}
/*
@@ -300,7 +300,7 @@ void write_block_header(char *type)
yyless(loop);
statep++;
states[statep] = LITEM;
yybegin(LITEM);
BEGIN(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--;
yybegin(states[statep]);
BEGIN(states[statep]);
}
/*
@@ -338,27 +338,27 @@ void write_block_header(char *type)
yyless((len-loop)+2);
statep++;
states[statep] = BITEM;
yybegin(BITEM);
BEGIN(BITEM);
}
<BITEM>^" "*"*" {
printf("@item");
statep++;
states[statep] = BITEM_ITEM;
yybegin(BITEM_ITEM);
BEGIN(BITEM_ITEM);
}
<BITEM>"@" printf("@@");
<BITEM>^\n {
printf("@end itemize\n\n");
statep--;
yybegin(states[statep]);
BEGIN(states[statep]);
}
<BITEM_ITEM>[^\:]* {
printf(" @b{%s}\n\n",check_and_convert(yytext));
}
<BITEM_ITEM>":" {
statep--;
yybegin(states[statep]);
BEGIN(states[statep]);
}
/*
@@ -369,13 +369,13 @@ void write_block_header(char *type)
(void)check_and_convert(&yytext[1]);
statep++;
states[statep] = HEADING;
yybegin(HEADING);
BEGIN(HEADING);
}
<HEADING>:[^\n] {
printf("@item @b{%s}\n",buffer);
write_underline(strlen(buffer),6,'~');
statep--;
yybegin(states[statep]);
BEGIN(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--;
yybegin(states[statep]);
BEGIN(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--;
yybegin(states[statep]);
BEGIN(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--;
yybegin(states[statep]);
BEGIN(states[statep]);
}
/*
@@ -417,10 +417,10 @@ void write_block_header(char *type)
printf("@example\n");
statep++;
states[statep] = EXAMPLE;
yybegin(EXAMPLE);
BEGIN(EXAMPLE);
}
<EXAMPLE>^" "
. yyecho();
. ECHO;
%%
+9 -9
View File
@@ -19,13 +19,13 @@ int include_count = -1;
%%
"{" yybegin(COMMENT);
"{" BEGIN(COMMENT);
<COMMENT>"}" yybegin(INITIAL);
<COMMENT>"$include"[ \t]*"(" yybegin(INCLUDE);
<COMMENT>"}" BEGIN(INITIAL);
<COMMENT>"$include"[ \t]*"(" BEGIN(INCLUDE);
<COMMENT>[ \t]* /* skip whitespace */
<INCLUDE>")" yybegin(COMMENT);
<INCLUDE>")" BEGIN(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));
yybegin(INITIAL);
BEGIN(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] );
yybegin(INCLUDE);
BEGIN(INCLUDE);
}
}
[a-z]+ yyecho();
.|\n yyecho();
[a-z]+ ECHO;
.|\n ECHO;
+4 -4
View File
@@ -31,17 +31,17 @@ bad_string \'([^'\n]|\'\')+
%%
"{" yybegin(COMMENT1);
"{" BEGIN(COMMENT1);
<COMMENT1>[^}\n]+
<COMMENT1>\n ++line_number;
<COMMENT1><<EOF>> yyerror("EOF in comment");
<COMMENT1>"}" yybegin(INITIAL);
<COMMENT1>"}" BEGIN(INITIAL);
"(*" yybegin(COMMENT2);
"(*" BEGIN(COMMENT2);
<COMMENT2>[^)*\n]+
<COMMENT2>\n ++line_number;
<COMMENT2><<EOF>> yyerror("EOF in comment");
<COMMENT2>"*)" yybegin(INITIAL);
<COMMENT2>"*)" BEGIN(INITIAL);
<COMMENT2>[*)]
/* note that FILE and BEGIN are already
+3 -3
View File
@@ -1,12 +1,12 @@
/*
* reject.lex: An example of yyreject() and yyunput()
* reject.lex: An example of REJECT and unput()
* misuse.
*/
%%
UNIX {
yyunput('U'); yyunput('N'); yyunput('G'); yyunput('\0');
yyreject();
unput('U'); unput('N'); unput('G'); unput('\0');
REJECT;
}
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);
, yyecho();
, ECHO;
%%
+9 -9
View File
@@ -1,5 +1,5 @@
/*
* string1.lex: Handling strings by using yyinput()
* string1.lex: Handling strings by using input()
*/
%{
@@ -27,13 +27,13 @@ void yyerror(char *message)
buffer = malloc(ALLOC_SIZE);
max_size = ALLOC_SIZE;
inch = yyinput();
inch = input();
count = 0;
while(inch != EOF && inch != '"' && inch != '\n'){
if(inch == '\\'){
inch = yyinput();
inch = input();
switch(inch){
case '\n': inch = yyinput(); break;
case '\n': inch = input(); 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 = yyinput();
case 'x' : inch = input();
if(isxdigit(inch)){
temp = hextoint(toupper(inch));
inch = yyinput();
inch = input();
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 = yyinput();
inch = input();
if(isodigit(inch)){
temp = (temp << 3) + (inch - '0');
} else {
unput(inch);
goto done;
}
inch = yyinput();
inch = input();
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 = yyinput();
inch = input();
}
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,"");
yybegin(STRING);
BEGIN(STRING);
}
<STRING>\n {
yyerror("Unterminated string");
free(buffer);
yybegin(INITIAL);
BEGIN(INITIAL);
}
<STRING><<EOF>> {
yyerror("EOF in string");
free(buffer);
yybegin(INITIAL);
BEGIN(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);
yybegin(INITIAL);
BEGIN(INITIAL);
}
%%
+2 -2
View File
@@ -1,6 +1,6 @@
/*
* unput.l : An example of what *not*
* to do with yyunput().
* to do with unput().
*/
@@ -24,7 +24,7 @@ void putback_yytext(void)
strcpy(buffer,yytext);
printf("Got: %s\n",yytext);
for(i=0; i<l; i++){
yyunput(buffer[i]);
unput(buffer[i]);
}
}
+4 -3
View File
@@ -4,13 +4,14 @@
void user_action(void);
#define YY_USER_ACTION user_action();
%}
%option pre-action = "user_action();"
%%
.* yyecho();
\n yyecho();
.* ECHO;
\n ECHO;
%%
+2 -1
View File
@@ -1,4 +1,6 @@
%{
#define YY_USER_INIT open_input_file()
extern FILE *yyin;
void open_input_file(void)
@@ -25,5 +27,4 @@ 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
%%
\" yybegin(STRING);
\" BEGIN(STRING);
<STRING>[^\\\n"]* yymore();
<STRING><<EOF>> yyerror("EOF in string."); yybegin(INITIAL);
<STRING>\n yyerror("Unterminated string."); yybegin(INITIAL);
<STRING><<EOF>> yyerror("EOF in string."); BEGIN(INITIAL);
<STRING>\n yyerror("Unterminated string."); BEGIN(INITIAL);
<STRING>\\\n yymore();
<STRING>\" {
yytext[yyleng-1] = '\0';
printf("string = \"%s\"",yytext); yybegin(INITIAL);
printf("string = \"%s\"",yytext); BEGIN(INITIAL);
}
%%
+4 -4
View File
@@ -16,11 +16,11 @@ void yyerror(char *message)
%x STRING
%%
\" yybegin(STRING);
\" BEGIN(STRING);
<STRING>[^\\\n"]* yymore();
<STRING><<EOF>> yyerror("EOF in string."); yybegin(INITIAL);
<STRING>\n yyerror("Unterminated string."); yybegin(INITIAL);
<STRING><<EOF>> yyerror("EOF in string."); BEGIN(INITIAL);
<STRING>\n yyerror("Unterminated string."); BEGIN(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); yybegin(INITIAL);
printf("string = \"%s\"",yytext); BEGIN(INITIAL);
}
%%
+254 -294
View File
File diff suppressed because it is too large Load Diff
+198 -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: 2022-09-27 14:18-0400\n"
"POT-Creation-Date: 2017-05-06 10:49-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,13 +17,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "Ha fallat l'assignació d'un búfer per imprimir la cadena"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: 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/dfa.c:59
#, c-format
@@ -57,7 +65,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "la comprovació de consistència ha fallat en epsclosure()"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -69,24 +77,24 @@ msgstr ""
"Bolcat AFD:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
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:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "estat # %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "No s'ha pogut escriure yynxt_tbl[][]"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "caràcter de transició incorrecte detectat en sympartition()"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -98,29 +106,29 @@ msgstr ""
"Classes d'equivalència:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "l'estat # %d accepta: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "l'estat # %d accepta: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "No s'ha pogut escriure yyacclist_tbl"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "No s'ha pogut escriure yyacc_tbl"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "No s'ha pogut escriure ecstbl"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -130,277 +138,293 @@ msgstr ""
"\n"
"Classes de metaequivalència:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "No s'ha pogut escriure yymeta_tbl"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "No s'ha pogut escriure yybase_tbl"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "No s'ha pogut escriure yydef_tbl"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "No s'ha pogut escriure yynxt_tbl"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "No s'ha pogut escriure yychk_tbl"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "No s'ha pogut escriure ftbl"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "No s'ha pogut escriure ssltbl"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "No s'ha pogut escriure eoltbl"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "No s'ha pogut escriure yynultrans_tbl"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "no es pot satisfer la regla"
#: src/main.c:174
#: src/main.c:183
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:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "No es pot fer servir -+ amb l'opció -l"
#: src/main.c:320
#: src/main.c:224
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:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "No es pot fer servir --reentrant o --bison-bridge amb l'opció -l"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF i -Cm no tenen sentit juntes"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF i -I són incompatibles"
#: src/main.c:363
#: src/main.c:267
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:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf i -CF són mútuament excloents"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "No es pot fer servir -+ amb l'opció -CF"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array és incompatible amb l'opció -+"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Les opcions -+ i --reentrant són mútuament excloents"
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "No es suporta «bison bridge» per a l'analitzador de C++"
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "no s'ha pogut crear %s"
#: src/main.c:443
#, 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:431
msgid "could not write tables header"
msgstr "no s'ha pogut crear la capçalera de les taules"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "No es pot obrir el fitxer d'esquema %s"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "error d'entrada al llegir el fitxer d'esquema %s"
#: src/main.c:451
#: src/main.c:525
#, 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:457
#: 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
#, 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:461
#: src/main.c:721
#, 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:465
#: src/main.c:725
#, 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:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "No hi ha retrocés.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d estats de retrocés (no-acceptació).\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Les taules comprimides sempre impliquen un retard.\n"
#: src/main.c:483
#: src/main.c:743
#, 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:487
#: src/main.c:747
#, 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:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "estadístiques d'ús de %s versió %s:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " opcions de l'analitzador: -"
# NFA == Autómata finit no-determinista. jm
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d estats AFN\n"
# DFA == Autómata finit deterministic. jm
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d estats AFD (%d paraules)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d regles\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Sense retrocés\n"
#: src/main.c:587
#: src/main.c:847
#, 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:592
#: src/main.c:852
#, 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:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Utilitzats patrons de principi-de-línia\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d condicions d'activació\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d estats èpsilon, %d estats doble èpsilon\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " sense classes de caràcter\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d parells estat/estat-següent creats\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d transicions úniques/duplicades\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d entrades de la taula\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entrades base-def creades\n"
#: src/main.c:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entrades de la tabla buides\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d prototips creats\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d plantilles creades, %d usos\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d classes d'equivalència creades\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d classes de meta-equivalència creades\n"
@@ -409,73 +433,65 @@ 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:670
#: src/main.c:930
#, 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:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " es necessiten %d conjunts de relocalització\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " es necessiten %d entrades totals de la taula\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Error intern. Els flexopts estan malformats.\n"
#: src/main.c:745
#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Proveu «%s --help» per a obtindre més informació.\n"
#: src/main.c:807
#: src/main.c:1075
#, 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:1195
#: src/main.c:1476
msgid "fatal parse error"
msgstr "s'ha produït un error fatal d'anàlisi sintàctic"
#: 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
#: src/main.c:1508
#, 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:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -484,47 +500,48 @@ 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:1359
#: src/main.c:1545
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interactiu) implica una xicoteta penalització del rendiment\n"
#: src/main.c:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() implica una xicoteta penalització del rendiment\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT implica una penalització del rendiment molt gran\n"
#: src/main.c:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT no es pot fer servir amb -f o -F"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "l'%opció yylineno no es pot fer servir amb REJECT"
#: src/main.c:1393
#: src/main.c:1579
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:1428
msgid "allocation of macro definition failed"
msgstr "Ha fallat l'assignació de la definició de la macro"
#: 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:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Forma d'ús: %s [OPCIONS] [FITXER]...\n"
@@ -533,7 +550,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:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -554,7 +571,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -568,7 +585,6 @@ 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,11 +599,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -672,35 +687,48 @@ msgstr ""
" -h, --help mostra aquest missatge d'ajuda\n"
" -V, --version informa de la versió de %s\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "ha fallat l'assignació de memòria en allocate_array()"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "caràcter incorrecte «%s» detectat en check_char()"
#: src/misc.c:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "ha fallat l'assignació de memòria en allocate_array()"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: error intern fatal, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "ha fallat l'intent d'augmentar la mida de la matriu"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "línia incorrecta en el fitxer d'esquema"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "ha fallat l'assignació de memòria en yy_flex_xmalloc()"
@@ -734,194 +762,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:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "tipus d'estat incorrecte en mark_beginning_as_normal()"
#: src/nfa.c:593
#: src/nfa.c:595
#, 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:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "s'han trobat massa transicions en mkxtion()"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "massa regles (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "s'ha produït un error desconegut en processar la secció 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "condició de començament incorrecta"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "regla no reconeguda"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "s'ha utilitzat el context posterior dos vegades"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "valors d'iteració incorrectes"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "el valor d'iteració ha de ser positiu"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "rang negatiu en classe de caràcter"
#: src/parse.y:938
#: src/parse.y:918
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:944
#: src/parse.y:924
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:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "La línia d'entrada és massa llarga\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "directiva «%top» malformada"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "directiva «%» no reconeguda"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "El nom de la definició és massa llarg\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "«|» no emparellat"
#: src/scan.l:327
#: src/scan.l:325
#, 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:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "definició del nom incompleta"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "La línia d'opcions és massa llarga\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%opció no reconeguda: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "classe de caràcter incorrecta"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "definició no definida {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "<condició d'activació> incorrecta: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "manca una cometa"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "expressió de la classe de caràcters incorrecta: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "caràcter incorrecte dins de {}"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "manca una }"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "s'ha trobat un EOF dins d'una acció"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "s'ha trobat un EOF dins d'un patró"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "caràcter incorrecte: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "no es pot obrir %s"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Forma d'ús: %s [OPCIONS]...\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "l'opció «%s» no accepta arguments\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "l'opció «%s» requereix un argument\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "l'opció «%s» és ambígua\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Opció no reconeguda «%s»\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Error desconegut=(%d)\n"
@@ -953,33 +981,9 @@ 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"
+352 -348
View File
File diff suppressed because it is too large Load Diff
+209 -204
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 <informatik.hu-berlin@piefel.de>, 2002, 2003, 2008, 2012, 2021
# Michael Piefel <piefel@informatik.hu-berlin.de>, 2002, 2003, 2008, 2012
#
msgid ""
msgstr ""
"Project-Id-Version: flex 2.6.4\n"
"Project-Id-Version: flex 2.5.36\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\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"
"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"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
@@ -17,13 +17,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "Anlegen des Puffers zur Ausgabe der Zeichenkette fehlgeschlagen"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: 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/dfa.c:59
#, c-format
@@ -57,7 +65,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "Konsistenzprüfung fehlgeschlagen in epsclosure()"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -69,24 +77,24 @@ msgstr ""
"DFA-Ausgabe:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "konnte keinen einzigartigen Ende-des-Puffers-Zustand erzeugen"
#: src/dfa.c:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "Zustand # %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Konnte yynxt_tbl[][] nicht schreiben"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "ungültiges Übergangszeichen in sympartition() entdeckt"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -98,29 +106,29 @@ msgstr ""
"Äquivalenz-Klassen:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "Zustand # %d akzeptiert: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "Zustand # %d akzeptiert: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Konnte yyacclist_tbl nicht schreiben"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Konnte yyacc_tbl nicht schreiben"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Konnte ecstbl nicht schreiben"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -130,343 +138,351 @@ msgstr ""
"\n"
"Meta-Äquivalenz-Klassen:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Konnte yymeta_tbl nicht schreiben"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Konnte yybase_tbl nicht schreiben"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Konnte yydef_tbl nicht schreiben"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Konnte yynxt_tbl nicht schreiben"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Konnte yychk_tbl nicht schreiben"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Konnte ftbl nicht schreiben"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Konnte ssltbl nicht schreiben"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Konnte eoltbl nicht schreiben"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Konnte yynultrans_tbl nicht schreiben"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "Regel kann nicht passen"
#: src/main.c:174
#: src/main.c:183
msgid "-s option given but default rule can be matched"
msgstr "„-s“-Option gegeben, aber Vorgabe-Regel kann nicht passen"
#: src/main.c:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "Kann nicht „-+“ zusammen mit „-l“-Option verwenden"
#: src/main.c:320
#: src/main.c:224
msgid "Can't use -f or -F with -l option"
msgstr "Kann nicht „-f“ oder „-F“ zusammen mit „-l“-Option verwenden"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
"Kann nicht „--reentrant“ oder „--bison-bridge“ mit „-l“-Option verwenden"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "„-Cf“/„-CF“ und „-Cm“ sind zusammen nicht sinnvoll"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "„-Cf“/„-CF“ und „-I“ sind inkompatibel"
#: src/main.c:363
#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "„-Cf“/„-CF“ sind inkompatibel mit lex-Kompatibilitätsmodus"
#: src/main.c:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "„-Cf“ und „-CF“ schließen sich gegenseitig aus"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "Kann nicht „-+“ zusammen mit „-CF“-Option verwenden"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "„%array“ inkompatibel mit „-+“-Option"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Optionen „-+“ und „--reentrant“ schließen sich gegenseitig aus."
#: src/main.c:383
#: src/main.c:287
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:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "konnte %s nicht erzeugen"
#: src/main.c:443
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass ist nur bei C++-Scannern sinnvoll"
#: src/main.c:431
msgid "could not write tables header"
msgstr "konnte Tabellenköpfe nicht schreiben"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "kann Skelett-Datei %s nicht öffnen"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "Eingabefehler beim Lesen der Skelett-Datei %s"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "Fehler beim Schließen der Skelett-Datei %s"
#: src/main.c:457
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "Fehler beim Erstellen der Header-Datei %s"
#: src/main.c:717
#, c-format
msgid "error writing output file %s"
msgstr "Fehler beim Schreiben der Ausgabe-Datei %s"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "Fehler beim Schließen der Ausgabe-Datei %s"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "Fehler beim Löschen der Ausgabe-Datei %s"
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Kein Backing-up.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d Zustände mit Backing-up (nicht akzeptierend).\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Komprimierte Tabellen benutzen immer Backing-up.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "Fehler beim Schreiben der Backup-Datei %s"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "Fehler beim Schließen der Backup-Datei %s"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s Version %s Benutzungsstatistiken:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " Scanner-Optionen: -"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-Zustände\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-Zustände (%d Wörter)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d Regeln\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Kein Backing-up.\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d Zustände mit Backing-up (nicht akzeptierend).\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Komprimierte Tabellen benutzen immer Backing-up.\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Zeilenanfang-Muster benutzt\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d Startbedingungen\n"
#: src/main.c:602
#: src/main.c:862
#, 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:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " keine Zeichenklassen\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d Zustand/Nächster-Zustand-Paare erzeugt\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d einzigartige/doppelte Übergänge\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d Tabelleneinträge\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d Einträge „base-def“ erzeugt\n"
#: src/main.c:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d leere Tabelleneinträge\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d Protos erzeugt\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d Schablonen erzeugt, %d Benutzungen\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d Äquivalenz-Klassen erzeugt\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d Meta-Äquivalenz-Klassen erzeugt\n"
#: src/main.c:670
#: src/main.c:930
#, 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:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d Sätze von Neuallozierungen benötigt\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d Tabelleneinträge insgesamt benötigt\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Interner Fehler. flexopts sind missgestaltet.\n"
#: src/main.c:745
#: src/main.c:1018
#, 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:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "unbekannte „-C“-Option „%c“"
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "fataler Parse-Fehler"
#: 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
#: src/main.c:1508
#, 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:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -475,53 +491,54 @@ msgstr ""
"%%option yylineno führt zu Geschwindigkeitseinbußen NUR für Regeln, die auf "
"einen Zeilenvorschub passen können\n"
#: src/main.c:1359
#: src/main.c:1545
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiv) führt zu kleineren Geschwindigkeitseinbußen\n"
#: src/main.c:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() führt zu kleineren Geschwindigkeitseinbußen\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT führt zu großen Geschwindigkeitseinbußen\n"
#: src/main.c:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT kann nicht mit „-f“ oder „-F“ zusammen verwendet werden"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno kann nicht mit REJECT zusammen verwendet werden"
#: src/main.c:1393
#: src/main.c:1579
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:1428
msgid "allocation of macro definition failed"
msgstr "Anlegen der Makrodefinition fehlgeschlagen"
#: 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:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Aufruf: %s [OPTIONEN...] [DATEI...]\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -542,7 +559,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -556,7 +573,6 @@ 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"
@@ -571,11 +587,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -613,8 +628,6 @@ 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"
@@ -645,6 +658,8 @@ 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"
@@ -655,34 +670,48 @@ msgstr ""
" -h, --help produziere diese Hilfenachricht\n"
" -V, --version melde %s-Version\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "Speicheranforderung in allocate_array() fehlgeschlagen"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "ungültiges Zeichen „%s“ in check_char() entdeckt"
#: src/misc.c:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "Speicheranforderung in xstrdup() fehlgeschlagen"
msgstr "Speicheranforderung in allocate_array() fehlgeschlagen"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: fataler interner Fehler, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "Versuch, die Feldgröße zu erhöhen, fehlgeschlagen"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "ungültige Zeile in Skelettdatei"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "Speicheranforderung in yy_flex_xmalloc() fehlgeschlagen"
@@ -716,194 +745,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:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "ungültiger Zustandstyp in mark_beginning_as_normal()"
#: src/nfa.c:593
#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "Eingaberegeln sind zu kompliziert (>= %d NFA-Zustände)"
#: src/nfa.c:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "zu viele Übergänge in mkxtion() gefunden"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "zu viele Regeln (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "unbekannter Fehler beim Bearbeiten von Abschnitt 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "ungültige Startbedingungs-Liste"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr "Präfix darf weder [ noch ] enthalten"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "nicht erkannte Regel"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "folgender Kontext doppelt verwendet"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "ungültige Iterationswerte"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "Iterationswerte müssen positiv sein"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "negativer Bereich in Zeichenklasse"
#: src/parse.y:938
#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"[:^lower:] ist in Scannern ohne Beachtung von Groß-/Kleinschreibung "
"mehrdeutig"
#: src/parse.y:944
#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"[:^upper:] ist in Scannern ohne Beachtung von Groß-/Kleinschreibung "
"mehrdeutig"
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "Eingabezeile zu lang\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "falsch geformte „%top“-Direktive"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "nicht erkannte „%“-Direktive"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Definitionsname zu lang\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "Unbalancierte „{“"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Definitionswert für {%s} ist zu lang\n"
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "unvollständige Namensdefinition"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "Optionszeile zu lang\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "nicht erkannte %%option: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "ungültige Zeichenklasse"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "undefinierte Definition {%s}"
msgstr "undefinierte Definitione {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr "unbalanzierte Klammer"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "ungültige <Startbedingung>: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "fehlendes Anführungszeichen"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "ungültiger Zeichenklassenausdruck: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "ungültiges Zeichen innerhalb von {}"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "fehlende }"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "EOF innerhalb einer Aktion angetroffen"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "EOF innerhalb eines Musters angetroffen"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "ungültiges Zeichen: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "kann %s nicht öffnen"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Aufruf: %s [OPTIONEN...]\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "Option „%s“ erlaubt kein Argument\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "Option „%s“ verlangt ein Argument\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "Option „%s“ ist mehrdeutig\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "nicht erkannte Option „%s“\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Unbekannter Fehler=(%d)\n"
@@ -935,30 +964,6 @@ 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()"
+352 -348
View File
File diff suppressed because it is too large Load Diff
+482 -490
View File
File diff suppressed because it is too large Load Diff
+198 -194
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: 2022-09-27 14:18-0400\n"
"POT-Creation-Date: 2017-05-06 10:49-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,13 +19,21 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "Puskurin varaaminen merkkijonon tulostamiseen epäonnistui"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: 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/dfa.c:59
#, c-format
@@ -61,7 +69,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:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -73,24 +81,24 @@ msgstr ""
"Deterministisen äärellisen automaatin vedos:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "ei voitu luoda uniikkia puskurinlopputilaa"
#: src/dfa.c:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "tila numero %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Ei voitu kirjoittaa yynxt_tbl[][]"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "väärä siirtymämerkki havaittu funktiossa sympartition()"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -102,29 +110,29 @@ msgstr ""
"Ekvivalenssiluokat:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "tila numero %d hyväksyy: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "tila numero %d hyväksyy: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Ei voitu kirjoittaa: yyacclist_tbl"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Ei voitu kirjoittaa: yyacc_tbl"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Ei voitu kirjoitaa ecstbl"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -134,347 +142,355 @@ msgstr ""
"\n"
"Meta-ekvivalenssiluokkia:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Ei voitu kirjoittaa: yymeta_tbl"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Ei voitu kirjoittaa: yybase_tbl"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Ei voitu kirjoittaa: yydef_tbl"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Ei voitu kirjoittaa: yynxt_tbl"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Ei voitu kirjoittaa: yychk_tbl"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Ei voitu kirjoittaa: ftbl"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Ei voitu kirjoittaa: ssltbl"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Ei voitu kirjoittaa: eoltbl"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Ei voitu kirjoittaa: yynultrans_tbl"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "sääntö ei voinut täsmätä"
#: src/main.c:174
#: src/main.c:183
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:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "Ei voi käyttää -+ valitsimen -l kanssa"
#: src/main.c:320
#: src/main.c:224
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:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
"Ei voi käyttää valitsinta --reentrant tai --bison-bridge valitsimen -l kanssa"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF ja -Cm eivät ole järkeviä yhdessä"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF ja -I ovat yhteensopimattomia"
#: src/main.c:363
#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF ovat yhteensopimattomia lex-yhteensopivuustilassa"
#: src/main.c:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf ja -CF ovat toisensa poissulkevia"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "Ei voi käyttää valitsinta -+ valitsimen -CF kanssa"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array on yhteensopimaton valitsimen -+ kanssa"
#: src/main.c:380
#: src/main.c:284
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:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "”bison bridge”-menettelyä ei tueta C++-skannerille."
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "ei voitu luoda %s"
#: src/main.c:443
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass on merkityksellinen vain C++-skannereille"
#: src/main.c:431
msgid "could not write tables header"
msgstr "ei voitu kirjoittaa tauluotsaketta"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "ei voi avata kehystiedostoa %s"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "syötevirhe luettaessa kehystiedostoa %s"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "virhe suljettaessa kehystiedostoa %s"
#: src/main.c:457
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "virhe luotaessa otsaketiedostoa %s"
#: src/main.c:717
#, c-format
msgid "error writing output file %s"
msgstr "virhe kirjoitettaessa tulostetiedostoa %s"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "virhe suljettaessa tulostetiedostoa %s"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "virhe poistettaessa tulostetiedostoa %s"
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Ei varmuuskopiointia.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d (ei-hyväksyvää) varmuuskopiointitilaa.\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Tiivistetyt taulut varmuuskopioidaan aina.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "virhe kirjoitettaessa varmuuskopiotiedostoa %s"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "virhe suljettaessa varmuuskopiotiedostoa %s"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s-version %s käyttötilastot:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " skannerivalitsimet: -"
# Epädeterministinen äärellinen automaatti, lyh. NFA (engl. non-deterministic finite-state automaton)
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d Epädeterministisen äärellisen automaatin tilaa\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d Deterministisen äärellisen automaatin tilaa (%d sanaa)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d sääntöä\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Ei varmuuskopiointia\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d (ei-hyväksyvää) varmuuskopiotilaa\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Tiivistetyt taulut varmuuskopioidaan aina\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Rivin-alku-malleja käytetään\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d-käynnistysehtoja\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilon-tilaa, %d double epsilon-tilaa\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " ei merkkiluokkia\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d tila/seuraavatila-paria luotu\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d uniikkia/kaksoiskappelsiirtymää\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d-tauluriviä\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def-alkiota luotu\n"
#: src/main.c:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d tyhjää taulualkiota\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d protoa luotu\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d mallinetta luotu, %d käytetään\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d ekvivalenssiluokkaa luotu\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d meta-ekvivalenssiluokkaa luotu\n"
#: src/main.c:670
#: src/main.c:930
#, 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:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d uudelleenvarausjoukkoa tarvittu\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d taulukkoalkiota tarvittu yhteensä\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Sisäinen virhe. flex-valitsimet ovat vääränmuotoisia.\n"
#: src/main.c:745
#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Lisätietoja käskyllä ”%s --help”.\n"
#: src/main.c:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "tuntematon valitsin -C ”%c”"
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "vakava jäsennysvirhe"
#: 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
#: src/main.c:1508
#, c-format
msgid "could not create backing-up info file %s"
msgstr "ei voitu luoda varmuuskopiotietotiedostoa %s"
#: src/main.c:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -483,50 +499,51 @@ msgstr ""
"%%option yylineno tuo mukanaan suorituskykysakon VAIN säännöissä, jotka "
"voivat täsmätä rivinvaihtomerkkeihin\n"
#: src/main.c:1359
#: src/main.c:1545
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiivinen) tuo mukanaan pienemmän suorituskykysakon\n"
#: src/main.c:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() tuo mukanaan pienemmän suorituskykysakon\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT tuo mukanaan ison suorituskykyrangaistuksen\n"
#: src/main.c:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT ei voida käyttää valitsimen -f tai -F kanssa"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno ei voi käyttää REJECT:n kanssa"
#: src/main.c:1393
#: src/main.c:1579
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:1428
msgid "allocation of macro definition failed"
msgstr "Makromäärityksen varaaminen epäonnistui"
#: 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:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Käyttö: %s [VALITSIMET] [TIEDOSTO]...\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -547,7 +564,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -561,7 +578,6 @@ 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"
@@ -576,11 +592,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -662,35 +677,48 @@ msgstr ""
" -h, --help tuota tämä opastesanoma\n"
" -V, --version ilmoita %s-versio\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "muistinvaraus epäonnistui funktiossa allocate_array()"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "väärä merkki ”%s” havaittu funktiossa check_char()"
#: src/misc.c:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "muistinvaraus epäonnistui funktiossa allocate_array()"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: vakava sisäinen virhe, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "yritys taulukon koon kasvattamiseksi epäonnistui"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "väärä rivi kehystiedostossa"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "muistinvaraus epäonnistui funktiossa yy_flex_xmalloc()"
@@ -725,194 +753,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:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "väärä tilatyyppi funktiossa mark_beginning_as_normal()"
#: src/nfa.c:593
#: src/nfa.c:595
#, 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:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "löytyi liian monta siirtymää funktiossa mkxtion()"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "liian moni sääntöjä (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "tuntematon virhe käsiteltäessä lohkoa 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "väärä alkuehtoluettelo"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "tunnistamaton sääntö"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "jättökontekstia käytetty kahdesti"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "vääriä iteraatioarvoja"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "iteraatioarvon on oltava positiivinen"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "negatiivinen lukualue merkkiluokassa"
#: src/parse.y:938
#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"[:^lower:] ei ole yksiselitteinen skannerissa, joka ei välitä kirjainkoosta"
#: src/parse.y:944
#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"[:^upper:] ei ole yksiselitteinen skannerissa, joka ei välit kirjainkoosta"
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "Syöterivi on liian pitkä\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "vääränmuotoinen ”%top”-direktiivi"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "tunnistamaton ”%”-direktiivi"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Määritysnimi on liian pitkä\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "Pariton ”{”"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Määritysarvo kohteelle {%s} on liian pitkä\n"
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "epätäydellinen nimimäärittely"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "Valitsinrivi on liian pitkä\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "tunnistamaton %%valitsin: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "väärä merkkiluokka"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "määrittelemätön määrittely {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "virheellinen <aloitusehto>: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "puuttuva lainausmerkki"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "väärä merkkiluokkalauseke: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "väärä merkki aaltosulkeiden {} sisällä"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "puuttuva }"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "Tiedoston loppumerkki EOF tavattu toiminnon sisällä"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "Tiedoston loppumerkki EOF tavattu mallin sisällä"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "väärä merkki: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "ei voi avata %s"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Käyttö: %s [VALITSIMET]...\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "valitsin ”%s” ei salli argumenttia\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "valitsin ”%s” vaatii argumentin\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "valitsin ”%s” ei ole yksiselitteinen\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Tunnistamaton valitsin ”%s”\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Tuntematon virhe=(%d)\n"
@@ -944,29 +972,5 @@ 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"
+205 -203
View File
@@ -7,14 +7,13 @@
# 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.6.4\n"
"Project-Id-Version: flex 2.5.37\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\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"
"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"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
@@ -24,13 +23,21 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 1.4\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "Échec d'allocation de tampon pour afficher une chaîne"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: 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/dfa.c:59
#, c-format
@@ -64,7 +71,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "le contrôle de cohérence a échoué dans epsclosure()"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -76,24 +83,24 @@ msgstr ""
"Vidage de l'AFD :\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "impossible de créer un seul état de fin de tampon"
#: src/dfa.c:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "état nº %d :\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Impossible d'écrire yynxt_tbl[][]"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "mauvais caractère de transition détecté dans sympartition()"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -105,29 +112,29 @@ msgstr ""
"Classes d'équivalence :\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "l'état nº %d accepte : [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "l'état nº %d accepte : "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Impossible d'écrire yyacclist_tbl"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Impossible d'écrire yyacc_tbl"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Impossible d'écrire ecstbl"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -137,347 +144,355 @@ msgstr ""
"\n"
"Classes de métaéquivalence :\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Impossible d'écrire yymeta_tbl"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Impossible d'écrire yybase_tbl"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Impossible d'écrire yydef_tbl"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Impossible d'écrire yynxt_tbl"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Impossible d'écrire yychk_tbl"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Impossible d'écrire ftbl"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Impossible d'écrire ssltbl"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Impossible d'écrire eoltbl"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Impossible d'écrire yynultrnas_tbl"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "la règle ne peut pas correspondre"
#: src/main.c:174
#: src/main.c:183
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:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "L'option -+ ne peut pas être combinée à -l"
#: src/main.c:320
#: src/main.c:224
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:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --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:356
#: src/main.c:260
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:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf ou -CF et -I sont incompatibles"
#: src/main.c:363
#: src/main.c:267
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:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf et -CF sont mutuellement exclusifs"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "L'option -+ ne peut pas être combinée à -CF"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array incompatible avec l'option -+"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Les options +- et --reentrant sont mutuellement exclusives."
#: src/main.c:383
#: src/main.c:287
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:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "impossible de créer %s"
#: src/main.c:443
#, 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:431
msgid "could not write tables header"
msgstr "impossible d'écrire les tables d'en-tête"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "impossible d'ouvrir le fichier canevas %s"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "erreur de lecture du fichier canevas %s"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "erreur de fermeture du fichier canevas %s"
#: src/main.c:457
#: 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
#, c-format
msgid "error writing output file %s"
msgstr "erreur d'écriture du fichier de sortie %s"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "erreur de fermeture du fichier de sortie %s"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "erreur d'effacement du fichier de sortie %s"
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Pas d'archivage.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d états d'archivage (non acceptants).\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Les tables comprimées sont toujours archivées.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "erreur d'écriture du fichier de sauvegarde %s"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "erreur de fermeture du fichier de sauvegarde %s"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "« %s » version %s, statistiques d'utilisation :\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " options de l'analyseur lexical : -"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d états NFA\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d états AFD (%d mots)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d règles\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Pas d'archivage\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d états d'archivage (si non acceptants)\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Les tables comprimées sont toujours archivées\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Modèles utilisés en début de ligne\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d conditions de départ\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d états epsilon, %d états double epsilon\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " pas de classes de caractères\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d paires state/nextstate produites\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d transitions uniques/dupliquées\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d entrées dans la table\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entrées base-def produites\n"
#: src/main.c:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entrées vides dans la table\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d prototypes produits\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d modèles produits, %d usages\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d classes d'équivalence produites\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d classes de métaéquivalence produites\n"
#: src/main.c:670
#: src/main.c:930
#, 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:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d ensembles de réallocations nécessaires\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d entrées nécessaires dans la table, au total\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Erreur interne. Les options « flexopts » sont mal composées.\n"
#: src/main.c:745
#: src/main.c:1018
#, 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:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "l'option -C « %c » inconnue"
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "erreur de lecture fatale"
#: 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
#: src/main.c:1508
#, 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:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -486,53 +501,54 @@ 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:1359
#: src/main.c:1545
#, 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:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() entraîne une faible baisse de performance\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT entraîne une importante baisse de performance\n"
#: src/main.c:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT ne peut pas être utilisé avec -f ou -F"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno ne peut être utilisé avec REJECT"
#: src/main.c:1393
#: src/main.c:1579
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:1428
msgid "allocation of macro definition failed"
msgstr "échec d'allocation de définition de macro"
#: 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:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Utilisation : %s [OPTIONS] [FICHIER]...\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -553,7 +569,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -567,7 +583,6 @@ 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"
@@ -582,11 +597,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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,8 +642,6 @@ 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"
@@ -672,35 +684,49 @@ msgstr ""
" -h, --help afficher l'aide-mémoire\n"
" -V, --version afficher la version %s du logiciel\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "échec d'allocation mémoire dans allocate_array()"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "mauvais caractère « %s » détecté dans check_char()"
#: src/misc.c:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "échec d'allocation mémoire dans xstrdup()"
msgstr "échec d'allocation mémoire dans allocate_array()"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s : erreur interne fatale, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "échec de la tentative d'augmenter la taille du tableau"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "mauvaise ligne dans le fichier canevas"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "échec d'allocation mémoire dans yy_flex_xmalloc()"
@@ -734,190 +760,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:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "mauvais type d'état dans mark_beginning_as_normal()"
#: src/nfa.c:593
#: src/nfa.c:595
#, 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:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "il y a trop de transitions dans mkxtion()"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "trop de règles (> %d)."
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "erreur inconnue de traitement à la section 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "mauvaise liste de conditions de départ"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr "Le préfixe ne doit pas contenir [ ou ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "règle non reconnue"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "contexte traîné utilisé deux fois"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "valeurs d'itération erronée"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "la valeur d'itération doit être positive"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "plage négative dans la classe de caractères"
#: src/parse.y:938
#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] est ambigu pour un scanner insensible à la casse"
#: src/parse.y:944
#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] est ambigu pour un scanner insensible à la casse"
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "ligne d'entrée trop longue\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "directive « %top » mal composée"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "directive « % » inconnue"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Nom de définition trop long\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "« { » non apparié"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Valeur de définition trop longue pour {%s}\n"
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "définition de nom incomplète"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "Ligne d'option trop longue\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%option non reconnue : %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "mauvaise classe de caractères"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "définition {%s} non définie"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr "parenthèse non appairées"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "mauvaise <condition de départ> : %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "guillemet manquant"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "mauvaise expression de classe de caractères : %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "mauvais caractère entre accolades « {} »"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "« } » manquante"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "Fin de fichier rencontrée à l'intérieur d'une action"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "Fin de fichier rencontrée à l'intérieur d'un modèle"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "mauvais caractère : %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "impossible d'ouvrir %s"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Utilisation : %s [OPTIONS]...\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "l'option « %s » ne permet pas d'argument\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "l'option « %s » nécessite un argument\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "l'option « %s » est ambiguë\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Option « %s » non reconnue\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Erreur inconnue=(%d)\n"
@@ -949,30 +975,6 @@ 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()"
+198 -194
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: 2022-09-27 14:18-0400\n"
"POT-Creation-Date: 2017-05-06 10:49-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,13 +16,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:61
#: src/buf.c:79
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/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: 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/dfa.c:59
#, c-format
@@ -57,7 +65,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "níorbh fhéidir comhsheasmhacht a sheiceáil in epsclosure()"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -69,24 +77,24 @@ msgstr ""
"Dumpa DFA:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
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:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "staid # %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Níorbh fhéidir yynxt_tbl[][] a scríobh"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "carachtar trasdula neamhbhailí i sympartition()"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -98,29 +106,29 @@ msgstr ""
"Aicmí Coibhéise:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "glacann staid # %d le: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "glacann staid # %d le: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Níorbh fhéidir yyacclist_tbl a scríobh"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Níorbh fhéidir yyacc_tbl a scríobh"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Níorbh fhéidir ecstbl a scríobh"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -130,341 +138,349 @@ msgstr ""
"\n"
"Aicmí Meiteachoibhéise:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Níorbh fhéidir yymeta_tbl a scríobh"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Níorbh fhéidir yybase_tbl a scríobh"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Níorbh fhéidir yydef_tbl a scríobh"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Níorbh fhéidir yynxt_tbl a scríobh"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Níorbh fhéidir yychk_tbl a scríobh"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Níorbh fhéidir ftbl a scríobh"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Níorbh fhéidir ssltbl a scríobh"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Níorbh fhéidir eoltbl a scríobh"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Níorbh fhéidir yynultrans_tbl a scríobh"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "ní féidir an riail a mheaitseáil"
#: src/main.c:174
#: src/main.c:183
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:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "Níl -+ ar fáil in éineacht le rogha -l"
#: src/main.c:320
#: src/main.c:224
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:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --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:356
#: src/main.c:260
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:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "Ní féidir -Cf/-CF agus -I a úsáid le chéile"
#: src/main.c:363
#: src/main.c:267
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:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "Is comheisiatach iad na roghanna -Cf agus -CF"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "Níl -+ ar fáil in éineacht le rogha -CF"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "Ní féidir %array a úsáid le rogha -+"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Is comheisiatach iad na roghanna -+ agus --reentrant."
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "níl bison bridge ar fáil don scanóir C++."
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "níorbh fhéidir %s a chruthú"
#: src/main.c:443
#, 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:431
msgid "could not write tables header"
msgstr "níorbh fhéidir ceanntásc táblaí a scríobh"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "ní féidir creatchomhad %s a oscailt"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "earráid agus creatchomhaid %s á léamh"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "earráid agus creatchomhaid %s á dhúnadh"
#: src/main.c:457
#: 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
#, c-format
msgid "error writing output file %s"
msgstr "earráid agus aschomhaid %s á scríobh"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "earráid agus aschomhad %s á dhúnadh"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "earráid agus aschomhaid %s á scriosadh"
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Gan cúlú.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d staid chúlaithe (nach bhfuil ina staid ghlactha).\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Cúlaíonn táblaí comhbhrúite i gcónaí.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "earráid agus comhad cúltaca %s á scríobh"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "earráid agus comhad cúltaca %s á dhúnadh"
#: src/main.c:492
#: src/main.c:752
#, 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:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " roghanna don scanóir: -"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d staid NFA\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d staid DFA (%d focal)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d riail\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Gan cúlú\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d staid chúlaithe (níl ina staid ghlactha)\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Cúlaíonn táblaí comhbhrúite i gcónaí\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Patrúin úsáidte ag tús na líne\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d coinníoll tosaigh\n"
#: src/main.c:602
#: src/main.c:862
#, 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:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " níl aon aicme charachtair ann\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d péire state/nextstate\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d athrú sainiúil/dúblach\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d iontráil sa tábla\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d iontráil base-def\n"
#: src/main.c:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d iontráil tábla folamh\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d fréamhshamhail\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d teimpléad, %d i bhfeidhm\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d aicme choibhéise\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d aicme mheiteachoibhéise\n"
#: src/main.c:670
#: src/main.c:930
#, 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:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " tá gá le %d sraith athdháilte\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " tá gá le %d iontráil tábla ar fad\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Earráid inmheánach (flexopts míchumtha).\n"
#: src/main.c:745
#: src/main.c:1018
#, 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:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "rogha -C anaithnid '%c'"
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "earráid pharsála mharfach"
#: 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
#: src/main.c:1508
#, 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:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -473,51 +489,52 @@ 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:1359
#: src/main.c:1545
#, 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:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "is cúis le moilliú beag an fheidhm yymore()\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "is cúis le moilliú mór é REJECT\n"
#: src/main.c:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
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:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "níl %option yylineno ar fáil le REJECT"
#: src/main.c:1393
#: src/main.c:1579
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: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: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:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Úsáid: %s [ROGHANNA] [COMHAD]...\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -538,7 +555,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -552,7 +569,6 @@ 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,11 +583,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -648,35 +663,48 @@ msgstr ""
" -h, --help taispeáin an chabhair seo\n"
" -V, --version taispeáin leagan %s\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "theip ar dháileadh na cuimhne i allocate_array()"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "aimsíodh carachtar neamhbhailí '%s' i check_char()"
#: src/misc.c:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "theip ar dháileadh na cuimhne i allocate_array()"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: earráid inmheánach mharfach, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "theip ar mhéadú an eagair"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "drochlíne i gcreatchomhad"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "theip ar dháileadh cuimhne i yy_flex_xmalloc()"
@@ -710,194 +738,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:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "drochstaid i mark_beginning_as_normal()"
#: src/nfa.c:593
#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "is róchasta na rialacha ionchuir (>= %d staid NFA)"
#: src/nfa.c:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "an iomarca athruithe i mkxtion()"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "an iomarca rialacha (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "earráid anaithnid agus an chéad pháirt á próiseáil"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "is neamhbhailí liosta na gcoinníollacha tosaigh"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "riail anaithnid"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "baineadh úsáid as comhthéacs leantach faoi dhó"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "luachanna timthrialla neamhbhailí"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "ní foláir luach timthrialla deimhneach"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "raon diúltach in aicme charachtair"
#: src/parse.y:938
#: src/parse.y:918
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:944
#: src/parse.y:924
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:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "Líne ionchurtha rófhada\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "treoir '%top' míchumtha"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "treoir '%' anaithnid"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Ainm an tsainmhínithe rófhada\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "'{' corr"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Luach an tsainmhínithe {%s} rófhada\n"
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "is neamhiomlán sainmhíniú an ainm"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "Líne roghanna rófhada\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "rogha %% anaithnid: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "aicme charachtair neamhbhailí"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "sainmhíniú neamhshainithe {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "<coinníoll tosaigh> neamhbhailí: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "comhartha athfhriotal ar iarraidh"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "is neamhbhailí an slonn aicme carachtair: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "carachtar neamhbhailí idir {}"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "} ar iarraidh."
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "Buaileadh comhadchríoch laistigh de ghníomh"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "Buaileadh comhadchríoch laistigh de phatrún"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "carachtar neamhbhailí: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "ní féidir %s a oscailt"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Úsáid: %s [ROGHANNA]...\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, 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:489
#: src/scanopt.c:529
#, 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:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "tá an rogha `%s' débhríoch\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Rogha anaithnid `%s'\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Earráid anaithnid=(%d)\n"
@@ -929,32 +957,8 @@ 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"
+350 -330
View File
File diff suppressed because it is too large Load Diff
+198 -178
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: 2022-09-27 14:18-0400\n"
"POT-Creation-Date: 2017-05-06 10:49-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,12 +16,20 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr ""
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
#: 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"
msgstr ""
#: src/dfa.c:59
@@ -56,7 +64,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "epsclosure()에서 일관성 검사가 실패했습니다"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -68,24 +76,24 @@ msgstr ""
"DFA 출력:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "유일한 버퍼의 끝(end-of-buffer)상태를 만들 수 없었습니다"
#: src/dfa.c:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "상태번호 %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr ""
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "sympartition()에서 잘못된 전이 문자를 찾았습니다"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -97,30 +105,30 @@ msgstr ""
"동치류:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "상태번호 %d는 [%d]를 받아들입니다\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "상태번호 %d는 다음을 받아들입니다: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr ""
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr ""
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
#, fuzzy
msgid "Could not write ecstbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -130,396 +138,406 @@ msgstr ""
"\n"
"메타-동치류들:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr ""
#: src/gen.c:774
#: src/gen.c:1352
#, fuzzy
msgid "Could not write yybase_tbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr ""
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr ""
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr ""
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
#, fuzzy
msgid "Could not write ftbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:938
#: src/gen.c:1614
#, fuzzy
msgid "Could not write ssltbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:1014
#: src/gen.c:1665
#, fuzzy
msgid "Could not write eoltbl"
msgstr "%s를 만들 수 없습니다"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr ""
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "맞는 규칙을 찾을 수 없습니다"
#: src/main.c:174
#: src/main.c:183
msgid "-s option given but default rule can be matched"
msgstr "-s 옵션이 주어졌지만 기본 규칙이 적용될 수 있습니다"
#: src/main.c:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "-l옵션에는 -+옵션을 같이 쓸 수 없습니다"
#: src/main.c:320
#: src/main.c:224
msgid "Can't use -f or -F with -l option"
msgstr "-l옵션에 -f나 -F옵션을 쓸 수 없습니다"
#: src/main.c:324
#: src/main.c:228
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "-l옵션에 -f나 -F옵션을 쓸 수 없습니다"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF는 -Cm와 같이 쓰면 의미가 없습니다"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF와 -I는 같이 쓸 수 없습니다"
#: src/main.c:363
#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF 는 lex호환 모드와는 같이 쓸 수 없습니다"
#: src/main.c:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf와 -CF는 같이 쓸 수 없습니다"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "-CF옵션에 -+옵션을 같이 쓸 수 없습니다"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array는 -+옵션과 같이 쓸 수 없습니다"
#: src/main.c:380
#: src/main.c:284
#, fuzzy
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "-Cf와 -CF는 같이 쓸 수 없습니다"
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "%s를 만들 수 없습니다"
#: src/main.c:443
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass는 C++스캐너에게만 의미가 있습니다"
#: src/main.c:431
#, fuzzy
msgid "could not write tables header"
msgstr "%s를 만들 수 없습니다"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "스켈레톤 파일 %s를 열 수 없습니다"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "스켈레톤 파일 %s를 읽는 도중 오류가 발생했습니다"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "스켈레톤 파일 %s를 닫는데 오류가 발생했습니다"
#: src/main.c:457
#: src/main.c:709
#, fuzzy, c-format
msgid "error creating header file %s"
msgstr "백업 파일 %s를 쓰는데 오류가 발생했습니다"
#: src/main.c:717
#, c-format
msgid "error writing output file %s"
msgstr "출력파일 %s를 쓰는 데 오류가 발생했습니다"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "출력파일 %s를 닫는데 오류가 발생했습니다"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "출력파일 %s를 지우는 데 오류가 발생했습니다"
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "되돌림이 없습니다.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d개의 되돌림(받아들이지 않는) 상태.\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr " 압축된 테이블은 항상 백업합니다.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "백업 파일 %s를 쓰는데 오류가 발생했습니다"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "백업 파일 %s를 닫는데 오류가 발생했습니다"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s 버전 %s 사용 통계:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " 스캐너 옵션: -"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d개의 NFA 상태\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d개의 DFA 상태 (%d 단어)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d개의 규칙\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " 되돌림이 없습니다\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d개의 되돌림(받아들이지 않는) 상태\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " 압축된 테이블은 항상 백업합니다\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " 행 시작(beginning-of-line) 유형을 사용하였습니다\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d개의 시작조건\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d개의 엡실론 상태, %d개의 이중 엡실론 상태\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " 문자류가 없습니다\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d개의 상태/다음 상태 쌍이 만들어졌습니다\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d개의 유일한/중복되는 전이\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d개의 테이블 엔트리\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def 엔트리가 만들어졌습니다\n"
#: src/main.c:635
#: src/main.c:895
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (최대 %d) nxt-chk 엔트리가 만들어졌습니다\n"
#: src/main.c:639
#: src/main.c:899
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (최대 %d) 템플리트 nxt-chk 엔트리가 만들어졌습니다\n"
#: src/main.c:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d개의 빈 테이블 엔트리\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d개의 원형이 만들어졌습니다\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d개의 템플리트가 만들어지고, %d개를 씁니다\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d개의 동치류가 만들어졌습니다\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d 메타 동치류가 만들어졌습니다\n"
#: src/main.c:670
#: src/main.c:930
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d(%d 저장됨)개의 해싱 충돌로 %d개의 DFA가 같게 처리됩니다\n"
#: src/main.c:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d개의 재할당 집합이 필요합니다\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " 총 %d개의 테이블 엔트리가 필요합니다\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr ""
#: src/main.c:745
#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/main.c:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "알 수 없는 -C 옵션 '%c'"
#: src/main.c:1195
#: src/main.c:1204
#, fuzzy, c-format
msgid "%s %s\n"
msgstr "%s 버전 %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "치명적인 파싱 에러"
#: 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
#: src/main.c:1508
#, c-format
msgid "could not create backing-up info file %s"
msgstr "되돌림 정보 파일 %s를 만들 수 없었습니다"
#: src/main.c:1343
#: src/main.c:1529
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l AT&T lex 호환 옵션은 큰 성능 저하를 일으킵니다\n"
#: src/main.c:1346
#: src/main.c:1532
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " 그리고 아마도 다른 보고된 성능 저하의 실제 원인일 것입니다\n"
#: src/main.c:1352
#: src/main.c:1538
#, 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:1359
#: src/main.c:1545
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (대화형) 은 소규모의 성능저하를 일으킵니다\n"
#: src/main.c:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore()는 소규모의 성능저하를 일으킵니다\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT는 큰 성능저하를 일으킵니다\n"
#: src/main.c:1375
#: src/main.c:1561
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "가변 추적 문맥 규칙은 큰 성능저하를 일으킵니다\n"
#: src/main.c:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT는 -f나 -F옵션과 같이 쓸 수 없습니다"
#: src/main.c:1390
#: src/main.c:1576
#, fuzzy, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno은 -f나 -F옵션과 같이 쓸 수 없습니다"
#: src/main.c:1393
#: src/main.c:1579
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "가변 추적 문맥 규칙은 -f나 -F옵션과 같이 쓸 수 없습니다"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr ""
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass는 C++스캐너에게만 의미가 있습니다"
#: src/main.c:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr ""
#: src/main.c:1748
#: src/main.c:1794
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -540,7 +558,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -554,7 +572,6 @@ 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"
@@ -569,11 +586,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -587,35 +603,48 @@ msgid ""
" -V, --version report %s version\n"
msgstr ""
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "allocate_array()에서 메모리 할당이 실패했습니다"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "check_char()에서 잘못된 문자 '%s'를 찾았습니다"
#: src/misc.c:136
#: src/misc.c:210
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "스캐너에서 문자 %s를 쓰기 위해서는 -8옵션이 필요합니다"
#: src/misc.c:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "allocate_array()에서 메모리 할당이 실패했습니다"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: 치명적인 내부 에러, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "배열 크기를 늘리려는 시도가 실패했습니다"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "스켈레톤 파일에 잘못된 행"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "yy_flex_xmalloc()에서 메모리 할당이 실패했습니다"
@@ -649,195 +678,195 @@ msgstr "dupmachine()
msgid "Variable trailing context rule at line %d\n"
msgstr "%d행에서 가변 추적 문맥 규칙\n"
#: src/nfa.c:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "mark_beginning_as_normal()에서 잘못된 상태형"
#: src/nfa.c:593
#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "입력 규칙이 너무 복잡합니다(>= NFA상태 %d개)"
#: src/nfa.c:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "mkxtion()에 전이가 너무 많습니다"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "규칙이 너무 많습니다 (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr ""
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
#, fuzzy
msgid "bad start condition list"
msgstr "잘못된 <시작 조건>: %s"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
#, fuzzy
msgid "unrecognized rule"
msgstr "알 수 없는 '%' 지시자"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
#, fuzzy
msgid "trailing context used twice"
msgstr "%d행에서 가변 추적 문맥 규칙\n"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr ""
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr ""
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
#: src/parse.y:841
#: src/parse.y:821
#, fuzzy
msgid "negative range in character class"
msgstr " 문자류가 없습니다\n"
#: src/parse.y:938
#: src/parse.y:918
#, fuzzy
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "\t-i 대소문자 구별없는 스캐너를 만듭니다\n"
#: src/parse.y:944
#: src/parse.y:924
#, fuzzy
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "\t-i 대소문자 구별없는 스캐너를 만듭니다\n"
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr ""
#: src/scan.l:185
#: src/scan.l:183
#, fuzzy, c-format
msgid "malformed '%top' directive"
msgstr "알 수 없는 '%' 지시자"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "알 수 없는 '%' 지시자"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr ""
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr ""
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr ""
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "불완전한 이름 정의"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr ""
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "알 수 없는 %%option: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "잘못된 문자류"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "정의되지 않은 정의 {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "잘못된 <시작 조건>: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "인용기호 빠짐"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "잘못된 문자 집합 식: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "{}안의 잘못된 문자"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "}이 빠졌습니다"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "동작 도중에 EOF를 만났습니다"
#: src/scan.l:1025
#: src/scan.l:977
#, fuzzy
msgid "EOF encountered inside pattern"
msgstr "동작 도중에 EOF를 만났습니다"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "잘못된 문자: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "%s를 열 수 없습니다"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr ""
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr ""
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr ""
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr ""
#: src/scanopt.c:497
#: src/scanopt.c:537
#, fuzzy, c-format
msgid "Unrecognized option `%s'\n"
msgstr "알 수 없는 %%option: %s"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr ""
@@ -894,9 +923,6 @@ 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 ""
@@ -1008,11 +1034,5 @@ 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 "스켈레톤 파일에 잘못된 행"
+212 -201
View File
@@ -1,32 +1,41 @@
# Dutch translations for the fast parser Flex.
# Copyright (C) 2022 The Flex Project (msgids)
# Copyright (C) 2014 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, 2022.
# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2012, 2014.
msgid ""
msgstr ""
"Project-Id-Version: flex-2.6.4\n"
"Project-Id-Version: flex-2.5.38\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\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"
"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"
"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:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "Geheugenreservering voor stringprintbuffer is mislukt"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: 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/dfa.c:59
#, c-format
@@ -60,7 +69,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "consistentiecontrole is mislukt in epsclosure()"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -72,24 +81,24 @@ msgstr ""
"DFA-dump:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "kon geen unieke toestand voor einde-van-buffer aanmaken"
#: src/dfa.c:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "toestand # %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Kan yynxt_tbl[][] niet schrijven"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "onjuist transitieteken in sympartition()"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -101,29 +110,29 @@ msgstr ""
"Equivalentieklassen:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "toestand # %d accepteert: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "toestand # %d accepteert: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Kan yyacclist_tbl niet schrijven"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Kan yyacc_tbl niet schrijven"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Kan ecstbl niet schrijven"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -133,345 +142,353 @@ msgstr ""
"\n"
"Meta-equivalentieklassen:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Kan yymeta_tbl niet schrijven"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Kan yybase_tbl niet schrijven"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Kan yydef_tbl niet schrijven"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Kan yynxt_tbl niet schrijven"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Kan yychk_tbl niet schrijven"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Kan ftbl niet schrijven"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Kan ssltbl niet schrijven"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Kan eoltbl niet schrijven"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Kan yynultrans_tbl niet schrijven"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "voorschrift geeft geen overeenkomsten"
#: src/main.c:174
#: src/main.c:183
msgid "-s option given but default rule can be matched"
msgstr ""
"optie '-s' is gegeven, maar het standaardvoorschrift geeft overeenkomsten"
#: src/main.c:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "Optie '-+' gaat niet samen met '-l'"
#: src/main.c:320
#: src/main.c:224
msgid "Can't use -f or -F with -l option"
msgstr "Optie '-f' of '-F' gaat niet samen met '-l'"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "Optie '--reentrant' of '--bison-bridge' gaat niet samen met '-l'"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "Opties -Cf/-CF en -Cm gaan niet samen"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "Opties -Cf/-CF en -I gaan niet samen"
#: src/main.c:363
#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "Optie -Cf of -CF gaat niet samen met lex-compatibiliteitsmodus"
#: src/main.c:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "Opties -Cf en -CF sluiten elkaar uit"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "Optie '-+' gaat niet samen met '-CF'"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "Optie '-+' gaat niet samen met %array"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Opties '-+' en '--reentrant' sluiten elkaar uit."
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison bridge wordt niet ondersteund voor de C++-scanner."
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "kan %s niet aanmaken"
#: src/main.c:443
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%optie yyclass heeft alleen betekenis voor C++-scanners"
#: src/main.c:431
msgid "could not write tables header"
msgstr "kan tabellenkop niet schrijven"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan skeletbestand %s niet openen"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "invoerfout tijdens lezen van skeletbestand %s"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "fout tijdens sluiten van skeletbestand %s"
#: src/main.c:457
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "fout tijdens aanmaken van headerbestand %s"
#: src/main.c:717
#, c-format
msgid "error writing output file %s"
msgstr "fout tijdens schrijven van uitvoerbestand %s"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "fout tijdens sluiten van uitvoerbestand %s"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "fout tijdens verwijderen van uitvoerbestand %s"
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Terugstappen is niet mogelijk.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d terugstappende (niet-accepterende) toestanden.\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Gecomprimeerde tabellen kunnen altijd terugstappen.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "fout tijdens schrijven van terugstapbestand %s"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "fout tijdens sluiten van terugstapbestand %s"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s versie %s gebruiksstatistieken:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " scanneropties: -"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-toestanden\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-toestanden (%d woorden)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d voorschriften\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Terugstappen is niet mogelijk\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d terugstappende (niet-accepterende) toestanden\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Gecomprimeerde tabellen kunnen altijd terugstappen\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Begin-van-regel-patronen gebruikt\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d startvoorwaarden\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilontoestanden, %d dubbele epsilontoestanden\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " geen tekenklassen\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d toestand/volgtoestand-paren aangemaakt\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d unieke/dubbele transities\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d tabelitems\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def-items aangemaakt\n"
#: src/main.c:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d lege tabelitems\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d prototypes aangemaakt\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d sjablonen aangemaakt, %d keer gebruikt\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d equivalentieklassen aangemaakt\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d meta-equivalentieklassen aangemaakt\n"
#: src/main.c:670
#: src/main.c:930
#, 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:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d sets van herallocaties waren nodig\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " in totaal %d tabelitems nodig\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "*Interne fout*: ongeldige flexopts.\n"
#: src/main.c:745
#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Typ '%s --help' voor meer informatie.\n"
#: src/main.c:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "onbekende -C-optie '%c'"
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "fatale ontledingsfout"
#: 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
#: src/main.c:1508
#, c-format
msgid "could not create backing-up info file %s"
msgstr "kon terugstapbestand %s niet aanmaken"
#: src/main.c:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -480,53 +497,54 @@ msgstr ""
"de %%optie yylineno betekent een prestatievermindering, maar ALLEEN voor "
"voorschriften die met het regeleindeteken overeen kunnen komen\n"
#: src/main.c:1359
#: src/main.c:1545
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "optie '-I' (interactief) betekent een kleine prestatievermindering\n"
#: src/main.c:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() betekent een kleine prestatievermindering\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT betekent een grote prestatievermindering\n"
#: src/main.c:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT gaat niet samen met -f of -F"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%optie yylineno gaat niet samen met REJECT"
#: src/main.c:1393
#: src/main.c:1579
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:1428
msgid "allocation of macro definition failed"
msgstr "geheugenreservering voor macrodefinitie is mislukt"
#: 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:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Gebruik: %s [OPTIE...] [BESTAND...]\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -547,7 +565,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -561,7 +579,6 @@ 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"
@@ -576,11 +593,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -648,6 +664,8 @@ 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"
@@ -658,34 +676,48 @@ msgstr ""
" -h, --help deze hulptekst tonen\n"
" -V, --version de versie van %s tonen\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "geheugenreservering is mislukt in allocate_array()"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "onjuist teken '%s' in check_char()"
#: src/misc.c:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "geheugenreservering is mislukt in xstrdup()"
msgstr "geheugenreservering is mislukt in allocate_array()"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: **fatale interne programmafout**, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "vergroting van array is mislukt"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "onjuiste regel in skeletbestand"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "geheugenreservering is mislukt in yy_flex_xmalloc()"
@@ -719,190 +751,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:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "onjuist toestandstype in mark_beginning_as_normal()"
#: src/nfa.c:593
#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "invoervoorschriften zijn te ingewikkeld (>= %d NFA-toestanden)"
#: src/nfa.c:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "te veel transities gevonden in mkxtion()"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "te veel voorschriften (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "onbekende fout tijdens verwerken van sectie 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "onjuiste lijst van startvoorwaarden"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr "prefix mag geen '[' of ']' bevatten"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "onbekend voorschrift"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "nakomende context twee keer gebruikt"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "onjuiste iteratiewaarden"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "iteratiewaarde moet positief zijn"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "negatief bereik in tekenklasse"
#: src/parse.y:938
#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] is niet eenduidig in een hoofdletterongevoelige scanner"
#: src/parse.y:944
#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] is niet eenduidig in een hoofdletterongevoelige scanner"
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "Invoerregel is te lang\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "verkeerde opbouw van '%top'-commando"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "onbekend '%'-commando"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Definitienaam is te lang\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "Ongepaarde '{'"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Definitiewaarde voor {%s} is te lang\n"
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "onvolledige naamsdefinitie"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "Optiesregel is te lang\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "onbekende %%option: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "onjuiste tekenklasse"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "ongedefinieerde definitie {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr "ongepaard haakje"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "onjuiste <startvoorwaarde>: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "ontbrekend aanhalingsteken"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "onjuiste expressie '%s' in tekenklasse"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "onjuist teken tussen {}'s"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "ontbrekende }"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "EOF werd bereikt tijdens een actie"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "EOF werd bereikt binnen een patroon"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "onjuist teken: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "kan %s niet openen"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Gebruik: %s [OPTIE...]\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "optie '%s' staat geen argument toe\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "optie '%s' vereist een argument\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "optie '%s' is niet eenduidig\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Onbekende optie '%s'\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Onbekende fout=(%d)\n"
@@ -934,26 +966,5 @@ msgstr "Eindmarkering\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Iets Raars* - token: %d waarde:%d\n"
#~ 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"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "dynamische geheugenfout in copy_string()"
+380 -372
View File
File diff suppressed because it is too large Load Diff
+381 -410
View File
File diff suppressed because it is too large Load Diff
+198 -194
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: 2022-09-27 14:18-0400\n"
"POT-Creation-Date: 2017-05-06 10:49-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,13 +21,21 @@ msgstr ""
"X-Generator: Poedit 1.5.7\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "A alocação de buffer para retornar string falhou"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: 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/dfa.c:59
#, c-format
@@ -61,7 +69,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "verificação de consistência falhou em epsclosure()"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -73,24 +81,24 @@ msgstr ""
"Despejo DFA:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
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:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "estado # %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Não foi possível escrever yynxt_tbl[][]"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "caractere de transição inválido detectado em sympartition()"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -102,29 +110,29 @@ msgstr ""
"Classes de Equivalência:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "estado # %d aceita: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "estado # %d aceita: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Não foi possível escrever yyacclist_tbl"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Não foi possível escrever yyacc_tbl"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Não foi possível escrever ecstbl"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -134,345 +142,353 @@ msgstr ""
"\n"
"Classes de Meta-Equivalência:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Não foi possível escrever yymeta_tbl"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Não foi possível escrever yybase_tbl"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Não foi possível escrever yydef_tbl"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Não foi possível escrever yynxt_tbl"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Não foi possível escrever yychk_tbl"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Não foi possível escrever ftbl"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Não foi possível escrever ssltbl"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Não foi possível escrever eoltbl"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Não foi possível escrever yynultrans_tbl"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "aplicação da regra não gerou nenhum resultado"
#: src/main.c:174
#: src/main.c:183
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:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "Não é possível usar -+ com a opção -l"
#: src/main.c:320
#: src/main.c:224
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:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --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:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF e -Cm não fazem sentido juntos"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF e -I são incompatíveis"
#: src/main.c:363
#: src/main.c:267
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:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf e -CF são mutuamente exclusivos"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "Não é possível usar -+ com a opção -CF"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array é incompatível com a opção -+"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "As opções -+ e --reentrant são mutuamente exclusivas."
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "sem suporte à ponte bison pelo scanner de C++."
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "não foi possível criar %s"
#: src/main.c:443
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass só tem sentido para scanners C++"
#: 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:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "não é possível abrir o arquivo esqueleto %s"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "erro lendo o arquivo esqueleto %s"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "erro fechando o arquivo esqueleto %s"
#: src/main.c:457
#: 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
#, c-format
msgid "error writing output file %s"
msgstr "erro ao gravar o arquivo de saída %s"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "erro ao fechar o arquivo de saída %s"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "erro ao remover o arquivo de saída %s"
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Impossível restaurar.\n"
#: src/main.c:476
#: src/main.c:736
#, 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:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Tabelas compactadas sempre têm cópias de segurança.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "erro ao gravar a cópia de segurança %s"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "erro ao fechar a cópia de segurança %s"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s versão %s estatísticas de uso:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " opções de scanner: -"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d estados NFA\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d estados DFA (%d palavras)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d regras\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Sem cópia de segurança\n"
#: src/main.c:587
#: src/main.c:847
#, 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:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Tabelas compactadas sempre têm cópias de segurança\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Padrões de início-de-linha usados\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d condições de início\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d estados epsilon, %d estados epsilon duplo\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " nenhuma classe de caracteres\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d pares estado/próximoestado criados\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d transições únicas/duplicadas\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d entradas de tabela\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entradas base-def criadas\n"
#: src/main.c:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entradas vazias na tabela\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d protos criados\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d modelos criados, %d usos\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d classes de equivalência criadas\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d classes de meta-equivalência criadas\n"
#: src/main.c:670
#: src/main.c:930
#, 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:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d conjuntos de realocação necessários\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d total de entradas de tabela necessárias\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Erro interno. flexopts estão malformados.\n"
#: src/main.c:745
#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Tente \"%s --help\" para maiores informações.\n"
#: src/main.c:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "opção -C \"%c\" desconhecida"
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "erro fatal de análise"
#: 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
#: src/main.c:1508
#, 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:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -481,52 +497,53 @@ msgstr ""
"%%option yylineno acarreta em uma penalidade na performance APENAS em regras "
"que podem bater caracteres de nova linha\n"
#: src/main.c:1359
#: src/main.c:1545
#, 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:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() acarreta em uma pequena penalidade na performance\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT acarreta em uma grande penalidade na performance\n"
#: src/main.c:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT não pode ser usado com -f ou -F"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno não pode ser usada com REJECT"
#: src/main.c:1393
#: src/main.c:1579
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:1428
msgid "allocation of macro definition failed"
msgstr "a alocação de definição de macro falhou"
#: 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:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Uso: %s [OPÇÕES] [ARQUIVO]...\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -547,7 +564,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -561,7 +578,6 @@ 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"
@@ -576,11 +592,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -660,35 +675,48 @@ msgstr ""
" -h, --help produz esta mensagem de ajuda\n"
" -V, --version informa a versão do %s\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "alocação de memória falhou em allocate_array()"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "caractere inválido \"%s\" detectado em check_char()"
#: src/misc.c:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "alocação de memória falhou em allocate_array()"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: erro interno fatal, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "tentativa de aumentar o tamanho do vetor falhou"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "linha inválida no arquivo de esqueleto"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "alocação de memória falhou em yy_flex_xmalloc()"
@@ -722,189 +750,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:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "estado de tipo inválido em mark_beginning_as_normal()"
#: src/nfa.c:593
#: src/nfa.c:595
#, 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:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "muitas transições em mkxtion()"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "muitas regras (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "erro desconhecido processando a seção 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "lista de condições de início inválida"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "regra não reconhecida"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "contexto final usado duas vezes"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "valores de iteração inválidos"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "valor de iteração deve ser positivo"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "faixa negativa na classe de caracteres"
#: src/parse.y:938
#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] é ambígua em um scanner \"case-insensitive\""
#: src/parse.y:944
#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] é ambígua em um scanner \"case-insensitive\""
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "Linha de entrada muito longa\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "diretiva \"%top\" malformada"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "diretiva \"%\" não reconhecida"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Nome de definição muito longo\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "'{' sem fechamento"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Valor de definição para {%s} muito longo\n"
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "definição de nome incompleta"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "Linha de opção muito longa\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%option não reconhecida: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "classe de caractere inválida"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "definição indefinida {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "<condição de início> inválida: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "faltou aspa"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "expressão de classe de caractere inválida: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "caracatere inválido entre {}'s"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "faltou }"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "Fim de Arquivo encontrado dentro de uma ação"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "Fim de Arquivo encontrado dentro do padrão"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "caracter inválido: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "não foi possível abrir %s"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Uso: %s [OPÇÕES]...\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "opção \"%s\" não permite argumentos\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "opção \"%s\" requer um argumento\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "opção \"%s\" é ambígua\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Opção \"%s\" desconhecida\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Erro desconhecido=(%d)\n"
@@ -936,33 +964,9 @@ 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"
+424 -506
View File
File diff suppressed because it is too large Load Diff
+211 -207
View File
File diff suppressed because it is too large Load Diff
+208 -203
View File
@@ -1,30 +1,38 @@
# 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–2022.
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: flex-2.6.4\n"
"Project-Id-Version: flex-2.5.37\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2022-02-15 20:00+0200\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"PO-Revision-Date: 2013-10-30 18:20+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:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "Није успело додељивање међумеморије нисци исписивања"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
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/dfa.c:59
#, c-format
@@ -58,7 +66,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "провера доследности није успела у „epsclosure()“"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -70,24 +78,24 @@ msgstr ""
"ДФА испис:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "не могу да направим јединствено стање краја међумеморије"
#: src/dfa.c:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "стање # %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Не могу да запишем „yynxt_tbl[][]“"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "откривен је лош знак прелаза у „sympartition()“"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -99,29 +107,29 @@ msgstr ""
"Разреди једнакости:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "стање # %d прихвата: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "стање # %d прихвата: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Не могу да запишем „yyacclist_tbl“"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Не могу да запишем „yyacc_tbl“"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Не могу да запишем „ecstbl“"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -131,341 +139,349 @@ msgstr ""
"\n"
"Разреди мета-једнакости:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Не могу да запишем „yymeta_tbl“"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Не могу да запишем „yybase_tbl“"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Не могу да запишем „yydef_tbl“"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Не могу да запишем „yynxt_tbl“"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Не могу да запишем „ychk_tbl“"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Не могу да запишем „ftbl“"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Не могу да запишем „ssltbl“"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Не могу да запишем „eoltbl“"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Не могу да запишем „yynultrans_tbl“"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "правило не може бити поклопљено"
#: src/main.c:174
#: src/main.c:183
msgid "-s option given but default rule can be matched"
msgstr "дата је опција „-s“ али основно правило може бити поклопљено"
#: src/main.c:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "Не могу да користим -+ са опцијом „-l“"
#: src/main.c:320
#: src/main.c:224
msgid "Can't use -f or -F with -l option"
msgstr "Не могу да користим „-f“ или „-F“ са опцијом „-l“"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "Не могу да користим „--reentrant“ или „--bison-bridge“ са опцијом „-l“"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "„-Cf/-CF“ и „-Cm“ немају смисла заједно"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "„-Cf/-CF“ и „-I“ су несагласне"
#: src/main.c:363
#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "„-Cf/-CF“ су несагласни са режимом лекс-сагласности"
#: src/main.c:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "„-Cf“ и „-CF“ се међусобно искључују"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "Не могу да користим -+ са опцијом „-CF“"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%aниз није сагласан са опцијом -+"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Опције -+ и „--reentrant“ се међусобно искључују."
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "бизонов мост није подржан за Ц++ скенер."
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "не могу да направим %s"
#: src/main.c:443
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%oпција „yyclass“ има смисла само за Ц++ скенере"
#: src/main.c:431
msgid "could not write tables header"
msgstr "не могу да запшем бестаблично заглавље"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "Не могу да отворим датотеку окоснице „%s“"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "грешка улаза читања датотеке окоснице „%s“"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "грешка затварања датотеке окоснице „%s“"
#: src/main.c:457
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "грешка стварања датотеке заглавља „%s“"
#: src/main.c:717
#, c-format
msgid "error writing output file %s"
msgstr "грешка записивања излазне датотеке „%s“"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "грешка затварања излазне датотеке „%s“"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "грешка брисања излазне датотеке „%s“"
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Не правим резерву.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d стварам резерве (не-прихватам) стања.\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Сжете табеле увек стварају резерву.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "грешка записивања датотеке резерве „%s“"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "грешка затварања датотеке резерве „%s“"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "Статистика коришћења %s издања%s:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " опције прегледача: -"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d НФА стања\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d ДФА стања (%d речи)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d правила\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Не правим резерву\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d стварам резерве (не-прихватам) стања\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Сжете табеле увек стварају резерву\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Коришћени су шаблони почетка-реда\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d услови покретања\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d стања ипсилона, %d стања двоструког ипсилона\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " нема разреда знака\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d пара стања/следећег_стања је направљено\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d јединствена/удвостручена прелаза\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d уноса табеле\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " направљено је %d/%d уноса основне одреднице\n"
#: src/main.c:635
#: src/main.c:895
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " направљено је %d/%d (врх %d) „nxt-chk“ уноса\n"
#: src/main.c:639
#: src/main.c:899
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " направљено је %d/%d (врх %d)шаблона „nxt-chk“ уноса\n"
#: src/main.c:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d празна уноса табеле\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " направљених узорака — %d\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " направљених шаблона - %d, користим %d\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " направљено је %d/%d разреда једнакости\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " направљено је %d/%d разреда мета-једнакости\n"
#: src/main.c:670
#: src/main.c:930
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (сачуваних %d) сукоба хеша, %d једнак ДФА-су\n"
#: src/main.c:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " потребна су %d скупа поновног додељивања\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " потребна су укупно %d уноса табеле\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Унутрашња грешка. „flexopts“ је лоше обликован.\n"
#: src/main.c:745
#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Пробајте „%s --help“ за више података.\n"
#: src/main.c:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "непозната опција -C „%c“"
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "кобна грешка обраде"
#: 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
#: src/main.c:1508
#, c-format
msgid "could not create backing-up info file %s"
msgstr "не могу да направим резерву датотеке података „%s“"
#: src/main.c:1343
#: src/main.c:1529
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l опција сагласности АТ&Т лекса изазива велико смањење учинка\n"
#: src/main.c:1346
#: src/main.c:1532
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " и може бити стваран извор других извешених ограничења учинка\n"
#: src/main.c:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -474,50 +490,51 @@ msgstr ""
"%%опција „yylineno“ изазива смањење учинка САМО на правилима која могу да "
"поклопе знакове новог реда\n"
#: src/main.c:1359
#: src/main.c:1545
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (међудејствено) изазива мање смањење учинка\n"
#: src/main.c:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "„yymore()“ изазива мање смањење учинка\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "„REJECT“ изазива веће смањење учинка\n"
#: src/main.c:1375
#: src/main.c:1561
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "Променљива правила пратећег контекса изазивају веће смањење учинка\n"
#: src/main.c:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "„REJECT“ не може да се користи са „-f“ или „-F“"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%oпција „yylineno“ не може да се користи са „REJECT“"
#: src/main.c:1393
#: src/main.c:1579
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"променљива правила пратећег контекста не могу бити коришћена са „-f“ или „-F“"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "није успело додељивање одреднице макроа"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%oпција „yyclass“ има смисла само за Ц++ скенере"
#: src/main.c:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Употреба: %s [ОПЦИЈЕ] [ДАТОТЕКА]...\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -538,7 +555,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -552,7 +569,6 @@ 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,11 +583,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -613,8 +628,6 @@ msgstr ""
" -w, --nowarn не ствара упозорења\n"
" -v, --verbose записује сажетак статистике скенера на "
"стандардни излаз\n"
" --hex користи хексадецималне бројеве уместо "
"окталних у излазима прочишћавања\n"
"\n"
"Датотеке:\n"
" -o, --outfile=ДАТОТЕКА наводи излазни назив датотеке\n"
@@ -646,6 +659,8 @@ 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"
@@ -656,34 +671,48 @@ msgstr ""
" -h, --help исписује ову помоћ\n"
" -V, --version извештава о издању %s-а\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "није успело додељивање меморије у „allocate_array()“"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "лош знак „%s“ је откривен у „check_char()“"
#: src/misc.c:136
#: src/misc.c:210
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "скенер захтева -8 обележја да би користио знак „%s“"
#: src/misc.c:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "није успело додељивање меморије у „xstrdup()“"
msgstr "није успело додељивање меморије у „allocate_array()“"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: кобна унутрашња грешка, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "није успео покушај повећања величине низа"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "лош ред у датотеци окоснице"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "није успело додељивање меморије у „yy_flex_xmalloc()“"
@@ -717,188 +746,188 @@ msgstr "празна машина у „dupmachine()“"
msgid "Variable trailing context rule at line %d\n"
msgstr "Променљиво правило пратећег контекста на %d. реду\n"
#: src/nfa.c:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "лоша врста стања у „mark_beginning_as_normal()“"
#: src/nfa.c:593
#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "улазна правила су превише сложена (>= %d НФА стања)"
#: src/nfa.c:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "пронађох превише прелаза у „mkxtion()“"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "превише правила (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "непозната грешка обраде одељка 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "лош списак почетног услова"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr "Префикс не сме да садржи [ или ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "непознато правило"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "пратећи контекст је коришћен два пута"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "лоша вредност опетовања"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "вредност опетовања мора бити позитивна"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr "опсег знака [%c-%c] је нејасан у скенеру неосетљивом на величину слова"
#: src/parse.y:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "негативан опсег у разреду знака"
#: src/parse.y:938
#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] је нејасно у скенеру неосетљивом на величину слова"
#: src/parse.y:944
#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] је нејасно у скенеру неосетљивом на величину слова"
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "Улазни ред је предуг\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "лоша одредница „%top“"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "непозната "
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Назив одреднице је предуг\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "Неупарена „{“"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Вредност одреднице за {%s} је предуга\n"
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "непотпуна одредница назива"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "Ред опције је предуг\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "непозната %%опција: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "лош разред знака"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "неодређена одредница {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr "неуравнотежене заграде"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "лош [почетни услов]: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "недостају наводници"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "лош израз разреда знака: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "лош знак унутар {}"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "недостаје }"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "наишао сам на крај датотеке унутар радње"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "наишао сам на крај датотеке унутар шаблона"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "лош знак: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "не могу да отворим „%s“"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Употреба: %s [ОПЦИЈЕ]...\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "опција „%s“ не дозвољава аргумент\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "опција „%s“ захтева аргумент\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "опција „%s“ је нејасна\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Непозната опција „%s“\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Непозната грешка=(%d)\n"
@@ -930,29 +959,5 @@ 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()“"
+212 -204
View File
@@ -1,18 +1,18 @@
# Swedish messages for flex.
# Copyright (C) 2014, 2022 The Flex Project (msgids)
# Copyright (C) 2014 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, 2022
# Göran Uddeborg <goeran@uddeborg.se>, 2016
#
# $Revision: 1.8 $
# $Revision: 1.5 $
msgid ""
msgstr ""
"Project-Id-Version: flex 2.6.4\n"
"Project-Id-Version: flex 2.5.38\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2022-01-05 12:46+0100\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"PO-Revision-Date: 2016-06-06 19:10+0200\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -21,13 +21,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "Allokeringen av buffert för utskriftssträng misslyckades"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: 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/dfa.c:59
#, c-format
@@ -61,7 +69,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "konsekvenskontrollen misslyckades i epsclosure()"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -73,26 +81,26 @@ msgstr ""
"DFA-utskrift:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "kunde inte skapa ett unikt buffertsluttillstånd"
#: src/dfa.c:579
#: src/dfa.c:608
#, 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:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Kunde inte skriva yynxt_tbl[][]"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "otillåtet övergångstecken funnet i sympartition()"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -104,29 +112,29 @@ msgstr ""
"Ekvivalensklasser:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "tillstånd %d accepterar: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "tillstånd %d accepterar: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Kunde inte skriva yyacclist_tbl"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Kunde inte skriva yyacc_tbl"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Kunde inte skriva ecstbl"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -136,342 +144,350 @@ msgstr ""
"\n"
"Metaekvivalensklasser:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Kunde inte skriva yymeta_tbl"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Kunde inte skriva yybase_tbl"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Kunde inte skriva yydef_tbl"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Kunde inte skriva yynxt_tbl"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Kunde inte skriva yychk_tbl"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Kunde inte skriva ftbl"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Kunde inte skriva ssltbl"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Kunde inte skriva eoltbl"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Kunde inte skriva yynultrans_tbl"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "regeln kan inte matchas"
#: src/main.c:174
#: src/main.c:183
msgid "-s option given but default rule can be matched"
msgstr "flaggan -s angiven men standardregeln kan följas"
#: src/main.c:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "-+ kan inte användas tillsammans med flaggan -l"
#: src/main.c:320
#: src/main.c:224
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:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
"--reentrant eller --bison-bridge kan inte användas tillsammans med flaggan -l"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF och -Cm kan inte användas tillsammans"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF och -I kan inte användas tillsammans"
#: src/main.c:363
#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF kan inte användas i lex-kompatibilitetsläge"
#: src/main.c:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf och -CF är ömsesidigt uteslutande"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "-+ kan inte användas tillsammans med flaggan -CF"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array kan inte användas tillsammans med flaggan -+"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Flaggorna -+ och --reentrant är ömsesidigt uteslutande."
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "bisonbrygga stöds inte för C++-inläsaren."
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "kunde inte skapa %s"
#: src/main.c:443
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass är bara meningsfull för C++-inläsare"
#: src/main.c:431
msgid "could not write tables header"
msgstr "kunde inte skriva tabellhuvud"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan inte öppna mallfilen %s"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "indatafel vid läsande av mallfilen %s"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "fel vid stängande av mallfilen %s"
#: src/main.c:457
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "fel vid skapande av huvudfilen %s"
#: src/main.c:717
#, c-format
msgid "error writing output file %s"
msgstr "fel vid skrivande av utfilen %s"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "fel vid stängande av utfilen %s"
#: src/main.c:465
#: src/main.c:725
#, 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:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Backar inte.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d backande (icke-accepterande) tillstånd.\n"
msgstr "%d backar (icke-accepterande) tillstånd.\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Komprimerade tabeller backar alltid.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "fel när backningsfilen %s skrevs"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "fel när backningsfilen %s stängdes"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "Statistik över användning av %s version %s:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " inläsarflaggor: -"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-tillstånd\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-tillstånd (%d ord)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d regler\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Inget backande\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d backande (icke-accepterande) tillstånd\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Komprimerade tabeller backar alltid\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Början-av-rad-mönster använda\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d startvillkor\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilontillstånd, %d dubbla epsilontillstånd\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " inga teckenklasser\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d par med tillstånd/nästa-tillstånd skapade\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d unika/duplicerade övergångar\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d tabellposter\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d basstandardposter skapade\n"
#: src/main.c:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d tomma tabellposter\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d prototyper skapade\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d mallar skapade, %d användningar\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d ekvivalensklasser skapade\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d metaekvivalensklasser skapade\n"
#: src/main.c:670
#: src/main.c:930
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d sparade) hashkollisioner, %d DFA lika\n"
#: src/main.c:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d uppsättningar med omallokeringar krävdes\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d tabellposter krävs totalt\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Internt fel. flexopts är felaktiga.\n"
#: src/main.c:745
#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Prova \"%s --help\" för mer information.\n"
#: src/main.c:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "okänd flagga till -C \"%c\""
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "allvarligt fel vid tolkningen"
#: 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
#: src/main.c:1508
#, c-format
msgid "could not create backing-up info file %s"
msgstr "kunde inte skapa filen %s med backningsinformation"
#: src/main.c:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -480,53 +496,54 @@ msgstr ""
"%%option yylineno medför en prestandaförlust ENDAST på regler som kan matcha "
"nyradstecken\n"
#: src/main.c:1359
#: src/main.c:1545
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiv) medför en mindre prestandaförlust\n"
#: src/main.c:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() medför en mindre prestandaförlust\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT medför en väsentlig prestandaförlust\n"
#: src/main.c:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT kan inte användas tillsammans med -f eller -F"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno kan inte användas tillsammans med REJECT"
#: src/main.c:1393
#: src/main.c:1579
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:1428
msgid "allocation of macro definition failed"
msgstr "allokering av makrodefinitioner misslyckades"
#: 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:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Användning: %s [FLAGGOR] [FIL]...\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -547,7 +564,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -561,7 +578,6 @@ 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"
@@ -576,11 +592,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -616,8 +631,6 @@ 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"
@@ -646,6 +659,8 @@ 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"
@@ -656,34 +671,48 @@ msgstr ""
" -h, --help visa detta hjälpmeddelande\n"
" -V, --version visa versionsinformation för %s\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "minnesallokeringen misslyckades i allocate_array()"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "otillåtet tecken \"%s\" funnet i check_char()"
#: src/misc.c:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "minnesallokeringen misslyckades i xstrdup()"
msgstr "minnesallokeringen misslyckades i allocate_array()"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: allvarligt internt fel, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "försök att öka arraystorlek misslyckades"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "otillåten rad i mallfilen"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "minnesallokeringen misslyckades i yy_flex_xmalloc()"
@@ -717,189 +746,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:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "otillåten tillståndstyp i mark_beginning_as_normal()"
#: src/nfa.c:593
#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "indatareglerna är för komplicerade (>= %d NFA-tillstånd)"
#: src/nfa.c:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "fann för många övergångar i mkxtion()"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "för många regler (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "okänt fel vid tolkning av avsnitt 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "felaktig lista med startvillkor"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr "Prefix får inte innehålla [ eller ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "okänd regel"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "efterföljande kontext används två gånger"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "felaktiga iterationsvärden"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "iterationsvärde måste vara positivt"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "negativt intervall i teckenklass"
#: src/parse.y:938
#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "[:^lower:] är tvetydigt i en skiftlägesokänslig inläsare"
#: src/parse.y:944
#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "[:^upper:] är tvetydigt i en skiftlägesokänslig inläsare"
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "För lång indatarad\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "felaktigt \"%top\"-direktiv"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "okänt \"%\"-direktiv"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "För långt definitionsnamn\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "Ensamt \"{\""
#: src/scan.l:327
#: src/scan.l:325
#, 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:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "ofullständig namndefinition"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "För lång alternativrad\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "okänd %%option: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "otillåten teckenklass"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "odefinierad definition {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr "obalanserade parenteser"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "otillåtet <startvillkor>: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "citationstecken saknas"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "otillåtet uttryck för teckenklass: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "otillåtet tecken inom {}"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "} saknas"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "filslut påträffat inuti en handling"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "filslut påträffat inuti ett mönster"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "otillåtet tecken: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "kan inte öppna %s"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Användning: %s [FLAGGOR]...\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "flaggan \"%s\" tar inget argument\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "flaggan \"%s\" kräver ett argument\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "flaggan \"%s\" är tvetydig\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Okänd flagga \"%s\"\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Okänt fel=(%d)\n"
@@ -931,26 +960,5 @@ msgstr "Slutmarkering\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Något märkligt* - tecken: %d värde: %d\n"
#~ 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"
#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "dynamiskt minnesfel i copy_string()"
+197 -181
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: 2022-09-27 14:18-0400\n"
"POT-Creation-Date: 2017-05-06 10:49-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,12 +17,20 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: KBabel 1.0.2\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr ""
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
#: 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"
msgstr ""
#: src/dfa.c:59
@@ -57,7 +65,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "epsclosure() içindeki tutarlılık kontrolü başarısız"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -69,24 +77,24 @@ msgstr ""
"DFA Dökümü:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "tekil tampon sonu durumu yaratılamadı"
#: src/dfa.c:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "durum # %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "yynxt_tbl[][] yazılamadı"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "sympartition() içinde hatalı geçiş karakterleri saptandı"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -98,29 +106,29 @@ msgstr ""
"Denklik Sınıfları:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "durum # %d kabul eder: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "durum # %d kabul eder: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "yyacclist_tbl yazılamadı"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "yyacc_tbl yazılamadı"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "ecstbl yazılamadı"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -130,342 +138,350 @@ msgstr ""
"\n"
"Ara-Denklik Sınıfları:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "yymeta_tbl yazılamadı"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "yybase_tbl yazılamadı"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "yydef_tbl yazılamadı"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "yynxt_tbl yazılamadı"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "yychk_tbl yazılamadı"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "ftbl yazılamadı"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "ssltbl yazılamadı"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "eoltbl yazılamadı"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "yynultrans_tbl yazılamadı"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "kural eşlenemedi"
#: src/main.c:174
#: src/main.c:183
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:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "-+'yi -l seçeneği ile kullanma"
#: src/main.c:320
#: src/main.c:224
msgid "Can't use -f or -F with -l option"
msgstr "-f veya -F'yi -l seçeneği ile kullanma"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "-l seçeneği ile --reentrant veya --bison-bridge bir arada kullanılamaz"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF ve -Cm birlikte anlam ifade etmiyor"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF ve -I uyumsuz"
#: src/main.c:363
#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF lex-uyumluluk kipi ile uyumsuz"
#: src/main.c:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf ve -CF bir arada kullanılamaz"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "-+, -CF seçeneği ile kullanılamaz"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array, -+ seçeneği ile uyumsuz"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "-+ ve --reentrant seçenekleri bir arada kullanılamaz"
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison bridge, C++ tarayıcısı için desteklenmiyor."
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "%s oluşturulamadı"
#: src/main.c:443
#, 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:431
msgid "could not write tables header"
msgstr "tablo başlığı yazılamadı"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "iskelet dosyası %s açılamadı"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "iskelet dosyası %s okunurken girdi hatası"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "iskelet dosyası %s kapatılırken hata"
#: src/main.c:457
#: 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
#, c-format
msgid "error writing output file %s"
msgstr "çıktı dosyası %s yazılırken hata"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "çıktı dosyası %s kapatılırken hata"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "çıktı dosyası %s silinirken hata"
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Yedekleme yok.\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d yedeklenen (kabul-etmeyen) durumlar.\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Sıkıştırılmış tablolar daima yedeklidir.\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "yedek dosyası %s yazılırken hata"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "yedek dosyası %s kapatılırken hata"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s sürüm %s kullanım istatistikleri:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " tarayıcı seçenekleri: -"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA durumu\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA durumu (%d sözcük)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d kural\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Yedekleme yok\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d yedeklenmiş (kabul-edilmeyen) durum\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Sıkıştırılmış tablolar daima yedeklenir\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Başlangıç-satırı kalıpları kullanıldı\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d başlangıç şartları\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilon durumu, %d çift epsilon durumu\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " karakter sınıfı yok\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d durumu/sonrakidurum çifti yaratıldı\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d tekil/çift geçişler\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d tablo girdileri\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d temel-tanım girdileri yaratıldı\n"
#: src/main.c:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d boş tablo girdileri\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d prototip yaratıldı\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d şablon yaratıldı, %d kullanıldı\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d denklik sınıfı yaratıldı\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d ara-denklik sınıfı yaratıldı\n"
#: src/main.c:670
#: src/main.c:930
#, 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:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d tekrar ayırım kümesine ihtiyaç var\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d toplam tablo girdisine ihtiyaç var\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "İç hata. flexopt'lar bozuk.\n"
#: src/main.c:745
#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Daha fazla bilgi için `%s --help' yazın.\n"
#: src/main.c:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "bilinmeyen -C seçeneği '%c'"
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "ölümcül ayrıştırma hatası"
#: 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
#: src/main.c:1508
#, c-format
msgid "could not create backing-up info file %s"
msgstr "yedekleme bilgi dosyası %s oluşturulamadı"
#: src/main.c:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -474,50 +490,51 @@ msgstr ""
"yylineno %%seçeneği YALNIZCA yenisatır karakterlerini de eşleyen satırlarda "
"yavaşlar.\n"
#: src/main.c:1359
#: src/main.c:1545
#, 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:1364
#: src/main.c:1550
#, 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:1370
#: src/main.c:1556
#, 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:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT, -f veya -F ile kullanılamaz"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno, REJECT ile birlikte kullanılamaz"
#: src/main.c:1393
#: src/main.c:1579
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:1428
msgid "allocation of macro definition failed"
msgstr ""
#: 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:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Kullanım: %s [SEÇENEKLER...] [DOSYA...]\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -538,7 +555,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -552,7 +569,6 @@ 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,11 +583,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -646,35 +661,48 @@ msgstr ""
" -h, --help bu yardım bilgisini gösterir\n"
" -V, --version %s sürümünü bildirir\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "allocate_array() içinde bellek ayırımı başarısız"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "check_char() içinde hatalı karakter '%s' saptandı"
#: src/misc.c:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "allocate_array() içinde bellek ayırımı başarısız"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: ölümcül iç hata, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "dizi boyutunu artırma denemesi başarısız"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "iskelet dosya içinde hatalı satır"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "yy_flex_xmalloc() içinde bellek ayırımı başarısız"
@@ -708,199 +736,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:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "mark_beginning_as_normal() içinde hatalı durum türü"
#: src/nfa.c:593
#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "girdi kuralları fazla karışık (>= %d NFA durumu)"
#: src/nfa.c:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "mkxtion() içinde çok fazla geçiş bulundu"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "çok fazla kural (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "1. bölüm işlenirken bilinmeyen hata oluştu"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "hatalı başlangıç şart listesi"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "bilinmeyen kural"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "izleyen bağlam iki defa kullanılmış"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "hatalı yineleme değerleri"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "yineleme değeri pozitif olmalı"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "karakter sınıflarında negatif aralık"
#: src/parse.y:938
#: src/parse.y:918
#, 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:944
#: src/parse.y:924
#, 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:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "Girdi satırı fazla uzun\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "hatalı `%top' yönergesi"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "'%' yönergesi bilinmiyor"
#: src/scan.l:216
#: src/scan.l:214
#, fuzzy
msgid "Definition name too long\n"
msgstr "Girdi satırı fazla uzun\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "'{' eşleşmiyor"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr ""
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "eksik isim tanımlaması"
#: src/scan.l:486
#: src/scan.l:467
#, fuzzy
msgid "Option line too long\n"
msgstr "Girdi satırı fazla uzun\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "geçersiz %%seçenek: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "hatalı karakter sınıfı"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "belirsiz tanım {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "hatalı <başlangıç şartı>: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "eksik çift tırnak"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "bozuk karakter sınıfı ifadesi: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "{}'ler içinde hatalı karakter"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "eksik }"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "bir eylem içinde EOF ile karşılaşıldı"
#: src/scan.l:1025
#: src/scan.l:977
#, fuzzy
msgid "EOF encountered inside pattern"
msgstr "bir eylem içinde EOF ile karşılaşıldı"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "hatalı karakter: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "%s açılamıyor"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Kullanım: %s [SEÇENEKLER...]\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "`%s' seçeneği argüman kullanmaz\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "`%s' seçeneği için argüman zorunludur\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "`%s' seçeneği belirsiz\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Bilinmeyen seçenek: `%s'\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Bilinmeyen hata=(%d)\n"
@@ -935,17 +963,5 @@ 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"
+205 -201
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, 2022.
# Yuri Chornoivan <yurchor@ukr.net>, 2017.
msgid ""
msgstr ""
"Project-Id-Version: flex 2.6.4\n"
"Project-Id-Version: flex 2.5.38\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2022-09-27 14:18-0400\n"
"PO-Revision-Date: 2022-01-03 11:33+0200\n"
"POT-Creation-Date: 2017-05-24 18:00-0400\n"
"PO-Revision-Date: 2017-06-17 09:26+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,15 +19,23 @@ 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 20.12.0\n"
"X-Generator: Lokalize 1.5\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "Не вдалось виділити буфер для рядка, що виводиться"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
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/dfa.c:59
#, c-format
@@ -61,7 +69,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "помилка при перевірці на цілісність у epsclosure()"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -73,24 +81,24 @@ msgstr ""
"Дамп ДСА:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "неможливо створити унікальний стан end_of_buffer"
#: src/dfa.c:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "стан # %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Неможливо записати yynxt_tbl[][]"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "виявлено невірний символ переходу в sympartition()"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -102,29 +110,29 @@ msgstr ""
"Класи еквівалентності:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "стан # %d приймає: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "стан # %d приймає: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Неможливо записати yyacclist_tbl"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Неможливо записати yyacc_tbl"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Неможливо записати ecstbl"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -134,344 +142,352 @@ msgstr ""
"\n"
"Мета-Еквівалентні Класи:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Неможливо записати yymeta_tbl"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Неможливо записати yybase_tbl"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Неможливо записати yydef_tbl"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Неможливо записати yynxt_tbl"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Неможливо записати yychk_tbl"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Неможливо записати ftbl"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Неможливо записати ssltbl"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Неможливо записати eoltbl"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Неможливо записати yynultrans_tbl"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "неможливо застосувати правило"
#: src/main.c:174
#: src/main.c:183
msgid "-s option given but default rule can be matched"
msgstr ""
"вказано параметр -s, але правило за замовчуванням може бути застосоване"
#: src/main.c:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "Неможливо використовувати -+ з параметром -l"
#: src/main.c:320
#: src/main.c:224
msgid "Can't use -f or -F with -l option"
msgstr "Неможливо використовувати -f або -F з параметром -l"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
"Неможливо використовувати --reentrant або --bison-bridge з параметром -l"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "Параметри -Cf/-CF і -Cm разом не мають сенсу"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "Параметри -Cf/-CF і -I несумісні"
#: src/main.c:363
#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "Параметри -Cf/-CF несумісні з режимом lex-compatibility"
#: src/main.c:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "Параметри -Cf і -CF є взаємовиключними"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "Неможливо використовувати -+ з параметром -CF"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array несумісний з параметром -+"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Параметри -+ і --reentrant є взаємовиключними."
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison bridge не підтримується для сканера C++."
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "неможливо створити %s"
#: src/main.c:443
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass має сенс тільки для сканерів C++"
#: src/main.c:431
msgid "could not write tables header"
msgstr "Неможливо записати заголовок таблиць"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "Неможливо відкрити файл-каркас %s"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "помилка читання файла-каркаса %s"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "помилка при закритті файла-каркаса %s"
#: src/main.c:457
#: src/main.c:711
#, c-format
msgid "error creating header file %s"
msgstr "помилка створення файла-заголовку %s"
#: src/main.c:719
#, c-format
msgid "error writing output file %s"
msgstr "помилка запису у вихідний файл %s"
#: src/main.c:461
#: src/main.c:723
#, c-format
msgid "error closing output file %s"
msgstr "помилка закриття вихідного файла %s"
#: src/main.c:465
#: src/main.c:727
#, c-format
msgid "error deleting output file %s"
msgstr "помилка видалення вихідного файла %s"
#: src/main.c:472
#: src/main.c:734
#, c-format
msgid "No backing up.\n"
msgstr "Резервне копіювання вимкнено.\n"
#: src/main.c:476
#: src/main.c:738
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "резервне копіювання %d (недопустимих) станів.\n"
#: src/main.c:480
#: src/main.c:742
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Створення резервних копій стислих таблиць виконується завжди.\n"
#: src/main.c:483
#: src/main.c:745
#, c-format
msgid "error writing backup file %s"
msgstr "помилка запису резервної копії файла %s"
#: src/main.c:487
#: src/main.c:749
#, c-format
msgid "error closing backup file %s"
msgstr "помилка закриття резервної копії файла %s"
#: src/main.c:492
#: src/main.c:754
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "статистика використання %s версії %s:\n"
#: src/main.c:495
#: src/main.c:757
#, c-format
msgid " scanner options: -"
msgstr " параметри сканера: -"
#: src/main.c:574
#: src/main.c:836
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d станів НСА\n"
#: src/main.c:576
#: src/main.c:838
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d станів ДСА (%d слів)\n"
#: src/main.c:578
#: src/main.c:840
#, c-format
msgid " %d rules\n"
msgstr " %d правил\n"
#: src/main.c:583
#: src/main.c:845
#, c-format
msgid " No backing up\n"
msgstr " Резервне копіювання вимкнено\n"
#: src/main.c:587
#: src/main.c:849
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " резервне копіювання %d (недопустимих) станів\n"
#: src/main.c:592
#: src/main.c:854
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Створення резервних копій стислих таблиць виконується завжди\n"
#: src/main.c:596
#: src/main.c:858
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Використовуються шаблони початку рядка\n"
#: src/main.c:598
#: src/main.c:860
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d початкових умов\n"
#: src/main.c:602
#: src/main.c:864
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d епсилон-станів, %d подвійних епсилон-станів\n"
#: src/main.c:606
#: src/main.c:868
#, c-format
msgid " no character classes\n"
msgstr " відсутні класи символів\n"
#: src/main.c:610
#: src/main.c:872
#, 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:615
#: src/main.c:877
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " створено %d пар стан/наступний-стан\n"
#: src/main.c:618
#: src/main.c:880
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d унікальних/повторюваних переходів\n"
#: src/main.c:623
#: src/main.c:885
#, c-format
msgid " %d table entries\n"
msgstr " %d елементів таблиці\n"
#: src/main.c:631
#: src/main.c:893
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " створено %d/%d base-def елементів\n"
#: src/main.c:635
#: src/main.c:897
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " створено %d/%d (пік %d) записів nxt-chk\n"
#: src/main.c:639
#: src/main.c:901
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " створено %d/%d (пік %d) шаблонних записів nxt-chk\n"
#: src/main.c:643
#: src/main.c:905
#, c-format
msgid " %d empty table entries\n"
msgstr " %d порожніх елементів таблиці\n"
#: src/main.c:645
#: src/main.c:907
#, c-format
msgid " %d protos created\n"
msgstr " створено %d прототипів\n"
#: src/main.c:648
#: src/main.c:910
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " створено %d шаблонів, %d використовується\n"
#: src/main.c:656
#: src/main.c:918
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " створено класів еквівалентності %d/%d\n"
#: src/main.c:664
#: src/main.c:926
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " створено класів мета-еквівалентності %d/%d\n"
#: src/main.c:670
#: src/main.c:932
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d записано) колізій хеш-таблиці, %d еквівалентних ДСА\n"
#: src/main.c:672
#: src/main.c:934
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " потрібно %d наборів повторних розміщень\n"
#: src/main.c:674
#: src/main.c:936
#, c-format
msgid " %d total table entries needed\n"
msgstr " всього потрібно %d елементів таблиці\n"
#: src/main.c:735
#: src/main.c:1010
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Внутрішня помилка. Неправильне значення flexopts.\n"
#: src/main.c:745
#: src/main.c:1020
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Спробуйте «%s --help» для отримання більш докладного опису.\n"
#: src/main.c:807
#: src/main.c:1077
#, c-format
msgid "unknown -C option '%c'"
msgstr "невідоме значення «%c» для параметру -C"
#: src/main.c:1195
#: src/main.c:1206
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1486
msgid "fatal parse error"
msgstr "фатальна помилка розбору"
#: 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
#: src/main.c:1518
#, c-format
msgid "could not create backing-up info file %s"
msgstr "неможливо створити резервну копію інформаційного файла %s"
#: src/main.c:1343
#: src/main.c:1539
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"Параметр -l сумісності з AT&T lex спричиняє значне зниження продуктивності\n"
#: src/main.c:1346
#: src/main.c:1542
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr "і також може бути істинним джерелом проблем з продуктивністю\n"
#: src/main.c:1352
#: src/main.c:1548
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -480,53 +496,54 @@ msgstr ""
"%%option yylineno спричиняе значне зниження продуктивності ТІЛЬКИ для "
"правил, котрі описують символи нового рядка\n"
#: src/main.c:1359
#: src/main.c:1555
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (інтерактивний) спричиняе незначне зниження продуктивності\n"
#: src/main.c:1364
#: src/main.c:1560
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() спричиняе незначне зниження продуктивності\n"
#: src/main.c:1370
#: src/main.c:1566
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT спричиняе значне зниження продуктивності\n"
#: src/main.c:1375
#: src/main.c:1571
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Правила котрі мають замикаючий контекст змінної довжини значно знижують "
"продуктивність\n"
#: src/main.c:1387
#: src/main.c:1583
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT не може бути використано разом з -f або -F"
#: src/main.c:1390
#: src/main.c:1586
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno не може бути використано з REJECT"
#: src/main.c:1393
#: src/main.c:1589
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"Правила котрі мають замикаючий контекст змінної довжини не можуть бути "
"використані з -f or -F"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "Не вдалось розмістити визначення макросу"
#: src/main.c:1714
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass має сенс тільки для сканерів C++"
#: src/main.c:1745
#: src/main.c:1801
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Використання: %s [ПАРАМЕТРИ] [ФАЙЛ]…\n"
#: src/main.c:1748
#: src/main.c:1804
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -547,7 +564,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -561,7 +578,6 @@ 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"
@@ -576,11 +592,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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"
@@ -619,8 +634,6 @@ msgstr ""
" -T, --trace %s повинен запускатися у режимі трасування\n"
" -w, --nowarn не видавати попереджень\n"
" -v, --verbose записати підсумкову статистику сканера до stdout\n"
" --hex шістнадцяткові числа замість вісімкових у "
"діагностиці\n"
"\n"
"Файли:\n"
" -o, --outfile=ФАЙЛ вказати ім'я вихідного файла\n"
@@ -651,6 +664,8 @@ 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"
@@ -661,34 +676,47 @@ msgstr ""
" -h, --help показати цю довідку\n"
" -V, --version показати версію %s\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "помилка виділення пам'яті у allocate_array()"
#: src/misc.c:131
#: src/misc.c:212
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "check_char() виявив недопустимий символ «%s»"
#: src/misc.c:136
#: src/misc.c:217
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "для використання символу %s сканер потребує опцію -8"
#: src/misc.c:155
#: src/misc.c:236
msgid "memory allocation failure in xstrdup()"
msgstr "помилка виділення пам'яті у xstrdup()"
#: src/misc.c:231
#: src/misc.c:310
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: фатальна внутрішня помилка, %s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671 src/misc.c:683
msgid "attempt to increase array size failed"
msgstr "помилка при спробі збільшити розмір масиву"
#: src/misc.c:645
#: src/misc.c:807
msgid "bad line in skeleton file"
msgstr "невідомий рядок у файлі-каркасі"
#: src/misc.c:857
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "помилка виділення пам'яті у yy_flex_xmalloc()"
@@ -722,196 +750,196 @@ msgstr "порожній автомат у dupmachine()"
msgid "Variable trailing context rule at line %d\n"
msgstr "Правило із замикаючим контекстом змінної довжини у стрічці %d\n"
#: src/nfa.c:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "невідомий тип стану у mark_beginning_as_normal()"
#: src/nfa.c:593
#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "вхідні правила занадто складні (>= %d станів НСА)"
#: src/nfa.c:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "знайдено занадто багато переходів у mkxtion()"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "занадто багато правил (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "невідома помилка при обробці розділу 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "невірний список початкових умов"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr "Префікс не може містити символи «[» або «]»"
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "нерозпізнане правило"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "замикаючий контекст використано двічі"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "невірно сформований діапазон ітерацій"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "кількість ітерацій повинна бути додатнім числом"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"використання діапазону символів [%c-%c] є двозначним для сканера, що не "
"чутливий до регістру символів"
#: src/parse.y:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr ""
"символьний клас описано діапазоном, перший елемент котрого більший за "
"останній"
#: src/parse.y:938
#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"використання [:^lower:] є невизначеним для сканера, що не чутливий до "
"регістру символів"
#: src/parse.y:944
#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"використання [:^upper:] є невизначеним для сканера, що не чутливий до "
"регістру символів"
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:646 src/scan.l:704
msgid "Input line too long\n"
msgstr "Занадто довгий вхідний рядок\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "нерозпізнана директива «%top»"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "нерозпізнана директива «%»"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Визначення має занадто довге ім'я\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "Непарна «{»"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Визначення {%s} має занадто довге значення\n"
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "неповне визначення імені"
#: src/scan.l:486
#: src/scan.l:469
msgid "Option line too long\n"
msgstr "Занадто довгий параметр\n"
#: src/scan.l:494
#: src/scan.l:477
#, c-format
msgid "unrecognized %%option: %s"
msgstr "нерозпізнаний %%option: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:661 src/scan.l:834
msgid "bad character class"
msgstr "помилковий символьний клас"
#: src/scan.l:727
#: src/scan.l:711
#, c-format
msgid "undefined definition {%s}"
msgstr "нерозпізнане визначення {%s}"
#: src/scan.l:790
#: src/scan.l:774
msgid "unbalanced parenthesis"
msgstr "незбалансовані круглі дужки"
#: src/scan.l:805
#: src/scan.l:789
#, c-format
msgid "bad <start condition>: %s"
msgstr "невірно сформованана <умова, що активує правило>: %s"
#: src/scan.l:818
#: src/scan.l:802
msgid "missing quote"
msgstr "відсутні лапки"
#: src/scan.l:884
#: src/scan.l:868
#, c-format
msgid "bad character class expression: %s"
msgstr "символьний клас заданий некоректним виразом: %s"
#: src/scan.l:906
#: src/scan.l:890
msgid "bad character inside {}'s"
msgstr "неприйнятний символ всередині {}"
#: src/scan.l:912
#: src/scan.l:896
msgid "missing }"
msgstr "відсутній }"
#: src/scan.l:1020
#: src/scan.l:974
msgid "EOF encountered inside an action"
msgstr "знайдено EOF всередині коду котрий асоційований з правилом"
#: src/scan.l:1025
#: src/scan.l:979
msgid "EOF encountered inside pattern"
msgstr "знайдено EOF всередині шаблону, що задає правило"
#: src/scan.l:1058
#: src/scan.l:1012
#, c-format
msgid "bad character: %s"
msgstr "неочікуваний символ: %s"
#: src/scan.l:1086
#: src/scan.l:1040
#, c-format
msgid "can't open %s"
msgstr "неможливо відкрити %s"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Використання: %s [ПАРАМЕТРИ]…\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "параметр «%s» повинен використовуватись без аргументу\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "параметр «% s» повинен використовуватись з аргументом\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "параметр «%s» є двозначним\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Нерозпізнаний параметр «%s»\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Невідома помилка=(%d)\n"
@@ -943,29 +971,5 @@ 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()"
+198 -194
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: 2022-09-27 14:18-0400\n"
"POT-Creation-Date: 2017-05-06 10:49-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,13 +23,21 @@ msgstr ""
"X-Generator: Poedit 1.5.5\n"
"X-Poedit-SourceCharset: utf-8\n"
#: src/buf.c:61
#: src/buf.c:79
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/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
msgstr ""
#: 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/dfa.c:59
#, c-format
@@ -63,7 +71,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:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -75,24 +83,24 @@ msgstr ""
"Đổ DFA:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
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:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "trạng thái# %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Không thể ghi \"yynxt_tbl[][]\""
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "phát hiện ký tự chuyển tiếp sai trong sympartition()"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -104,29 +112,29 @@ msgstr ""
"Lớp tương đương:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "trạng thái # %d chấp nhận: [%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "trạng thái # %d chấp nhận: "
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Không thể ghi \"yyacclist_tbl\""
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Không thể ghi \"yyacc_tbl\""
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Không thể ghi \"ecstbl\""
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -136,345 +144,353 @@ msgstr ""
"\n"
"Lớp tương-đương-meta:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Không thể ghi \"yymeta_tbl\""
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Không thể ghi \"yybase_tbl\""
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Không thể ghi \"yydef_tbl\""
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Không thể ghi \"yynxt_tbl\""
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Không thể ghi \"yychk_tbl\""
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Không thể ghi \"ftbl\""
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Không thể ghi \"ssltbl\""
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Không thể ghi \"eoltbl\""
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Không thể ghi \"yynultrans_tbl\""
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "quy tắc không thể được khớp"
#: src/main.c:174
#: src/main.c:183
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:317
#: src/main.c:221
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:320
#: src/main.c:224
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:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --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:356
#: src/main.c:260
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:359
#: src/main.c:263
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:363
#: src/main.c:267
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:368
#: src/main.c:272
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:372
#: src/main.c:276
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:375
#: src/main.c:279
#, 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:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Hai tùy chọn \"- +\" và \"--reentrant\" xung đột với nhau."
#: src/main.c:383
#: src/main.c:287
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:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "không thể tạo %s"
#: src/main.c:443
#, 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:431
msgid "could not write tables header"
msgstr "không thể ghi phần đầu bảng"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "không thể mở tập tin khung sườn %s"
#: 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
#, 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:451
#: src/main.c:525
#, 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:457
#: 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
#, c-format
msgid "error writing output file %s"
msgstr "gặp lỗi khi ghi tập tin xuất %s"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "gặp lỗi khi đóng tập tin xuất %s"
#: src/main.c:465
#: src/main.c:725
#, 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:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Không sao lưu.\n"
#: src/main.c:476
#: src/main.c:736
#, 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:480
#: src/main.c:740
#, 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:483
#: src/main.c:743
#, 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:487
#: src/main.c:747
#, 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:492
#: src/main.c:752
#, 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:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " tùy chọn bộ quét: —"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d trạng thái NFA\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d trạng thái DFA (%d từ)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d quy tắc\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " Không sao lưu\n"
#: src/main.c:587
#: src/main.c:847
#, 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:592
#: src/main.c:852
#, 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:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Dùng mẫu kiểu đầu dòng\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d điều kiện bắt đầu\n"
#: src/main.c:602
#: src/main.c:862
#, 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:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " không có lớp ký tự\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, 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:618
#: src/main.c:878
#, 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:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d mục tin bảng\n"
#: src/main.c:631
#: src/main.c:891
#, 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:635
#: src/main.c:895
#, 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:639
#: src/main.c:899
#, 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:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d mục tin bảng trống\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d proto (khai báo nguyên mẫu) đã được tạo\n"
#: src/main.c:648
#: src/main.c:908
#, 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:656
#: src/main.c:916
#, 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:664
#: src/main.c:924
#, 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:670
#: src/main.c:930
#, 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:672
#: src/main.c:932
#, 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:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " cần tổng %d mục tin bảng\n"
#: src/main.c:735
#: src/main.c:1008
#, 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:745
#: src/main.c:1018
#, 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:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "không hiểu tùy chọn \"-C\" là \"%c\""
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "gặp lỗi phân tích nghiêm trọng"
#: 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
#: src/main.c:1508
#, 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:1343
#: src/main.c:1529
#, 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:1346
#: src/main.c:1532
#, 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:1352
#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -483,52 +499,53 @@ 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:1359
#: src/main.c:1545
#, 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:1364
#: src/main.c:1550
#, 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:1370
#: src/main.c:1556
#, 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:1375
#: src/main.c:1561
#, 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:1387
#: src/main.c:1573
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:1390
#: src/main.c:1576
#, 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:1393
#: src/main.c:1579
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: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: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:1745
#: src/main.c:1791
#, 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:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -549,7 +566,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -563,7 +580,6 @@ 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"
@@ -578,11 +594,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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,35 +682,48 @@ 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:70 src/misc.c:81
#: 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
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:131
#: src/misc.c:205
#, 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:136
#: src/misc.c:210
#, 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:155
#: src/misc.c:229
#, 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:231
#: src/misc.c:303
#, 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:587 src/misc.c:598
#: src/misc.c:671
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:645
#: 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
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "việc phân bổ bộ nhớ bị lỗi trong yy_flex_xmalloc()"
@@ -729,191 +757,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:353
#: src/nfa.c:357
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:593
#: src/nfa.c:595
#, 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:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "gặp quá nhiều chuyển tiếp trong mkxtion()"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "quá nhiều quy tắc (> %d) !"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "gặp lỗi không rõ khi xử lý phần 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "danh sách điều kiện bắt đầu là sai"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "gặp quy tắc không được thừa nhận"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "ngữ cảnh theo sau được dùng hai lần"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "gặp giá trị lặp lại sai"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "giá trị lặp lại phải là số dương"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, 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:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "gặp phạm vi âm trong lớp ký tự"
#: src/parse.y:938
#: src/parse.y:918
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:944
#: src/parse.y:924
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:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "dòng nhập quá dài\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "chỉ thị kiểu \"%top\" (đầu) dạng sai"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "gặp chỉ thị kiểu \"%\" không được nhận dạng"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Tên định nghĩa quá dài\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "Chưa khớp \"{\""
#: src/scan.l:327
#: src/scan.l:325
#, 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:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "lời đinh nghĩa tên chưa hoàn tất"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "dòng tùy chọn quá dài\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "gặp tùy chọn %% không được nhận dạng: %s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "lớp ký tự sai"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "chưa định nghĩa định danh {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "<start condition> (điệu kiện bắt đầu) sai: %s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "thiếu dấu trích dẫn"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "biểu thức lớp ký tự sai: %s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "có ký tự sai ở trong hai dấu ngoặc móc {}"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "thiếu }"
#: src/scan.l:1020
#: src/scan.l:972
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:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "gặp kết thúc tập tin ở trong mẫu"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "ký tự sai: %s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "không thể mở %s"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Cách dùng: %s [TÙY_CHỌN]...\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, 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:489
#: src/scanopt.c:529
#, 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:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "tùy chọn \"%s\" chưa rõ ràng\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Không nhận ra tùy chọn \"%s\"\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Không rõ lỗi=(%d)\n"
@@ -945,29 +973,5 @@ 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"
+198 -194
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: 2022-09-27 14:18-0400\n"
"POT-Creation-Date: 2017-05-06 10:49-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,13 +19,21 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 1.8.4\n"
#: src/buf.c:61
#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "给予缓冲区配额以打印字串时失败"
#: src/ccl.c:80
msgid "internal error: trying to add a char to a non-last ccl.\n"
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/dfa.c:59
#, c-format
@@ -59,7 +67,7 @@ msgstr ""
msgid "consistency check failed in epsclosure()"
msgstr "epsclosure() 中的一致性检查失败"
#: src/dfa.c:422
#: src/dfa.c:419
msgid ""
"\n"
"\n"
@@ -71,24 +79,24 @@ msgstr ""
"DFA 转储:\n"
"\n"
#: src/dfa.c:558
#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "无法创建独立的 end-of-buffer 状态"
#: src/dfa.c:579
#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "状态 # %d:\n"
#: src/dfa.c:738
#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "无法写入 yynxt_tbl[][]"
#: src/dfa.c:1001
#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "在 sympartition() 检测到错误的变换字符"
#: src/gen.c:379
#: src/gen.c:480
msgid ""
"\n"
"\n"
@@ -100,29 +108,29 @@ msgstr ""
"等价类:\n"
"\n"
#: src/gen.c:425 src/gen.c:454 src/gen.c:638
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "状态 # %d 接受:[%d]\n"
#: src/gen.c:533
#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "状态 # %d 接受:"
#: src/gen.c:582
#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "无法写入 yyacclist_tbl"
#: src/gen.c:659
#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "无法写入 yyacc_tbl"
#: src/gen.c:674 src/gen.c:947 src/gen.c:974
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "无法写入 ecstbl"
#: src/gen.c:694
#: src/gen.c:1271
msgid ""
"\n"
"\n"
@@ -132,389 +140,398 @@ msgstr ""
"\n"
"元等价类:\n"
#: src/gen.c:714
#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "无法写入 yymeta_tbl"
#: src/gen.c:774
#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "无法写入 yybase_tbl"
#: src/gen.c:805
#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "无法写入 yydef_tbl"
#: src/gen.c:844
#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "无法写入 yynxt_tbl"
#: src/gen.c:877
#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "无法写入 yychk_tbl"
#: src/gen.c:932 src/gen.c:965
#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "无法写入 ftbl"
#: src/gen.c:938
#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "无法写入 ssltbl"
#: src/gen.c:1014
#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "无法写入 eoltbl"
#: src/gen.c:1061
#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "无法写入 yynultrans_tbl"
#: src/main.c:169
#: src/main.c:178
msgid "rule cannot be matched"
msgstr "无法匹配规则"
#: src/main.c:174
#: src/main.c:183
msgid "-s option given but default rule can be matched"
msgstr "-s 选项已给定但是可以吻合缺省规则"
#: src/main.c:317
#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "无法将 -+ 与 -l 选项共同使用"
#: src/main.c:320
#: src/main.c:224
msgid "Can't use -f or -F with -l option"
msgstr "无法将 -f 或 -F 与 -l 选项共同使用"
#: src/main.c:324
#, fuzzy
msgid "Can't use --ctrl.reentrant or --bison-bridge with -l option"
#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "无法将 --reentrant 或 --bison-bridge 与 -l 选项共同使用"
#: src/main.c:356
#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF 和 -Cm 共用时不具任何意义"
#: src/main.c:359
#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF 和 -I 是不兼容的"
#: src/main.c:363
#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF 与 lex 兼容模式是不兼容的"
#: src/main.c:368
#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf 和 -CF 是互斥的"
#: src/main.c:372
#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "无法将 -+ 与 -CF 选项共同使用"
#: src/main.c:375
#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array 与 -+ 选项不兼容"
#: src/main.c:380
#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "选项 -+ 和 --reentrant 是互斥的。"
#: src/main.c:383
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison 桥接器不受 C++ 扫描程序支持。"
#: src/main.c:422 src/main.c:1235
#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "无法创建 %s"
#: src/main.c:443
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass 只对于 C++ 扫描程序有意义"
#: src/main.c:431
msgid "could not write tables header"
msgstr "无法写入表头"
#: src/main.c:447
#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "无法打开骨架文件 %s"
#: 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
#, c-format
msgid "input error reading skeleton file %s"
msgstr "读取骨架文件 %s 时输入错误"
#: src/main.c:451
#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "关闭骨架文件 %s 出错"
#: src/main.c:457
#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "创建头文件 %s 出错"
#: src/main.c:717
#, c-format
msgid "error writing output file %s"
msgstr "写入输出文件 %s 出错"
#: src/main.c:461
#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "关闭输出文件 %s 出错"
#: src/main.c:465
#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "删除输出文件 %s 出错"
# See Concept Index. fr translation is wrong for that 'archive'.
#: src/main.c:472
#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "没有回溯。\n"
#: src/main.c:476
#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d 回溯 (非接受) 状态。\n"
#: src/main.c:480
#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "压缩过的表格总会自动回溯。\n"
#: src/main.c:483
#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "写入回溯文件 %s 出错"
#: src/main.c:487
#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "关闭回溯文件 %s 出错"
#: src/main.c:492
#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s 版本 %s 用法统计:\n"
#: src/main.c:495
#: src/main.c:755
#, c-format
msgid " scanner options: -"
msgstr " 扫描器选项:-"
#: src/main.c:574
#: src/main.c:834
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA 状态\n"
#: src/main.c:576
#: src/main.c:836
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA 状态 (%d 个字词)\n"
#: src/main.c:578
#: src/main.c:838
#, c-format
msgid " %d rules\n"
msgstr " %d 条规则\n"
#: src/main.c:583
#: src/main.c:843
#, c-format
msgid " No backing up\n"
msgstr " 没有回溯\n"
#: src/main.c:587
#: src/main.c:847
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d 回溯 (非接受) 状态\n"
#: src/main.c:592
#: src/main.c:852
#, c-format
msgid " Compressed tables always back-up\n"
msgstr " 压缩过的表格总会自动回溯\n"
#: src/main.c:596
#: src/main.c:856
#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " 列首式样已使用\n"
#: src/main.c:598
#: src/main.c:858
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d 起始条件\n"
#: src/main.c:602
#: src/main.c:862
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d ε状态,%d 双倍ε状态\n"
#: src/main.c:606
#: src/main.c:866
#, c-format
msgid " no character classes\n"
msgstr " 无字符类别\n"
#: src/main.c:610
#: src/main.c:870
#, 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:615
#: src/main.c:875
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d 状态/下一状态对已创建\n"
#: src/main.c:618
#: src/main.c:878
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d 独一/重复转换\n"
#: src/main.c:623
#: src/main.c:883
#, c-format
msgid " %d table entries\n"
msgstr " %d 表格项目\n"
#: src/main.c:631
#: src/main.c:891
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def 项目已创建\n"
#: src/main.c:635
#: src/main.c:895
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (峰值 %d) nxt-chk 项目已创建\n"
#: src/main.c:639
#: src/main.c:899
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (峰值 %d) 模板 nxt-chk 项目已创建\n"
#: src/main.c:643
#: src/main.c:903
#, c-format
msgid " %d empty table entries\n"
msgstr " %d 清空表格项目\n"
#: src/main.c:645
#: src/main.c:905
#, c-format
msgid " %d protos created\n"
msgstr " %d 原型已创建\n"
#: src/main.c:648
#: src/main.c:908
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d 范本已创建,%d 使用\n"
#: src/main.c:656
#: src/main.c:916
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d 等价类别已创建\n"
#: src/main.c:664
#: src/main.c:924
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d 后设等价类别已创建\n"
#: src/main.c:670
#: src/main.c:930
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d 已保存) 哈希碰撞,%d DFAs 相等\n"
#: src/main.c:672
#: src/main.c:932
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " 需要 %d 组重新配置\n"
#: src/main.c:674
#: src/main.c:934
#, c-format
msgid " %d total table entries needed\n"
msgstr " 总计需要 %d 表格项目\n"
#: src/main.c:735
#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "内部错误。flexopts 功能异常。\n"
#: src/main.c:745
#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "尝试「%s --help」以获得更多信息。\n"
#: src/main.c:807
#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "未知的 -C 选项“%c”"
#: src/main.c:1195
#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
#: src/main.c:1476
msgid "fatal parse error"
msgstr "致命的解析错误"
#: 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
#: src/main.c:1508
#, c-format
msgid "could not create backing-up info file %s"
msgstr "无法创建回溯信息文件 %s"
#: src/main.c:1343
#: src/main.c:1529
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l AT&T lex 兼容性选项会导致大幅性能减退\n"
#: src/main.c:1346
#: src/main.c:1532
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " 同时也许是其他回报性能减退的实际来源\n"
#: src/main.c:1352
#: src/main.c:1538
#, 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:1359
#: src/main.c:1545
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (交互式) 导致小幅性能减退\n"
#: src/main.c:1364
#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() 导致小幅性能减退\n"
#: src/main.c:1370
#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT 导致大幅性能减退\n"
#: src/main.c:1375
#: src/main.c:1561
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "变量末尾上下文规则导致大幅性能减退\n"
#: src/main.c:1387
#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT 无法与 -f 或 -F 共同使用"
#: src/main.c:1390
#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno 无法与 REJECT 共同使用"
#: src/main.c:1393
#: src/main.c:1579
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "变量末尾上下文规则无法与 -f 或 -F 共同使用"
#: src/main.c:1428
msgid "allocation of macro definition failed"
msgstr "给予宏定义配额时失败"
#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass 只对于 C++ 扫描程序有意义"
#: src/main.c:1745
#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "用法:%s [选项] [文件]...\n"
#: src/main.c:1748
#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -535,7 +552,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, --env.trace %s should run in env.trace mode\n"
" -T, --trace %s should run in 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 "
@@ -549,7 +566,6 @@ 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"
@@ -564,11 +580,10 @@ 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 scanner\n"
" --bison-bridge scanner for Bison pure parser.\n"
" -R, --reentrant generate a reentrant C 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,35 +657,48 @@ msgstr ""
" -h, --help 产生这个说明消息\n"
" -V, --version 报告 %s 版本\n"
#: src/misc.c:70 src/misc.c:81
#: 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
msgid "memory allocation failed in allocate_array()"
msgstr "在 allocatearray() 中内存配置失败"
#: src/misc.c:131
#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "在 checkchar() 中侦测到不当的字符「%s」"
#: src/misc.c:136
#: src/misc.c:210
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "扫描程序需要 -8 旗标以使用字符 %s"
#: src/misc.c:155
#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "在 allocatearray() 中内存配置失败"
#: src/misc.c:231
#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s:严重内部错误,%s\n"
#: src/misc.c:587 src/misc.c:598
#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "试图增加数组大小时失败"
#: src/misc.c:645
#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "骨架文件中错误的行"
#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "在 yy_flex_xmalloc() 中的内存分配失败"
@@ -704,188 +732,188 @@ msgstr "在 dupmachine() 中清空机器"
msgid "Variable trailing context rule at line %d\n"
msgstr "变量末尾上下文规则于列 %d\n"
#: src/nfa.c:353
#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "在 mark_beginning_as_normal() 中有不当的状态输入"
#: src/nfa.c:593
#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr "输入规则太复杂 (>= %d NFA 状态)"
#: src/nfa.c:671
#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "在 mkxtion() 中找到太多转换"
#: src/nfa.c:697
#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "规则过多 (> %d)!"
#: src/parse.y:163
#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "未知的错误处理节 1"
#: src/parse.y:188 src/parse.y:373
#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "错误的起始状态列表"
#: src/parse.y:208
#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr ""
#: src/parse.y:337
#: src/parse.y:317
msgid "unrecognized rule"
msgstr "不能识别的规则"
#: src/parse.y:456 src/parse.y:469 src/parse.y:538
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "末尾上下文已使用两次"
#: src/parse.y:574 src/parse.y:584 src/parse.y:657 src/parse.y:667
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "不当的迭代值"
#: src/parse.y:602 src/parse.y:620 src/parse.y:685 src/parse.y:703
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "迭代值必须是正值"
#: src/parse.y:826 src/parse.y:836
#: src/parse.y:806 src/parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr "在大小写不须相符的扫描程序中,字符范围 [%c-%c] 是模棱两可的"
#: src/parse.y:841
#: src/parse.y:821
msgid "negative range in character class"
msgstr "在字符类别中有负值范围"
#: src/parse.y:938
#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr "在大小写不须相符的扫描程序中,[:^lower:] 是模棱两可的"
#: src/parse.y:944
#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr "在大小写不须相符的扫描程序中,[:^upper:] 是模棱两可的"
#: src/scan.l:73 src/scan.l:662 src/scan.l:720
#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "输入列太长\n"
#: src/scan.l:185
#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "异常的「%top」指令"
#: src/scan.l:207
#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "无法辨识的「%」指令"
#: src/scan.l:216
#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "定义名称太长\n"
#: src/scan.l:311
#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "不成对的「{」"
#: src/scan.l:327
#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "{%s} 的定义值太长\n"
#: src/scan.l:344
#: src/scan.l:342
msgid "incomplete name definition"
msgstr "不完整的名称定义"
#: src/scan.l:486
#: src/scan.l:467
msgid "Option line too long\n"
msgstr "选项列太长\n"
#: src/scan.l:494
#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "不能识别的 %%选项:%s"
#: src/scan.l:677 src/scan.l:850
#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "错误的字符类别"
#: src/scan.l:727
#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "未定义的定义 {%s}"
#: src/scan.l:790
#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr ""
#: src/scan.l:805
#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "错误 <起始条件>:%s"
#: src/scan.l:818
#: src/scan.l:800
msgid "missing quote"
msgstr "遗漏引号"
#: src/scan.l:884
#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "错误的字符类别表达式:%s"
#: src/scan.l:906
#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "不当字符于 {} 内部"
#: src/scan.l:912
#: src/scan.l:894
msgid "missing }"
msgstr "遗漏 }"
#: src/scan.l:1020
#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "在动作中文件结束"
#: src/scan.l:1025
#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "在式样之内遇到文件结束"
#: src/scan.l:1058
#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "错误的字符:%s"
#: src/scan.l:1086
#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "无法打开 %s"
#: src/scanopt.c:248
#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "用法:%s [选项]...\n"
#: src/scanopt.c:484
#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "选项“%s”不接受参数\n"
#: src/scanopt.c:489
#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "选项“%s”需要一个参数\n"
#: src/scanopt.c:493
#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "选项「%s」是模棱两可的\n"
#: src/scanopt.c:497
#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "未知的选项“%s”\n"
#: src/scanopt.c:501
#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "未知错误=(%d)\n"
@@ -917,33 +945,9 @@ 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 中的一致性检查失败"
+352 -348
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,7 +1,6 @@
*.la
*.lo
*.o
*-flex.h
config.h
config.h.in
flex
@@ -9,5 +8,6 @@ libfl.pc
parse.c
parse.h
scan.c
cpp-skel.h
stage1scan.[cl]
stage1flex
+5 -7
View File
@@ -95,14 +95,14 @@ public:
int lineno() const { return yylineno; }
int debug() const { return yyflexdebug; }
void set_debug( int flag ) { yyflexdebug = flag; }
int debug() const { return yy_flex_debug; }
void set_debug( int flag ) { yy_flex_debug = flag; }
protected:
char* yytext;
int yyleng;
int yylineno; // only maintained if you use %option yylineno
int yyflexdebug; // only has effect with -d or "%option debug"
int yy_flex_debug; // only has effect with -d or "%option debug"
};
}
@@ -139,7 +139,6 @@ 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 );
@@ -149,8 +148,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_r( int c, char* buf_ptr );
void yyunput( int c, char* buf_ptr );
int yyinput();
void yy_load_buffer_state();
@@ -202,7 +201,6 @@ 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;
+14 -34
View File
@@ -46,6 +46,7 @@ flex_SOURCES = \
$(COMMON_SOURCES)
nodist_flex_SOURCES = \
cpp-skel.h \
stage1scan.c
flex_CFLAGS = $(AM_CFLAGS) $(WARNINGFLAGS)
@@ -53,6 +54,7 @@ flex_CFLAGS = $(AM_CFLAGS) $(WARNINGFLAGS)
COMMON_SOURCES = \
buf.c \
ccl.c \
cpp_backend.c \
dfa.c \
ecs.c \
filter.c \
@@ -70,7 +72,6 @@ COMMON_SOURCES = \
scanflags.c \
scanopt.c \
scanopt.h \
skeletons.c \
sym.c \
tables.c \
tables.h \
@@ -88,36 +89,18 @@ include_HEADERS = \
FlexLexer.h
EXTRA_DIST = \
c99-flex.skl \
cpp-flex.skl \
go-flex.skl \
mkskel.sh \
gettext.h \
chkskel.sh
gettext.h
CLEANFILES = stage1scan.c stage1flex$(EXEEXT)
CLEANFILES = stage1scan.c stage1flex$(EXEEXT) cpp-skel.h
BUILT_SOURCES = \
cpp-flex.h \
c99-flex.h \
go-flex.h
MAINTAINERCLEANFILES = c9pp-skel.h
clean-local:
rm -f $(BUILT_SOURCES)
flex-cpp_backend.$(OBJEXT): cpp-skel.h
cpp-flex.h: cpp-flex.skl mkskel.sh flexint_shared.h tables_shared.h tables_shared.c
cpp-skel.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
@@ -130,23 +113,20 @@ 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 inclusions so that parallelized runs will
# make needs to be told to make parse.h so that parallelized runs will
# not fail.
SKELINCLUDES := $(subst skl,h,$(wildcard *.skl))
stage1flex-main.$(OBJEXT): parse.h
flex-main.$(OBJEXT): parse.h
stage1flex-main.$(OBJEXT): parse.h $(SKELINCLUDES)
flex-main.$(OBJEXT): parse.h $(SKELINCLUDES)
stage1flex-yylex.$(OBJEXT): parse.h
flex-yylex.$(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)
stage1flex-scan.$(OBJEXT): parse.h
flex-stage1scan.$(OBJEXT): parse.h
# Run GNU indent on sources. Don't run this unless all the sources compile cleanly.
#
+120
View File
@@ -47,8 +47,26 @@
/* 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)
{
@@ -65,6 +83,52 @@ 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)
{
@@ -82,6 +146,62 @@ 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 < ctrl.csize; ++i) {
for (i = 0; i < 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 < ctrl.csize && ccl_contains(cclp,i)) ;
while (++i < 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 < ctrl.csize; ++ch )
for ( ch = 0; ch < 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 < ctrl.csize; ++i) {
for (i = 0; i < 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 < ctrl.csize && cset[i]) ;
while (++i < csize && cset[i]) ;
if (i - 1 > start_char)
/* this was a run */
-33
View File
@@ -1,33 +0,0 @@
#! /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
+655 -1056
View File
File diff suppressed because it is too large Load Diff
+639
View File
@@ -0,0 +1,639 @@
/* 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,
};
+55 -47
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 (env.backing_up_report) {
fprintf (ctrl.backing_up_file,
if (backing_up_report) {
fprintf (backing_up_file,
_("State #%d is non-accepting -\n"), ds);
/* identify the state */
dump_associated_rules (ctrl.backing_up_file, ds);
dump_associated_rules (backing_up_file, ds);
/* Now identify it further using the out- and
* jam-transitions.
*/
dump_transitions (ctrl.backing_up_file, state);
dump_transitions (backing_up_file, state);
putc ('\n', ctrl.backing_up_file);
putc ('\n', 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 < ctrl.csize; ++i) {
for (i = 0; i < 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 < ctrl.csize; ++i)
for (i = 0; i < csize; ++i)
out_char_set[i] = !out_char_set[i];
fprintf (file, _("\n jam-transitions: EOF "));
@@ -366,12 +366,9 @@ 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.
*/
size_t ntod (void)
void ntod (void)
{
int *accset, ds, nacc, newds;
int sym, hashval, numstates, dsize;
@@ -409,7 +406,7 @@ size_t ntod (void)
*/
todo_head = todo_next = 0;
for (i = 0; i <= ctrl.csize; ++i) {
for (i = 0; i <= csize; ++i) {
duplist[i] = NIL;
symlist[i] = false;
}
@@ -417,7 +414,7 @@ size_t ntod (void)
for (i = 0; i <= num_rules; ++i)
accset[i] = NIL;
if (env.trace) {
if (trace) {
dumpnfa (scset[1]);
fputs (_("\n\nDFA Dump:\n\n"), stderr);
}
@@ -455,14 +452,33 @@ size_t 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 (ctrl.fulltbl && ecgroup[0] == numecs && is_power_of_2(numecs))
nultrans = allocate_integer_array (current_max_dfas);
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.fullspd) {
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) {
for (i = 0; i <= numecs; ++i)
state[i] = 0;
@@ -470,7 +486,7 @@ size_t ntod (void)
dfaacc[0].dfaacc_state = 0;
}
else if (ctrl.fulltbl) {
else if (fulltbl) {
if (nultrans)
/* We won't be including NUL's transitions in the
* table, so build it for entries from 0 .. numecs - 1.
@@ -496,19 +512,15 @@ size_t 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;
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");
backend->ntod(num_full_table_rows);
if (gentables)
outn ("M4_HOOK_TABLE_OPENER");
outn (backend->table_opener);
/* Generate 0 entries for state #0. */
for (i = 0; i < num_full_table_rows; ++i) {
@@ -518,7 +530,7 @@ size_t ntod (void)
dataflush ();
if (gentables)
outn ("M4_HOOK_TABLE_CONTINUE");
outn (backend->table_continuation);
}
/* Create the first states. */
@@ -552,7 +564,7 @@ size_t ntod (void)
}
}
if (!ctrl.fullspd) {
if (!fullspd) {
if (!snstods (nset, 0, accset, 0, 0, &end_of_buffer_state))
flexfatal (_
("could not create unique end-of-buffer state"));
@@ -575,7 +587,7 @@ size_t ntod (void)
dset = dss[ds];
dsize = dfasiz[ds];
if (env.trace)
if (trace)
fprintf (stderr, _("state # %d:\n"), ds);
sympartition (dset, dsize, symlist, duplist);
@@ -612,7 +624,7 @@ size_t ntod (void)
state[sym] = newds;
if (env.trace)
if (trace)
fprintf (stderr,
"\t%d\t%d\n", sym,
newds);
@@ -630,7 +642,7 @@ size_t ntod (void)
targ = state[duplist[sym]];
state[sym] = targ;
if (env.trace)
if (trace)
fprintf (stderr,
"\t%d\t%d\n", sym,
targ);
@@ -662,7 +674,7 @@ size_t ntod (void)
state[NUL_ec] = 0; /* remove transition */
}
if (ctrl.fulltbl) {
if (fulltbl) {
/* Each time we hit here, it's another td_hilen, so we realloc. */
yynxt_tbl->td_hilen++;
@@ -672,7 +684,7 @@ size_t ntod (void)
yynxt_tbl->td_lolen *
sizeof (flex_int32_t));
if (gentables)
outn ("M4_HOOK_TABLE_OPENER");
outn (backend->table_opener);
/* Supply array's 0-element. */
if (ds == end_of_buffer_state) {
@@ -697,10 +709,10 @@ size_t ntod (void)
dataflush ();
if (gentables)
outn ("M4_HOOK_TABLE_CONTINUE");
out (backend->table_continuation);
}
else if (ctrl.fullspd)
else if (fullspd)
place_state (state, ds, totaltrans);
else if (ds == end_of_buffer_state)
@@ -728,9 +740,8 @@ size_t ntod (void)
}
}
if (ctrl.fulltbl) {
dataend ("M4_HOOK_TABLE_CLOSER");
outn("/* body */]])");
if (fulltbl) {
dataend ();
if (tablesext) {
yytbl_data_compress (yynxt_tbl);
if (yytbl_data_fwrite (&tableswr, yynxt_tbl) < 0)
@@ -743,7 +754,7 @@ size_t ntod (void)
}
}
else if (!ctrl.fullspd) {
else if (!fullspd) {
cmptmps (); /* create compressed template entries */
/* Create tables for all the states with only one
@@ -758,11 +769,8 @@ size_t ntod (void)
mkdeftbl ();
}
free(accset);
free(nset);
return (yynxt_tbl != NULL) ? (yynxt_tbl->td_hilen * sizeof(int32_t)) : 0;
}
@@ -996,7 +1004,7 @@ void sympartition (int ds[], int numstates, int symlist[], int duplist[])
tch = transchar[ns];
if (tch != SYM_EPSILON) {
if (tch < -lastccl || tch >= ctrl.csize) {
if (tch < -lastccl || tch >= csize) {
flexfatal (_
("bad transition character detected in sympartition()"));
}
+36 -31
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 @@ bool filter_apply_chain (struct filter * chain)
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 @@ bool filter_apply_chain (struct filter * chain)
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,24 +256,29 @@ 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);
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);
fprintf (to_h,
"m4_define( [[M4_YY_OUTFILE_NAME]],[[%s]])m4_dnl\n",
env.headerfilename != NULL ? env.headerfilename : "<stdout>");
headerfilename ? 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",
env.outfilename != NULL ? env.outfilename : "<stdout>");
outfilename ? outfilename : "<stdout>");
while (fgets (buf, sizeof buf, stdin)) {
fputs (buf, to_c);
@@ -285,8 +290,13 @@ 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 (ctrl.gen_line_dirs)
line_directive_out (to_h, NULL, 4000);
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);
fflush (to_h);
if (ferror (to_h))
lerr (_("error writing output file %s"),
@@ -300,11 +310,11 @@ int filter_tee_header (struct filter *chain)
fflush (to_c);
if (ferror (to_c))
lerr (_("error writing output file %s"),
env.outfilename != NULL ? env.outfilename : "<stdout>");
outfilename ? outfilename : "<stdout>");
else if (fclose (to_c))
lerr (_("error closing output file %s"),
env.outfilename != NULL ? env.outfilename : "<stdout>");
outfilename ? outfilename : "<stdout>");
while (wait (0) > 0) ;
@@ -328,7 +338,6 @@ 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 */
@@ -341,12 +350,9 @@ int filter_fix_linedirs (struct filter *chain)
regmatch_t m[10];
/* 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) {
/* Check for #line directive. */
if (buf[0] == '#'
&& regexec (&regex_linedir, buf, 3, m, 0) == 0) {
char *fname;
@@ -354,10 +360,10 @@ int filter_fix_linedirs (struct filter *chain)
fname = regmatch_dup (&m[2], buf);
if (strcmp (fname,
env.outfilename != NULL ? env.outfilename : "<stdout>")
outfilename ? outfilename : "<stdout>")
== 0
|| strcmp (fname,
env.headerfilename != NULL ? env.headerfilename : "<stdout>")
headerfilename ? headerfilename : "<stdout>")
== 0) {
char *s1, *s2;
@@ -381,9 +387,8 @@ int filter_fix_linedirs (struct filter *chain)
/* Adjust the line directives. */
in_gen = true;
snprintf (buf, readsz, traceline_template,
snprintf (buf, readsz, "#line %d \"%s\"\n",
lineno + 1, filename);
strncat(buf, "\n", sizeof(buf)-1);
}
else {
/* it's a #line directive for code we didn't write */
@@ -413,11 +418,11 @@ int filter_fix_linedirs (struct filter *chain)
fflush (stdout);
if (ferror (stdout))
lerr (_("error writing output file %s"),
env.outfilename != NULL ? env.outfilename : "<stdout>");
outfilename ? outfilename : "<stdout>");
else if (fclose (stdout))
lerr (_("error closing output file %s"),
env.outfilename != NULL ? env.outfilename : "<stdout>");
outfilename ? outfilename : "<stdout>");
return 0;
}
+141 -169
View File
@@ -64,6 +64,8 @@
#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>
@@ -111,6 +113,8 @@
/* 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.
*/
@@ -294,140 +298,101 @@
*/
#define BAD_SUBSCRIPT -32767
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.
/* Absolute value of largest number that can be stored in a short, with a
* bit of slop thrown in for general paranoia.
*/
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?
#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?
};
/* 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 bool gentables;
/* 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;
extern struct flex_backend_t cpp_backend;
/* 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
@@ -438,20 +403,42 @@ extern struct env_bundle_t env;
* 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 syntaxerror, eofseen;
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 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
@@ -467,9 +454,13 @@ extern int yymore_used, reject, real_reject, continued_action, in_rule;
*/
extern int datapos, dataline, linenum;
extern FILE *skelfile, *backing_up_file;
extern const char *skel[];
extern int skel_ind;
extern char *infilename;
extern char *extra_type;
extern char *infilename, *outfilename, *headerfilename;
extern int did_outfilename;
extern char *prefix, *yyclass, *extra_type;
extern int do_stdinit, use_stdout;
extern char **input_files;
extern int num_input_files;
extern char *program_name;
@@ -522,7 +513,6 @@ 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;
@@ -532,8 +522,6 @@ 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().
@@ -673,7 +661,6 @@ 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
@@ -693,7 +680,7 @@ extern unsigned char *ccltbl;
*/
extern char nmstr[MAXLINE];
extern int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs, nmval;
extern int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs;
extern int tmpuses, totnst, peakpairs, numuniq, numdup, hshsave;
extern int num_backing_up, bol_needed;
@@ -772,7 +759,7 @@ extern int *epsclosure(int *, int *, int[], int *, int *);
/* Increase the maximum number of dfas. */
extern void increase_max_dfas(void);
extern size_t ntod(void); /* convert a ndfa to a dfa */
extern void 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 *);
@@ -797,15 +784,6 @@ 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);
@@ -821,11 +799,8 @@ extern void indent_put2s(const char *, const char *);
/* Write out a string + newline at the current indentation level. */
extern void indent_puts(const char *);
/* generate transition tables */
extern void make_tables(void);
extern void make_tables(void); /* generate transition tables */
/* Select a type for optimal packing */
struct packtype_t *optimize_pack(size_t);
/* from file main.c */
@@ -836,6 +811,9 @@ 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);
@@ -861,7 +839,7 @@ extern char *xstrdup(const char *);
extern int cclcmp(const void *, const void *);
/* Finish up a block of data declarations. */
extern void dataend(const char *);
extern void dataend(void);
/* Flush generated data statements. */
extern void dataflush(void);
@@ -908,7 +886,7 @@ extern void lerr_fatal(const char *, ...)
;
/* Spit out a "#line" statement. */
extern void line_directive_out(FILE *, char *, int);
extern void line_directive_out(FILE *, int);
/* Mark the current position in the action array as the end of the section 1
* user defs.
@@ -935,6 +913,7 @@ 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 *);
@@ -945,6 +924,9 @@ 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);
@@ -1019,8 +1001,6 @@ 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 */
@@ -1030,22 +1010,6 @@ 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 */
@@ -1065,8 +1029,6 @@ 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 */
@@ -1110,12 +1072,22 @@ 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")
@@ -1186,7 +1158,7 @@ extern int filter_fix_linedirs(struct filter *chain);
*/
extern regex_t regex_linedir;
bool flex_init_regex(const char *);
bool flex_init_regex(void);
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,11 +4,6 @@
#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.
@@ -38,11 +33,7 @@ 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;
+304 -201
View File
@@ -34,31 +34,11 @@
#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
*/
@@ -78,6 +58,7 @@ 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;
}
@@ -85,12 +66,9 @@ static struct yytbl_data *mkeoltbl (void)
static void geneoltbl (void)
{
int i;
struct packtype_t *ptype = optimize_pack(num_rules);
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");
outn ("m4_ifdef( [[M4_YY_USE_LINENO]],[[");
backend->geneoltbl(num_rules + 1);
if (gentables) {
for (i = 1; i <= num_rules; i++) {
@@ -99,9 +77,8 @@ static void geneoltbl (void)
if ((i % 20) == 19)
out ("\n ");
}
outn (backend->table_closer);
}
footprint += num_rules * ptype->width;
outn ("]])");
outn ("]])");
}
@@ -120,8 +97,7 @@ static struct yytbl_data *mkctbl (void)
flex_int32_t *tdata = 0, curr = 0;
int end_of_buffer_action = num_rules + 1;
struct packtype_t *ptype = optimize_pack(tblend + numecs + 1);
out_str ("m4_define([[M4_HOOK_MKCTBL_TYPE]], [[%s]])", ptype->name);
backend->mkctbl(tblend + numecs + 1);
tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (tbl, YYTD_ID_TRANSITION);
@@ -198,6 +174,7 @@ static struct yytbl_data *mkctbl (void)
}
}
/* Here's the final, end-of-buffer state. */
tdata[curr++] = chk[tblend + 1];
tdata[curr++] = nxt[tblend + 1];
@@ -230,6 +207,8 @@ static struct yytbl_data *mkssltbl (void)
for (i = 0; i <= lastsc * 2; ++i)
tdata[i] = base[i];
backend->mkssltbl();
return tbl;
}
@@ -243,8 +222,7 @@ void genctbl (void)
int end_of_buffer_action = num_rules + 1;
/* Table of verify for transition and offset to next state. */
out_dec ("m4_define([[M4_HOOK_TRANSTABLE_SIZE]], [[%d]])", tblend + numecs + 1);
outn ("m4_define([[M4_HOOK_TRANSTABLE_BODY]], [[m4_dnl");
backend->gen_yy_trans(tblend + numecs + 1);
/* We want the transition to be represented as the offset to the
* next state, not the actual state number, which is what it currently
@@ -311,22 +289,21 @@ void genctbl (void)
transition_struct_out (chk[tblend + 1], nxt[tblend + 1]);
transition_struct_out (chk[tblend + 2], nxt[tblend + 2]);
outn ("]])");
footprint += sizeof(struct yy_trans_info) * (tblend + numecs + 1);
if (gentables)
outn (backend->table_closer);
out_dec ("m4_define([[M4_HOOK_STARTTABLE_SIZE]], [[%d]])", lastsc * 2 + 1);
backend->start_state_list(lastsc * 2 + 1);
if (gentables) {
outn ("m4_define([[M4_HOOK_STARTTABLE_BODY]], [[m4_dnl");
for (i = 0; i <= lastsc * 2; ++i)
out_dec ("M4_HOOK_STATE_ENTRY_FORMAT(%d)", base[i]);
outn (backend->table_opener);
dataend (NULL);
outn("]])");
footprint += sizeof(struct yy_trans_info *) * (lastsc * 2 + 1);
for (i = 0; i <= lastsc * 2; ++i)
out_dec (backend->state_entry_fmt, base[i]);
dataend ();
}
if (ctrl.useecs)
if (useecs)
genecs ();
}
@@ -343,16 +320,18 @@ 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) ctrl.csize;
tbl->td_lolen = (flex_uint32_t) csize;
tbl->td_data = tdata =
calloc(tbl->td_lolen, sizeof (flex_int32_t));
for (i = 1; i < ctrl.csize; ++i) {
for (i = 1; i < csize; ++i) {
ecgroup[i] = ABS (ecgroup[i]);
tdata[i] = ecgroup[i];
}
backend->mkecstbl();
return tbl;
}
@@ -363,26 +342,23 @@ void genecs (void)
int ch, row;
int numrows;
out_dec ("m4_define([[M4_HOOK_ECSTABLE_SIZE]], [[%d]])", ctrl.csize);
outn ("m4_define([[M4_HOOK_ECSTABLE_BODY]], [[m4_dnl");
out_str_dec (backend->get_yy_char_decl (), "yy_ec", csize);
for (ch = 1; ch < ctrl.csize; ++ch) {
for (ch = 1; ch < csize; ++ch) {
ecgroup[ch] = ABS (ecgroup[ch]);
mkdata (ecgroup[ch]);
}
dataend (NULL);
outn("]])");
footprint += sizeof(YY_CHAR) * ctrl.csize;
dataend ();
if (env.trace) {
if (trace) {
fputs (_("\n\nEquivalence Classes:\n\n"), stderr);
/* Print in 8 columns */
numrows = ctrl.csize / 8;
numrows = csize / 8;
for (row = 0; row < numrows; ++row) {
for (ch = row; ch < ctrl.csize; ch += numrows) {
for (ch = row; ch < csize; ch += numrows) {
fprintf (stderr, "%4s = %-2d",
readable_form (ch), ecgroup[ch]);
@@ -421,11 +397,12 @@ struct yytbl_data *mkftbl (void)
tdata[i] = anum;
if (env.trace && anum)
if (trace && anum)
fprintf (stderr, _("state # %d accepts: [%d]\n"),
i, anum);
}
backend->mkftbl();
return tbl;
}
@@ -436,30 +413,25 @@ void genftbl (void)
{
int i;
int end_of_buffer_action = num_rules + 1;
struct packtype_t *ptype = optimize_pack(num_rules + 1);
out_str_dec (long_align ? backend->get_int32_decl () : backend->get_int16_decl (),
"yy_accept", lastdfa + 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 (env.trace && anum)
if (trace && anum)
fprintf (stderr, _("state # %d accepts: [%d]\n"),
i, anum);
}
dataend (NULL);
outn("]])");
footprint += (lastdfa + 1) * ptype->width;
dataend ();
if (ctrl.useecs)
if (useecs)
genecs ();
/* Don't have to dump the actual full table entries - they were
@@ -471,14 +443,13 @@ void genftbl (void)
void gentabs (void)
{
int sz, i, j, k, *accset, nacc, *acc_array, total_states;
int 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;
@@ -506,12 +477,12 @@ void gentabs (void)
dfaacc[end_of_buffer_state].dfaacc_set =
EOB_accepting_list;
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");
out_str_dec (long_align ? backend->get_int32_decl () :
backend->get_int16_decl (), "yy_acclist", MAX (numas,
1) + 1);
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);
@@ -528,7 +499,7 @@ void gentabs (void)
accset = dfaacc[i].dfaacc_set;
nacc = accsiz[i];
if (env.trace)
if (trace)
fprintf (stderr,
_("state # %d accepts: "),
i);
@@ -555,7 +526,7 @@ void gentabs (void)
mkdata (accnum);
yyacclist_data[yyacclist_curr++] = accnum;
if (env.trace) {
if (trace) {
fprintf (stderr, "[%d]",
accset[k]);
@@ -573,9 +544,7 @@ void gentabs (void)
/* add accepting number for the "jam" state */
acc_array[i] = j;
dataend (NULL);
outn("]])");
footprint += sz * ptype->width;
dataend ();
if (tablesext) {
yytbl_data_compress (yyacclist_tbl);
if (yytbl_data_fwrite (&tableswr, yyacclist_tbl) < 0)
@@ -606,7 +575,7 @@ void gentabs (void)
/* "lastdfa + 2" is the size of "yy_accept"; includes room for C arrays
* beginning at 0 and for "jam" state.
*/
sz = lastdfa + 2;
k = lastdfa + 2;
if (reject)
/* We put a "cap" on the table associating lists of accepting
@@ -614,18 +583,16 @@ void gentabs (void)
* where the end of an accepting list is by looking at where
* the list for the next state starts.
*/
++sz;
++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");
out_str_dec (long_align ? backend->get_int32_decl () : backend->get_int16_decl (),
"yy_accept", k);
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) sz;
yyacc_tbl->td_lolen = (flex_uint32_t) k;
yyacc_tbl->td_data = yyacc_data =
calloc(yyacc_tbl->td_lolen, sizeof (flex_int32_t));
yyacc_curr=1;
@@ -634,7 +601,7 @@ void gentabs (void)
mkdata (acc_array[i]);
yyacc_data[yyacc_curr++] = acc_array[i];
if (!reject && env.trace && acc_array[i])
if (!reject && trace && acc_array[i])
fprintf (stderr, _("state # %d accepts: [%d]\n"),
i, acc_array[i]);
}
@@ -649,10 +616,7 @@ void gentabs (void)
yyacc_data[yyacc_curr++] = acc_array[i];
}
dataend (NULL);
outn ("]])");
footprint += sz * ptype->width;
dataend ();
if (tablesext) {
yytbl_data_compress (yyacc_tbl);
if (yytbl_data_fwrite (&tableswr, yyacc_tbl) < 0)
@@ -662,7 +626,7 @@ void gentabs (void)
yyacc_tbl = NULL;
/* End generating yy_accept */
if (ctrl.useecs) {
if (useecs) {
genecs ();
if (tablesext) {
@@ -677,7 +641,7 @@ void gentabs (void)
}
}
if (ctrl.usemecs) {
if (usemecs) {
/* Begin generating yy_meta */
/* Write out meta-equivalence classes (used to index
* templates with).
@@ -690,14 +654,15 @@ void gentabs (void)
calloc(yymeta_tbl->td_lolen,
sizeof (flex_int32_t));
if (env.trace)
if (trace)
fputs (_("\n\nMeta-Equivalence Classes:\n"),
stderr);
out_dec ("m4_define([[M4_HOOK_MECSTABLE_SIZE]], [[%d]])", numecs+1);
outn ("m4_define([[M4_HOOK_MECSTABLE_BODY]], [[m4_dnl");
out_str_dec (backend->get_yy_char_decl (), "yy_meta", numecs + 1);
backend->gentabs_yy_meta();
for (i = 1; i <= numecs; ++i) {
if (env.trace)
if (trace)
fprintf (stderr, "%d = %d\n",
i, ABS (tecbck[i]));
@@ -705,9 +670,7 @@ void gentabs (void)
yymecs_data[i] = ABS (tecbck[i]);
}
dataend (NULL);
outn ("]])");
footprint += sizeof(YY_CHAR) * (numecs + 1);
dataend ();
if (tablesext) {
yytbl_data_compress (yymeta_tbl);
if (yytbl_data_fwrite (&tableswr, yymeta_tbl) < 0)
@@ -721,12 +684,11 @@ void gentabs (void)
total_states = lastdfa + numtemps;
/* Begin generating yy_base */
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");
out_str_dec ((tblend >= INT16_MAX || long_align) ?
backend->get_int32_decl () : backend->get_int16_decl (),
"yy_base", total_states + 1);
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);
@@ -764,10 +726,7 @@ void gentabs (void)
def[i] = jamstate;
}
dataend (NULL);
outn ("]])");
footprint += sz * ptype->width;
dataend ();
if (tablesext) {
yytbl_data_compress (yybase_tbl);
if (yytbl_data_fwrite (&tableswr, yybase_tbl) < 0)
@@ -779,14 +738,15 @@ void gentabs (void)
/* Begin generating yy_def */
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");
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);
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));
@@ -795,10 +755,7 @@ void gentabs (void)
yydef_data[i] = def[i];
}
dataend (NULL);
outn ("]])");
footprint += (total_states + 1) * ptype->width;
dataend ();
if (tablesext) {
yytbl_data_compress (yydef_tbl);
if (yytbl_data_fwrite (&tableswr, yydef_tbl) < 0)
@@ -809,13 +766,12 @@ void gentabs (void)
/* End generating yy_def */
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");
/* 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);
yynxt_tbl = calloc (1, sizeof (struct yytbl_data));
yytbl_data_init (yynxt_tbl, YYTD_ID_NXT);
@@ -834,10 +790,7 @@ void gentabs (void)
yynxt_data[i] = nxt[i];
}
dataend (NULL);
outn("]])");
footprint += ptype->width * (tblend + 1);
dataend ();
if (tablesext) {
yytbl_data_compress (yynxt_tbl);
if (yytbl_data_fwrite (&tableswr, yynxt_tbl) < 0)
@@ -848,10 +801,11 @@ void gentabs (void)
/* End generating yy_nxt */
/* Begin generating yy_chk */
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");
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);
yychk_tbl = calloc (1, sizeof (struct yytbl_data));
yytbl_data_init (yychk_tbl, YYTD_ID_CHK);
@@ -867,10 +821,7 @@ void gentabs (void)
yychk_data[i] = chk[i];
}
dataend (NULL);
outn ("]])");
footprint += ptype->width * (tblend + 1);
dataend ();
if (tablesext) {
yytbl_data_compress (yychk_tbl);
if (yytbl_data_fwrite (&tableswr, yychk_tbl) < 0)
@@ -884,44 +835,159 @@ void gentabs (void)
}
void visible_define (const char *symname)
static void visible_define (const char *symname)
{
out_m4_define(symname, NULL);
comment(symname);
outc ('\n');
backend->comment(symname);
}
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
/* make_tables - generate transition tables and finishes generating output file
*/
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 (ctrl.fullspd) {
if (fullspd) {
genctbl ();
if (tablesext) {
struct yytbl_data *tbl;
@@ -939,7 +1005,7 @@ void make_tables (void)
yytbl_data_destroy (tbl);
tbl = 0;
if (ctrl.useecs) {
if (useecs) {
tbl = mkecstbl ();
yytbl_data_compress (tbl);
if (yytbl_data_fwrite (&tableswr, tbl) < 0)
@@ -950,23 +1016,19 @@ void make_tables (void)
}
}
}
else if (ctrl.fulltbl) {
else if (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 (ctrl.useecs) {
if (useecs) {
tbl = mkecstbl ();
yytbl_data_compress (tbl);
if (yytbl_data_fwrite (&tableswr, tbl) < 0)
@@ -980,28 +1042,24 @@ 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.
comment("m4 controls begin\n");
backend->comment("m4 controls begin");
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 || ctrl.fullspd || ctrl.fulltbl))
if ((num_backing_up > 0 && !reject) && (!nultrans || fullspd || fulltbl))
visible_define ( "M4_MODE_NEED_YY_CP");
if ((num_backing_up > 0 && !reject) && (ctrl.fullspd || ctrl.fulltbl))
if ((num_backing_up > 0 && !reject) && (fullspd || fulltbl))
visible_define ( "M4_MODE_NULTRANS_WRAP");
comment("m4 controls end\n");
backend->comment("m4 controls end");
out ("\n");
if (ctrl.do_yylineno) {
if (do_yylineno) {
geneoltbl ();
@@ -1021,23 +1079,22 @@ void make_tables (void)
flex_int32_t *yynultrans_data = 0;
/* Begin generating yy_NUL_trans */
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");
out_str_dec (backend->get_state_decl (), "yy_NUL_trans",
lastdfa + 1);
backend->nultrans(fullspd);
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 (ctrl.fullspd && ctrl.have_state_entry_format)
if (fullspd && backend->c_like)
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]);
@@ -1050,9 +1107,7 @@ void make_tables (void)
}
}
dataend (NULL);
outn("]])");
footprint += (lastdfa + 1) * (ctrl.fullspd ? sizeof(struct yy_trans_info *) : sizeof(int32_t));
dataend ();
if (tablesext) {
yytbl_data_compress (yynultrans_tbl);
if (yytbl_data_fwrite (&tableswr, yynultrans_tbl) <
@@ -1064,23 +1119,71 @@ void make_tables (void)
if (yynultrans_tbl != NULL) {
yytbl_data_destroy (yynultrans_tbl);
yynultrans_tbl = NULL;
}
}
/* End generating yy_NUL_trans */
}
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");
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);
for (i = 1; i < num_rules; ++i)
mkdata (rule_linenum[i]);
dataend (NULL);
outn("]])");
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 ();
}
}
-2391
View File
File diff suppressed because it is too large Load Diff
+627 -888
View File
File diff suppressed because it is too large Load Diff
+240 -45
View File
@@ -33,6 +33,83 @@
#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)
{
@@ -131,7 +208,7 @@ void check_char (int c)
lerr (_("bad character '%s' detected in check_char()"),
readable_form (c));
if (c >= ctrl.csize)
if (c >= csize)
lerr (_
("scanner requires -8 flag to use the character %s"),
readable_form (c));
@@ -162,19 +239,19 @@ char *xstrdup(const char *s)
int cclcmp (const void *a, const void *b)
{
if (!*(const unsigned char *) a)
return 1;
if (!*(const unsigned char *) a)
return 1;
else
if (!*(const unsigned char *) b)
return - 1;
else
if (!*(const unsigned char *) b)
return - 1;
else
return *(const unsigned char *) a - *(const unsigned char *) b;
return *(const unsigned char *) a - *(const unsigned char *) b;
}
/* dataend - finish up a block of data declarations */
void dataend (const char *endit)
void dataend (void)
{
/* short circuit any output */
if (gentables) {
@@ -183,8 +260,7 @@ void dataend (const char *endit)
dataflush ();
/* add terminator for initialization; { for vi */
if (endit)
outn (endit);
outn (backend->table_closer);
}
dataline = 0;
datapos = 0;
@@ -199,8 +275,7 @@ void dataflush (void)
if (!gentables)
return;
if (datapos > 0)
outc ('\n');
outc ('\n');
if (++dataline >= NUMDATALINES) {
/* Put out a blank line so that the table is grouped into
@@ -262,20 +337,20 @@ void lerr_fatal (const char *msg, ...)
}
/* line_directive_out - spit out a "#line" statement or equivalent */
void line_directive_out (FILE *output_file, char *path, int linenum)
/* line_directive_out - spit out a "#line" statement */
void line_directive_out (FILE *output_file, int do_infile)
{
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 (!ctrl.gen_line_dirs)
if (!gen_line_dirs)
return;
s1 = (path != NULL) ? path : "M4_YY_OUTFILE_NAME";
s1 = do_infile ? infilename : "M4_YY_OUTFILE_NAME";
if ((path != NULL) && !s1)
s1 = "<stdin>";
if (do_infile && !s1)
s1 = "<stdin>";
s2 = filename;
s3 = &filename[sizeof (filename) - 2];
@@ -290,11 +365,12 @@ void line_directive_out (FILE *output_file, char *path, int linenum)
*s2 = '\0';
if (path != NULL)
snprintf (directive, sizeof(directive), trace_fmt, linenum, filename);
else {
snprintf (directive, sizeof(directive), trace_fmt, 0, filename);
}
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 output_file is nil then we should put the directive in
* the accumulated actions.
@@ -377,7 +453,7 @@ void mkdata (int value)
if (datapos == 0)
/* Indent. */
out (" ");
out (" ");
else
outc (',');
@@ -503,6 +579,11 @@ 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);
@@ -556,7 +637,7 @@ char *readable_form (int c)
case '\v':
return "\\v";
default:
if(env.trace_hex)
if(trace_hex)
snprintf (rform, sizeof(rform), "\\x%.2x", (unsigned int) c);
else
snprintf (rform, sizeof(rform), "\\%.3o", (unsigned int) c);
@@ -601,6 +682,138 @@ 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
@@ -614,8 +827,7 @@ void transition_struct_out (int element_v, int element_n)
if (!gentables)
return;
out_dec2 ("M4_HOOK_TABLE_OPENER[[%4d]],[[%4d]]M4_HOOK_TABLE_CONTINUE", element_v, element_n);
outc ('\n');
out_dec2 (backend->dyad, element_v, element_n);
datapos += TRANS_STRUCT_PRINT_LENGTH;
@@ -668,20 +880,3 @@ 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');
}
+1 -3
View File
@@ -33,9 +33,7 @@ case $VERSION in
*[!0-9.]*) echo 'Invalid version number' >&2; exit 1;;
esac
IFS=.
# we do want word splitting, so we won't put double quotes around it (see IFS above)
# shellcheck disable=2086
set -- $VERSION
set $VERSION
sed 's/4_/a4_/g
s/m4preproc_/m4_/g
' "$srcdir/${lang}-flex.skl" |
+20 -16
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), "M4_HOOK_NORMAL_STATE_CASE_ARM(%d)\n", num_rules);
snprintf (action_text, sizeof(action_text), "case %d:\n", num_rules);
add_action (action_text);
if (rule_has_nl[num_rules]) {
snprintf (action_text, sizeof(action_text), "M4_HOOK_COMMENT_OPEN rule %d can match eol M4_HOOK_COMMENT_CLOSE\n",
snprintf (action_text, sizeof(action_text), "/* rule %d can match eol */\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 (env.performance_hint > 0)
if (performance_report > 0)
fprintf (stderr,
_
("Variable trailing context rule at line %d\n"),
@@ -244,45 +244,49 @@ void finish_rule (int mach, int variable_trail_rule, int headcnt, int trailcn
/* Do trailing context magic to not match the trailing
* characters.
*/
add_action ("M4_HOOK_RELEASE_YYTEXT\n");
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");
if (headcnt > 0) {
if (rule_has_nl[num_rules]) {
snprintf (action_text, sizeof(action_text),
"M4_HOOK_LINE_FORWARD(%d)\n", headcnt);
"YY_LINENO_REWIND_TO(%s + %d);\n", scanner_bp, headcnt);
add_action (action_text);
}
snprintf (action_text, sizeof(action_text), "M4_HOOK_CHAR_FORWARD(%d)\n",
headcnt);
snprintf (action_text, sizeof(action_text), "%s = %s + %d;\n",
scanner_cp, scanner_bp, headcnt);
add_action (action_text);
}
else {
if (rule_has_nl[num_rules]) {
snprintf (action_text, sizeof(action_text),
"M4_HOOK_LINE_REWIND(%d)\n", trailcnt);
"YY_LINENO_REWIND_TO(yy_cp - %d);\n", trailcnt);
add_action (action_text);
}
snprintf (action_text, sizeof(action_text), "M4_HOOK_CHAR_REWIND(%d)\n",
trailcnt);
snprintf (action_text, sizeof(action_text), "%s -= %d;\n",
scanner_cp, trailcnt);
add_action (action_text);
}
add_action
("M4_HOOK_TAKE_YYTEXT\n");
("YY_DO_BEFORE_ACTION; /* set up yytext again */\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 rule-setup calls.
* as that'll result in multiple YY_RULE_SETUP's.
*/
if (!continued_action)
add_action ("M4_HOOK_SET_RULE_SETUP\n");
add_action ("YY_RULE_SETUP\n");
line_directive_out(NULL, infilename, linenum);
line_directive_out(NULL, 1);
add_action("[[");
}
@@ -642,9 +646,9 @@ current_mns);
else {
check_char (sym);
if (ctrl.useecs)
if (useecs)
/* Map NUL's to csize. */
mkechar (sym ? sym : ctrl.csize, nextecm, ecgroup);
mkechar (sym ? sym : csize, nextecm, ecgroup);
}
return lastnfa;
+3 -17
View File
@@ -33,7 +33,7 @@
#include "options.h"
/* Be sure to synchronize these options with those defined in "ctrl.h",
/* Be sure to synchronize these options with those defined in "options.h",
* the giant switch() statement in "main.c", and the %option processing in
* "scan.l".
*/
@@ -100,11 +100,7 @@ optspec_t flexopts[] = {
{"-n", OPT_DONOTHING, 0}
, /* For POSIX lex compatibility. */
{"--ecs", OPT_ECS, 0}
,
{"--emit=LANG", OPT_EMIT, 0}
, /* select language to emit */
{"-e LANG", OPT_EMIT, 0}
,
, /* Construct equivalence classes. */
{"--noecs", OPT_NO_ECS, 0}
,
{"-F", OPT_FAST, 0}
@@ -235,13 +231,7 @@ optspec_t flexopts[] = {
{"--yywrap", OPT_YYWRAP, 0}
,
{"--noinput", OPT_NO_YYINPUT, 0}
,
{"--noyyinput", OPT_NO_YYINPUT, 0}
,
{"--nounput", OPT_NO_YYUNPUT, 0}
,
{"--noyyunput", OPT_NO_YYUNPUT, 0}
{"--nounput", OPT_NO_UNPUT, 0}
,
{"--noyy_push_state", OPT_NO_YY_PUSH_STATE, 0}
,
@@ -287,10 +277,6 @@ 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. */
+1 -5
View File
@@ -57,7 +57,6 @@ enum flexopt_flag_t {
OPT_DEFAULT,
OPT_DONOTHING,
OPT_ECS,
OPT_EMIT,
OPT_FAST,
OPT_FULL,
OPT_HEADER_FILE,
@@ -79,8 +78,7 @@ enum flexopt_flag_t {
OPT_NO_REENTRANT,
OPT_NO_REJECT,
OPT_NO_STDINIT,
OPT_NO_YYINPUT,
OPT_NO_YYUNPUT,
OPT_NO_UNPUT,
OPT_NO_WARN,
OPT_NO_YYGET_EXTRA,
OPT_NO_YYGET_IN,
@@ -90,7 +88,6 @@ 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,
@@ -101,7 +98,6 @@ 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,
+30 -50
View File
@@ -2,8 +2,7 @@
%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 TOK_YYLMAX TOK_NUMERIC TOK_YYDECL TOK_PREACTION TOK_POSTACTION
%token TOK_USERINIT TOK_EMIT TOK_BUFSIZE TOK_YYTERMINATE
%token TOK_TABLES_FILE
%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
@@ -88,7 +87,7 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
#define CCL_EXPR(func) \
do{ \
int c; \
for ( c = 0; c < ctrl.csize; ++c ) \
for ( c = 0; c < csize; ++c ) \
if ( isascii(c) && func(c) ) \
ccladd( currccl, c ); \
}while(0)
@@ -97,7 +96,7 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
#define CCL_NEG_EXPR(func) \
do{ \
int c; \
for ( c = 0; c < ctrl.csize; ++c ) \
for ( c = 0; c < csize; ++c ) \
if ( !func(c) ) \
ccladd( currccl, c ); \
}while(0)
@@ -135,16 +134,13 @@ goal : initlex sect1 sect1end sect2 initforrule
for ( i = 1; i <= lastsc; ++i )
scset[i] = mkbranch( scset[i], def_rule );
add_action("]]");
if ( ctrl.spprdflt )
if ( spprdflt )
add_action(
"M4_HOOK_FATAL_ERROR(\"flex scanner jammed\")");
else {
add_action("M4_HOOK_ECHO");
}
"YY_FATAL_ERROR( \"flex scanner jammed\" )" );
else
add_action( "ECHO" );
add_action( "\n\tM4_HOOK_STATE_CASE_BREAK\n" );
add_action( ";\n\tYY_BREAK]]\n" );
}
;
@@ -197,37 +193,21 @@ optionlist : optionlist option
option : TOK_OUTFILE '=' NAME
{
env.outfilename = xstrdup(nmstr);
env.did_outfilename = 1;
outfilename = xstrdup(nmstr);
did_outfilename = 1;
}
| TOK_EXTRA_TYPE '=' NAME
{ extra_type = xstrdup(nmstr); }
| TOK_PREFIX '=' NAME
{ ctrl.prefix = xstrdup(nmstr);
if (strchr(ctrl.prefix, '[') || strchr(ctrl.prefix, ']'))
{ prefix = xstrdup(nmstr);
if (strchr(prefix, '[') || strchr(prefix, ']'))
flexerror(_("Prefix must not contain [ or ]")); }
| TOK_YYCLASS '=' NAME
{ ctrl.yyclass = xstrdup(nmstr); }
{ yyclass = xstrdup(nmstr); }
| TOK_HEADER_FILE '=' NAME
{ 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); }
{ headerfilename = xstrdup(nmstr); }
| TOK_TABLES_FILE '=' NAME
{ tablesext = true; tablesfilename = xstrdup(nmstr); }
;
sect2 : sect2 scon initforrule flexrule '\n'
@@ -280,7 +260,7 @@ flexrule : '^' rule
{
bol_needed = true;
if ( env.performance_hint > 1 )
if ( performance_report > 1 )
pinpoint_message(
"'^' operator results in sub-optimal performance" );
}
@@ -429,7 +409,7 @@ rule : re2 re
}
if ( ctrl.lex_compat || (varlength && headcnt == 0) )
if ( lex_compat || (varlength && headcnt == 0) )
{ /* variable trailing context rule */
/* Mark the first part of the rule as the
* accepting "head" part of a trailing
@@ -481,7 +461,7 @@ rule : re2 re
varlength = true;
}
if ( ctrl.lex_compat || varlength )
if ( lex_compat || varlength )
{
/* Again, see the comment in the rule for
* "re2 re" above.
@@ -504,7 +484,7 @@ rule : re2 re
if ( trlcontxt )
{
if ( ctrl.lex_compat || (varlength && headcnt == 0) )
if ( lex_compat || (varlength && headcnt == 0) )
/* Both head and trail are
* variable-length.
*/
@@ -718,19 +698,19 @@ singleton : singleton '*'
ccladd( ccldot, '\n' );
cclnegate( ccldot );
if ( ctrl.useecs )
if ( useecs )
mkeccl( ccltbl + cclmap[ccldot],
ccllen[ccldot], nextecm,
ecgroup, ctrl.csize, ctrl.csize );
ecgroup, csize, csize );
/* Create the (?s:'.') character class. */
cclany = cclinit();
cclnegate( cclany );
if ( ctrl.useecs )
if ( useecs )
mkeccl( ccltbl + cclmap[cclany],
ccllen[cclany], nextecm,
ecgroup, ctrl.csize, ctrl.csize );
ecgroup, csize, csize );
madeany = true;
}
@@ -749,9 +729,9 @@ singleton : singleton '*'
*/
qsort( ccltbl + cclmap[$1], (size_t) ccllen[$1], sizeof (*ccltbl), cclcmp );
if ( ctrl.useecs )
if ( useecs )
mkeccl( ccltbl + cclmap[$1], ccllen[$1],
nextecm, ecgroup, ctrl.csize, ctrl.csize);
nextecm, ecgroup, csize, csize );
++rulelen;
@@ -998,7 +978,7 @@ void build_eof_action(void)
}
}
line_directive_out(NULL, infilename, linenum);
line_directive_out(NULL, 1);
add_action("[[");
/* This isn't a normal rule after all - don't count it as
@@ -1055,7 +1035,7 @@ void lwarn( const char *str )
void format_pinpoint_message( const char *msg, const char arg[] )
{
char errmsg[MAXLINE*2];
char errmsg[MAXLINE];
snprintf( errmsg, sizeof(errmsg), msg, arg );
pinpoint_message( errmsg );
@@ -1074,9 +1054,9 @@ void pinpoint_message( const char *str )
void line_warning( const char *str, int line )
{
char warning[MAXLINE*2];
char warning[MAXLINE];
if ( ! env.nowarn )
if ( ! nowarn )
{
snprintf( warning, sizeof(warning), "warning, %s", str );
line_pinpoint( warning, line );
+7 -6
View File
@@ -24,17 +24,18 @@
#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(const char *traceline_re)
bool flex_init_regex(void)
{
if (traceline_re != NULL)
flex_regcomp(&regex_linedir, traceline_re, REG_EXTENDED);
return true;
flex_regcomp(&regex_linedir, REGEXP_LINEDIR, REG_EXTENDED);
return true;
}
/** Compiles a regular expression or dies trying.
@@ -44,7 +45,7 @@ bool flex_init_regex(const char *traceline_re)
*/
void flex_regcomp(regex_t *preg, const char *regex, int cflags)
{
int err;
int err;
memset (preg, 0, sizeof (regex_t));
@@ -99,7 +100,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.
+116 -192
View File
@@ -50,9 +50,23 @@ 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 \
@@ -84,19 +98,19 @@ extern const char *escaped_qstart, *escaped_qend;
if ( all_upper( str ) ) \
reject = true;
#define CHECK_YYREJECT(str) \
#define CHECK_YYMORE(str) \
if ( all_lower( str ) ) \
reject = true;
yymore_used = true;
#define YY_USER_INIT \
if ( getenv("POSIXLY_CORRECT") ) \
ctrl.posix_compat = true;
posix_compat = true;
#define START_CODEBLOCK(x) do { \
/* Emit the needed line directive... */\
if (indented_code == false) { \
linenum++; \
line_directive_out(NULL, infilename, linenum); \
line_directive_out(NULL, 1); \
} \
add_action(M4QSTART); \
yy_push_state(CODEBLOCK); \
@@ -106,7 +120,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, NULL, linenum); \
if (!indented_code) line_directive_out(NULL, 0);\
} while (0)
%}
@@ -146,13 +160,6 @@ 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;
@@ -171,13 +178,9 @@ void context_member(char *, const char *);
^"%x"{NAME}? return XSCDECL;
^"%{".*{NL} START_CODEBLOCK(false);
^"%top"[[:blank:]]*"{"[[:blank:]]*{NL} {
char trampoline[512];
brace_start_line = linenum;
++linenum;
snprintf(trampoline, sizeof(trampoline),
"M4_HOOK_TRACE_LINE_FORMAT(%d, [[%s]])",
linenum, infilename?infilename:"<stdin>");
buf_strappend(&top_buf, trampoline);
buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum);
brace_depth = 1;
yy_push_state(CODEBLOCK_MATCH_BRACE);
}
@@ -190,13 +193,13 @@ void context_member(char *, const char *);
sectnum = 2;
bracelevel = 0;
mark_defs1();
line_directive_out(NULL, infilename, linenum);
line_directive_out(NULL, 1);
BEGIN(SECT2PROLOG);
return SECTEND;
}
^"%pointer".*{NL} ctrl.yytext_is_array = false; ++linenum;
^"%array".*{NL} ctrl.yytext_is_array = true; ++linenum;
^"%pointer".*{NL} yytext_is_array = false; ++linenum;
^"%array".*{NL} yytext_is_array = true; ++linenum;
^"%option" BEGIN(OPTION); return TOK_OPTION;
@@ -309,7 +312,7 @@ void context_member(char *, const char *);
<<EOF>> {
linenum = brace_start_line;
synerr(_("Unmatched '{'"));
return YY_NULL;
yyterminate();
}
}
@@ -353,120 +356,105 @@ void context_member(char *, const char *);
{WS} option_sense = true;
"=" return '=';
[[:digit:]]+ {nmval = atoi(yytext); return TOK_NUMERIC;}
no option_sense = ! option_sense;
7bit ctrl.csize = option_sense ? 128 : 256;
8bit ctrl.csize = option_sense ? 256 : 128;
7bit csize = option_sense ? 128 : 256;
8bit csize = option_sense ? 256 : 128;
align ctrl.long_align = option_sense;
align long_align = option_sense;
always-interactive {
ctrl.always_interactive = option_sense;
ctrl.interactive = (trit)option_sense;
ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense );
interactive = 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;
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;
caseful|case-sensitive sf_set_case_ins(!option_sense);
caseless|case-insensitive sf_set_case_ins(option_sense);
debug ctrl.ddebug = option_sense;
default ctrl.spprdflt = ! option_sense;
ecs ctrl.useecs = option_sense;
debug ddebug = option_sense;
default spprdflt = ! option_sense;
ecs useecs = option_sense;
fast {
ctrl.useecs = ctrl.usemecs = false;
ctrl.use_read = ctrl.fullspd = true;
useecs = usemecs = false;
use_read = fullspd = true;
}
full {
ctrl.useecs = ctrl.usemecs = false;
ctrl.use_read = ctrl.fulltbl = true;
useecs = usemecs = false;
use_read = fulltbl = true;
}
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;
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;
main {
ctrl.do_main = option_sense;
/* Override yywrap */
if( option_sense == true )
ctrl.do_yywrap = false;
ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense);
/* Override yywrap */
if( option_sense == true )
do_yywrap = false;
}
meta-ecs ctrl.usemecs = option_sense;
meta-ecs usemecs = option_sense;
never-interactive {
ctrl.never_interactive = option_sense;
ctrl.interactive = (trit)!option_sense;
ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense );
interactive = !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;
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;
yypanic ctrl.no_yypanic = !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);
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;
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_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;
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);
yyalloc ctrl.no_flex_alloc = ! option_sense;
yyrealloc ctrl.no_flex_realloc = ! option_sense;
yyfree ctrl.no_flex_free = ! 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);
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 {
@@ -525,7 +513,7 @@ void context_member(char *, const char *);
<<EOF>> {
mark_prolog();
sectnum = 0;
return YY_NULL; /* to stop the parser */
yyterminate(); /* to stop the parser */
}
}
@@ -549,7 +537,7 @@ void context_member(char *, const char *);
"\"" BEGIN(QUOTE); return '"';
"{"/[[:digit:]] {
BEGIN(NUM);
if ( ctrl.lex_compat || ctrl.posix_compat )
if ( lex_compat || posix_compat )
return BEGIN_REPEAT_POSIX;
else
return BEGIN_REPEAT_FLEX;
@@ -645,7 +633,8 @@ void context_member(char *, const char *);
^"%%".* {
sectnum = 3;
BEGIN(ctrl.no_section3_escape ? SECT3_NOESCAPE : SECT3);
BEGIN(no_section3_escape ? SECT3_NOESCAPE : SECT3);
outn("/* Begin user sect3 */");
yyterminate(); /* to stop the parser */
}
@@ -673,7 +662,7 @@ void context_member(char *, const char *);
*/
&& (cclval = ccllookup( nmstr )) != 0 )
{
if ( yyinput() != ']' )
if ( input() != ']' )
synerr( _( "bad character class" ) );
yylval = cclval;
@@ -733,7 +722,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
if (end_is_ws)
unput(end_ch);
if ( ctrl.lex_compat || nmdefptr[0] == '^' ||
if ( lex_compat || nmdefptr[0] == '^' ||
(len > 0 && nmdefptr[len - 1] == '$')
|| (end_is_ws && trlcontxt && !sf_skip_ws()))
{ /* don't use ()'s after all */
@@ -763,7 +752,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
"(?#" {
if (ctrl.lex_compat || ctrl.posix_compat){
if (lex_compat || posix_compat){
/* Push back the "?#" and treat it like a normal parens. */
yyless(1);
sf_push();
@@ -774,7 +763,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
"(?" {
sf_push();
if (ctrl.lex_compat || ctrl.posix_compat)
if (lex_compat || posix_compat)
/* Push back the "?" and treat it like a normal parens. */
yyless(1);
else
@@ -896,7 +885,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
"," return ',';
"}" {
BEGIN(SECT2);
if ( ctrl.lex_compat || ctrl.posix_compat )
if ( lex_compat || posix_compat )
return END_REPEAT_POSIX;
else
return END_REPEAT_FLEX;
@@ -924,19 +913,12 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
<CODEBLOCK,ACTION>{
"reject" {
ACTION_ECHO;
CHECK_REJECT(yytext);
ACTION_ECHO;
CHECK_REJECT(yytext);
}
"yyreject()" {
add_action("]""]M4_HOOK_REJECT[""[");
CHECK_YYREJECT(yytext);
}
"yymore()" {
yymore_used = true;
if (ctrl.rewrite)
context_call(yytext);
else
ACTION_ECHO;
"yymore" {
ACTION_ECHO;
CHECK_YYMORE(yytext);
}
}
@@ -946,7 +928,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( "\t]""]M4_HOOK_STATE_CASE_BREAK\n" );
add_action( "\tYY_BREAK]""]\n" );
doing_rule_action = doing_codeblock = false;
BEGIN(SECT2);
@@ -955,34 +937,11 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
/* yyreject and yymore() are checked for above, in PERCENT_BRACE_ACTION */
/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
<ACTION>{
"{" ACTION_ECHO; ++bracelevel;
"}" ACTION_ECHO; --bracelevel;
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;
[^[:alpha:]_{}""''/\n\[\]]+ ACTION_ECHO;
{NAME} ACTION_ECHO;
"'"([^''\\\n]|\\.)"'" ACTION_ECHO; /* character constant */
"'" ACTION_ECHO; BEGIN(CHARACTER_CONSTANT);
@@ -992,7 +951,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
ACTION_ECHO;
if (bracelevel <= 0) {
if ( doing_rule_action )
add_action( "\t]""]M4_HOOK_STATE_CASE_BREAK\n" );
add_action( "\tYY_BREAK]""]\n" );
doing_rule_action = false;
BEGIN(SECT2);
@@ -1094,38 +1053,3 @@ 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 ctrl.
* options - Array of options.
* 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 ctrl.
* == 0 if at end of options.
* < 0 on error (return value is an error code).
*
*/
-255
View File
@@ -1,255 +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"
#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
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],[[
%not-for-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 (ctrl.usemecs) {
if (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 (ctrl.usemecs) {
if (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 (ctrl.usemecs) {
if (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 (ctrl.usemecs)
if (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 (env.trace) {
if (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(env.trace_hex)
if(trace_hex)
fprintf (stderr, "\\x%02x", (unsigned int) yylval);
else
fprintf (stderr, "\\%.3o", (unsigned int) yylval);
Executable → Regular
+43 -82
View File
@@ -2,16 +2,16 @@
*.trs
*.o
*.tables
alloc_extra_nr
alloc_extra_nr.c
alloc_extra_c99
alloc_extra_c99.c
array*
!array.rules
!array.txt
basic*
!basic.rules
!basic.txt
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
bison_nr
bison_nr_scanner.[ch]
bison_nr_parser.[ch]
@@ -21,16 +21,12 @@ 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.rules
!ccl.txt
ccl
ccl.c
cxx_basic
cxx_basic.cc
cxx_multiple_scanners
@@ -39,18 +35,12 @@ cxx_restart
cxx_restart.cc
cxx_yywrap.i3
cxx_yywrap.cc
debug*
!debug.rules
!debug.txt
extended*
!extended.rules
!extended.txt
fixedtrailing*
!fixedtrailing.rules
!fixedtrailing.txt
flexname*
!flexname.rules
!flexname.txt
debug_nr
debug_nr.c
debug_r
debug_r.c
extended
extended.c
header_nr
header_nr_scanner.[ch]
header_r
@@ -61,84 +51,55 @@ include_by_push.direct
include_by_push.direct.c
include_by_reentrant.direct
include_by_reentrant.direct.c
lexcompat*
!lexcompat.rules
!lexcompat.txt
lineno*
!lineno.rules
!lineno.txt
lineno_nr.one
lineno_nr.c
lineno_r.one
lineno_r.c
lineno_trailing.one
lineno_trailing.c
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.rules
!posix.txt
posixlycorrect*
!posixlycorrect.rules
!posixlycorrect.txt
posix
posix.c
posixly_correct
posixly_correct.c
prefix_nr
prefix_nr.c
prefix_r
prefix_r.c
prefix_c99
prefix_c99.c
preposix*
!preposix.rules
!preposix.txt
pthread.pthread
pthread.c
quoteincomment*
!quoteincomment.rules
!quoteincomment.txt
quotes
quotes.c
reject*
!reject.rules
!reject.txt
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
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]
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
yyextra
yyextra.c
tableopts_*.c
*.opt
*.ser
*.ver
+198 -119
View File
@@ -24,16 +24,22 @@ 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 .direct, .cn. and the like so that we can pass
# in the suite end in .reject, .table 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 = .direct .cn .i3 .pthread .opt .ser .ver
TEST_EXTENSIONS = .reject .table .direct .cn .i3 .pthread .one .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)
@@ -46,68 +52,81 @@ 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
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
ONE_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_ONE_LOG_FLAGS = -1 -d $(srcdir)
AM_YFLAGS = -d -p test
AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src
check_PROGRAMS = $(RULESET_TESTS) $(SPORADIC_TESTS) $(DIRECT_TESTS) $(I3_TESTS) $(PTHREAD_TESTS)
check_PROGRAMS = $(simple_tests) $(reject_tests) $(TABLE_TESTS) $(DIRECT_TESTS) $(I3_TESTS) $(PTHREAD_TESTS) $(ONE_TESTS) $(TABLEOPTS_TESTS)
SPORADIC_TESTS = \
alloc_extra_nr \
alloc_extra_c99 \
simple_tests = \
alloc_extra \
array_nr \
array_r \
basic_nr \
basic_r \
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 \
prefix_c99 \
quote_in_comment \
quotes \
string_nr \
string_r \
string_c99 \
top \
yyextra_nr \
yyextra_c99
yyextra
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 \
state_buf.direct \
state_buf_multiple.direct
rescan_r.direct
I3_TESTS = \
cxx_yywrap.i3 \
yywrap_r.i3
cxx_yywrap.i3
PTHREAD_TESTS = \
pthread.pthread
alloc_extra_nr_SOURCES = alloc_extra_nr.l
alloc_extra_c99_SOURCES = alloc_extra_c99.l
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
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
@@ -122,10 +141,14 @@ 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
@@ -133,30 +156,32 @@ 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_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
yyextra_SOURCES = yyextra.l
# Normally, automake would distribute files built by flex. Since the
# point of the test suite is to test the files that flex builds, and
@@ -168,8 +193,11 @@ state_buf_multiple_direct_SOURCES = state_buf_multiple.direct.lll
# it.
CLEANFILES = \
alloc_extra_nr.c \
alloc_extra_c99.c \
alloc_extra.c \
array_nr.c \
array_r.c \
basic_nr.c \
basic_r.c \
bison_nr_parser.c \
bison_nr_parser.h \
bison_nr_scanner.c \
@@ -184,11 +212,15 @@ 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 \
@@ -196,9 +228,11 @@ 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 \
@@ -207,47 +241,55 @@ 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 \
quotes_c99.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 \
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_nr.c \
yyextra_c99.c \
yywrap_r.i3.c \
state_buf.direct.cc \
state_buf_multiple.direct.cc \
$(RULESET_REMOVABLES)
yyextra.c \
$(tableopts_c) \
$(tableopts_tables)
dist-hook:
chmod u+w $(distdir) && \
for file in $(CLEANFILES) ; do \
chmod u+w $(distdir)/$$file 2>/dev/null; \
rm -f $(distdir)/$$file; \
done
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 \
@@ -259,48 +301,29 @@ EXTRA_DIST = \
include_by_reentrant.direct.txt \
include_by_reentrant.direct_2.txt \
include_by_reentrant.direct_3.txt \
mem.txt \
prefix.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 \
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 \
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)
tableopts.txt
dist_noinst_SCRIPTS = \
ruleset.sh \
testmaker.sh \
test-yydecl-gen.sh
tableopts.sh
dist_check_SCRIPTS = \
options.cn \
@@ -380,52 +403,108 @@ 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
# Build rules for non-C back ends
# 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.
.l.go:
$(AM_V_LEX)$(FLEX) $(TESTOPTS) -o $@ $<
$(srcdir)/tableopts.am: tableopts.sh
$(SHELL) $(srcdir)/tableopts.sh > $(srcdir)/tableopts.am
# This is a temporary fake rule for use while the Go back end still
# actually generates C.
.go:
$(CC) $< -o $*_go
include $(srcdir)/tableopts.am
# 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 := -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)
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
tableopts_c := $(addsuffix .c,$(tableopts_tests))
$(srcdir)/ruleset.am: $(srcdir)/ruleset.sh $(RULESETS)
$(SHELL) $(srcdir)/ruleset.sh nr r c99 go > $(srcdir)/ruleset.am
OPT_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_OPT_LOG_FLAGS = -d $(srcdir) -i $(srcdir)/tableopts.txt -r
include $(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 $@ $<
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 $@ $<
+13 -60
View File
@@ -8,14 +8,14 @@ this directory and its contents.
* STRUCTURE OF THE TEST SUITE
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.
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.
* HOW TO RUN THE TEST SUITE
@@ -34,27 +34,20 @@ To build and execute a single test:
* HOW TO ADD A NEW TEST TO THE TEST SUITE
** 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
** 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, and .gitignore lines for the
binary and generated code. If you're unsure, then consult
automake _SOURCES variable as well. 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
@@ -63,43 +56,3 @@ To build and execute a single test:
** 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
@@ -1,123 +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 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);
}
}
+29 -5
View File
@@ -1,4 +1,5 @@
/* 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
@@ -19,13 +20,36 @@
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE.
*/
%option 8bit
%{
/* 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 nounput nomain noyywrap noinput
%option warn array
%%
.|\n { }
###
0000 foo 1111 foo 0000 bar
0000 foo 1111 foo 0000 bar
%%
int main (void);
int
main (void)
{
yyin = stdin;
yyout = stdout;
yylex();
printf("TEST RETURNING OK.\n");
return 0;
}
+38 -18
View File
@@ -1,42 +1,62 @@
/*
* 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.
*/
/* The goal of this test is to verify that we are getting the traditional
* pre-POSIX behavior of the repeat operator `{}' when posix-compat is not on
* and POSIXLY_CORRECT is not set to 1.
*
* ab{3} - In traditional flex, this matches "abbb".
* In posix, this matches "ababab".
* The input file should contain just the first string.
*/
%{
/* 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 nounput nomain noyywrap noinput
%option warn
%option warn array reentrant
%%
ab{3} { }
\n { }
. {M4_TEST_FAILMESSAGE}
.|\n { }
###
abbb
%%
int main(void);
int
main (void)
{
yyscan_t lexer;
yylex_init(&lexer);
yyset_in(stdin, lexer);
yyset_out(stdout, lexer);
yylex( lexer );
yylex_destroy( lexer);
printf("TEST RETURNING OK.\n");
return 0;
}
+2
View File
@@ -0,0 +1,2 @@
0000 foo 1111 foo 0000 bar
0000 foo 1111 foo 0000 bar
+23 -10
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,6 +22,7 @@
*/
/* TEST scanner.
Basic non-reentrant scanner.
Sample Input:
# this is a comment
@@ -29,7 +30,11 @@
bar = "string value"
integer = 43
*/
%{
#include "config.h"
%}
%option prefix="test"
%option nounput noyywrap noyylineno warn nodefault noinput
IDENT [[:alnum:]_-]
@@ -41,11 +46,19 @@ WS [[:blank:]]
^{IDENT}+{WS}*={WS}*[[:digit:]]+{WS}*\r?\n { return 102;}
^{WS}*#.*\r?\n { }
^{WS}*\r?\n { }
.|\n {M4_TEST_FAILMESSAGE}
.|\n { fprintf(stderr,"Invalid line.\n"); exit(-1);}
###
# 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;
}
+43 -17
View File
@@ -1,42 +1,68 @@
/*
* 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.
*/
/*
* Test rules with variable trailing context.
* Input should match first rule, but only
* consume the "foo". Therefore the second
* rule should not match, but the third should.
*/
/* 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);}
%%
foo/a+ {M4_TEST_ASSERT(yyleng== 3)}
foo {M4_TEST_FAILMESSAGE}
aa { }
\n { }
. {M4_TEST_FAILMESSAGE}
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;
}
###
fooaa

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