Makefile.def (host_modules): add libcpp.

ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (host_modules): add libcpp.
	* Makefile.tpl: Add dependencies on and for libcpp.
	* Makefile.in: Regenerate.
	* configure.in: Add libcpp host module.
	* configure: Regenerate.

config/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* acx.m4 (ACX_HEADER_STDBOOL, ACX_HEADER_STRING):
	From gcc.

gcc/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	Move libcpp to the toplevel.
	* Makefile.in: Remove references to libcpp files,
	use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
	and change hashtable.h to that.
	* aclocal.m4 (gcc_AC_HEADER_STDBOOL,
	gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
	* configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
	* configure: Regenerate.
	* config.in: Regenerate.
	* c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
	* cppcharset.c: Removed.
	* cpperror.c: Removed.
	* cppexp.c: Removed.
	* cppfiles.c: Removed.
	* cpphash.c: Removed.
	* cpphash.h: Removed.
	* cppinit.c: Removed.
	* cpplex.c: Removed.
	* cpplib.c: Removed.
	* cpplib.h: Removed.
	* cppmacro.c: Removed.
	* cpppch.c: Removed.
	* cpptrad.c: Removed.
	* cppucnid.h: Removed.
	* cppucnid.pl: Removed.
	* cppucnid.tab: Removed.
	* hashtable.c: Removed.
	* hashtable.h: Removed.
	* line-map.c: Removed.
	* line-map.h: Removed.
	* mkdeps.c: Removed.
	* mkdeps.h: Removed.
	* stringpool.h: Include symtab.h instead of hashtable.h.
	* tree.h: Include symtab.h instead of hashtable.h.
	* system.h (O_NONBLOCK, O_NOCTTY): Do not define.

gcc/cp/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* Make-lang.in: No need to specify $(LIBCPP).

gcc/java/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.

libcpp/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	Moved libcpp from the gcc subdirectory to the toplevel.
	* Makefile.am: New file.
	* Makefile.in: Regenerate.
	* configure.ac: New file.
	* configure: Regenerate.
	* config.in: Regenerate.
	* charset.c: Moved from gcc/cppcharset.c.  Add note about
	brokenness of input charset detection.  Adjust for change
	in name of cppucnid.h.
	* errors.c: Moved from gcc/cpperror.c.  Do not include intl.h.
	* expr.c: Moved from gcc/cppexp.c.
	* files.c: Moved from gcc/cppfiles.c.  Do not include intl.h.
	Remove #define of O_BINARY, it is in system.h.
	* identifiers.c: Moved from gcc/cpphash.c.
	* internal.h: Moved from gcc/cpphash.h.  Change header
	guard name.  All other files adjusted to match name change.
	* init.c: Moved from gcc/cppinit.c.
	(init_library) [ENABLE_NLS]: Call bindtextdomain.
	* lex.c: Moved from gcc/cpplex.c.
	* directives.c: Moved from gcc/cpplib.c.
	* macro.c: Moved from gcc/cppmacro.c.
	* pch.c: Moved from gcc/cpppch.c.  Do not include intl.h.
	* traditional.c: Moved from gcc/cpptrad.c.
	* ucnid.h: Moved from gcc/cppucnid.h.  Change header
	guard name.
	* ucnid.pl: Moved from gcc/cppucnid.pl.
	* ucnid.tab: Moved from gcc/cppucnid.tab.  Change header
	guard name.
	* symtab.c: Moved from gcc/hashtable.c.
	* line-map.c: Moved from gcc.  Do not include intl.h.
	* mkdeps.c: Moved from gcc.
	* system.h: New file.

libcpp/include/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* cpplib.h: Moved from gcc.  Change header guard name.
	* line-map.h: Moved from gcc.  Change header guard name.
	* mkdeps.h: Moved from gcc.  Change header guard name.
	* symtab.h: Moved from gcc/hashtable.h.  Change header
	guard name.

libcpp/po/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* be.po: Extracted from gcc/po/be.po.
	* ca.po: Extracted from gcc/po/ca.po.
	* da.po: Extracted from gcc/po/da.po.
	* de.po: Extracted from gcc/po/de.po.
	* el.po: Extracted from gcc/po/el.po.
	* es.po: Extracted from gcc/po/es.po.
	* fr.po: Extracted from gcc/po/fr.po.
	* ja.po: Extracted from gcc/po/ja.po.
	* nl.po: Extracted from gcc/po/nl.po.
	* sv.po: Extracted from gcc/po/sv.po.
	* tr.po: Extracted from gcc/po/tr.po.

From-SVN: r82199
This commit is contained in:
Paolo Bonzini
2004-05-24 10:50:45 +00:00
committed by Paolo Bonzini
parent b1c5b5a09b
commit 4f4e53dd85
64 changed files with 22497 additions and 228 deletions

35
libcpp/ChangeLog Normal file
View File

@@ -0,0 +1,35 @@
2004-05-23 Paolo Bonzini <bonzini@gnu.org>
Moved libcpp from the gcc subdirectory to the toplevel.
* Makefile.am: New file.
* Makefile.in: Regenerate.
* configure.ac: New file.
* configure: Regenerate.
* config.in: Regenerate.
* charset.c: Moved from gcc/cppcharset.c. Add note about
brokenness of input charset detection. Adjust for change
in name of cppucnid.h.
* errors.c: Moved from gcc/cpperror.c. Do not include intl.h.
* expr.c: Moved from gcc/cppexp.c.
* files.c: Moved from gcc/cppfiles.c. Do not include intl.h.
Remove #define of O_BINARY, it is in system.h.
* identifiers.c: Moved from gcc/cpphash.c.
* internal.h: Moved from gcc/cpphash.h. Change header
guard name. All other files adjusted to match name change.
* init.c: Moved from gcc/cppinit.c.
(init_library) [ENABLE_NLS]: Call bindtextdomain.
* lex.c: Moved from gcc/cpplex.c.
* directives.c: Moved from gcc/cpplib.c.
* macro.c: Moved from gcc/cppmacro.c.
* pch.c: Moved from gcc/cpppch.c. Do not include intl.h.
* traditional.c: Moved from gcc/cpptrad.c.
* ucnid.h: Moved from gcc/cppucnid.h. Change header
guard name.
* ucnid.pl: Moved from gcc/cppucnid.pl.
* ucnid.tab: Moved from gcc/cppucnid.tab. Change header
guard name.
* symtab.c: Moved from gcc/hashtable.c.
* line-map.c: Moved from gcc. Do not include intl.h.
* mkdeps.c: Moved from gcc.
* system.h: New file.

75
libcpp/Makefile.am Normal file
View File

@@ -0,0 +1,75 @@
localedir = $(datadir)/locale
ACLOCAL_AMFLAGS = -I ../config
AM_CPPFLAGS = -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/../intl \
-I$(srcdir)/include -DLOCALEDIR="\"$(localedir)\""
noinst_LIBRARIES = libcpp.a
libcpp_a_SOURCES = \
charset.c directives.c errors.c expr.c files.c \
identifiers.c init.c lex.c line-map.c macro.c mkdeps.c \
pch.c symtab.c traditional.c
noinst_HEADERS = \
include/cpplib.h include/line-map.h include/mkdeps.h \
include/symtab.h internal.h system.h ucnid.h
XGETTEXT = @XGETTEXT@
GMSGFMT = @GMSGFMT@
MSGMERGE = msgmerge
CATALOGS = @CATALOGS@
if ENABLE_NLS
build-po: $(CATALOGS)
update-po: $(CATALOGS:.gmo=.pox)
else
build-po:
update-po:
endif
# N.B. We do not attempt to copy these into $(srcdir).
.po.gmo:
-test -d po || mkdir po
$(GMSGFMT) --statistics -o $@ $<
# The new .po has to be gone over by hand, so we deposit it into
# build/po with a different extension.
# If build/po/$(PACKAGE).pot exists, use it (it was just created),
# else use the one in srcdir.
.po.pox:
-test -d po || mkdir po
$(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \
then echo po/$(PACKAGE).pot; \
else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@
# This rule has to look for .gmo modules in both srcdir and
# the cwd, and has to check that we actually have a catalog
# for each language, in case they weren't built or included
# with the distribution.
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(datadir)
cats="$(CATALOGS)"; for cat in $$cats; do \
lang=`basename $$cat | sed 's/\.gmo$$//'`; \
if [ -f $$cat ]; then :; \
elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \
else continue; \
fi; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
echo $(mkinstalldirs) $(DESTDIR)$$dir; \
$(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \
echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
$(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
done
# Rule for regenerating the message template (gcc.pot).
# Instead of forcing everyone to edit POTFILES.in, which proved impractical,
# this rule has no dependencies and always regenerates libcpp.pot. This is
# relatively harmless since the .po files do not directly depend on it.
.PHONY: po/$(PACKAGE).pot
po/$(PACKAGE).pot: $(libcpp_a_SOURCES) $(noinst_HEADERS)
-test -d $(srcdir)/po || mkdir $(srcdir)/po
$(XGETTEXT) --default-domain=$(PACKAGE) \
--keyword=cpp_error,3 --keyword=cpp_errno,3 \
--keyword=cpp_error_with_line,5 \
--copyright-holder="Free Software Foundation, Inc." \
--msgid-bugs-address="http://gcc.gnu.org/bugs.html" \
--language=c -o po/$(PACKAGE).pot $^

641
libcpp/Makefile.in Normal file
View File

@@ -0,0 +1,641 @@
# Makefile.in generated by automake 1.8.4 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SOURCES = $(libcpp_a_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
DIST_COMMON = $(am__configure_deps) $(noinst_HEADERS) \
$(srcdir)/../config.guess $(srcdir)/../config.sub \
$(srcdir)/../depcomp $(srcdir)/../install-sh \
$(srcdir)/../missing $(srcdir)/../mkinstalldirs \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/config.in $(top_srcdir)/configure ChangeLog
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/gettext.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
AR = ar
ARFLAGS = cru
LIBRARIES = $(noinst_LIBRARIES)
libcpp_a_AR = $(AR) $(ARFLAGS)
libcpp_a_LIBADD =
am_libcpp_a_OBJECTS = charset.$(OBJEXT) directives.$(OBJEXT) \
errors.$(OBJEXT) expr.$(OBJEXT) files.$(OBJEXT) \
identifiers.$(OBJEXT) init.$(OBJEXT) lex.$(OBJEXT) \
line-map.$(OBJEXT) macro.$(OBJEXT) mkdeps.$(OBJEXT) \
pch.$(OBJEXT) symtab.$(OBJEXT) traditional.$(OBJEXT)
libcpp_a_OBJECTS = $(am_libcpp_a_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
depcomp = $(SHELL) $(top_srcdir)/../depcomp
am__depfiles_maybe = depfiles
@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/charset.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/directives.Po ./$(DEPDIR)/errors.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/expr.Po ./$(DEPDIR)/files.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/identifiers.Po ./$(DEPDIR)/init.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/lex.Po ./$(DEPDIR)/line-map.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/macro.Po ./$(DEPDIR)/mkdeps.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/pch.Po ./$(DEPDIR)/symtab.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/traditional.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libcpp_a_SOURCES)
DIST_SOURCES = $(libcpp_a_SOURCES)
HEADERS = $(noinst_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CATALOGS = @CATALOGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_NLS_FALSE = @ENABLE_NLS_FALSE@
ENABLE_NLS_TRUE = @ENABLE_NLS_TRUE@
EXEEXT = @EXEEXT@
GMSGFMT = @GMSGFMT@
INCINTL = @INCINTL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBINTL_DEP = @LIBINTL_DEP@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
POSUB = @POSUB@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
ac_ct_CC = @ac_ct_CC@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
localedir = $(datadir)/locale
ACLOCAL_AMFLAGS = -I ../config
AM_CPPFLAGS = -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/../intl \
-I$(srcdir)/include -DLOCALEDIR="\"$(localedir)\""
noinst_LIBRARIES = libcpp.a
libcpp_a_SOURCES = \
charset.c directives.c errors.c expr.c files.c \
identifiers.c init.c lex.c line-map.c macro.c mkdeps.c \
pch.c symtab.c traditional.c
noinst_HEADERS = \
include/cpplib.h include/line-map.h include/mkdeps.h \
include/symtab.h internal.h system.h ucnid.h
MSGMERGE = msgmerge
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .gmo .o .obj .po .pox
am--refresh:
@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
cd $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/config.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
libcpp.a: $(libcpp_a_OBJECTS) $(libcpp_a_DEPENDENCIES)
-rm -f libcpp.a
$(libcpp_a_AR) libcpp.a $(libcpp_a_OBJECTS) $(libcpp_a_LIBADD)
$(RANLIB) libcpp.a
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/directives.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/errors.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/files.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/identifiers.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lex.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/line-map.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/macro.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdeps.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symtab.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/traditional.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
uninstall-info-am:
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -z "$$unique" && unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
$(mkdir_p) $(distdir)/.. $(distdir)/../config $(distdir)/include
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
$(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(LIBRARIES) $(HEADERS) config.h
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-data-local
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
clean-generic clean-noinstLIBRARIES ctags dist dist-all \
dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip distcheck \
distclean distclean-compile distclean-generic distclean-hdr \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-data-local install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am
@ENABLE_NLS_TRUE@build-po: $(CATALOGS)
@ENABLE_NLS_TRUE@update-po: $(CATALOGS:.gmo=.pox)
@ENABLE_NLS_FALSE@build-po:
@ENABLE_NLS_FALSE@update-po:
# N.B. We do not attempt to copy these into $(srcdir).
.po.gmo:
-test -d po || mkdir po
$(GMSGFMT) --statistics -o $@ $<
# The new .po has to be gone over by hand, so we deposit it into
# build/po with a different extension.
# If build/po/$(PACKAGE).pot exists, use it (it was just created),
# else use the one in srcdir.
.po.pox:
-test -d po || mkdir po
$(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \
then echo po/$(PACKAGE).pot; \
else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@
# This rule has to look for .gmo modules in both srcdir and
# the cwd, and has to check that we actually have a catalog
# for each language, in case they weren't built or included
# with the distribution.
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(datadir)
cats="$(CATALOGS)"; for cat in $$cats; do \
lang=`basename $$cat | sed 's/\.gmo$$//'`; \
if [ -f $$cat ]; then :; \
elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \
else continue; \
fi; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
echo $(mkinstalldirs) $(DESTDIR)$$dir; \
$(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \
echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
$(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
done
# Rule for regenerating the message template (gcc.pot).
# Instead of forcing everyone to edit POTFILES.in, which proved impractical,
# this rule has no dependencies and always regenerates libcpp.pot. This is
# relatively harmless since the .po files do not directly depend on it.
.PHONY: po/$(PACKAGE).pot
po/$(PACKAGE).pot: $(libcpp_a_SOURCES) $(noinst_HEADERS)
-test -d $(srcdir)/po || mkdir $(srcdir)/po
$(XGETTEXT) --default-domain=$(PACKAGE) \
--keyword=cpp_error,3 --keyword=cpp_errno,3 \
--keyword=cpp_error_with_line,5 \
--copyright-holder="Free Software Foundation, Inc." \
--msgid-bugs-address="http://gcc.gnu.org/bugs.html" \
--language=c -o po/$(PACKAGE).pot $^
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

1899
libcpp/aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

1429
libcpp/charset.c Normal file

File diff suppressed because it is too large Load Diff

198
libcpp/config.in Normal file
View File

@@ -0,0 +1,198 @@
/* config.in. Generated from configure.ac by autoheader. */
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
#undef CRAY_STACKSEG_END
/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA
/* Define if you want more run-time sanity checks. */
#undef ENABLE_CHECKING
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#undef ENABLE_NLS
/* Define to 1 if you have `alloca', as a function or macro. */
#undef HAVE_ALLOCA
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
#undef HAVE_ALLOCA_H
/* Define to 1 if you have the declaration of `abort', and to 0 if you don't.
*/
#undef HAVE_DECL_ABORT
/* Define to 1 if you have the declaration of `errno', and to 0 if you don't.
*/
#undef HAVE_DECL_ERRNO
/* Define to 1 if you have the declaration of `fprintf_unlocked', and to 0 if
you don't. */
#undef HAVE_DECL_FPRINTF_UNLOCKED
/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
you don't. */
#undef HAVE_DECL_FPUTC_UNLOCKED
/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
you don't. */
#undef HAVE_DECL_FPUTS_UNLOCKED
/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
you don't. */
#undef HAVE_DECL_FWRITE_UNLOCKED
/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
don't. */
#undef HAVE_DECL_PUTC_UNLOCKED
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define to 1 if you have the `fprintf_unlocked' function. */
#undef HAVE_FPRINTF_UNLOCKED
/* Define to 1 if you have the `fputc_unlocked' function. */
#undef HAVE_FPUTC_UNLOCKED
/* Define to 1 if you have the `fputs_unlocked' function. */
#undef HAVE_FPUTS_UNLOCKED
/* Define to 1 if you have the `fwrite_unlocked' function. */
#undef HAVE_FWRITE_UNLOCKED
/* Define if you have the iconv() function. */
#undef HAVE_ICONV
/* Define to 1 if you have the <iconv.h> header file. */
#undef HAVE_ICONV_H
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET
/* Define to 1 if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if libc includes obstacks. */
#undef HAVE_OBSTACK
/* Define to 1 if you have the `putc_unlocked' function. */
#undef HAVE_PUTC_UNLOCKED
/* Define if you have a working <stdbool.h> header file. */
#undef HAVE_STDBOOL_H
/* Define to 1 if you have the <stddef.h> header file. */
#undef HAVE_STDDEF_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define if <sys/types.h> defines \`uchar'. */
#undef HAVE_UCHAR
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if the \`_Bool' type is built-in. */
#undef HAVE__BOOL
/* Define to the widest efficient host integer type at least as wide as the
target's size_t type. */
#undef HOST_WIDE_INT
/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* The size of a `int', as computed by sizeof. */
#undef SIZEOF_INT
/* The size of a `long', as computed by sizeof. */
#undef SIZEOF_LONG
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
#undef STACK_DIRECTION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define if you can safely include both <string.h> and <strings.h>. */
#undef STRING_WITH_STRINGS
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME
/* Version number of package */
#undef VERSION
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#undef inline
#endif
/* Define to `long' if <sys/types.h> does not define. */
#undef off_t
/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t

8776
libcpp/configure vendored Executable file

File diff suppressed because it is too large Load Diff

96
libcpp/configure.ac Normal file
View File

@@ -0,0 +1,96 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
AC_INIT(cpplib, [ ], gcc-bugs@gcc.gnu.org, cpplib)
AC_CONFIG_SRCDIR(ucnid.h)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE(foreign)
AM_MAINTAINER_MODE
# Checks for programs.
AC_PROG_CC
AC_PROG_RANLIB
# Checks for header files.
AC_HEADER_TIME
ACX_HEADER_STRING
ACX_HEADER_STDBOOL
AC_CHECK_HEADERS(iconv.h locale.h fcntl.h limits.h stddef.h \
stdlib.h strings.h string.h sys/file.h unistd.h)
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_FUNC_OBSTACK
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_STRUCT_TM
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_FUNCS(putc_unlocked fputc_unlocked fputs_unlocked \
fwrite_unlocked fprintf_unlocked)
AC_CHECK_DECLS([abort, errno, putc_unlocked, fputc_unlocked,
fputs_unlocked, fwrite_unlocked, fprintf_unlocked])
# Checks for library functions.
AC_FUNC_ALLOCA
AC_HEADER_STDC
AM_LANGINFO_CODESET
ZW_GNU_GETTEXT_SISTER_DIR
AC_CACHE_CHECK(for uchar, gcc_cv_type_uchar,
[AC_TRY_COMPILE([
#include "ansidecl.h"
#include "system.h"
],
[if ((uchar *)0) return 0;
if (sizeof(uchar)) return 0;],
ac_cv_type_uchar=yes, ac_cv_type_uchar=no)])
if test $ac_cv_type_uchar = yes; then
AC_DEFINE(HAVE_UCHAR, 1,
[Define if <sys/types.h> defines \`uchar'.])
fi
AM_ICONV
AM_CONDITIONAL(ENABLE_NLS, [test "x$enable_nls" != xno])
AC_ARG_ENABLE(checking,
[ --enable-checking enable expensive run-time checks],,
enable_checking=no)
if test $enable_checking != no ; then
AC_DEFINE(ENABLE_CHECKING, 1,
[Define if you want more run-time sanity checks.])
fi
case $target in
alpha*-*-* | \
x86_64-*-* | \
ia64-*-* | \
hppa*64*-*-* | parisc*64*-*-* | \
mips*-*-* | \
mmix-*-* | \
powerpc*-*-* | \
rs6000*-*-* | \
s390*-*-* | \
sparc64*-*-* | ultrasparc-*-freebsd* | \
sparcv9-*-solaris2* | \
sparc-*-solaris2.[789] | sparc-*-solaris2.1[0-9] | \
sh[123456789l]*-*-*)
need_64bit_hwint=yes ;;
*)
need_64bit_hwint=no ;;
esac
case $need_64bit_hwint:$ac_cv_sizeof_long in
*:8 | no:*) host_wide_int=long ;;
*) host_wide_int='long long' ;;
esac
AC_DEFINE_UNQUOTED(HOST_WIDE_INT, $host_wide_int,
[Define to the widest efficient host integer type at least
as wide as the target's size_t type.])
AC_CONFIG_HEADERS(config.h:config.in)
AC_CONFIG_FILES(Makefile)
AC_OUTPUT

1987
libcpp/directives.c Normal file

File diff suppressed because it is too large Load Diff

182
libcpp/errors.c Normal file
View File

@@ -0,0 +1,182 @@
/* Default error handlers for CPP Library.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1998, 1999, 2000,
2001, 2002, 2004 Free Software Foundation, Inc.
Written by Per Bothner, 1994.
Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
In other words, you are welcome to use, share and improve this program.
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding! */
#include "config.h"
#include "system.h"
#include "cpplib.h"
#include "internal.h"
static void print_location (cpp_reader *, source_location, unsigned int);
/* Print the logical file location (LINE, COL) in preparation for a
diagnostic. Outputs the #include chain if it has changed. A line
of zero suppresses the include stack, and outputs the program name
instead. */
static void
print_location (cpp_reader *pfile, source_location line, unsigned int col)
{
if (line == 0)
fprintf (stderr, "%s: ", progname);
else
{
const struct line_map *map;
unsigned int lin;
map = linemap_lookup (pfile->line_table, line);
linemap_print_containing_files (pfile->line_table, map);
lin = SOURCE_LINE (map, line);
if (col == 0)
{
col = SOURCE_COLUMN (map, line);
if (col == 0)
col = 1;
}
if (lin == 0)
fprintf (stderr, "%s:", map->to_file);
else if (CPP_OPTION (pfile, show_column) == 0)
fprintf (stderr, "%s:%u:", map->to_file, lin);
else
fprintf (stderr, "%s:%u:%u:", map->to_file, lin, col);
fputc (' ', stderr);
}
}
/* Set up for a diagnostic: print the file and line, bump the error
counter, etc. SRC_LOC is the logical line number; zero means to print
at the location of the previously lexed token, which tends to be
the correct place by default. The column number can be specified either
using COLUMN or (if COLUMN==0) extracting SOURCE_COLUMN from SRC_LOC.
(This may seem redundant, but is useful when pre-scanning (cleaning) a line,
when we haven't yet verified whether the current line_map has a
big enough max_column_hint.)
Returns 0 if the error has been suppressed. */
int
_cpp_begin_message (cpp_reader *pfile, int code,
source_location src_loc, unsigned int column)
{
int level = CPP_DL_EXTRACT (code);
switch (level)
{
case CPP_DL_WARNING:
case CPP_DL_PEDWARN:
if (cpp_in_system_header (pfile)
&& ! CPP_OPTION (pfile, warn_system_headers))
return 0;
/* Fall through. */
case CPP_DL_WARNING_SYSHDR:
if (CPP_OPTION (pfile, warnings_are_errors)
|| (level == CPP_DL_PEDWARN && CPP_OPTION (pfile, pedantic_errors)))
{
if (CPP_OPTION (pfile, inhibit_errors))
return 0;
level = CPP_DL_ERROR;
pfile->errors++;
}
else if (CPP_OPTION (pfile, inhibit_warnings))
return 0;
break;
case CPP_DL_ERROR:
if (CPP_OPTION (pfile, inhibit_errors))
return 0;
/* ICEs cannot be inhibited. */
case CPP_DL_ICE:
pfile->errors++;
break;
}
print_location (pfile, src_loc, column);
if (CPP_DL_WARNING_P (level))
fputs (_("warning: "), stderr);
else if (level == CPP_DL_ICE)
fputs (_("internal error: "), stderr);
return 1;
}
/* Don't remove the blank before do, as otherwise the exgettext
script will mistake this as a function definition */
#define v_message(msgid, ap) \
do { vfprintf (stderr, _(msgid), ap); putc ('\n', stderr); } while (0)
/* Exported interface. */
/* Print an error at the location of the previously lexed token. */
void
cpp_error (cpp_reader * pfile, int level, const char *msgid, ...)
{
source_location src_loc;
va_list ap;
va_start (ap, msgid);
if (CPP_OPTION (pfile, traditional))
{
if (pfile->state.in_directive)
src_loc = pfile->directive_line;
else
src_loc = pfile->line_table->highest_line;
}
else
{
src_loc = pfile->cur_token[-1].src_loc;
}
if (_cpp_begin_message (pfile, level, src_loc, 0))
v_message (msgid, ap);
va_end (ap);
}
/* Print an error at a specific location. */
void
cpp_error_with_line (cpp_reader *pfile, int level,
source_location src_loc, unsigned int column,
const char *msgid, ...)
{
va_list ap;
va_start (ap, msgid);
if (_cpp_begin_message (pfile, level, src_loc, column))
v_message (msgid, ap);
va_end (ap);
}
void
cpp_errno (cpp_reader *pfile, int level, const char *msgid)
{
if (msgid[0] == '\0')
msgid = _("stdout");
cpp_error (pfile, level, "%s: %s", msgid, xstrerror (errno));
}

1540
libcpp/expr.c Normal file

File diff suppressed because it is too large Load Diff

1560
libcpp/files.c Normal file

File diff suppressed because it is too large Load Diff

118
libcpp/identifiers.c Normal file
View File

@@ -0,0 +1,118 @@
/* Hash tables for the CPP library.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Written by Per Bothner, 1994.
Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
In other words, you are welcome to use, share and improve this program.
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding! */
#include "config.h"
#include "system.h"
#include "cpplib.h"
#include "internal.h"
static cpp_hashnode *alloc_node (hash_table *);
/* Return an identifier node for hashtable.c. Used by cpplib except
when integrated with the C front ends. */
static cpp_hashnode *
alloc_node (hash_table *table)
{
cpp_hashnode *node;
node = obstack_alloc (&table->pfile->hash_ob, sizeof (cpp_hashnode));
memset (node, 0, sizeof (cpp_hashnode));
return node;
}
/* Set up the identifier hash table. Use TABLE if non-null, otherwise
create our own. */
void
_cpp_init_hashtable (cpp_reader *pfile, hash_table *table)
{
struct spec_nodes *s;
if (table == NULL)
{
pfile->our_hashtable = 1;
table = ht_create (13); /* 8K (=2^13) entries. */
table->alloc_node = (hashnode (*) (hash_table *)) alloc_node;
_obstack_begin (&pfile->hash_ob, 0, 0,
(void *(*) (long)) xmalloc,
(void (*) (void *)) free);
}
table->pfile = pfile;
pfile->hash_table = table;
/* Now we can initialize things that use the hash table. */
_cpp_init_directives (pfile);
_cpp_init_internal_pragmas (pfile);
s = &pfile->spec_nodes;
s->n_defined = cpp_lookup (pfile, DSC("defined"));
s->n_true = cpp_lookup (pfile, DSC("true"));
s->n_false = cpp_lookup (pfile, DSC("false"));
s->n__VA_ARGS__ = cpp_lookup (pfile, DSC("__VA_ARGS__"));
s->n__VA_ARGS__->flags |= NODE_DIAGNOSTIC;
}
/* Tear down the identifier hash table. */
void
_cpp_destroy_hashtable (cpp_reader *pfile)
{
if (pfile->our_hashtable)
{
ht_destroy (pfile->hash_table);
obstack_free (&pfile->hash_ob, 0);
}
}
/* Returns the hash entry for the STR of length LEN, creating one
if necessary. */
cpp_hashnode *
cpp_lookup (cpp_reader *pfile, const unsigned char *str, unsigned int len)
{
/* ht_lookup cannot return NULL. */
return CPP_HASHNODE (ht_lookup (pfile->hash_table, str, len, HT_ALLOC));
}
/* Determine whether the str STR, of length LEN, is a defined macro. */
int
cpp_defined (cpp_reader *pfile, const unsigned char *str, int len)
{
cpp_hashnode *node;
node = CPP_HASHNODE (ht_lookup (pfile->hash_table, str, len, HT_NO_INSERT));
/* If it's of type NT_MACRO, it cannot be poisoned. */
return node && node->type == NT_MACRO;
}
/* For all nodes in the hashtable, callback CB with parameters PFILE,
the node, and V. */
void
cpp_forall_identifiers (cpp_reader *pfile, cpp_cb cb, void *v)
{
/* We don't need a proxy since the hash table's identifier comes
first in cpp_hashnode. */
ht_forall (pfile->hash_table, (ht_cb) cb, v);
}

7
libcpp/include/ChangeLog Normal file
View File

@@ -0,0 +1,7 @@
2004-05-23 Paolo Bonzini <bonzini@gnu.org>
* cpplib.h: Moved from gcc. Change header guard name.
* line-map.h: Moved from gcc. Change header guard name.
* mkdeps.h: Moved from gcc. Change header guard name.
* symtab.h: Moved from gcc/hashtable.h. Change header
guard name.

773
libcpp/include/cpplib.h Normal file
View File

@@ -0,0 +1,773 @@
/* Definitions for CPP library.
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Written by Per Bothner, 1994-95.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
In other words, you are welcome to use, share and improve this program.
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding! */
#ifndef LIBCPP_CPPLIB_H
#define LIBCPP_CPPLIB_H
#include <sys/types.h>
#include "symtab.h"
#include "line-map.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct cpp_reader cpp_reader;
typedef struct cpp_buffer cpp_buffer;
typedef struct cpp_options cpp_options;
typedef struct cpp_token cpp_token;
typedef struct cpp_string cpp_string;
typedef struct cpp_hashnode cpp_hashnode;
typedef struct cpp_macro cpp_macro;
typedef struct cpp_callbacks cpp_callbacks;
typedef struct cpp_dir cpp_dir;
struct answer;
struct _cpp_file;
/* The first three groups, apart from '=', can appear in preprocessor
expressions (+= and -= are used to indicate unary + and - resp.).
This allows a lookup table to be implemented in _cpp_parse_expr.
The first group, to CPP_LAST_EQ, can be immediately followed by an
'='. The lexer needs operators ending in '=', like ">>=", to be in
the same order as their counterparts without the '=', like ">>". */
/* Positions in the table. */
#define CPP_LAST_EQ CPP_MAX
#define CPP_FIRST_DIGRAPH CPP_HASH
#define CPP_LAST_PUNCTUATOR CPP_DOT_STAR
#define CPP_LAST_CPP_OP CPP_LESS_EQ
#define TTYPE_TABLE \
OP(CPP_EQ = 0, "=") \
OP(CPP_NOT, "!") \
OP(CPP_GREATER, ">") /* compare */ \
OP(CPP_LESS, "<") \
OP(CPP_PLUS, "+") /* math */ \
OP(CPP_MINUS, "-") \
OP(CPP_MULT, "*") \
OP(CPP_DIV, "/") \
OP(CPP_MOD, "%") \
OP(CPP_AND, "&") /* bit ops */ \
OP(CPP_OR, "|") \
OP(CPP_XOR, "^") \
OP(CPP_RSHIFT, ">>") \
OP(CPP_LSHIFT, "<<") \
OP(CPP_MIN, "<?") /* extension */ \
OP(CPP_MAX, ">?") \
\
OP(CPP_COMPL, "~") \
OP(CPP_AND_AND, "&&") /* logical */ \
OP(CPP_OR_OR, "||") \
OP(CPP_QUERY, "?") \
OP(CPP_COLON, ":") \
OP(CPP_COMMA, ",") /* grouping */ \
OP(CPP_OPEN_PAREN, "(") \
OP(CPP_CLOSE_PAREN, ")") \
TK(CPP_EOF, SPELL_NONE) \
OP(CPP_EQ_EQ, "==") /* compare */ \
OP(CPP_NOT_EQ, "!=") \
OP(CPP_GREATER_EQ, ">=") \
OP(CPP_LESS_EQ, "<=") \
\
/* These two are unary + / - in preprocessor expressions. */ \
OP(CPP_PLUS_EQ, "+=") /* math */ \
OP(CPP_MINUS_EQ, "-=") \
\
OP(CPP_MULT_EQ, "*=") \
OP(CPP_DIV_EQ, "/=") \
OP(CPP_MOD_EQ, "%=") \
OP(CPP_AND_EQ, "&=") /* bit ops */ \
OP(CPP_OR_EQ, "|=") \
OP(CPP_XOR_EQ, "^=") \
OP(CPP_RSHIFT_EQ, ">>=") \
OP(CPP_LSHIFT_EQ, "<<=") \
OP(CPP_MIN_EQ, "<?=") /* extension */ \
OP(CPP_MAX_EQ, ">?=") \
/* Digraphs together, beginning with CPP_FIRST_DIGRAPH. */ \
OP(CPP_HASH, "#") /* digraphs */ \
OP(CPP_PASTE, "##") \
OP(CPP_OPEN_SQUARE, "[") \
OP(CPP_CLOSE_SQUARE, "]") \
OP(CPP_OPEN_BRACE, "{") \
OP(CPP_CLOSE_BRACE, "}") \
/* The remainder of the punctuation. Order is not significant. */ \
OP(CPP_SEMICOLON, ";") /* structure */ \
OP(CPP_ELLIPSIS, "...") \
OP(CPP_PLUS_PLUS, "++") /* increment */ \
OP(CPP_MINUS_MINUS, "--") \
OP(CPP_DEREF, "->") /* accessors */ \
OP(CPP_DOT, ".") \
OP(CPP_SCOPE, "::") \
OP(CPP_DEREF_STAR, "->*") \
OP(CPP_DOT_STAR, ".*") \
OP(CPP_ATSIGN, "@") /* used in Objective-C */ \
\
TK(CPP_NAME, SPELL_IDENT) /* word */ \
TK(CPP_AT_NAME, SPELL_IDENT) /* @word - Objective-C */ \
TK(CPP_NUMBER, SPELL_LITERAL) /* 34_be+ta */ \
\
TK(CPP_CHAR, SPELL_LITERAL) /* 'char' */ \
TK(CPP_WCHAR, SPELL_LITERAL) /* L'char' */ \
TK(CPP_OTHER, SPELL_LITERAL) /* stray punctuation */ \
\
TK(CPP_STRING, SPELL_LITERAL) /* "string" */ \
TK(CPP_WSTRING, SPELL_LITERAL) /* L"string" */ \
TK(CPP_OBJC_STRING, SPELL_LITERAL) /* @"string" - Objective-C */ \
TK(CPP_HEADER_NAME, SPELL_LITERAL) /* <stdio.h> in #include */ \
\
TK(CPP_COMMENT, SPELL_LITERAL) /* Only if output comments. */ \
/* SPELL_LITERAL happens to DTRT. */ \
TK(CPP_MACRO_ARG, SPELL_NONE) /* Macro argument. */ \
TK(CPP_PADDING, SPELL_NONE) /* Whitespace for cpp0. */
#define OP(e, s) e,
#define TK(e, s) e,
enum cpp_ttype
{
TTYPE_TABLE
N_TTYPES
};
#undef OP
#undef TK
/* C language kind, used when calling cpp_reader_init. */
enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_STDC89, CLK_STDC94, CLK_STDC99,
CLK_GNUCXX, CLK_CXX98, CLK_ASM};
/* Payload of a NUMBER, STRING, CHAR or COMMENT token. */
struct cpp_string
{
unsigned int len;
const unsigned char *text;
};
/* Flags for the cpp_token structure. */
#define PREV_WHITE (1 << 0) /* If whitespace before this token. */
#define DIGRAPH (1 << 1) /* If it was a digraph. */
#define STRINGIFY_ARG (1 << 2) /* If macro argument to be stringified. */
#define PASTE_LEFT (1 << 3) /* If on LHS of a ## operator. */
#define NAMED_OP (1 << 4) /* C++ named operators. */
#define NO_EXPAND (1 << 5) /* Do not macro-expand this token. */
#define BOL (1 << 6) /* Token at beginning of line. */
/* A preprocessing token. This has been carefully packed and should
occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts. */
struct cpp_token
{
source_location src_loc; /* Location of first char of token. */
ENUM_BITFIELD(cpp_ttype) type : CHAR_BIT; /* token type */
unsigned char flags; /* flags - see above */
union
{
cpp_hashnode *node; /* An identifier. */
const cpp_token *source; /* Inherit padding from this token. */
struct cpp_string str; /* A string, or number. */
unsigned int arg_no; /* Argument no. for a CPP_MACRO_ARG. */
} val;
};
/* A type wide enough to hold any multibyte source character.
cpplib's character constant interpreter requires an unsigned type.
Also, a typedef for the signed equivalent.
The width of this type is capped at 32 bits; there do exist targets
where wchar_t is 64 bits, but only in a non-default mode, and there
would be no meaningful interpretation for a wchar_t value greater
than 2^32 anyway -- the widest wide-character encoding around is
ISO 10646, which stops at 2^31. */
#if CHAR_BIT * SIZEOF_INT >= 32
# define CPPCHAR_SIGNED_T int
#elif CHAR_BIT * SIZEOF_LONG >= 32
# define CPPCHAR_SIGNED_T long
#else
# error "Cannot find a least-32-bit signed integer type"
#endif
typedef unsigned CPPCHAR_SIGNED_T cppchar_t;
typedef CPPCHAR_SIGNED_T cppchar_signed_t;
/* This structure is nested inside struct cpp_reader, and
carries all the options visible to the command line. */
struct cpp_options
{
/* Characters between tab stops. */
unsigned int tabstop;
/* The language we're preprocessing. */
enum c_lang lang;
/* Nonzero means use extra default include directories for C++. */
unsigned char cplusplus;
/* Nonzero means handle cplusplus style comments. */
unsigned char cplusplus_comments;
/* Nonzero means define __OBJC__, treat @ as a special token, and
use the OBJC[PLUS]_INCLUDE_PATH environment variable. */
unsigned char objc;
/* Nonzero means don't copy comments into the output file. */
unsigned char discard_comments;
/* Nonzero means don't copy comments into the output file during
macro expansion. */
unsigned char discard_comments_in_macro_exp;
/* Nonzero means process the ISO trigraph sequences. */
unsigned char trigraphs;
/* Nonzero means process the ISO digraph sequences. */
unsigned char digraphs;
/* Nonzero means to allow hexadecimal floats and LL suffixes. */
unsigned char extended_numbers;
/* Nonzero means print names of header files (-H). */
unsigned char print_include_names;
/* Nonzero means cpp_pedwarn causes a hard error. */
unsigned char pedantic_errors;
/* Nonzero means don't print warning messages. */
unsigned char inhibit_warnings;
/* Nonzero means complain about deprecated features. */
unsigned char warn_deprecated;
/* Nonzero means don't suppress warnings from system headers. */
unsigned char warn_system_headers;
/* Nonzero means don't print error messages. Has no option to
select it, but can be set by a user of cpplib (e.g. fix-header). */
unsigned char inhibit_errors;
/* Nonzero means warn if slash-star appears in a comment. */
unsigned char warn_comments;
/* Nonzero means warn if a user-supplied include directory does not
exist. */
unsigned char warn_missing_include_dirs;
/* Nonzero means warn if there are any trigraphs. */
unsigned char warn_trigraphs;
/* Nonzero means warn about multicharacter charconsts. */
unsigned char warn_multichar;
/* Nonzero means warn about various incompatibilities with
traditional C. */
unsigned char warn_traditional;
/* Nonzero means warn about long long numeric constants. */
unsigned char warn_long_long;
/* Nonzero means warn about text after an #endif (or #else). */
unsigned char warn_endif_labels;
/* Nonzero means warn about implicit sign changes owing to integer
promotions. */
unsigned char warn_num_sign_change;
/* Zero means don't warn about __VA_ARGS__ usage in c89 pedantic mode.
Presumably the usage is protected by the appropriate #ifdef. */
unsigned char warn_variadic_macros;
/* Nonzero means turn warnings into errors. */
unsigned char warnings_are_errors;
/* Nonzero means we should look for header.gcc files that remap file
names. */
unsigned char remap;
/* Zero means dollar signs are punctuation. */
unsigned char dollars_in_ident;
/* True if we should warn about dollars in identifiers or numbers
for this translation unit. */
unsigned char warn_dollars;
/* Nonzero means warn if undefined identifiers are evaluated in an #if. */
unsigned char warn_undef;
/* Nonzero means warn of unused macros from the main file. */
unsigned char warn_unused_macros;
/* Nonzero for the 1999 C Standard, including corrigenda and amendments. */
unsigned char c99;
/* Nonzero if we are conforming to a specific C or C++ standard. */
unsigned char std;
/* Nonzero means give all the error messages the ANSI standard requires. */
unsigned char pedantic;
/* Nonzero means we're looking at already preprocessed code, so don't
bother trying to do macro expansion and whatnot. */
unsigned char preprocessed;
/* Print column number in error messages. */
unsigned char show_column;
/* Nonzero means handle C++ alternate operator names. */
unsigned char operator_names;
/* True for traditional preprocessing. */
unsigned char traditional;
/* Holds the name of the target (execution) character set. */
const char *narrow_charset;
/* Holds the name of the target wide character set. */
const char *wide_charset;
/* Holds the name of the input character set. */
const char *input_charset;
/* True to warn about precompiled header files we couldn't use. */
bool warn_invalid_pch;
/* True if dependencies should be restored from a precompiled header. */
bool restore_pch_deps;
/* Dependency generation. */
struct
{
/* Style of header dependencies to generate. */
enum {DEPS_NONE = 0, DEPS_USER, DEPS_SYSTEM } style;
/* Assume missing files are generated files. */
bool missing_files;
/* Generate phony targets for each dependency apart from the first
one. */
bool phony_targets;
/* If true, no dependency is generated on the main file. */
bool ignore_main_file;
} deps;
/* Target-specific features set by the front end or client. */
/* Precision for target CPP arithmetic, target characters, target
ints and target wide characters, respectively. */
size_t precision, char_precision, int_precision, wchar_precision;
/* True means chars (wide chars) are unsigned. */
bool unsigned_char, unsigned_wchar;
/* True if the most significant byte in a word has the lowest
address in memory. */
bool bytes_big_endian;
/* Nonzero means __STDC__ should have the value 0 in system headers. */
unsigned char stdc_0_in_system_headers;
};
/* Callback for header lookup for HEADER, which is the name of a
source file. It is used as a method of last resort to find headers
that are not otherwise found during the normal include processing.
The return value is the malloced name of a header to try and open,
if any, or NULL otherwise. This callback is called only if the
header is otherwise unfound. */
typedef const char *(*missing_header_cb)(cpp_reader *, const char *header, cpp_dir **);
/* Call backs to cpplib client. */
struct cpp_callbacks
{
/* Called when a new line of preprocessed output is started. */
void (*line_change) (cpp_reader *, const cpp_token *, int);
/* Called when switching to/from a new file.
The line_map is for the new file. It is NULL if there is no new file.
(In C this happens when done with <built-in>+<command line> and also
when done with a main file.) This can be used for resource cleanup. */
void (*file_change) (cpp_reader *, const struct line_map *);
void (*dir_change) (cpp_reader *, const char *);
void (*include) (cpp_reader *, unsigned int, const unsigned char *,
const char *, int);
void (*define) (cpp_reader *, unsigned int, cpp_hashnode *);
void (*undef) (cpp_reader *, unsigned int, cpp_hashnode *);
void (*ident) (cpp_reader *, unsigned int, const cpp_string *);
void (*def_pragma) (cpp_reader *, unsigned int);
int (*valid_pch) (cpp_reader *, const char *, int);
void (*read_pch) (cpp_reader *, const char *, int, const char *);
missing_header_cb missing_header;
};
/* Chain of directories to look for include files in. */
struct cpp_dir
{
/* NULL-terminated singly-linked list. */
struct cpp_dir *next;
/* NAME of the directory, NUL-terminated. */
char *name;
unsigned int len;
/* One if a system header, two if a system header that has extern
"C" guards for C++. */
unsigned char sysp;
/* Mapping of file names for this directory for MS-DOS and related
platforms. A NULL-terminated array of (from, to) pairs. */
const char **name_map;
/* Routine to construct pathname, given the search path name and the
HEADER we are trying to find, return a constructed pathname to
try and open. If this is NULL, the constructed pathname is as
constructed by append_file_to_dir. */
char *(*construct) (const char *header, cpp_dir *dir);
/* The C front end uses these to recognize duplicated
directories in the search path. */
ino_t ino;
dev_t dev;
/* Is this a user-supplied directory? */
bool user_supplied_p;
};
/* Name under which this program was invoked. */
extern const char *progname;
/* The structure of a node in the hash table. The hash table has
entries for all identifiers: either macros defined by #define
commands (type NT_MACRO), assertions created with #assert
(NT_ASSERTION), or neither of the above (NT_VOID). Builtin macros
like __LINE__ are flagged NODE_BUILTIN. Poisoned identifiers are
flagged NODE_POISONED. NODE_OPERATOR (C++ only) indicates an
identifier that behaves like an operator such as "xor".
NODE_DIAGNOSTIC is for speed in lex_token: it indicates a
diagnostic may be required for this node. Currently this only
applies to __VA_ARGS__ and poisoned identifiers. */
/* Hash node flags. */
#define NODE_OPERATOR (1 << 0) /* C++ named operator. */
#define NODE_POISONED (1 << 1) /* Poisoned identifier. */
#define NODE_BUILTIN (1 << 2) /* Builtin macro. */
#define NODE_DIAGNOSTIC (1 << 3) /* Possible diagnostic when lexed. */
#define NODE_WARN (1 << 4) /* Warn if redefined or undefined. */
#define NODE_DISABLED (1 << 5) /* A disabled macro. */
#define NODE_MACRO_ARG (1 << 6) /* Used during #define processing. */
/* Different flavors of hash node. */
enum node_type
{
NT_VOID = 0, /* No definition yet. */
NT_MACRO, /* A macro of some form. */
NT_ASSERTION /* Predicate for #assert. */
};
/* Different flavors of builtin macro. _Pragma is an operator, but we
handle it with the builtin code for efficiency reasons. */
enum builtin_type
{
BT_SPECLINE = 0, /* `__LINE__' */
BT_DATE, /* `__DATE__' */
BT_FILE, /* `__FILE__' */
BT_BASE_FILE, /* `__BASE_FILE__' */
BT_INCLUDE_LEVEL, /* `__INCLUDE_LEVEL__' */
BT_TIME, /* `__TIME__' */
BT_STDC, /* `__STDC__' */
BT_PRAGMA /* `_Pragma' operator */
};
#define CPP_HASHNODE(HNODE) ((cpp_hashnode *) (HNODE))
#define HT_NODE(NODE) ((ht_identifier *) (NODE))
#define NODE_LEN(NODE) HT_LEN (&(NODE)->ident)
#define NODE_NAME(NODE) HT_STR (&(NODE)->ident)
/* The common part of an identifier node shared amongst all 3 C front
ends. Also used to store CPP identifiers, which are a superset of
identifiers in the grammatical sense. */
struct cpp_hashnode GTY(())
{
struct ht_identifier ident;
unsigned int is_directive : 1;
unsigned int directive_index : 7; /* If is_directive,
then index into directive table.
Otherwise, a NODE_OPERATOR. */
unsigned char rid_code; /* Rid code - for front ends. */
ENUM_BITFIELD(node_type) type : 8; /* CPP node type. */
unsigned char flags; /* CPP flags. */
union _cpp_hashnode_value
{
/* If a macro. */
cpp_macro * GTY((skip)) macro;
/* Answers to an assertion. */
struct answer * GTY ((skip)) answers;
/* Code for a builtin macro. */
enum builtin_type GTY ((tag ("1"))) builtin;
/* Macro argument index. */
unsigned short GTY ((tag ("0"))) arg_index;
} GTY ((desc ("0"))) value;
};
/* Call this first to get a handle to pass to other functions.
If you want cpplib to manage its own hashtable, pass in a NULL
pointer. Otherwise you should pass in an initialized hash table
that cpplib will share; this technique is used by the C front
ends. */
extern cpp_reader *cpp_create_reader (enum c_lang, struct ht *,
struct line_maps *);
/* Call this to change the selected language standard (e.g. because of
command line options). */
extern void cpp_set_lang (cpp_reader *, enum c_lang);
/* Add a dependency TARGET. Quote it for "make" if QUOTE. Can be
called any number of times before cpp_read_main_file(). If no
targets have been added before cpp_read_main_file(), then the
default target is used. */
extern void cpp_add_dependency_target (cpp_reader *, const char *, int);
/* Set the include paths. */
extern void cpp_set_include_chains (cpp_reader *, cpp_dir *, cpp_dir *, int);
/* Call these to get pointers to the options and callback structures
for a given reader. These pointers are good until you call
cpp_finish on that reader. You can either edit the callbacks
through the pointer returned from cpp_get_callbacks, or set them
with cpp_set_callbacks. */
extern cpp_options *cpp_get_options (cpp_reader *);
extern cpp_callbacks *cpp_get_callbacks (cpp_reader *);
extern void cpp_set_callbacks (cpp_reader *, cpp_callbacks *);
/* This function reads the file, but does not start preprocessing. It
returns the name of the original file; this is the same as the
input file, except for preprocessed input. This will generate at
least one file change callback, and possibly a line change callback
too. If there was an error opening the file, it returns NULL. */
extern const char *cpp_read_main_file (cpp_reader *, const char *);
/* Set up built-ins like __FILE__. */
extern void cpp_init_builtins (cpp_reader *, int);
/* This is called after options have been parsed, and partially
processed. */
extern void cpp_post_options (cpp_reader *);
/* Set up translation to the target character set. */
extern void cpp_init_iconv (cpp_reader *);
/* Call this to finish preprocessing. If you requested dependency
generation, pass an open stream to write the information to,
otherwise NULL. It is your responsibility to close the stream.
Returns cpp_errors (pfile). */
extern int cpp_finish (cpp_reader *, FILE *deps_stream);
/* Call this to release the handle at the end of preprocessing. Any
use of the handle after this function returns is invalid. Returns
cpp_errors (pfile). */
extern void cpp_destroy (cpp_reader *);
/* Error count. */
extern unsigned int cpp_errors (cpp_reader *);
extern unsigned int cpp_token_len (const cpp_token *);
extern unsigned char *cpp_token_as_text (cpp_reader *, const cpp_token *);
extern unsigned char *cpp_spell_token (cpp_reader *, const cpp_token *,
unsigned char *);
extern void cpp_register_pragma (cpp_reader *, const char *, const char *,
void (*) (cpp_reader *));
extern int cpp_avoid_paste (cpp_reader *, const cpp_token *,
const cpp_token *);
extern const cpp_token *cpp_get_token (cpp_reader *);
extern const unsigned char *cpp_macro_definition (cpp_reader *,
const cpp_hashnode *);
extern void _cpp_backup_tokens (cpp_reader *, unsigned int);
/* Evaluate a CPP_CHAR or CPP_WCHAR token. */
extern cppchar_t cpp_interpret_charconst (cpp_reader *, const cpp_token *,
unsigned int *, int *);
/* Evaluate a vector of CPP_STRING or CPP_WSTRING tokens. */
extern bool cpp_interpret_string (cpp_reader *,
const cpp_string *, size_t,
cpp_string *, bool);
extern bool cpp_interpret_string_notranslate (cpp_reader *,
const cpp_string *, size_t,
cpp_string *, bool);
/* Used to register macros and assertions, perhaps from the command line.
The text is the same as the command line argument. */
extern void cpp_define (cpp_reader *, const char *);
extern void cpp_assert (cpp_reader *, const char *);
extern void cpp_undef (cpp_reader *, const char *);
extern void cpp_unassert (cpp_reader *, const char *);
/* Undefine all macros and assertions. */
extern void cpp_undef_all (cpp_reader *);
extern cpp_buffer *cpp_push_buffer (cpp_reader *, const unsigned char *,
size_t, int);
extern int cpp_defined (cpp_reader *, const unsigned char *, int);
/* A preprocessing number. Code assumes that any unused high bits of
the double integer are set to zero. */
typedef unsigned HOST_WIDE_INT cpp_num_part;
typedef struct cpp_num cpp_num;
struct cpp_num
{
cpp_num_part high;
cpp_num_part low;
bool unsignedp; /* True if value should be treated as unsigned. */
bool overflow; /* True if the most recent calculation overflowed. */
};
/* cpplib provides two interfaces for interpretation of preprocessing
numbers.
cpp_classify_number categorizes numeric constants according to
their field (integer, floating point, or invalid), radix (decimal,
octal, hexadecimal), and type suffixes. */
#define CPP_N_CATEGORY 0x000F
#define CPP_N_INVALID 0x0000
#define CPP_N_INTEGER 0x0001
#define CPP_N_FLOATING 0x0002
#define CPP_N_WIDTH 0x00F0
#define CPP_N_SMALL 0x0010 /* int, float. */
#define CPP_N_MEDIUM 0x0020 /* long, double. */
#define CPP_N_LARGE 0x0040 /* long long, long double. */
#define CPP_N_RADIX 0x0F00
#define CPP_N_DECIMAL 0x0100
#define CPP_N_HEX 0x0200
#define CPP_N_OCTAL 0x0400
#define CPP_N_UNSIGNED 0x1000 /* Properties. */
#define CPP_N_IMAGINARY 0x2000
/* Classify a CPP_NUMBER token. The return value is a combination of
the flags from the above sets. */
extern unsigned cpp_classify_number (cpp_reader *, const cpp_token *);
/* Evaluate a token classified as category CPP_N_INTEGER. */
extern cpp_num cpp_interpret_integer (cpp_reader *, const cpp_token *,
unsigned int type);
/* Sign extend a number, with PRECISION significant bits and all
others assumed clear, to fill out a cpp_num structure. */
cpp_num cpp_num_sign_extend (cpp_num, size_t);
/* Diagnostic levels. To get a diagnostic without associating a
position in the translation unit with it, use cpp_error_with_line
with a line number of zero. */
/* Warning, an error with -Werror. */
#define CPP_DL_WARNING 0x00
/* Same as CPP_DL_WARNING, except it is not suppressed in system headers. */
#define CPP_DL_WARNING_SYSHDR 0x01
/* Warning, an error with -pedantic-errors or -Werror. */
#define CPP_DL_PEDWARN 0x02
/* An error. */
#define CPP_DL_ERROR 0x03
/* An internal consistency check failed. Prints "internal error: ",
otherwise the same as CPP_DL_ERROR. */
#define CPP_DL_ICE 0x04
/* Extracts a diagnostic level from an int. */
#define CPP_DL_EXTRACT(l) (l & 0xf)
/* Nonzero if a diagnostic level is one of the warnings. */
#define CPP_DL_WARNING_P(l) (CPP_DL_EXTRACT (l) >= CPP_DL_WARNING \
&& CPP_DL_EXTRACT (l) <= CPP_DL_PEDWARN)
/* N.B. The error-message-printer prototypes have not been nicely
formatted because exgettext needs to see 'msgid' on the same line
as the name of the function in order to work properly. Only the
string argument gets a name in an effort to keep the lines from
getting ridiculously oversized. */
/* Output a diagnostic of some kind. */
extern void cpp_error (cpp_reader *, int, const char *msgid, ...)
ATTRIBUTE_PRINTF_3;
/* Output a diagnostic with "MSGID: " preceding the
error string of errno. No location is printed. */
extern void cpp_errno (cpp_reader *, int, const char *msgid);
/* Same as cpp_error, except additionally specifies a position as a
(translation unit) physical line and physical column. If the line is
zero, then no location is printed. */
extern void cpp_error_with_line (cpp_reader *, int, source_location, unsigned,
const char *msgid, ...) ATTRIBUTE_PRINTF_5;
/* In cpplex.c */
extern int cpp_ideq (const cpp_token *, const char *);
extern void cpp_output_line (cpp_reader *, FILE *);
extern void cpp_output_token (const cpp_token *, FILE *);
extern const char *cpp_type2name (enum cpp_ttype);
/* Returns the value of an escape sequence, truncated to the correct
target precision. PSTR points to the input pointer, which is just
after the backslash. LIMIT is how much text we have. WIDE is true
if the escape sequence is part of a wide character constant or
string literal. Handles all relevant diagnostics. */
extern cppchar_t cpp_parse_escape (cpp_reader *, const unsigned char ** pstr,
const unsigned char *limit, int wide);
/* In cpphash.c */
/* Lookup an identifier in the hashtable. Puts the identifier in the
table if it is not already there. */
extern cpp_hashnode *cpp_lookup (cpp_reader *, const unsigned char *,
unsigned int);
typedef int (*cpp_cb) (cpp_reader *, cpp_hashnode *, void *);
extern void cpp_forall_identifiers (cpp_reader *, cpp_cb, void *);
/* In cppmacro.c */
extern void cpp_scan_nooutput (cpp_reader *);
extern int cpp_sys_macro_p (cpp_reader *);
extern unsigned char *cpp_quote_string (unsigned char *, const unsigned char *,
unsigned int);
/* In cppfiles.c */
extern bool cpp_included (cpp_reader *, const char *);
extern void cpp_make_system_header (cpp_reader *, int, int);
extern bool cpp_push_include (cpp_reader *, const char *);
extern void cpp_change_file (cpp_reader *, enum lc_reason, const char *);
extern const char *cpp_get_path (struct _cpp_file *);
extern cpp_dir *cpp_get_dir (struct _cpp_file *);
extern cpp_buffer *cpp_get_buffer (cpp_reader *);
extern struct _cpp_file *cpp_get_file (cpp_buffer *);
extern cpp_buffer *cpp_get_prev (cpp_buffer *);
/* In cpppch.c */
struct save_macro_data;
extern int cpp_save_state (cpp_reader *, FILE *);
extern int cpp_write_pch_deps (cpp_reader *, FILE *);
extern int cpp_write_pch_state (cpp_reader *, FILE *);
extern int cpp_valid_state (cpp_reader *, const char *, int);
extern void cpp_prepare_state (cpp_reader *, struct save_macro_data **);
extern int cpp_read_state (cpp_reader *, const char *, FILE *,
struct save_macro_data *);
#ifdef __cplusplus
}
#endif
#endif /* ! LIBCPP_CPPLIB_H */

182
libcpp/include/line-map.h Normal file
View File

@@ -0,0 +1,182 @@
/* Map logical line numbers to (source file, line number) pairs.
Copyright (C) 2001, 2003, 2004
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
In other words, you are welcome to use, share and improve this program.
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding! */
#ifndef LIBCPP_LINE_MAP_H
#define LIBCPP_LINE_MAP_H
/* Reason for adding a line change with add_line_map (). LC_ENTER is
when including a new file, e.g. a #include directive in C.
LC_LEAVE is when reaching a file's end. LC_RENAME is when a file
name or line number changes for neither of the above reasons
(e.g. a #line directive in C). */
enum lc_reason {LC_ENTER = 0, LC_LEAVE, LC_RENAME};
/* A logical line/column number, i.e. an "index" into a line_map. */
/* Long-term, we want to use this to replace struct location_s (in input.h),
and effectively typedef source_location location_t. */
typedef unsigned int source_location;
typedef source_location fileline; /* deprecated name */
/* Physical source file TO_FILE at line TO_LINE at column 0 is represented
by the logical START_LOCATION. TO_LINE+L at column C is represented by
START_LOCATION+(L*(1<<column_bits))+C, as long as C<(1<<column_bits),
and the result_location is less than the next line_map's start_location.
(The top line is line 1 and the leftmost column is column 1; line/column 0
means "entire file/line" or "unknown line/column" or "not applicable".)
INCLUDED_FROM is an index into the set that gives the line mapping
at whose end the current one was included. File(s) at the bottom
of the include stack have this set to -1. REASON is the reason for
creation of this line map, SYSP is one for a system header, two for
a C system header file that therefore needs to be extern "C"
protected in C++, and zero otherwise. */
struct line_map
{
const char *to_file;
unsigned int to_line;
source_location start_location;
int included_from;
ENUM_BITFIELD (lc_reason) reason : CHAR_BIT;
/* The sysp field isn't really needed now that it's in cpp_buffer. */
unsigned char sysp;
/* Number of the low-order source_location bits used for a column number. */
unsigned int column_bits : 8;
};
/* A set of chronological line_map structures. */
struct line_maps
{
struct line_map *maps;
unsigned int allocated;
unsigned int used;
unsigned int cache;
/* The most recently listed include stack, if any, starts with
LAST_LISTED as the topmost including file. -1 indicates nothing
has been listed yet. */
int last_listed;
/* Depth of the include stack, including the current file. */
unsigned int depth;
/* If true, prints an include trace a la -H. */
bool trace_includes;
/* Highest source_location "given out". */
source_location highest_location;
/* Start of line of highest source_location "given out". */
source_location highest_line;
/* The maximum column number we can quickly allocate. Higher numbers
may require allocating a new line_map. */
unsigned int max_column_hint;
};
/* Initialize a line map set. */
extern void linemap_init (struct line_maps *);
/* Free a line map set. */
extern void linemap_free (struct line_maps *);
/* Check for and warn about line_maps entered but not exited. */
extern void linemap_check_files_exited (struct line_maps *);
/* Return a source_location for the start (i.e. column==0) of
(physical) line TO_LINE in the current source file (as in the
most recent linemap_add). MAX_COLUMN_HINT is the highest column
number we expect to use in this line (but it does not change
the highest_location). */
extern source_location linemap_line_start
(struct line_maps *, unsigned int, unsigned int);
/* Add a mapping of logical source line to physical source file and
line number.
The text pointed to by TO_FILE must have a lifetime
at least as long as the final call to lookup_line (). An empty
TO_FILE means standard input. If reason is LC_LEAVE, and
TO_FILE is NULL, then TO_FILE, TO_LINE and SYSP are given their
natural values considering the file we are returning to.
START_LOCATION should be monotonic increasing across calls to this
function. A call to this function can relocate the previous set of
maps, so any stored line_map pointers should not be used. */
extern const struct line_map *linemap_add
(struct line_maps *, enum lc_reason, unsigned int sysp,
const char *to_file, unsigned int to_line);
/* Given a logical line, returns the map from which the corresponding
(source file, line) pair can be deduced. */
extern const struct line_map *linemap_lookup
(struct line_maps *, source_location);
/* Print the file names and line numbers of the #include commands
which led to the map MAP, if any, to stderr. Nothing is output if
the most recently listed stack is the same as the current one. */
extern void linemap_print_containing_files (struct line_maps *,
const struct line_map *);
/* Converts a map and a source_location to source line. */
#define SOURCE_LINE(MAP, LINE) \
((((LINE) - (MAP)->start_location) >> (MAP)->column_bits) + (MAP)->to_line)
#define SOURCE_COLUMN(MAP, LINE) \
(((LINE) - (MAP)->start_location) & ((1 << (MAP)->column_bits) - 1))
/* Returns the last source line within a map. This is the (last) line
of the #include, or other directive, that caused a map change. */
#define LAST_SOURCE_LINE(MAP) \
SOURCE_LINE (MAP, LAST_SOURCE_LINE_LOCATION (MAP))
#define LAST_SOURCE_LINE_LOCATION(MAP) \
((((MAP)[1].start_location - 1 - (MAP)->start_location) \
& ~((1 << (MAP)->column_bits) - 1)) \
+ (MAP)->start_location)
/* Returns the map a given map was included from. */
#define INCLUDED_FROM(SET, MAP) (&(SET)->maps[(MAP)->included_from])
/* Nonzero if the map is at the bottom of the include stack. */
#define MAIN_FILE_P(MAP) ((MAP)->included_from < 0)
/* Set LOC to a source position that is the same line as the most recent
linemap_line_start, but with the specified TO_COLUMN column number. */
#define LINEMAP_POSITION_FOR_COLUMN(LOC, SET, TO_COLUMN) { \
unsigned int to_column = (TO_COLUMN); \
struct line_maps *set = (SET); \
if (__builtin_expect (to_column >= set->max_column_hint, 0)) \
(LOC) = linemap_position_for_column (set, to_column); \
else { \
source_location r = set->highest_line; \
r = r + to_column; \
if (r >= set->highest_location) \
set->highest_location = r; \
(LOC) = r; \
}}
extern source_location
linemap_position_for_column (struct line_maps *set, unsigned int to_column);
#endif /* !LIBCPP_LINE_MAP_H */

72
libcpp/include/mkdeps.h Normal file
View File

@@ -0,0 +1,72 @@
/* Dependency generator for Makefile fragments.
Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
Contributed by Zack Weinberg, Mar 2000
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
In other words, you are welcome to use, share and improve this program.
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding! */
#ifndef LIBCPP_MKDEPS_H
#define LIBCPP_MKDEPS_H
/* This is the data structure used by all the functions in mkdeps.c.
It's quite straightforward, but should be treated as opaque. */
struct deps;
/* Create a deps buffer. */
extern struct deps *deps_init (void);
/* Destroy a deps buffer. */
extern void deps_free (struct deps *);
/* Add a target (appears on left side of the colon) to the deps list. Takes
a boolean indicating whether to quote the target for MAKE. */
extern void deps_add_target (struct deps *, const char *, int);
/* Sets the default target if none has been given already. An empty
string as the default target is interpreted as stdin. */
extern void deps_add_default_target (struct deps *, const char *);
/* Add a dependency (appears on the right side of the colon) to the
deps list. Dependencies will be printed in the order that they
were entered with this function. By convention, the first
dependency entered should be the primary source file. */
extern void deps_add_dep (struct deps *, const char *);
/* Write out a deps buffer to a specified file. The third argument
is the number of columns to word-wrap at (0 means don't wrap). */
extern void deps_write (const struct deps *, FILE *, unsigned int);
/* Write out a deps buffer to a file, in a form that can be read back
with deps_restore. Returns nonzero on error, in which case the
error number will be in errno. */
extern int deps_save (struct deps *, FILE *);
/* Read back dependency information written with deps_save into
the deps buffer. The third argument may be NULL, in which case
the dependency information is just skipped, or it may be a filename,
in which case that filename is skipped. */
extern int deps_restore (struct deps *, FILE *, const char *);
/* For each dependency *except the first*, emit a dummy rule for that
file, causing it to depend on nothing. This is used to work around
the intermediate-file deletion misfeature in Make, in some
automatic dependency schemes. */
extern void deps_phony_targets (const struct deps *, FILE *);
#endif /* ! LIBCPP_MKDEPS_H */

81
libcpp/include/symtab.h Normal file
View File

@@ -0,0 +1,81 @@
/* Hash tables.
Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef LIBCPP_SYMTAB_H
#define LIBCPP_SYMTAB_H
#include "obstack.h"
#define GTY(x) /* nothing */
/* This is what each hash table entry points to. It may be embedded
deeply within another object. */
typedef struct ht_identifier ht_identifier;
struct ht_identifier GTY(())
{
const unsigned char *str;
unsigned int len;
unsigned int hash_value;
};
#define HT_LEN(NODE) ((NODE)->len)
#define HT_STR(NODE) ((NODE)->str)
typedef struct ht hash_table;
typedef struct ht_identifier *hashnode;
enum ht_lookup_option {HT_NO_INSERT = 0, HT_ALLOC, HT_ALLOCED};
/* An identifier hash table for cpplib and the front ends. */
struct ht
{
/* Identifiers are allocated from here. */
struct obstack stack;
hashnode *entries;
/* Call back. */
hashnode (*alloc_node) (hash_table *);
unsigned int nslots; /* Total slots in the entries array. */
unsigned int nelements; /* Number of live elements. */
/* Link to reader, if any. For the benefit of cpplib. */
struct cpp_reader *pfile;
/* Table usage statistics. */
unsigned int searches;
unsigned int collisions;
};
/* Initialize the hashtable with 2 ^ order entries. */
extern hash_table *ht_create (unsigned int order);
/* Frees all memory associated with a hash table. */
extern void ht_destroy (hash_table *);
extern hashnode ht_lookup (hash_table *, const unsigned char *,
size_t, enum ht_lookup_option);
/* For all nodes in TABLE, make a callback. The callback takes
TABLE->PFILE, the node, and a PTR, and the callback sequence stops
if the callback returns zero. */
typedef int (*ht_cb) (struct cpp_reader *, hashnode, const void *);
extern void ht_forall (hash_table *, ht_cb, const void *);
/* Dump allocation statistics to stderr. */
extern void ht_dump_statistics (hash_table *);
#endif /* LIBCPP_SYMTAB_H */

631
libcpp/init.c Normal file
View File

@@ -0,0 +1,631 @@
/* CPP Library.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Per Bothner, 1994-95.
Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "config.h"
#include "system.h"
#include "cpplib.h"
#include "internal.h"
#include "mkdeps.h"
static void init_library (void);
static void mark_named_operators (cpp_reader *);
static void read_original_filename (cpp_reader *);
static void read_original_directory (cpp_reader *);
static void post_options (cpp_reader *);
/* If we have designated initializers (GCC >2.7) these tables can be
initialized, constant data. Otherwise, they have to be filled in at
runtime. */
#if HAVE_DESIGNATED_INITIALIZERS
#define init_trigraph_map() /* Nothing. */
#define TRIGRAPH_MAP \
__extension__ const uchar _cpp_trigraph_map[UCHAR_MAX + 1] = {
#define END };
#define s(p, v) [p] = v,
#else
#define TRIGRAPH_MAP uchar _cpp_trigraph_map[UCHAR_MAX + 1] = { 0 }; \
static void init_trigraph_map (void) { \
unsigned char *x = _cpp_trigraph_map;
#define END }
#define s(p, v) x[p] = v;
#endif
TRIGRAPH_MAP
s('=', '#') s(')', ']') s('!', '|')
s('(', '[') s('\'', '^') s('>', '}')
s('/', '\\') s('<', '{') s('-', '~')
END
#undef s
#undef END
#undef TRIGRAPH_MAP
/* A set of booleans indicating what CPP features each source language
requires. */
struct lang_flags
{
char c99;
char cplusplus;
char extended_numbers;
char std;
char cplusplus_comments;
char digraphs;
};
static const struct lang_flags lang_defaults[] =
{ /* c99 c++ xnum std // digr */
/* GNUC89 */ { 0, 0, 1, 0, 1, 1 },
/* GNUC99 */ { 1, 0, 1, 0, 1, 1 },
/* STDC89 */ { 0, 0, 0, 1, 0, 0 },
/* STDC94 */ { 0, 0, 0, 1, 0, 1 },
/* STDC99 */ { 1, 0, 1, 1, 1, 1 },
/* GNUCXX */ { 0, 1, 1, 0, 1, 1 },
/* CXX98 */ { 0, 1, 1, 1, 1, 1 },
/* ASM */ { 0, 0, 1, 0, 1, 0 }
};
/* Sets internal flags correctly for a given language. */
void
cpp_set_lang (cpp_reader *pfile, enum c_lang lang)
{
const struct lang_flags *l = &lang_defaults[(int) lang];
CPP_OPTION (pfile, lang) = lang;
CPP_OPTION (pfile, c99) = l->c99;
CPP_OPTION (pfile, cplusplus) = l->cplusplus;
CPP_OPTION (pfile, extended_numbers) = l->extended_numbers;
CPP_OPTION (pfile, std) = l->std;
CPP_OPTION (pfile, trigraphs) = l->std;
CPP_OPTION (pfile, cplusplus_comments) = l->cplusplus_comments;
CPP_OPTION (pfile, digraphs) = l->digraphs;
}
/* Initialize library global state. */
static void
init_library (void)
{
static int initialized = 0;
if (! initialized)
{
initialized = 1;
/* Set up the trigraph map. This doesn't need to do anything if
we were compiled with a compiler that supports C99 designated
initializers. */
init_trigraph_map ();
#ifdef ENABLE_NLS
(void) bindtextdomain ("gcc", LOCALEDIR);
#endif
}
}
/* Initialize a cpp_reader structure. */
cpp_reader *
cpp_create_reader (enum c_lang lang, hash_table *table,
struct line_maps *line_table)
{
cpp_reader *pfile;
/* Initialize this instance of the library if it hasn't been already. */
init_library ();
pfile = xcalloc (1, sizeof (cpp_reader));
cpp_set_lang (pfile, lang);
CPP_OPTION (pfile, warn_multichar) = 1;
CPP_OPTION (pfile, discard_comments) = 1;
CPP_OPTION (pfile, discard_comments_in_macro_exp) = 1;
CPP_OPTION (pfile, show_column) = 1;
CPP_OPTION (pfile, tabstop) = 8;
CPP_OPTION (pfile, operator_names) = 1;
CPP_OPTION (pfile, warn_trigraphs) = 2;
CPP_OPTION (pfile, warn_endif_labels) = 1;
CPP_OPTION (pfile, warn_deprecated) = 1;
CPP_OPTION (pfile, warn_long_long) = !CPP_OPTION (pfile, c99);
CPP_OPTION (pfile, dollars_in_ident) = 1;
CPP_OPTION (pfile, warn_dollars) = 1;
CPP_OPTION (pfile, warn_variadic_macros) = 1;
/* Default CPP arithmetic to something sensible for the host for the
benefit of dumb users like fix-header. */
CPP_OPTION (pfile, precision) = CHAR_BIT * sizeof (long);
CPP_OPTION (pfile, char_precision) = CHAR_BIT;
CPP_OPTION (pfile, wchar_precision) = CHAR_BIT * sizeof (int);
CPP_OPTION (pfile, int_precision) = CHAR_BIT * sizeof (int);
CPP_OPTION (pfile, unsigned_char) = 0;
CPP_OPTION (pfile, unsigned_wchar) = 1;
CPP_OPTION (pfile, bytes_big_endian) = 1; /* does not matter */
/* Default to no charset conversion. */
CPP_OPTION (pfile, narrow_charset) = _cpp_default_encoding ();
CPP_OPTION (pfile, wide_charset) = 0;
/* Default the input character set to UTF-8. */
CPP_OPTION (pfile, input_charset) = _cpp_default_encoding ();
/* A fake empty "directory" used as the starting point for files
looked up without a search path. Name cannot be '/' because we
don't want to prepend anything at all to filenames using it. All
other entries are correct zero-initialized. */
pfile->no_search_path.name = (char *) "";
/* Initialize the line map. */
pfile->line_table = line_table;
/* Initialize lexer state. */
pfile->state.save_comments = ! CPP_OPTION (pfile, discard_comments);
/* Set up static tokens. */
pfile->avoid_paste.type = CPP_PADDING;
pfile->avoid_paste.val.source = NULL;
pfile->eof.type = CPP_EOF;
pfile->eof.flags = 0;
/* Create a token buffer for the lexer. */
_cpp_init_tokenrun (&pfile->base_run, 250);
pfile->cur_run = &pfile->base_run;
pfile->cur_token = pfile->base_run.base;
/* Initialize the base context. */
pfile->context = &pfile->base_context;
pfile->base_context.macro = 0;
pfile->base_context.prev = pfile->base_context.next = 0;
/* Aligned and unaligned storage. */
pfile->a_buff = _cpp_get_buff (pfile, 0);
pfile->u_buff = _cpp_get_buff (pfile, 0);
/* The expression parser stack. */
_cpp_expand_op_stack (pfile);
/* Initialize the buffer obstack. */
_obstack_begin (&pfile->buffer_ob, 0, 0,
(void *(*) (long)) xmalloc,
(void (*) (void *)) free);
_cpp_init_files (pfile);
_cpp_init_hashtable (pfile, table);
return pfile;
}
/* Free resources used by PFILE. Accessing PFILE after this function
returns leads to undefined behavior. Returns the error count. */
void
cpp_destroy (cpp_reader *pfile)
{
cpp_context *context, *contextn;
tokenrun *run, *runn;
free (pfile->op_stack);
while (CPP_BUFFER (pfile) != NULL)
_cpp_pop_buffer (pfile);
if (pfile->out.base)
free (pfile->out.base);
if (pfile->macro_buffer)
{
free (pfile->macro_buffer);
pfile->macro_buffer = NULL;
pfile->macro_buffer_len = 0;
}
if (pfile->deps)
deps_free (pfile->deps);
obstack_free (&pfile->buffer_ob, 0);
_cpp_destroy_hashtable (pfile);
_cpp_cleanup_files (pfile);
_cpp_destroy_iconv (pfile);
_cpp_free_buff (pfile->a_buff);
_cpp_free_buff (pfile->u_buff);
_cpp_free_buff (pfile->free_buffs);
for (run = &pfile->base_run; run; run = runn)
{
runn = run->next;
free (run->base);
if (run != &pfile->base_run)
free (run);
}
for (context = pfile->base_context.next; context; context = contextn)
{
contextn = context->next;
free (context);
}
free (pfile);
}
/* This structure defines one built-in identifier. A node will be
entered in the hash table under the name NAME, with value VALUE.
There are two tables of these. builtin_array holds all the
"builtin" macros: these are handled by builtin_macro() in
cppmacro.c. Builtin is somewhat of a misnomer -- the property of
interest is that these macros require special code to compute their
expansions. The value is a "builtin_type" enumerator.
operator_array holds the C++ named operators. These are keywords
which act as aliases for punctuators. In C++, they cannot be
altered through #define, and #if recognizes them as operators. In
C, these are not entered into the hash table at all (but see
<iso646.h>). The value is a token-type enumerator. */
struct builtin
{
const uchar *name;
unsigned short len;
unsigned short value;
};
#define B(n, t) { DSC(n), t }
static const struct builtin builtin_array[] =
{
B("__TIME__", BT_TIME),
B("__DATE__", BT_DATE),
B("__FILE__", BT_FILE),
B("__BASE_FILE__", BT_BASE_FILE),
B("__LINE__", BT_SPECLINE),
B("__INCLUDE_LEVEL__", BT_INCLUDE_LEVEL),
/* Keep builtins not used for -traditional-cpp at the end, and
update init_builtins() if any more are added. */
B("_Pragma", BT_PRAGMA),
B("__STDC__", BT_STDC),
};
static const struct builtin operator_array[] =
{
B("and", CPP_AND_AND),
B("and_eq", CPP_AND_EQ),
B("bitand", CPP_AND),
B("bitor", CPP_OR),
B("compl", CPP_COMPL),
B("not", CPP_NOT),
B("not_eq", CPP_NOT_EQ),
B("or", CPP_OR_OR),
B("or_eq", CPP_OR_EQ),
B("xor", CPP_XOR),
B("xor_eq", CPP_XOR_EQ)
};
#undef B
/* Mark the C++ named operators in the hash table. */
static void
mark_named_operators (cpp_reader *pfile)
{
const struct builtin *b;
for (b = operator_array;
b < (operator_array + ARRAY_SIZE (operator_array));
b++)
{
cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len);
hp->flags |= NODE_OPERATOR;
hp->is_directive = 0;
hp->directive_index = b->value;
}
}
/* Read the builtins table above and enter them, and language-specific
macros, into the hash table. HOSTED is true if this is a hosted
environment. */
void
cpp_init_builtins (cpp_reader *pfile, int hosted)
{
const struct builtin *b;
size_t n = ARRAY_SIZE (builtin_array);
if (CPP_OPTION (pfile, traditional))
n -= 2;
for(b = builtin_array; b < builtin_array + n; b++)
{
cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len);
hp->type = NT_MACRO;
hp->flags |= NODE_BUILTIN | NODE_WARN;
hp->value.builtin = b->value;
}
if (CPP_OPTION (pfile, cplusplus))
_cpp_define_builtin (pfile, "__cplusplus 1");
else if (CPP_OPTION (pfile, lang) == CLK_ASM)
_cpp_define_builtin (pfile, "__ASSEMBLER__ 1");
else if (CPP_OPTION (pfile, lang) == CLK_STDC94)
_cpp_define_builtin (pfile, "__STDC_VERSION__ 199409L");
else if (CPP_OPTION (pfile, c99))
_cpp_define_builtin (pfile, "__STDC_VERSION__ 199901L");
if (hosted)
_cpp_define_builtin (pfile, "__STDC_HOSTED__ 1");
else
_cpp_define_builtin (pfile, "__STDC_HOSTED__ 0");
if (CPP_OPTION (pfile, objc))
_cpp_define_builtin (pfile, "__OBJC__ 1");
}
/* Sanity-checks are dependent on command-line options, so it is
called as a subroutine of cpp_read_main_file (). */
#if ENABLE_CHECKING
static void sanity_checks (cpp_reader *);
static void sanity_checks (cpp_reader *pfile)
{
cppchar_t test = 0;
size_t max_precision = 2 * CHAR_BIT * sizeof (cpp_num_part);
/* Sanity checks for assumptions about CPP arithmetic and target
type precisions made by cpplib. */
test--;
if (test < 1)
cpp_error (pfile, CPP_DL_ICE, "cppchar_t must be an unsigned type");
if (CPP_OPTION (pfile, precision) > max_precision)
cpp_error (pfile, CPP_DL_ICE,
"preprocessor arithmetic has maximum precision of %lu bits;"
" target requires %lu bits",
(unsigned long) max_precision,
(unsigned long) CPP_OPTION (pfile, precision));
if (CPP_OPTION (pfile, precision) < CPP_OPTION (pfile, int_precision))
cpp_error (pfile, CPP_DL_ICE,
"CPP arithmetic must be at least as precise as a target int");
if (CPP_OPTION (pfile, char_precision) < 8)
cpp_error (pfile, CPP_DL_ICE, "target char is less than 8 bits wide");
if (CPP_OPTION (pfile, wchar_precision) < CPP_OPTION (pfile, char_precision))
cpp_error (pfile, CPP_DL_ICE,
"target wchar_t is narrower than target char");
if (CPP_OPTION (pfile, int_precision) < CPP_OPTION (pfile, char_precision))
cpp_error (pfile, CPP_DL_ICE,
"target int is narrower than target char");
/* This is assumed in eval_token() and could be fixed if necessary. */
if (sizeof (cppchar_t) > sizeof (cpp_num_part))
cpp_error (pfile, CPP_DL_ICE,
"CPP half-integer narrower than CPP character");
if (CPP_OPTION (pfile, wchar_precision) > BITS_PER_CPPCHAR_T)
cpp_error (pfile, CPP_DL_ICE,
"CPP on this host cannot handle wide character constants over"
" %lu bits, but the target requires %lu bits",
(unsigned long) BITS_PER_CPPCHAR_T,
(unsigned long) CPP_OPTION (pfile, wchar_precision));
}
#else
# define sanity_checks(PFILE)
#endif
/* Add a dependency target. Can be called any number of times before
cpp_read_main_file(). If no targets have been added before
cpp_read_main_file(), then the default target is used. */
void
cpp_add_dependency_target (cpp_reader *pfile, const char *target, int quote)
{
if (!pfile->deps)
pfile->deps = deps_init ();
deps_add_target (pfile->deps, target, quote);
}
/* This is called after options have been parsed, and partially
processed. */
void
cpp_post_options (cpp_reader *pfile)
{
sanity_checks (pfile);
post_options (pfile);
/* Mark named operators before handling command line macros. */
if (CPP_OPTION (pfile, cplusplus) && CPP_OPTION (pfile, operator_names))
mark_named_operators (pfile);
}
/* Setup for processing input from the file named FNAME, or stdin if
it is the empty string. Return the original filename
on success (e.g. foo.i->foo.c), or NULL on failure. */
const char *
cpp_read_main_file (cpp_reader *pfile, const char *fname)
{
if (CPP_OPTION (pfile, deps.style) != DEPS_NONE)
{
if (!pfile->deps)
pfile->deps = deps_init ();
/* Set the default target (if there is none already). */
deps_add_default_target (pfile->deps, fname);
}
pfile->main_file
= _cpp_find_file (pfile, fname, &pfile->no_search_path, false);
if (_cpp_find_failed (pfile->main_file))
return NULL;
_cpp_stack_file (pfile, pfile->main_file, false);
/* For foo.i, read the original filename foo.c now, for the benefit
of the front ends. */
if (CPP_OPTION (pfile, preprocessed))
{
read_original_filename (pfile);
fname = pfile->line_table->maps[pfile->line_table->used-1].to_file;
}
return fname;
}
/* For preprocessed files, if the first tokens are of the form # NUM.
handle the directive so we know the original file name. This will
generate file_change callbacks, which the front ends must handle
appropriately given their state of initialization. */
static void
read_original_filename (cpp_reader *pfile)
{
const cpp_token *token, *token1;
/* Lex ahead; if the first tokens are of the form # NUM, then
process the directive, otherwise back up. */
token = _cpp_lex_direct (pfile);
if (token->type == CPP_HASH)
{
token1 = _cpp_lex_direct (pfile);
_cpp_backup_tokens (pfile, 1);
/* If it's a #line directive, handle it. */
if (token1->type == CPP_NUMBER)
{
_cpp_handle_directive (pfile, token->flags & PREV_WHITE);
read_original_directory (pfile);
return;
}
}
/* Backup as if nothing happened. */
_cpp_backup_tokens (pfile, 1);
}
/* For preprocessed files, if the tokens following the first filename
line is of the form # <line> "/path/name//", handle the
directive so we know the original current directory. */
static void
read_original_directory (cpp_reader *pfile)
{
const cpp_token *hash, *token;
/* Lex ahead; if the first tokens are of the form # NUM, then
process the directive, otherwise back up. */
hash = _cpp_lex_direct (pfile);
if (hash->type != CPP_HASH)
{
_cpp_backup_tokens (pfile, 1);
return;
}
token = _cpp_lex_direct (pfile);
if (token->type != CPP_NUMBER)
{
_cpp_backup_tokens (pfile, 2);
return;
}
token = _cpp_lex_direct (pfile);
if (token->type != CPP_STRING
|| ! (token->val.str.len >= 5
&& token->val.str.text[token->val.str.len-2] == '/'
&& token->val.str.text[token->val.str.len-3] == '/'))
{
_cpp_backup_tokens (pfile, 3);
return;
}
if (pfile->cb.dir_change)
{
char *debugdir = alloca (token->val.str.len - 3);
memcpy (debugdir, (const char *) token->val.str.text + 1,
token->val.str.len - 4);
debugdir[token->val.str.len - 4] = '\0';
pfile->cb.dir_change (pfile, debugdir);
}
}
/* This is called at the end of preprocessing. It pops the last
buffer and writes dependency output, and returns the number of
errors.
Maybe it should also reset state, such that you could call
cpp_start_read with a new filename to restart processing. */
int
cpp_finish (cpp_reader *pfile, FILE *deps_stream)
{
/* Warn about unused macros before popping the final buffer. */
if (CPP_OPTION (pfile, warn_unused_macros))
cpp_forall_identifiers (pfile, _cpp_warn_if_unused_macro, NULL);
/* cpplex.c leaves the final buffer on the stack. This it so that
it returns an unending stream of CPP_EOFs to the client. If we
popped the buffer, we'd dereference a NULL buffer pointer and
segfault. It's nice to allow the client to do worry-free excess
cpp_get_token calls. */
while (pfile->buffer)
_cpp_pop_buffer (pfile);
/* Don't write the deps file if there are errors. */
if (CPP_OPTION (pfile, deps.style) != DEPS_NONE
&& deps_stream && pfile->errors == 0)
{
deps_write (pfile->deps, deps_stream, 72);
if (CPP_OPTION (pfile, deps.phony_targets))
deps_phony_targets (pfile->deps, deps_stream);
}
/* Report on headers that could use multiple include guards. */
if (CPP_OPTION (pfile, print_include_names))
_cpp_report_missing_guards (pfile);
return pfile->errors;
}
static void
post_options (cpp_reader *pfile)
{
/* -Wtraditional is not useful in C++ mode. */
if (CPP_OPTION (pfile, cplusplus))
CPP_OPTION (pfile, warn_traditional) = 0;
/* Permanently disable macro expansion if we are rescanning
preprocessed text. Read preprocesed source in ISO mode. */
if (CPP_OPTION (pfile, preprocessed))
{
pfile->state.prevent_expansion = 1;
CPP_OPTION (pfile, traditional) = 0;
}
if (CPP_OPTION (pfile, warn_trigraphs) == 2)
CPP_OPTION (pfile, warn_trigraphs) = !CPP_OPTION (pfile, trigraphs);
if (CPP_OPTION (pfile, traditional))
{
/* Traditional CPP does not accurately track column information. */
CPP_OPTION (pfile, show_column) = 0;
CPP_OPTION (pfile, trigraphs) = 0;
CPP_OPTION (pfile, warn_trigraphs) = 0;
}
}

651
libcpp/internal.h Normal file
View File

@@ -0,0 +1,651 @@
/* Part of CPP library.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* This header defines all the internal data structures and functions
that need to be visible across files. It should not be used outside
cpplib. */
#ifndef LIBCPP_INTERNAL_H
#define LIBCPP_INTERNAL_H
#include "symtab.h"
#if defined HAVE_ICONV_H && defined HAVE_ICONV
#include <iconv.h>
#else
#define HAVE_ICONV 0
typedef int iconv_t; /* dummy */
#endif
struct directive; /* Deliberately incomplete. */
struct pending_option;
struct op;
struct _cpp_strbuf;
typedef bool (*convert_f) (iconv_t, const unsigned char *, size_t,
struct _cpp_strbuf *);
struct cset_converter
{
convert_f func;
iconv_t cd;
};
#ifndef HAVE_UCHAR
typedef unsigned char uchar;
#endif
#define U (const uchar *) /* Intended use: U"string" */
#define BITS_PER_CPPCHAR_T (CHAR_BIT * sizeof (cppchar_t))
/* Test if a sign is valid within a preprocessing number. */
#define VALID_SIGN(c, prevc) \
(((c) == '+' || (c) == '-') && \
((prevc) == 'e' || (prevc) == 'E' \
|| (((prevc) == 'p' || (prevc) == 'P') \
&& CPP_OPTION (pfile, extended_numbers))))
#define CPP_OPTION(PFILE, OPTION) ((PFILE)->opts.OPTION)
#define CPP_BUFFER(PFILE) ((PFILE)->buffer)
#define CPP_BUF_COLUMN(BUF, CUR) ((CUR) - (BUF)->line_base)
#define CPP_BUF_COL(BUF) CPP_BUF_COLUMN(BUF, (BUF)->cur)
#define CPP_INCREMENT_LINE(PFILE, COLS_HINT) do { \
const struct line_maps *line_table = PFILE->line_table; \
const struct line_map *map = &line_table->maps[line_table->used-1]; \
unsigned int line = SOURCE_LINE (map, line_table->highest_line); \
linemap_line_start (PFILE->line_table, line + 1, COLS_HINT); \
} while (0)
/* Maximum nesting of cpp_buffers. We use a static limit, partly for
efficiency, and partly to limit runaway recursion. */
#define CPP_STACK_MAX 200
/* Host alignment handling. */
struct dummy
{
char c;
union
{
double d;
int *p;
} u;
};
#define DEFAULT_ALIGNMENT offsetof (struct dummy, u)
#define CPP_ALIGN2(size, align) (((size) + ((align) - 1)) & ~((align) - 1))
#define CPP_ALIGN(size) CPP_ALIGN2 (size, DEFAULT_ALIGNMENT)
/* Each macro definition is recorded in a cpp_macro structure.
Variadic macros cannot occur with traditional cpp. */
struct cpp_macro
{
/* Parameters, if any. */
cpp_hashnode **params;
/* Replacement tokens (ISO) or replacement text (traditional). See
comment at top of cpptrad.c for how traditional function-like
macros are encoded. */
union
{
cpp_token *tokens;
const uchar *text;
} exp;
/* Definition line number. */
fileline line;
/* Number of tokens in expansion, or bytes for traditional macros. */
unsigned int count;
/* Number of parameters. */
unsigned short paramc;
/* If a function-like macro. */
unsigned int fun_like : 1;
/* If a variadic macro. */
unsigned int variadic : 1;
/* If macro defined in system header. */
unsigned int syshdr : 1;
/* Nonzero if it has been expanded or had its existence tested. */
unsigned int used : 1;
};
#define _cpp_mark_macro_used(NODE) do { \
if ((NODE)->type == NT_MACRO && !((NODE)->flags & NODE_BUILTIN)) \
(NODE)->value.macro->used = 1; } while (0)
/* A generic memory buffer, and operations on it. */
typedef struct _cpp_buff _cpp_buff;
struct _cpp_buff
{
struct _cpp_buff *next;
unsigned char *base, *cur, *limit;
};
extern _cpp_buff *_cpp_get_buff (cpp_reader *, size_t);
extern void _cpp_release_buff (cpp_reader *, _cpp_buff *);
extern void _cpp_extend_buff (cpp_reader *, _cpp_buff **, size_t);
extern _cpp_buff *_cpp_append_extend_buff (cpp_reader *, _cpp_buff *, size_t);
extern void _cpp_free_buff (_cpp_buff *);
extern unsigned char *_cpp_aligned_alloc (cpp_reader *, size_t);
extern unsigned char *_cpp_unaligned_alloc (cpp_reader *, size_t);
#define BUFF_ROOM(BUFF) (size_t) ((BUFF)->limit - (BUFF)->cur)
#define BUFF_FRONT(BUFF) ((BUFF)->cur)
#define BUFF_LIMIT(BUFF) ((BUFF)->limit)
/* #include types. */
enum include_type {IT_INCLUDE, IT_INCLUDE_NEXT, IT_IMPORT, IT_CMDLINE};
union utoken
{
const cpp_token *token;
const cpp_token **ptoken;
};
/* A "run" of tokens; part of a chain of runs. */
typedef struct tokenrun tokenrun;
struct tokenrun
{
tokenrun *next, *prev;
cpp_token *base, *limit;
};
/* Accessor macros for struct cpp_context. */
#define FIRST(c) ((c)->u.iso.first)
#define LAST(c) ((c)->u.iso.last)
#define CUR(c) ((c)->u.trad.cur)
#define RLIMIT(c) ((c)->u.trad.rlimit)
typedef struct cpp_context cpp_context;
struct cpp_context
{
/* Doubly-linked list. */
cpp_context *next, *prev;
union
{
/* For ISO macro expansion. Contexts other than the base context
are contiguous tokens. e.g. macro expansions, expanded
argument tokens. */
struct
{
union utoken first;
union utoken last;
} iso;
/* For traditional macro expansion. */
struct
{
const uchar *cur;
const uchar *rlimit;
} trad;
} u;
/* If non-NULL, a buffer used for storage related to this context.
When the context is popped, the buffer is released. */
_cpp_buff *buff;
/* For a macro context, the macro node, otherwise NULL. */
cpp_hashnode *macro;
/* True if utoken element is token, else ptoken. */
bool direct_p;
};
struct lexer_state
{
/* Nonzero if first token on line is CPP_HASH. */
unsigned char in_directive;
/* Nonzero if in a directive that will handle padding tokens itself.
#include needs this to avoid problems with computed include and
spacing between tokens. */
unsigned char directive_wants_padding;
/* True if we are skipping a failed conditional group. */
unsigned char skipping;
/* Nonzero if in a directive that takes angle-bracketed headers. */
unsigned char angled_headers;
/* Nonzero if in a #if or #elif directive. */
unsigned char in_expression;
/* Nonzero to save comments. Turned off if discard_comments, and in
all directives apart from #define. */
unsigned char save_comments;
/* Nonzero if lexing __VA_ARGS__ is valid. */
unsigned char va_args_ok;
/* Nonzero if lexing poisoned identifiers is valid. */
unsigned char poisoned_ok;
/* Nonzero to prevent macro expansion. */
unsigned char prevent_expansion;
/* Nonzero when parsing arguments to a function-like macro. */
unsigned char parsing_args;
/* Nonzero to skip evaluating part of an expression. */
unsigned int skip_eval;
};
/* Special nodes - identifiers with predefined significance. */
struct spec_nodes
{
cpp_hashnode *n_defined; /* defined operator */
cpp_hashnode *n_true; /* C++ keyword true */
cpp_hashnode *n_false; /* C++ keyword false */
cpp_hashnode *n__VA_ARGS__; /* C99 vararg macros */
};
typedef struct _cpp_line_note _cpp_line_note;
struct _cpp_line_note
{
/* Location in the clean line the note refers to. */
const uchar *pos;
/* Type of note. The 9 'from' trigraph characters represent those
trigraphs, '\\' an escaped newline, ' ' an escaped newline with
intervening space, and anything else is invalid. */
unsigned int type;
};
/* Represents the contents of a file cpplib has read in. */
struct cpp_buffer
{
const uchar *cur; /* Current location. */
const uchar *line_base; /* Start of current physical line. */
const uchar *next_line; /* Start of to-be-cleaned logical line. */
const uchar *buf; /* Entire character buffer. */
const uchar *rlimit; /* Writable byte at end of file. */
_cpp_line_note *notes; /* Array of notes. */
unsigned int cur_note; /* Next note to process. */
unsigned int notes_used; /* Number of notes. */
unsigned int notes_cap; /* Size of allocated array. */
struct cpp_buffer *prev;
/* Pointer into the file table; non-NULL if this is a file buffer.
Used for include_next and to record control macros. */
struct _cpp_file *file;
/* Value of if_stack at start of this file.
Used to prohibit unmatched #endif (etc) in an include file. */
struct if_stack *if_stack;
/* True if we need to get the next clean line. */
bool need_line;
/* True if we have already warned about C++ comments in this file.
The warning happens only for C89 extended mode with -pedantic on,
or for -Wtraditional, and only once per file (otherwise it would
be far too noisy). */
unsigned int warned_cplusplus_comments : 1;
/* True if we don't process trigraphs and escaped newlines. True
for preprocessed input, command line directives, and _Pragma
buffers. */
unsigned int from_stage3 : 1;
/* At EOF, a buffer is automatically popped. If RETURN_AT_EOF is
true, a CPP_EOF token is then returned. Otherwise, the next
token from the enclosing buffer is returned. */
unsigned int return_at_eof : 1;
/* One for a system header, two for a C system header file that therefore
needs to be extern "C" protected in C++, and zero otherwise. */
unsigned char sysp;
/* The directory of the this buffer's file. Its NAME member is not
allocated, so we don't need to worry about freeing it. */
struct cpp_dir dir;
/* Descriptor for converting from the input character set to the
source character set. */
struct cset_converter input_cset_desc;
};
/* A cpp_reader encapsulates the "state" of a pre-processor run.
Applying cpp_get_token repeatedly yields a stream of pre-processor
tokens. Usually, there is only one cpp_reader object active. */
struct cpp_reader
{
/* Top of buffer stack. */
cpp_buffer *buffer;
/* Overlaid buffer (can be different after processing #include). */
cpp_buffer *overlaid_buffer;
/* Lexer state. */
struct lexer_state state;
/* Source line tracking. */
struct line_maps *line_table;
/* The line of the '#' of the current directive. */
fileline directive_line;
/* Memory buffers. */
_cpp_buff *a_buff; /* Aligned permanent storage. */
_cpp_buff *u_buff; /* Unaligned permanent storage. */
_cpp_buff *free_buffs; /* Free buffer chain. */
/* Context stack. */
struct cpp_context base_context;
struct cpp_context *context;
/* If in_directive, the directive if known. */
const struct directive *directive;
/* Search paths for include files. */
struct cpp_dir *quote_include; /* "" */
struct cpp_dir *bracket_include; /* <> */
struct cpp_dir no_search_path; /* No path. */
/* Chain of all hashed _cpp_file instances. */
struct _cpp_file *all_files;
struct _cpp_file *main_file;
/* File and directory hash table. */
struct htab *file_hash;
struct file_hash_entry *file_hash_entries;
unsigned int file_hash_entries_allocated, file_hash_entries_used;
/* Nonzero means don't look for #include "foo" the source-file
directory. */
bool quote_ignores_source_dir;
/* Nonzero if any file has contained #pragma once or #import has
been used. */
bool seen_once_only;
/* Multiple include optimization. */
const cpp_hashnode *mi_cmacro;
const cpp_hashnode *mi_ind_cmacro;
bool mi_valid;
/* Lexing. */
cpp_token *cur_token;
tokenrun base_run, *cur_run;
unsigned int lookaheads;
/* Nonzero prevents the lexer from re-using the token runs. */
unsigned int keep_tokens;
/* Error counter for exit code. */
unsigned int errors;
/* Buffer to hold macro definition string. */
unsigned char *macro_buffer;
unsigned int macro_buffer_len;
/* Descriptor for converting from the source character set to the
execution character set. */
struct cset_converter narrow_cset_desc;
/* Descriptor for converting from the source character set to the
wide execution character set. */
struct cset_converter wide_cset_desc;
/* Date and time text. Calculated together if either is requested. */
const uchar *date;
const uchar *time;
/* EOF token, and a token forcing paste avoidance. */
cpp_token avoid_paste;
cpp_token eof;
/* Opaque handle to the dependencies of mkdeps.c. */
struct deps *deps;
/* Obstack holding all macro hash nodes. This never shrinks.
See cpphash.c */
struct obstack hash_ob;
/* Obstack holding buffer and conditional structures. This is a
real stack. See cpplib.c. */
struct obstack buffer_ob;
/* Pragma table - dynamic, because a library user can add to the
list of recognized pragmas. */
struct pragma_entry *pragmas;
/* Call backs to cpplib client. */
struct cpp_callbacks cb;
/* Identifier hash table. */
struct ht *hash_table;
/* Expression parser stack. */
struct op *op_stack, *op_limit;
/* User visible options. */
struct cpp_options opts;
/* Special nodes - identifiers with predefined significance to the
preprocessor. */
struct spec_nodes spec_nodes;
/* Whether cpplib owns the hashtable. */
bool our_hashtable;
/* Traditional preprocessing output buffer (a logical line). */
struct
{
uchar *base;
uchar *limit;
uchar *cur;
fileline first_line;
} out;
/* Used for buffer overlays by cpptrad.c. */
const uchar *saved_cur, *saved_rlimit, *saved_line_base;
/* A saved list of the defined macros, for dependency checking
of precompiled headers. */
struct cpp_savedstate *savedstate;
};
/* Character classes. Based on the more primitive macros in safe-ctype.h.
If the definition of `numchar' looks odd to you, please look up the
definition of a pp-number in the C standard [section 6.4.8 of C99].
In the unlikely event that characters other than \r and \n enter
the set is_vspace, the macro handle_newline() in cpplex.c must be
updated. */
#define _dollar_ok(x) ((x) == '$' && CPP_OPTION (pfile, dollars_in_ident))
#define is_idchar(x) (ISIDNUM(x) || _dollar_ok(x))
#define is_numchar(x) ISIDNUM(x)
#define is_idstart(x) (ISIDST(x) || _dollar_ok(x))
#define is_numstart(x) ISDIGIT(x)
#define is_hspace(x) ISBLANK(x)
#define is_vspace(x) IS_VSPACE(x)
#define is_nvspace(x) IS_NVSPACE(x)
#define is_space(x) IS_SPACE_OR_NUL(x)
/* This table is constant if it can be initialized at compile time,
which is the case if cpp was compiled with GCC >=2.7, or another
compiler that supports C99. */
#if HAVE_DESIGNATED_INITIALIZERS
extern const unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
#else
extern unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
#endif
/* Macros. */
static inline int cpp_in_system_header (cpp_reader *);
static inline int
cpp_in_system_header (cpp_reader *pfile)
{
return pfile->buffer ? pfile->buffer->sysp : 0;
}
#define CPP_PEDANTIC(PF) CPP_OPTION (PF, pedantic)
#define CPP_WTRADITIONAL(PF) CPP_OPTION (PF, warn_traditional)
/* In cpperror.c */
extern int _cpp_begin_message (cpp_reader *, int,
source_location, unsigned int);
/* In cppmacro.c */
extern void _cpp_free_definition (cpp_hashnode *);
extern bool _cpp_create_definition (cpp_reader *, cpp_hashnode *);
extern void _cpp_pop_context (cpp_reader *);
extern void _cpp_push_text_context (cpp_reader *, cpp_hashnode *,
const uchar *, size_t);
extern bool _cpp_save_parameter (cpp_reader *, cpp_macro *, cpp_hashnode *);
extern bool _cpp_arguments_ok (cpp_reader *, cpp_macro *, const cpp_hashnode *,
unsigned int);
extern const uchar *_cpp_builtin_macro_text (cpp_reader *, cpp_hashnode *);
int _cpp_warn_if_unused_macro (cpp_reader *, cpp_hashnode *, void *);
/* In cpphash.c */
extern void _cpp_init_hashtable (cpp_reader *, hash_table *);
extern void _cpp_destroy_hashtable (cpp_reader *);
/* In cppfiles.c */
typedef struct _cpp_file _cpp_file;
extern _cpp_file *_cpp_find_file (cpp_reader *, const char *fname,
cpp_dir *start_dir, bool fake);
extern bool _cpp_find_failed (_cpp_file *);
extern void _cpp_mark_file_once_only (cpp_reader *, struct _cpp_file *);
extern void _cpp_fake_include (cpp_reader *, const char *);
extern bool _cpp_stack_file (cpp_reader *, _cpp_file*, bool);
extern bool _cpp_stack_include (cpp_reader *, const char *, int,
enum include_type);
extern int _cpp_compare_file_date (cpp_reader *, const char *, int);
extern void _cpp_report_missing_guards (cpp_reader *);
extern void _cpp_init_files (cpp_reader *);
extern void _cpp_cleanup_files (cpp_reader *);
extern void _cpp_pop_file_buffer (cpp_reader *, struct _cpp_file *);
extern bool _cpp_save_file_entries (cpp_reader *pfile, FILE *f);
extern bool _cpp_read_file_entries (cpp_reader *, FILE *);
/* In cppexp.c */
extern bool _cpp_parse_expr (cpp_reader *);
extern struct op *_cpp_expand_op_stack (cpp_reader *);
/* In cpplex.c */
extern void _cpp_process_line_notes (cpp_reader *, int);
extern void _cpp_clean_line (cpp_reader *);
extern bool _cpp_get_fresh_line (cpp_reader *);
extern bool _cpp_skip_block_comment (cpp_reader *);
extern cpp_token *_cpp_temp_token (cpp_reader *);
extern const cpp_token *_cpp_lex_token (cpp_reader *);
extern cpp_token *_cpp_lex_direct (cpp_reader *);
extern int _cpp_equiv_tokens (const cpp_token *, const cpp_token *);
extern void _cpp_init_tokenrun (tokenrun *, unsigned int);
/* In cppinit.c. */
extern void _cpp_maybe_push_include_file (cpp_reader *);
/* In cpplib.c */
extern int _cpp_test_assertion (cpp_reader *, unsigned int *);
extern int _cpp_handle_directive (cpp_reader *, int);
extern void _cpp_define_builtin (cpp_reader *, const char *);
extern char ** _cpp_save_pragma_names (cpp_reader *);
extern void _cpp_restore_pragma_names (cpp_reader *, char **);
extern void _cpp_do__Pragma (cpp_reader *);
extern void _cpp_init_directives (cpp_reader *);
extern void _cpp_init_internal_pragmas (cpp_reader *);
extern void _cpp_do_file_change (cpp_reader *, enum lc_reason, const char *,
unsigned int, unsigned int);
extern void _cpp_pop_buffer (cpp_reader *);
/* In cpptrad.c. */
extern bool _cpp_scan_out_logical_line (cpp_reader *, cpp_macro *);
extern bool _cpp_read_logical_line_trad (cpp_reader *);
extern void _cpp_overlay_buffer (cpp_reader *pfile, const uchar *, size_t);
extern void _cpp_remove_overlay (cpp_reader *);
extern bool _cpp_create_trad_definition (cpp_reader *, cpp_macro *);
extern bool _cpp_expansions_different_trad (const cpp_macro *,
const cpp_macro *);
extern uchar *_cpp_copy_replacement_text (const cpp_macro *, uchar *);
extern size_t _cpp_replacement_text_len (const cpp_macro *);
/* In cppcharset.c. */
extern cppchar_t _cpp_valid_ucn (cpp_reader *, const uchar **,
const uchar *, int);
extern void _cpp_destroy_iconv (cpp_reader *);
extern uchar *_cpp_convert_input (cpp_reader *, const char *, uchar *,
size_t, size_t, off_t *);
extern const char *_cpp_default_encoding (void);
/* Utility routines and macros. */
#define DSC(str) (const uchar *)str, sizeof str - 1
#define xnew(T) (T *) xmalloc (sizeof(T))
#define xcnew(T) (T *) xcalloc (1, sizeof(T))
#define xnewvec(T, N) (T *) xmalloc (sizeof(T) * (N))
#define xcnewvec(T, N) (T *) xcalloc (N, sizeof(T))
#define xobnew(O, T) (T *) obstack_alloc (O, sizeof(T))
/* These are inline functions instead of macros so we can get type
checking. */
static inline int ustrcmp (const uchar *, const uchar *);
static inline int ustrncmp (const uchar *, const uchar *, size_t);
static inline size_t ustrlen (const uchar *);
static inline uchar *uxstrdup (const uchar *);
static inline uchar *ustrchr (const uchar *, int);
static inline int ufputs (const uchar *, FILE *);
static inline int
ustrcmp (const uchar *s1, const uchar *s2)
{
return strcmp ((const char *)s1, (const char *)s2);
}
static inline int
ustrncmp (const uchar *s1, const uchar *s2, size_t n)
{
return strncmp ((const char *)s1, (const char *)s2, n);
}
static inline size_t
ustrlen (const uchar *s1)
{
return strlen ((const char *)s1);
}
static inline uchar *
uxstrdup (const uchar *s1)
{
return (uchar *) xstrdup ((const char *)s1);
}
static inline uchar *
ustrchr (const uchar *s1, int c)
{
return (uchar *) strchr ((const char *)s1, c);
}
static inline int
ufputs (const uchar *s, FILE *f)
{
return fputs ((const char *)s, f);
}
#endif /* ! LIBCPP_INTERNAL_H */

1544
libcpp/lex.c Normal file

File diff suppressed because it is too large Load Diff

344
libcpp/line-map.c Normal file
View File

@@ -0,0 +1,344 @@
/* Map logical line numbers to (source file, line number) pairs.
Copyright (C) 2001, 2003, 2004
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
In other words, you are welcome to use, share and improve this program.
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding! */
#include "config.h"
#include "system.h"
#include "line-map.h"
static void trace_include (const struct line_maps *, const struct line_map *);
/* Initialize a line map set. */
void
linemap_init (struct line_maps *set)
{
set->maps = NULL;
set->allocated = 0;
set->used = 0;
set->last_listed = -1;
set->trace_includes = false;
set->depth = 0;
set->cache = 0;
set->highest_location = 0;
set->highest_line = 0;
set->max_column_hint = 0;
}
/* Check for and warn about line_maps entered but not exited. */
void
linemap_check_files_exited (struct line_maps *set)
{
struct line_map *map;
/* Depending upon whether we are handling preprocessed input or
not, this can be a user error or an ICE. */
for (map = &set->maps[set->used - 1]; ! MAIN_FILE_P (map);
map = INCLUDED_FROM (set, map))
fprintf (stderr, "line-map.c: file \"%s\" entered but not left\n",
map->to_file);
}
/* Free a line map set. */
void
linemap_free (struct line_maps *set)
{
if (set->maps)
{
linemap_check_files_exited (set);
free (set->maps);
}
}
/* Add a mapping of logical source line to physical source file and
line number.
The text pointed to by TO_FILE must have a lifetime
at least as long as the final call to lookup_line (). An empty
TO_FILE means standard input. If reason is LC_LEAVE, and
TO_FILE is NULL, then TO_FILE, TO_LINE and SYSP are given their
natural values considering the file we are returning to.
FROM_LINE should be monotonic increasing across calls to this
function. A call to this function can relocate the previous set of
A call to this function can relocate the previous set of
maps, so any stored line_map pointers should not be used. */
const struct line_map *
linemap_add (struct line_maps *set, enum lc_reason reason,
unsigned int sysp, const char *to_file, unsigned int to_line)
{
struct line_map *map;
source_location start_location = set->highest_location + 1;
if (set->used && start_location < set->maps[set->used - 1].start_location)
abort ();
if (set->used == set->allocated)
{
set->allocated = 2 * set->allocated + 256;
set->maps = xrealloc (set->maps, set->allocated * sizeof (struct line_map));
}
map = &set->maps[set->used];
if (to_file && *to_file == '\0')
to_file = "<stdin>";
/* If we don't keep our line maps consistent, we can easily
segfault. Don't rely on the client to do it for us. */
if (set->depth == 0)
reason = LC_ENTER;
else if (reason == LC_LEAVE)
{
struct line_map *from;
bool error;
if (MAIN_FILE_P (map - 1))
{
if (to_file == NULL)
{
set->depth--;
return NULL;
}
error = true;
reason = LC_RENAME;
from = map - 1;
}
else
{
from = INCLUDED_FROM (set, map - 1);
error = to_file && strcmp (from->to_file, to_file);
}
/* Depending upon whether we are handling preprocessed input or
not, this can be a user error or an ICE. */
if (error)
fprintf (stderr, "line-map.c: file \"%s\" left but not entered\n",
to_file);
/* A TO_FILE of NULL is special - we use the natural values. */
if (error || to_file == NULL)
{
to_file = from->to_file;
to_line = SOURCE_LINE (from, from[1].start_location);
sysp = from->sysp;
}
}
map->reason = reason;
map->sysp = sysp;
map->start_location = start_location;
map->to_file = to_file;
map->to_line = to_line;
set->cache = set->used++;
map->column_bits = 0;
set->highest_location = start_location;
set->highest_line = start_location;
set->max_column_hint = 0;
if (reason == LC_ENTER)
{
map->included_from = set->depth == 0 ? -1 : (int) (set->used - 2);
set->depth++;
if (set->trace_includes)
trace_include (set, map);
}
else if (reason == LC_RENAME)
map->included_from = map[-1].included_from;
else if (reason == LC_LEAVE)
{
set->depth--;
map->included_from = INCLUDED_FROM (set, map - 1)->included_from;
}
return map;
}
source_location
linemap_line_start (struct line_maps *set, unsigned int to_line,
unsigned int max_column_hint)
{
struct line_map *map = &set->maps[set->used - 1];
source_location highest = set->highest_location;
source_location r;
unsigned int last_line = SOURCE_LINE (map, set->highest_line);
int line_delta = to_line - last_line;
bool add_map = false;
if (line_delta < 0
|| (line_delta > 10 && line_delta * map->column_bits > 1000)
|| (max_column_hint >= (1U << map->column_bits))
|| (max_column_hint <= 80 && map->column_bits >= 10))
{
add_map = true;
}
else
max_column_hint = set->max_column_hint;
if (add_map)
{
int column_bits;
if (max_column_hint > 100000 || highest > 0xC0000000)
{
max_column_hint = 0;
if (highest >0xF0000000)
return 0;
column_bits = 0;
}
else
{
column_bits = 7;
while (max_column_hint >= (1U << column_bits))
column_bits++;
max_column_hint = 1U << column_bits;
}
if (line_delta < 0
|| last_line != map->to_line
|| SOURCE_COLUMN (map, highest) >= (1U << column_bits))
map = (struct line_map*) linemap_add (set, LC_RENAME, map->sysp,
map->to_file, to_line);
map->column_bits = column_bits;
r = map->start_location;
}
else
r = highest - SOURCE_COLUMN (map, highest)
+ (line_delta << map->column_bits);
set->highest_line = r;
if (r > set->highest_location)
set->highest_location = r;
set->max_column_hint = max_column_hint;
return r;
}
source_location
linemap_position_for_column (struct line_maps *set, unsigned int to_column)
{
source_location r = set->highest_line;
if (to_column >= set->max_column_hint)
{
if (r >= 0xC000000 || to_column > 100000)
{
/* Running low on source_locations - disable column numbers. */
return r;
}
else
{
struct line_map *map = &set->maps[set->used - 1];
r = linemap_line_start (set, SOURCE_LINE (map, r), to_column + 50);
}
}
r = r + to_column;
if (r >= set->highest_location)
set->highest_location = r;
return r;
}
/* Given a logical line, returns the map from which the corresponding
(source file, line) pair can be deduced. Since the set is built
chronologically, the logical lines are monotonic increasing, and so
the list is sorted and we can use a binary search. */
const struct line_map *
linemap_lookup (struct line_maps *set, source_location line)
{
unsigned int md, mn, mx;
const struct line_map *cached;
mn = set->cache;
mx = set->used;
cached = &set->maps[mn];
/* We should get a segfault if no line_maps have been added yet. */
if (line >= cached->start_location)
{
if (mn + 1 == mx || line < cached[1].start_location)
return cached;
}
else
{
mx = mn;
mn = 0;
}
while (mx - mn > 1)
{
md = (mn + mx) / 2;
if (set->maps[md].start_location > line)
mx = md;
else
mn = md;
}
set->cache = mn;
return &set->maps[mn];
}
/* Print the file names and line numbers of the #include commands
which led to the map MAP, if any, to stderr. Nothing is output if
the most recently listed stack is the same as the current one. */
void
linemap_print_containing_files (struct line_maps *set,
const struct line_map *map)
{
if (MAIN_FILE_P (map) || set->last_listed == map->included_from)
return;
set->last_listed = map->included_from;
map = INCLUDED_FROM (set, map);
fprintf (stderr, _("In file included from %s:%u"),
map->to_file, LAST_SOURCE_LINE (map));
while (! MAIN_FILE_P (map))
{
map = INCLUDED_FROM (set, map);
/* Translators note: this message is used in conjunction
with "In file included from %s:%ld" and some other
tricks. We want something like this:
| In file included from sys/select.h:123,
| from sys/types.h:234,
| from userfile.c:31:
| bits/select.h:45: <error message here>
with all the "from"s lined up.
The trailing comma is at the beginning of this message,
and the trailing colon is not translated. */
fprintf (stderr, _(",\n from %s:%u"),
map->to_file, LAST_SOURCE_LINE (map));
}
fputs (":\n", stderr);
}
/* Print an include trace, for e.g. the -H option of the preprocessor. */
static void
trace_include (const struct line_maps *set, const struct line_map *map)
{
unsigned int i = set->depth;
while (--i)
putc ('.', stderr);
fprintf (stderr, " %s\n", map->to_file);
}

1729
libcpp/macro.c Normal file

File diff suppressed because it is too large Load Diff

345
libcpp/mkdeps.c Normal file
View File

@@ -0,0 +1,345 @@
/* Dependency generator for Makefile fragments.
Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
Contributed by Zack Weinberg, Mar 2000
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
In other words, you are welcome to use, share and improve this program.
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding! */
#include "config.h"
#include "system.h"
#include "mkdeps.h"
/* Keep this structure local to this file, so clients don't find it
easy to start making assumptions. */
struct deps
{
const char **targetv;
unsigned int ntargets; /* number of slots actually occupied */
unsigned int targets_size; /* amt of allocated space - in words */
const char **depv;
unsigned int ndeps;
unsigned int deps_size;
};
static const char *munge (const char *);
/* Given a filename, quote characters in that filename which are
significant to Make. Note that it's not possible to quote all such
characters - e.g. \n, %, *, ?, [, \ (in some contexts), and ~ are
not properly handled. It isn't possible to get this right in any
current version of Make. (??? Still true? Old comment referred to
3.76.1.) */
static const char *
munge (const char *filename)
{
int len;
const char *p, *q;
char *dst, *buffer;
for (p = filename, len = 0; *p; p++, len++)
{
switch (*p)
{
case ' ':
case '\t':
/* GNU make uses a weird quoting scheme for white space.
A space or tab preceded by 2N+1 backslashes represents
N backslashes followed by space; a space or tab
preceded by 2N backslashes represents N backslashes at
the end of a file name; and backslashes in other
contexts should not be doubled. */
for (q = p - 1; filename <= q && *q == '\\'; q--)
len++;
len++;
break;
case '$':
/* '$' is quoted by doubling it. */
len++;
break;
}
}
/* Now we know how big to make the buffer. */
buffer = xmalloc (len + 1);
for (p = filename, dst = buffer; *p; p++, dst++)
{
switch (*p)
{
case ' ':
case '\t':
for (q = p - 1; filename <= q && *q == '\\'; q--)
*dst++ = '\\';
*dst++ = '\\';
break;
case '$':
*dst++ = '$';
break;
default:
/* nothing */;
}
*dst = *p;
}
*dst = '\0';
return buffer;
}
/* Public routines. */
struct deps *
deps_init (void)
{
struct deps *d = xmalloc (sizeof (struct deps));
/* Allocate space for the vectors only if we need it. */
d->targetv = 0;
d->depv = 0;
d->ntargets = 0;
d->targets_size = 0;
d->ndeps = 0;
d->deps_size = 0;
return d;
}
void
deps_free (struct deps *d)
{
unsigned int i;
if (d->targetv)
{
for (i = 0; i < d->ntargets; i++)
free ((void *) d->targetv[i]);
free (d->targetv);
}
if (d->depv)
{
for (i = 0; i < d->ndeps; i++)
free ((void *) d->depv[i]);
free (d->depv);
}
free (d);
}
/* Adds a target T. We make a copy, so it need not be a permanent
string. QUOTE is true if the string should be quoted. */
void
deps_add_target (struct deps *d, const char *t, int quote)
{
if (d->ntargets == d->targets_size)
{
d->targets_size = d->targets_size * 2 + 4;
d->targetv = xrealloc (d->targetv,
d->targets_size * sizeof (const char *));
}
if (quote)
t = munge (t); /* Also makes permanent copy. */
else
t = xstrdup (t);
d->targetv[d->ntargets++] = t;
}
/* Sets the default target if none has been given already. An empty
string as the default target in interpreted as stdin. The string
is quoted for MAKE. */
void
deps_add_default_target (struct deps *d, const char *tgt)
{
/* Only if we have no targets. */
if (d->ntargets)
return;
if (tgt[0] == '\0')
deps_add_target (d, "-", 1);
else
{
#ifndef TARGET_OBJECT_SUFFIX
# define TARGET_OBJECT_SUFFIX ".o"
#endif
const char *start = lbasename (tgt);
char *o = alloca (strlen (start) + strlen (TARGET_OBJECT_SUFFIX) + 1);
char *suffix;
strcpy (o, start);
suffix = strrchr (o, '.');
if (!suffix)
suffix = o + strlen (o);
strcpy (suffix, TARGET_OBJECT_SUFFIX);
deps_add_target (d, o, 1);
}
}
void
deps_add_dep (struct deps *d, const char *t)
{
t = munge (t); /* Also makes permanent copy. */
if (d->ndeps == d->deps_size)
{
d->deps_size = d->deps_size * 2 + 8;
d->depv = xrealloc (d->depv, d->deps_size * sizeof (const char *));
}
d->depv[d->ndeps++] = t;
}
void
deps_write (const struct deps *d, FILE *fp, unsigned int colmax)
{
unsigned int size, i, column;
column = 0;
if (colmax && colmax < 34)
colmax = 34;
for (i = 0; i < d->ntargets; i++)
{
size = strlen (d->targetv[i]);
column += size;
if (colmax && column > colmax)
{
fputs (" \\\n ", fp);
column = 1 + size;
}
if (i)
{
putc (' ', fp);
column++;
}
fputs (d->targetv[i], fp);
}
putc (':', fp);
putc (' ', fp);
column += 2;
for (i = 0; i < d->ndeps; i++)
{
size = strlen (d->depv[i]);
column += size;
if (colmax && column > colmax)
{
fputs (" \\\n ", fp);
column = 1 + size;
}
if (i)
{
putc (' ', fp);
column++;
}
fputs (d->depv[i], fp);
}
putc ('\n', fp);
}
void
deps_phony_targets (const struct deps *d, FILE *fp)
{
unsigned int i;
for (i = 1; i < d->ndeps; i++)
{
putc ('\n', fp);
fputs (d->depv[i], fp);
putc (':', fp);
putc ('\n', fp);
}
}
/* Write out a deps buffer to a file, in a form that can be read back
with deps_restore. Returns nonzero on error, in which case the
error number will be in errno. */
int
deps_save (struct deps *deps, FILE *f)
{
unsigned int i;
/* The cppreader structure contains makefile dependences. Write out this
structure. */
/* The number of dependences. */
if (fwrite (&deps->ndeps, sizeof (deps->ndeps), 1, f) != 1)
return -1;
/* The length of each dependence followed by the string. */
for (i = 0; i < deps->ndeps; i++)
{
size_t num_to_write = strlen (deps->depv[i]);
if (fwrite (&num_to_write, sizeof (size_t), 1, f) != 1)
return -1;
if (fwrite (deps->depv[i], num_to_write, 1, f) != 1)
return -1;
}
return 0;
}
/* Read back dependency information written with deps_save into
the deps buffer. The third argument may be NULL, in which case
the dependency information is just skipped, or it may be a filename,
in which case that filename is skipped. */
int
deps_restore (struct deps *deps, FILE *fd, const char *self)
{
unsigned int i, count;
size_t num_to_read;
size_t buf_size = 512;
char *buf = xmalloc (buf_size);
/* Number of dependences. */
if (fread (&count, 1, sizeof (count), fd) != sizeof (count))
return -1;
/* The length of each dependence string, followed by the string. */
for (i = 0; i < count; i++)
{
/* Read in # bytes in string. */
if (fread (&num_to_read, 1, sizeof (size_t), fd) != sizeof (size_t))
return -1;
if (buf_size < num_to_read + 1)
{
buf_size = num_to_read + 1 + 127;
buf = xrealloc (buf, buf_size);
}
if (fread (buf, 1, num_to_read, fd) != num_to_read)
return -1;
buf[num_to_read] = '\0';
/* Generate makefile dependencies from .pch if -nopch-deps. */
if (self != NULL && strcmp (buf, self) != 0)
deps_add_dep (deps, buf);
}
free (buf);
return 0;
}

723
libcpp/pch.c Normal file
View File

@@ -0,0 +1,723 @@
/* Part of CPP library. (Precompiled header reading/writing.)
Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "config.h"
#include "system.h"
#include "cpplib.h"
#include "internal.h"
#include "hashtab.h"
#include "mkdeps.h"
static int write_macdef (cpp_reader *, cpp_hashnode *, void *);
static int save_idents (cpp_reader *, cpp_hashnode *, void *);
static hashval_t hashmem (const void *, size_t);
static hashval_t cpp_string_hash (const void *);
static int cpp_string_eq (const void *, const void *);
static int count_defs (cpp_reader *, cpp_hashnode *, void *);
static int comp_hashnodes (const void *, const void *);
static int collect_ht_nodes (cpp_reader *, cpp_hashnode *, void *);
static int write_defs (cpp_reader *, cpp_hashnode *, void *);
static int save_macros (cpp_reader *, cpp_hashnode *, void *);
/* This structure represents a macro definition on disk. */
struct macrodef_struct
{
unsigned int definition_length;
unsigned short name_length;
unsigned short flags;
};
/* This is how we write out a macro definition.
Suitable for being called by cpp_forall_identifiers. */
static int
write_macdef (cpp_reader *pfile, cpp_hashnode *hn, void *file_p)
{
FILE *f = (FILE *) file_p;
switch (hn->type)
{
case NT_VOID:
if (! (hn->flags & NODE_POISONED))
return 1;
case NT_MACRO:
if ((hn->flags & NODE_BUILTIN))
return 1;
{
struct macrodef_struct s;
const unsigned char *defn;
s.name_length = NODE_LEN (hn);
s.flags = hn->flags & NODE_POISONED;
if (hn->type == NT_MACRO)
{
defn = cpp_macro_definition (pfile, hn);
s.definition_length = ustrlen (defn);
}
else
{
defn = NODE_NAME (hn);
s.definition_length = s.name_length;
}
if (fwrite (&s, sizeof (s), 1, f) != 1
|| fwrite (defn, 1, s.definition_length, f) != s.definition_length)
{
cpp_errno (pfile, CPP_DL_ERROR,
"while writing precompiled header");
return 0;
}
}
return 1;
case NT_ASSERTION:
/* Not currently implemented. */
return 1;
default:
abort ();
}
}
/* This structure records the names of the defined macros.
It's also used as a callback structure for size_initial_idents
and save_idents. */
struct cpp_savedstate
{
/* A hash table of the defined identifiers. */
htab_t definedhash;
/* The size of the definitions of those identifiers (the size of
'definedstrs'). */
size_t hashsize;
/* Number of definitions */
size_t n_defs;
/* Array of definitions. In cpp_write_pch_deps it is used for sorting. */
cpp_hashnode **defs;
/* Space for the next definition. Definitions are null-terminated
strings. */
unsigned char *definedstrs;
};
/* Save this identifier into the state: put it in the hash table,
put the definition in 'definedstrs'. */
static int
save_idents (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p)
{
struct cpp_savedstate *const ss = (struct cpp_savedstate *)ss_p;
if (hn->type != NT_VOID)
{
struct cpp_string news;
void **slot;
news.len = NODE_LEN (hn);
news.text= NODE_NAME (hn);
slot = htab_find_slot (ss->definedhash, &news, INSERT);
if (*slot == NULL)
{
struct cpp_string *sp;
unsigned char *text;
sp = xmalloc (sizeof (struct cpp_string));
*slot = sp;
sp->len = NODE_LEN (hn);
sp->text = text = xmalloc (NODE_LEN (hn));
memcpy (text, NODE_NAME (hn), NODE_LEN (hn));
}
}
return 1;
}
/* Hash some memory in a generic way. */
static hashval_t
hashmem (const void *p_p, size_t sz)
{
const unsigned char *p = (const unsigned char *)p_p;
size_t i;
hashval_t h;
h = 0;
for (i = 0; i < sz; i++)
h = h * 67 - (*p++ - 113);
return h;
}
/* Hash a cpp string for the hashtable machinery. */
static hashval_t
cpp_string_hash (const void *a_p)
{
const struct cpp_string *a = (const struct cpp_string *) a_p;
return hashmem (a->text, a->len);
}
/* Compare two cpp strings for the hashtable machinery. */
static int
cpp_string_eq (const void *a_p, const void *b_p)
{
const struct cpp_string *a = (const struct cpp_string *) a_p;
const struct cpp_string *b = (const struct cpp_string *) b_p;
return (a->len == b->len
&& memcmp (a->text, b->text, a->len) == 0);
}
/* Save the current definitions of the cpp_reader for dependency
checking purposes. When writing a precompiled header, this should
be called at the same point in the compilation as cpp_valid_state
would be called when reading the precompiled header back in. */
int
cpp_save_state (cpp_reader *r, FILE *f)
{
/* Save the list of non-void identifiers for the dependency checking. */
r->savedstate = xmalloc (sizeof (struct cpp_savedstate));
r->savedstate->definedhash = htab_create (100, cpp_string_hash,
cpp_string_eq, NULL);
cpp_forall_identifiers (r, save_idents, r->savedstate);
/* Write out the list of defined identifiers. */
cpp_forall_identifiers (r, write_macdef, f);
return 0;
}
/* Calculate the 'hashsize' field of the saved state. */
static int
count_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p)
{
struct cpp_savedstate *const ss = (struct cpp_savedstate *)ss_p;
switch (hn->type)
{
case NT_MACRO:
if (hn->flags & NODE_BUILTIN)
return 1;
/* else fall through. */
case NT_VOID:
{
struct cpp_string news;
void **slot;
news.len = NODE_LEN (hn);
news.text = NODE_NAME (hn);
slot = htab_find (ss->definedhash, &news);
if (slot == NULL)
{
ss->hashsize += NODE_LEN (hn) + 1;
ss->n_defs += 1;
}
}
return 1;
case NT_ASSERTION:
/* Not currently implemented. */
return 1;
default:
abort ();
}
}
/* Collect the identifiers into the state's string table. */
static int
write_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p)
{
struct cpp_savedstate *const ss = (struct cpp_savedstate *)ss_p;
switch (hn->type)
{
case NT_MACRO:
if (hn->flags & NODE_BUILTIN)
return 1;
/* else fall through. */
case NT_VOID:
{
struct cpp_string news;
void **slot;
news.len = NODE_LEN (hn);
news.text = NODE_NAME (hn);
slot = htab_find (ss->definedhash, &news);
if (slot == NULL)
{
ss->defs[ss->n_defs] = hn;
ss->n_defs += 1;
}
}
return 1;
case NT_ASSERTION:
/* Not currently implemented. */
return 1;
default:
abort ();
}
}
/* Comparison function for qsort. The arguments point to pointers of
type ht_hashnode *. */
static int
comp_hashnodes (const void *px, const void *py)
{
cpp_hashnode *x = *(cpp_hashnode **) px;
cpp_hashnode *y = *(cpp_hashnode **) py;
return ustrcmp (NODE_NAME (x), NODE_NAME (y));
}
/* Write out the remainder of the dependency information. This should be
called after the PCH is ready to be saved. */
int
cpp_write_pch_deps (cpp_reader *r, FILE *f)
{
struct macrodef_struct z;
struct cpp_savedstate *const ss = r->savedstate;
unsigned char *definedstrs;
size_t i;
/* Collect the list of identifiers which have been seen and
weren't defined to anything previously. */
ss->hashsize = 0;
ss->n_defs = 0;
cpp_forall_identifiers (r, count_defs, ss);
ss->defs = xmalloc (ss->n_defs * sizeof (cpp_hashnode *));
ss->n_defs = 0;
cpp_forall_identifiers (r, write_defs, ss);
/* Sort the list, copy it into a buffer, and write it out. */
qsort (ss->defs, ss->n_defs, sizeof (cpp_hashnode *), &comp_hashnodes);
definedstrs = ss->definedstrs = xmalloc (ss->hashsize);
for (i = 0; i < ss->n_defs; ++i)
{
size_t len = NODE_LEN (ss->defs[i]);
memcpy (definedstrs, NODE_NAME (ss->defs[i]), len + 1);
definedstrs += len + 1;
}
memset (&z, 0, sizeof (z));
z.definition_length = ss->hashsize;
if (fwrite (&z, sizeof (z), 1, f) != 1
|| fwrite (ss->definedstrs, ss->hashsize, 1, f) != 1)
{
cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
return -1;
}
free (ss->definedstrs);
/* Free the saved state. */
free (ss);
r->savedstate = NULL;
return 0;
}
/* Write out the definitions of the preprocessor, in a form suitable for
cpp_read_state. */
int
cpp_write_pch_state (cpp_reader *r, FILE *f)
{
struct macrodef_struct z;
/* Write out the list of defined identifiers. */
cpp_forall_identifiers (r, write_macdef, f);
memset (&z, 0, sizeof (z));
if (fwrite (&z, sizeof (z), 1, f) != 1)
{
cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
return -1;
}
if (!r->deps)
r->deps = deps_init ();
if (deps_save (r->deps, f) != 0)
{
cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
return -1;
}
if (! _cpp_save_file_entries (r, f))
{
cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
return -1;
}
return 0;
}
/* Data structure to transform hash table nodes into a sorted list */
struct ht_node_list
{
/* Array of nodes */
cpp_hashnode **defs;
/* Number of nodes in the array */
size_t n_defs;
/* Size of the allocated array */
size_t asize;
};
/* Callback for collecting identifiers from hash table */
static int
collect_ht_nodes (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn,
void *nl_p)
{
struct ht_node_list *const nl = (struct ht_node_list *)nl_p;
if (hn->type != NT_VOID || hn->flags & NODE_POISONED)
{
if (nl->n_defs == nl->asize)
{
nl->asize *= 2;
nl->defs = xrealloc (nl->defs, nl->asize * sizeof (cpp_hashnode *));
}
nl->defs[nl->n_defs] = hn;
++nl->n_defs;
}
return 1;
}
/* Return nonzero if FD is a precompiled header which is consistent
with the preprocessor's current definitions. It will be consistent
when:
- anything that was defined just before the PCH was generated
is defined the same way now; and
- anything that was not defined then, but is defined now, was not
used by the PCH.
NAME is used to print warnings if `warn_invalid_pch' is set in the
reader's flags.
*/
int
cpp_valid_state (cpp_reader *r, const char *name, int fd)
{
struct macrodef_struct m;
size_t namebufsz = 256;
unsigned char *namebuf = xmalloc (namebufsz);
unsigned char *undeftab = NULL;
struct ht_node_list nl = { 0, 0, 0 };
unsigned char *first, *last;
unsigned int i;
/* Read in the list of identifiers that must be defined
Check that they are defined in the same way. */
for (;;)
{
cpp_hashnode *h;
const unsigned char *newdefn;
if (read (fd, &m, sizeof (m)) != sizeof (m))
goto error;
if (m.name_length == 0)
break;
if (m.definition_length > namebufsz)
{
free (namebuf);
namebufsz = m.definition_length + 256;
namebuf = xmalloc (namebufsz);
}
if ((size_t)read (fd, namebuf, m.definition_length)
!= m.definition_length)
goto error;
h = cpp_lookup (r, namebuf, m.name_length);
if (m.flags & NODE_POISONED
|| h->type != NT_MACRO
|| h->flags & NODE_POISONED)
{
if (CPP_OPTION (r, warn_invalid_pch))
cpp_error (r, CPP_DL_WARNING_SYSHDR,
"%s: not used because `%.*s' not defined",
name, m.name_length, namebuf);
goto fail;
}
newdefn = cpp_macro_definition (r, h);
if (m.definition_length != ustrlen (newdefn)
|| memcmp (namebuf, newdefn, m.definition_length) != 0)
{
if (CPP_OPTION (r, warn_invalid_pch))
cpp_error (r, CPP_DL_WARNING_SYSHDR,
"%s: not used because `%.*s' defined as `%s' not `%.*s'",
name, m.name_length, namebuf, newdefn + m.name_length,
m.definition_length - m.name_length,
namebuf + m.name_length);
goto fail;
}
}
free (namebuf);
namebuf = NULL;
/* Read in the list of identifiers that must not be defined.
Check that they really aren't. */
undeftab = xmalloc (m.definition_length);
if ((size_t) read (fd, undeftab, m.definition_length) != m.definition_length)
goto error;
/* Collect identifiers from the current hash table. */
nl.n_defs = 0;
nl.asize = 10;
nl.defs = xmalloc (nl.asize * sizeof (cpp_hashnode *));
cpp_forall_identifiers (r, &collect_ht_nodes, &nl);
qsort (nl.defs, nl.n_defs, sizeof (cpp_hashnode *), &comp_hashnodes);
/* Loop through nl.defs and undeftab, both of which are sorted lists.
There should be no matches. */
first = undeftab;
last = undeftab + m.definition_length;
i = 0;
while (first < last && i < nl.n_defs)
{
int cmp = ustrcmp (first, NODE_NAME (nl.defs[i]));
if (cmp < 0)
first += ustrlen (first) + 1;
else if (cmp > 0)
++i;
else
{
if (CPP_OPTION (r, warn_invalid_pch))
cpp_error (r, CPP_DL_WARNING_SYSHDR,
"%s: not used because `%s' is defined",
name, first);
goto fail;
}
}
free(nl.defs);
free (undeftab);
/* We win! */
return 0;
error:
cpp_errno (r, CPP_DL_ERROR, "while reading precompiled header");
return -1;
fail:
if (namebuf != NULL)
free (namebuf);
if (undeftab != NULL)
free (undeftab);
if (nl.defs != NULL)
free (nl.defs);
return 1;
}
/* Save all the existing macros and assertions.
This code assumes that there might be hundreds, but not thousands of
existing definitions. */
struct save_macro_item {
struct save_macro_item *next;
struct cpp_hashnode macs[64];
};
struct save_macro_data
{
struct save_macro_item *macros;
size_t count;
char **saved_pragmas;
};
/* Save the definition of a single macro, so that it will persist across
a PCH restore. */
static int
save_macros (cpp_reader *r ATTRIBUTE_UNUSED, cpp_hashnode *h, void *data_p)
{
struct save_macro_data *data = (struct save_macro_data *)data_p;
if (h->type != NT_VOID
&& (h->flags & NODE_BUILTIN) == 0)
{
cpp_hashnode *save;
if (data->count == ARRAY_SIZE (data->macros->macs))
{
struct save_macro_item *d = data->macros;
data->macros = xmalloc (sizeof (struct save_macro_item));
data->macros->next = d;
data->count = 0;
}
save = data->macros->macs + data->count;
data->count++;
memcpy (save, h, sizeof (struct cpp_hashnode));
HT_STR (&save->ident) = xmemdup (HT_STR (HT_NODE (save)),
HT_LEN (HT_NODE (save)),
HT_LEN (HT_NODE (save)) + 1);
}
return 1;
}
/* Prepare to restore the state, by saving the currently-defined
macros in 'data'. */
void
cpp_prepare_state (cpp_reader *r, struct save_macro_data **data)
{
struct save_macro_data *d = xmalloc (sizeof (struct save_macro_data));
d->macros = NULL;
d->count = ARRAY_SIZE (d->macros->macs);
cpp_forall_identifiers (r, save_macros, d);
d->saved_pragmas = _cpp_save_pragma_names (r);
*data = d;
}
/* Given a precompiled header that was previously determined to be valid,
apply all its definitions (and undefinitions) to the current state.
DEPNAME is passed to deps_restore. */
int
cpp_read_state (cpp_reader *r, const char *name, FILE *f,
struct save_macro_data *data)
{
struct macrodef_struct m;
size_t defnlen = 256;
unsigned char *defn = xmalloc (defnlen);
struct lexer_state old_state;
struct save_macro_item *d;
size_t i, mac_count;
/* Restore spec_nodes, which will be full of references to the old
hashtable entries and so will now be invalid. */
{
struct spec_nodes *s = &r->spec_nodes;
s->n_defined = cpp_lookup (r, DSC("defined"));
s->n_true = cpp_lookup (r, DSC("true"));
s->n_false = cpp_lookup (r, DSC("false"));
s->n__VA_ARGS__ = cpp_lookup (r, DSC("__VA_ARGS__"));
}
/* Run through the carefully-saved macros, insert them. */
d = data->macros;
mac_count = data->count;
while (d)
{
struct save_macro_item *nextd;
for (i = 0; i < mac_count; i++)
{
cpp_hashnode *h;
h = cpp_lookup (r, HT_STR (HT_NODE (&d->macs[i])),
HT_LEN (HT_NODE (&d->macs[i])));
h->type = d->macs[i].type;
h->flags = d->macs[i].flags;
h->value = d->macs[i].value;
free ((void *)HT_STR (HT_NODE (&d->macs[i])));
}
nextd = d->next;
free (d);
d = nextd;
mac_count = ARRAY_SIZE (d->macs);
}
_cpp_restore_pragma_names (r, data->saved_pragmas);
free (data);
old_state = r->state;
r->state.in_directive = 1;
r->state.prevent_expansion = 1;
r->state.angled_headers = 0;
/* Read in the identifiers that must be defined. */
for (;;)
{
cpp_hashnode *h;
if (fread (&m, sizeof (m), 1, f) != 1)
goto error;
if (m.name_length == 0)
break;
if (defnlen < m.definition_length + 1)
{
defnlen = m.definition_length + 256;
defn = xrealloc (defn, defnlen);
}
if (fread (defn, 1, m.definition_length, f) != m.definition_length)
goto error;
defn[m.definition_length] = '\n';
h = cpp_lookup (r, defn, m.name_length);
if (h->type == NT_MACRO)
_cpp_free_definition (h);
if (m.flags & NODE_POISONED)
h->flags |= NODE_POISONED | NODE_DIAGNOSTIC;
else if (m.name_length != m.definition_length)
{
if (cpp_push_buffer (r, defn + m.name_length,
m.definition_length - m.name_length, true)
!= NULL)
{
_cpp_clean_line (r);
if (!_cpp_create_definition (r, h))
abort ();
_cpp_pop_buffer (r);
}
else
abort ();
}
}
r->state = old_state;
free (defn);
defn = NULL;
if (deps_restore (r->deps, f, CPP_OPTION (r, restore_pch_deps) ? name : NULL)
!= 0)
goto error;
if (! _cpp_read_file_entries (r, f))
goto error;
return 0;
error:
cpp_errno (r, CPP_DL_ERROR, "while reading precompiled header");
return -1;
}

13
libcpp/po/ChangeLog Normal file
View File

@@ -0,0 +1,13 @@
2004-05-23 Paolo Bonzini <bonzini@gnu.org>
* be.po: Extracted from gcc/po/be.po.
* ca.po: Extracted from gcc/po/ca.po.
* da.po: Extracted from gcc/po/da.po.
* de.po: Extracted from gcc/po/de.po.
* el.po: Extracted from gcc/po/el.po.
* es.po: Extracted from gcc/po/es.po.
* fr.po: Extracted from gcc/po/fr.po.
* ja.po: Extracted from gcc/po/ja.po.
* nl.po: Extracted from gcc/po/nl.po.
* sv.po: Extracted from gcc/po/sv.po.
* tr.po: Extracted from gcc/po/tr.po.

776
libcpp/po/be.po Normal file
View File

@@ -0,0 +1,776 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2002 Free Software Foundation, Inc.
# Ales Nyakhaychyk <nyakhaychyk@i18n.linux.by>, 2002.
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.1\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2002-05-17 15:54+0200\n"
"Last-Translator: Ales Nyakhaychyk <nyakhaychyk@i18n.linux.by>\n"
"Language-Team: Belarusian <i18n@tut.by>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr ""
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr ""
#: cppcharset.c:653
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr ""
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
msgid "universal character names are only valid in C++ and C99"
msgstr ""
#: cppcharset.c:811
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr ""
#: cppcharset.c:837
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
#: cppcharset.c:849
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "\"%s\" - гэта не пачатак дэкларацыі"
#: cppcharset.c:859
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
#: cppcharset.c:863
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
#: cppcharset.c:898
msgid "converting UCN to source character set"
msgstr ""
#: cppcharset.c:902
msgid "converting UCN to execution character set"
msgstr ""
#: cppcharset.c:967
msgid "the meaning of '\\x' is different in traditional C"
msgstr ""
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr ""
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr ""
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr ""
#: cppcharset.c:1098
msgid "the meaning of '\\a' is different in traditional C"
msgstr ""
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "невядомая ESC-паслядоўнасць '\\%c'"
#: cppcharset.c:1116
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "невядомая ESC-паслядоўнасць '\\%c'"
#: cppcharset.c:1122
msgid "converting escape sequence to execution character set"
msgstr ""
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
#, fuzzy
msgid "character constant too long for its type"
msgstr "сімвальная канстанта вельмі доўгая"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "мнагасімвальная сімвальная канстанта"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "пустая сімвальная канстанта"
#: cppcharset.c:1378
#, c-format
msgid "failure to convert %s to %s"
msgstr ""
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr ""
#: cpperror.c:112
msgid "internal error: "
msgstr ""
#: cpperror.c:174
#, fuzzy
msgid "stdout"
msgstr "структура"
#: cppexp.c:192
msgid "too many decimal points in number"
msgstr ""
#: cppexp.c:212
#, fuzzy, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "`%E' - нерэчаісная нязьменная тыпу string"
#: cppexp.c:218
msgid "use of C99 hexadecimal floating constant"
msgstr ""
#: cppexp.c:227
msgid "exponent has no digits"
msgstr ""
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr ""
#: cppexp.c:240
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "`%E' - нерэчаісная нязьменная тыпу string"
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr ""
#: cppexp.c:261
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "`%E' - нерэчаісная нязьменная тыпу string"
#: cppexp.c:283
msgid "use of C99 long long integer constant"
msgstr ""
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr ""
#: cppexp.c:376
msgid "integer constant is too large for its type"
msgstr ""
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr ""
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr ""
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr ""
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr ""
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr ""
#: cppexp.c:531
msgid "floating constant in preprocessor expression"
msgstr ""
#: cppexp.c:537
msgid "imaginary number in preprocessor expression"
msgstr ""
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr ""
#: cppexp.c:714 cppexp.c:743
#, fuzzy, c-format
msgid "missing binary operator before token \"%s\""
msgstr "прапушчан прабел пасля нумара \"%.*s\""
#: cppexp.c:734
#, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr ""
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr ""
#: cppexp.c:756
msgid "#if with no expression"
msgstr ""
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr ""
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr ""
#: cppexp.c:811
msgid "unbalanced stack in #if"
msgstr ""
#: cppexp.c:830
#, fuzzy, c-format
msgid "impossible operator '%u'"
msgstr "немагчымы апэратар '%s'"
#: cppexp.c:922
msgid "missing ')' in expression"
msgstr ""
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr ""
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr ""
#: cppexp.c:958
msgid "missing '(' in expression"
msgstr ""
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr ""
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr ""
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr "%s - гэта блёчная прылада"
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr "%s - вельмі вялікі"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr ""
#: cppfiles.c:714
#, c-format
msgid "no include path in which to search for %s"
msgstr ""
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr ""
#: cppinit.c:389
msgid "cppchar_t must be an unsigned type"
msgstr ""
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr ""
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr ""
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr ""
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr ""
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr ""
#: cpplex.c:445
msgid "'$' in identifier or number"
msgstr ""
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr ""
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr ""
#: cpplex.c:916
msgid "unterminated comment"
msgstr "незавершаныя каментарыі"
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr ""
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr ""
#: cpplex.c:934
msgid "multi-line comment"
msgstr ""
#: cpplex.c:1198
#, fuzzy, c-format
msgid "unspellable token %s"
msgstr "немагу адчыніць файл \"%s\""
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr ""
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr ""
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr ""
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr ""
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr ""
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr ""
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr ""
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr ""
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr ""
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr ""
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr ""
#: cpplib.c:609
msgid "missing terminating > character"
msgstr ""
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr ""
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr ""
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr ""
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr ""
#: cpplib.c:800
msgid "line number out of range"
msgstr ""
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr ""
#: cpplib.c:847
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr ""
#: cpplib.c:947
#, fuzzy
msgid "invalid #ident directive"
msgstr "нерэчаісны ініцыялізатар"
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
#: cpplib.c:1030
#, fuzzy, c-format
msgid "#pragma %s %s is already registered"
msgstr "Клас \"%s\" ужо існуе"
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr ""
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr ""
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr ""
#: cpplib.c:1255
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "не магу знайсці крыніцу %s"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr ""
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
#: cpplib.c:1451
msgid "#else without #if"
msgstr ""
#: cpplib.c:1456
msgid "#else after #else"
msgstr ""
#: cpplib.c:1484
msgid "#elif without #if"
msgstr ""
#: cpplib.c:1489
msgid "#elif after #else"
msgstr ""
#: cpplib.c:1519
msgid "#endif without #if"
msgstr ""
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr ""
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr ""
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr ""
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr ""
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr ""
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
#: cppmacro.c:125 cppmacro.c:280
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr ""
#: cppmacro.c:221
#, fuzzy
msgid "could not determine date and time"
msgstr "Немагчыма адчыніць файл з дадзенымі %s.\n"
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr ""
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr ""
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr ""
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr ""
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr ""
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr ""
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr ""
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr ""
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr ""
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr ""
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr ""
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "адмеціна `%s' выкарыстоўвываецца, але ня вызначана"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr ""
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr ""
#: cppspec.c:128
msgid "too many input files"
msgstr "вельмі шмат уваходзячых файлаў"
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr ""
#: cpptrad.c:911
msgid "syntax error in macro parameter list"
msgstr ""
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr ""
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""

792
libcpp/po/ca.po Normal file
View File

@@ -0,0 +1,792 @@
# translation of gcc-3.2-ca.po to Catalan
# Catalan translation of gcc.
# Copyright (C) 2003 Free Software Foundation, Inc.
# This file is distributed under the same license as the gcc package.
# Gilles MATEU <mateu.gilles@wanadoo.fr>, 2002.
# Gilles MATEU <mateu.gilles@wanadoo.fr>, 2003.
# Gilles MATEU <mateu.gilles@wanadoo.fr>, 2004.
#
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.3.2\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2004-01-30 00:03+0000\n"
"Last-Translator: Mateu Gilles <mateu.gilles@wanadoo.fr>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-Msgid-Bugs-To: \n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr "C tradicional rebutja l'operador unari mes"
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
#: cppcharset.c:653
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "la conversió de \"%T\" a \"%T\" és ambigua"
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "universal-character-name \"\\U%08x\" no és vàlid en l'identificador"
#: cppcharset.c:811
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "el significat de \"\\%c\" és diferent en C tradicional"
#: cppcharset.c:837
#, fuzzy, c-format
msgid "incomplete universal character name %.*s"
msgstr "universal-character-name incomplet"
#: cppcharset.c:849
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "\"%T::%D\" no és una declaració vàlida"
#: cppcharset.c:859
#, fuzzy, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "universal-character-name \"\\U%08x\" no és vàlid en l'identificador"
#: cppcharset.c:863
#, fuzzy, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "universal-character-name \"\\U%08x\" no és vàlid en l'identificador"
#: cppcharset.c:898
#, fuzzy
msgid "converting UCN to source character set"
msgstr "convertint NULL a un tipus que no és apuntador"
#: cppcharset.c:902
#, fuzzy
msgid "converting UCN to execution character set"
msgstr "convertint NULL a un tipus que no és apuntador"
#: cppcharset.c:967
msgid "the meaning of '\\x' is different in traditional C"
msgstr "el significat de \"\\x\" és diferent en C tradicional"
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr "es va usar \\x sense dígits hexadecimales a continuació"
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr "seqüència d'escapi hexadecimal fora de rang"
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr "seqüència d'escapi octal fora de rang"
#: cppcharset.c:1098
msgid "the meaning of '\\a' is different in traditional C"
msgstr "el significat de \"\\a\" és diferent en C tradicional"
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "seqüència d'escapi que no és estàndard ISO, \"\\%c\""
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "seqüència d'escapi \"\\%c\" desconeguda"
#: cppcharset.c:1116
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "seqüència d'escapi desconeguda: '\\%03o'"
#: cppcharset.c:1122
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "seqüència d'escapi octal fora de rang"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
msgid "character constant too long for its type"
msgstr "constant de caràcter massa gran pel seu tipus"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "constant de caràcter amb múltiples caràcters"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "constant de caràter buida"
#: cppcharset.c:1378
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "no es pot convertir \"%E\" a \"%T\""
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "avís: "
#: cpperror.c:112
msgid "internal error: "
msgstr "error intern: "
#: cpperror.c:174
msgid "stdout"
msgstr "stdout"
#: cppexp.c:192
msgid "too many decimal points in number"
msgstr "massa punts decimals en el nombre"
#: cppexp.c:212
#, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "dígit \"%c\" invàlid en la constant octal"
#: cppexp.c:218
msgid "use of C99 hexadecimal floating constant"
msgstr "ús d'una constant de coma flotant hexadecimal C99"
#: cppexp.c:227
msgid "exponent has no digits"
msgstr "exponent no té dígits"
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr "la constant de coma flotant hexadecimal requereixe un exponent"
#: cppexp.c:240
#, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "sufix \"%.*s\" invàlid en la constant de coma flotant"
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr "C tradicional rebutja el sufix \"%.*s\""
#: cppexp.c:261
#, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "sufix \"%.*s\" invàlid en constant entera"
#: cppexp.c:283
msgid "use of C99 long long integer constant"
msgstr "ús d'una constant entera long long C99"
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr "les constants imaginàries són una extensió GCC"
#: cppexp.c:376
msgid "integer constant is too large for its type"
msgstr "la constant entera és massa gran per al seu tipus"
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr "la constant entera és tan gran que és unsigned"
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr "falta \")\" després de \"defined\""
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr "l'operador \"defined\" requereix un identificador"
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "(\"%s\" és un element alternatiu per a \"%s\" en C++)"
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr "aquest ùs de \"defined\" podria ser no portable"
#: cppexp.c:531
msgid "floating constant in preprocessor expression"
msgstr "constant de coma flotant en l'expressió del preprocessador"
#: cppexp.c:537
msgid "imaginary number in preprocessor expression"
msgstr "nombre imaginari en l'expressió del preprocessador"
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr "\"%s\" no és definit"
#: cppexp.c:714 cppexp.c:743
#, c-format
msgid "missing binary operator before token \"%s\""
msgstr "operador binari faltant abans de l'element \"%s\""
#: cppexp.c:734
#, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "l'element \"%s\" no és vàlid en les expressions del preprocesador"
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr "expressión void entre \"(\" i \")\""
#: cppexp.c:756
msgid "#if with no expression"
msgstr "#if sense expressió"
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr "l'operador \"%s\" no té operant de dreta"
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr " \":\" sense \"?\" precedent"
#: cppexp.c:811
msgid "unbalanced stack in #if"
msgstr "pila desequilibrada en #if"
#: cppexp.c:830
#, c-format
msgid "impossible operator '%u'"
msgstr "operador \"%u\" impossible"
#: cppexp.c:922
msgid "missing ')' in expression"
msgstr "\")\" faltant en l'expressió"
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr " \"?\" sense \":\" següent"
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr "desbordament d'enter en l'expressió del preprocessador"
#: cppexp.c:958
msgid "missing '(' in expression"
msgstr "\"(\" faltant en l'expressió"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr "l'operant esquerre de \"%s\" canvia el signe quan és promogut"
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr "l'operant dret de \"%s\" canvia el signe quan és promogut"
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr "operador coma en operant de #if"
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr "divisió per zero en #if"
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr "%s és un dispositiu de blocs"
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr "%s és massa gran"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr "%s és més curt de l'esperat"
#: cppfiles.c:714
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "no hi ha ruta d'inclusió en la qual es trobi %s"
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr "Guàrdies múltiples de include poden ser útils per a:\n"
#: cppinit.c:389
msgid "cppchar_t must be an unsigned type"
msgstr "cppchar_t deu ser d'un tipus unsigned"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
"l'aritmètica del preprocesador té una precisió màxima de %lu bits; "
"l'objectiu requereix %lu bits"
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
"l'aritmètica de CPP deu ser almenys tan precisa com un int de l'objectiu"
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr "el char de l'objectiu té menys de 8 bits d'ample"
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr "el wchar_t de l'objectiu és més estret que el char de l'objectiu"
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr "el int de l'objectiu és més estret que el char de l'objectiu"
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr "el mitj-enter de CPP és més estret que el caràcter de CPP"
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
"CPP no pot manejar constants de caràcter amples més enllà de %lu bits en "
"aquestobjectiu, però l'objectiu requereix %lu bits"
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr "caràter(es) nul(s) ignorats"
#: cpplex.c:445
#, fuzzy
msgid "'$' in identifier or number"
msgstr "caràcter/(es) \"$\" en l'identificador o nombre"
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "intent d'usar \"%s\" enverinat"
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
"__VA_ARGS__ solament pot aparèixer en l'expansió d'una macro variadic C99"
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr "caràcter(es) nul(s) preservats en la literal"
#: cpplex.c:916
msgid "unterminated comment"
msgstr "comentari sense acabar"
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr "els comentaris d'estil C++ no són permesos en ISO C90"
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr "(això es reportarà solament una vegada per cada fitxer d'entrada)"
#: cpplex.c:934
msgid "multi-line comment"
msgstr "comentari en múltiples línies"
#: cpplex.c:1198
#, c-format
msgid "unspellable token %s"
msgstr "Element %s impronunciable"
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "elements extra al final de la directiva #%s"
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s és una extenció del GCC"
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr "es suggereix no usar #elif en C tradicional"
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "C tradicional ignora #%s amb el # indentat"
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "es suggereix ocultar #%s del C tradicional amb el # indentat"
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr "l'estil de la directiva de línia és una extenció del GCC"
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "directiva de preprocessament #%s invàlida"
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr "\"defined\" no es pot usar com un nom de macro"
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr "no es pot usar \"%s\" com un nom de macro perquè és un operador en C++"
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr "no es va donar un nom de macro en la directiva #%s"
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr "els noms de macro deuen ser identificadors"
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr "esborrant la definició de \"%s\""
#: cpplib.c:609
msgid "missing terminating > character"
msgstr "falta el caràcter de terminació >"
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s espera \"NOM_DE_FITXER\" o <NOM_DE_FITXER>"
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr "#include niat amb massa profunditat"
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr "#include_next en el fitxer font primari"
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "indicador \"%s\" invàlid en la línia de la directiva"
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "\"%s\" desprès de #line no és un enter positiu"
#: cpplib.c:800
msgid "line number out of range"
msgstr "nombre de línia fora de rang"
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" no és un nom de fitxer vàlid"
#: cpplib.c:847
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "\"%s\" desprès de # no és un enter positiu"
#: cpplib.c:947
msgid "invalid #ident directive"
msgstr "directiva #ident invàlida"
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr "desant \"%s\" com a pragma i espai de noms de pragma"
#: cpplib.c:1030
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "ja s'ha desat #pragma %s %s"
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr "ja s'ha desat #pragma %s"
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr "#pragma una vegada en el fitxer principal"
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr "directiva #pragma de GCC enverinada invàlida"
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "enverinant la macro existent \"%s\""
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header ignorat fora del fitxer d'inclusió"
#: cpplib.c:1255
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "no es pot trobar la font %s"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr "el fitxer actual és més vell que %s"
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma duu una cadena literal entre parèntesis"
#: cpplib.c:1451
msgid "#else without #if"
msgstr "#else sense #if"
#: cpplib.c:1456
msgid "#else after #else"
msgstr "#else després de #else"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr "#elif sense #if"
#: cpplib.c:1489
msgid "#elif after #else"
msgstr "#elif després de #else"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr "#endif sense #if"
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr "falta \"(\" abans del predicat"
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr "falta \")\" per a completar la resposta"
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr "el predicat de la resposta està buidor"
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr "afirmació sense predicat"
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr "el predicat deu ser un identificador"
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" reafirmat"
#: cppmacro.c:125 cppmacro.c:280
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "macro interna \"%s\" invàlida"
#: cppmacro.c:221
msgid "could not determine date and time"
msgstr "no es pot determinar la data i l'hora"
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr "cadena literal invàlida, s'ignora el \"\\\" finals"
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr "pegar \"%s\" i \"%s\" no dóna un element vàlid de preprocessament"
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO C99 requereix que la resta dels arguments sigui usat"
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "la macro \"%s\" requereix %u arguments, però sol es proporcionen %u"
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "la macro \"%s\" va rebre %u arguments, però solament va prendre %u"
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr "llista d'arguments sense acabar a l'invocar la macro \"%s\""
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "la funció de macro \"%s\" es deu usar amb arguments en C tradicional"
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "paràmetre de macro \"%s\" duplicat"
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" podria faltar en la llista de paràmetre de macro"
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr "els paràmetres de macro deuen ser separats per comes"
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr "falta el nom del paràmetre"
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr "els macros variadic anònims es van introduir en C99"
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C no permet macros variadic nomenats"
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr "falta parèntesi dret en la llista de paràmetres de macro"
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C requereix espais en blanc després del nom de macro"
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr "\"#\" no és seguit per un paràmetre de macro"
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "\"##\" no pot apareixer en o al final d'una expansió de macro"
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
"l'argument de macro \"%s\" deuria ser convertit a cadena en C traditional"
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "tipus de hash %d invàlid en cpp_macro_definition"
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "s'usa l'etiqueta \"%s\" però no està definida"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "\"%s\" utilitzat però mai definit"
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "\"%s\" no es una opció vàlida per el preprocessador"
#: cppspec.c:128
msgid "too many input files"
msgstr "massa fitxers d'entrada"
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr ""
#: cpptrad.c:911
#, fuzzy
msgid "syntax error in macro parameter list"
msgstr "\"%s\" podria faltar en la llista de paràmetre de macro"
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr "En el fitxer inclòs dès de %s:%u"
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""
",\n"
" dès de %s:%u"

774
libcpp/po/cpplib.pot Normal file
View File

@@ -0,0 +1,774 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr ""
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr ""
#: cppcharset.c:653
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr ""
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
msgid "universal character names are only valid in C++ and C99"
msgstr ""
#: cppcharset.c:811
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr ""
#: cppcharset.c:837
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
#: cppcharset.c:849
#, c-format
msgid "%.*s is not a valid universal character"
msgstr ""
#: cppcharset.c:859
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
#: cppcharset.c:863
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
#: cppcharset.c:898
msgid "converting UCN to source character set"
msgstr ""
#: cppcharset.c:902
msgid "converting UCN to execution character set"
msgstr ""
#: cppcharset.c:967
msgid "the meaning of '\\x' is different in traditional C"
msgstr ""
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr ""
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr ""
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr ""
#: cppcharset.c:1098
msgid "the meaning of '\\a' is different in traditional C"
msgstr ""
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr ""
#: cppcharset.c:1116
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr ""
#: cppcharset.c:1122
msgid "converting escape sequence to execution character set"
msgstr ""
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
msgid "character constant too long for its type"
msgstr ""
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr ""
#: cppcharset.c:1339
msgid "empty character constant"
msgstr ""
#: cppcharset.c:1378
#, c-format
msgid "failure to convert %s to %s"
msgstr ""
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr ""
#: cpperror.c:112
msgid "internal error: "
msgstr ""
#: cpperror.c:174
msgid "stdout"
msgstr ""
#: cppexp.c:192
msgid "too many decimal points in number"
msgstr ""
#: cppexp.c:212
#, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr ""
#: cppexp.c:218
msgid "use of C99 hexadecimal floating constant"
msgstr ""
#: cppexp.c:227
msgid "exponent has no digits"
msgstr ""
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr ""
#: cppexp.c:240
#, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr ""
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr ""
#: cppexp.c:261
#, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr ""
#: cppexp.c:283
msgid "use of C99 long long integer constant"
msgstr ""
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr ""
#: cppexp.c:376
msgid "integer constant is too large for its type"
msgstr ""
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr ""
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr ""
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr ""
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr ""
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr ""
#: cppexp.c:531
msgid "floating constant in preprocessor expression"
msgstr ""
#: cppexp.c:537
msgid "imaginary number in preprocessor expression"
msgstr ""
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr ""
#: cppexp.c:714 cppexp.c:743
#, c-format
msgid "missing binary operator before token \"%s\""
msgstr ""
#: cppexp.c:734
#, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr ""
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr ""
#: cppexp.c:756
msgid "#if with no expression"
msgstr ""
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr ""
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr ""
#: cppexp.c:811
msgid "unbalanced stack in #if"
msgstr ""
#: cppexp.c:830
#, c-format
msgid "impossible operator '%u'"
msgstr ""
#: cppexp.c:922
msgid "missing ')' in expression"
msgstr ""
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr ""
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr ""
#: cppexp.c:958
msgid "missing '(' in expression"
msgstr ""
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr ""
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr ""
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr ""
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr ""
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr ""
#: cppfiles.c:714
#, c-format
msgid "no include path in which to search for %s"
msgstr ""
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr ""
#: cppinit.c:389
msgid "cppchar_t must be an unsigned type"
msgstr ""
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr ""
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr ""
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr ""
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr ""
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr ""
#: cpplex.c:445
msgid "'$' in identifier or number"
msgstr ""
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr ""
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr ""
#: cpplex.c:916
msgid "unterminated comment"
msgstr ""
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr ""
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr ""
#: cpplex.c:934
msgid "multi-line comment"
msgstr ""
#: cpplex.c:1198
#, c-format
msgid "unspellable token %s"
msgstr ""
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr ""
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr ""
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr ""
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr ""
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr ""
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr ""
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr ""
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr ""
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr ""
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr ""
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr ""
#: cpplib.c:609
msgid "missing terminating > character"
msgstr ""
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr ""
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr ""
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr ""
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr ""
#: cpplib.c:800
msgid "line number out of range"
msgstr ""
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr ""
#: cpplib.c:847
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr ""
#: cpplib.c:947
msgid "invalid #ident directive"
msgstr ""
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
#: cpplib.c:1030
#, c-format
msgid "#pragma %s %s is already registered"
msgstr ""
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr ""
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr ""
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr ""
#: cpplib.c:1255
#, c-format
msgid "cannot find source file %s"
msgstr ""
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr ""
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
#: cpplib.c:1451
msgid "#else without #if"
msgstr ""
#: cpplib.c:1456
msgid "#else after #else"
msgstr ""
#: cpplib.c:1484
msgid "#elif without #if"
msgstr ""
#: cpplib.c:1489
msgid "#elif after #else"
msgstr ""
#: cpplib.c:1519
msgid "#endif without #if"
msgstr ""
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr ""
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr ""
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr ""
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr ""
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr ""
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
#: cppmacro.c:125 cppmacro.c:280
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr ""
#: cppmacro.c:221
msgid "could not determine date and time"
msgstr ""
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr ""
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr ""
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr ""
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr ""
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr ""
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr ""
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr ""
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr ""
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr ""
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr ""
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr ""
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr ""
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr ""
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr ""
#: cppspec.c:128
msgid "too many input files"
msgstr ""
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr ""
#: cpptrad.c:911
msgid "syntax error in macro parameter list"
msgstr ""
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr ""
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""

911
libcpp/po/da.po Normal file
View File

@@ -0,0 +1,911 @@
# Danish version of GCC strings.
# Copyright (C) 2002, 03 Free Software Foundation, Inc.
# Ole Laursen <olau@hardworking.dk>, 2001, 02, 03.
#
# Konventioner:
#
# ABI -> binær grænseflade
# ANSI -> (har jeg tilladt mig at opdatere til (modsvarer Info-hjælpen)) ISO
# access -> tilgangs-
# aggregate -> en variabel af en sammensat type (fx struct, class)
# ambigeous -> tvetydig
# arg, argument -> parameter (for ikke at blande sammen med diskussionsargument)
# array -> tabel
# assembler -> maskinkodeoversætter
# assertion -> postulat
# attribute -> egenskab
# base class -> stamklasse
# basic block -> basisblok (funktioner deles op i disse under oversættelsen)
# braces -> krøllede paranteser
# braced-group -> sætningsblok
# branch -> forgrening
# buffer -> mellemlager
# cast -> typetildeling, omtvingelse af typen
# con-/destructor -> kon-/destruktionsfunktion
# conflicting -> modstridende
# convert -> konvertere, omdanne
# declared -> erklæret
# defaults to -> antages at være
# dereference -> følge
# discard -> fjerne
# discard -> kassere
# driver -> styringsprogram
# duplicate -> optræder mere end én gang; mangfoldiggøre
# edge list -> kantliste
# elt -> udtrykstræ
# endian -> endet (fx storendet, lillendet)
# endianness -> endethed
# exception handling -> håndtering af undtagelser
# excess -> for mange
# expansion -> udfoldning
# extra -> (ret ofte) overskydende
# floating point -> kommatal
# formals -> parametre
# format string -> formateringsstreng
# forward -> forhånd (f.eks. forhåndserklæring)
# frame table -> rammetabel
# friend -> ven(ne-)
# gp (general purpose) register -> alment register (havde først brug- med, med det er overflødigt)
# hard register -> hardware-register
# have no effect -> udvirker intet
# identifier -> kaldenavn
# incompatible -> uforenelig, passer ikke
# incomplete -> ufuldstændig
# initialize -> tildele startværdi, klargøre
# initializer -> startværdi
# initializer list -> klargøringsliste
# inline -> integrede, indbygges (eller som reserveret ord: inline)
# instance -> instans (fx af en klasse)
# issue (fx warnings) -> fremkom med
# iterator -> løkkevariabel
# junk -> ragelse
# keyword -> reserveret ord
# label -> etiket
# linking -> sammenkædning
# lvalue -> venstreværdi
# macro -> makro
# malformed -> forkert udformet, misdannet
# member function/method -> [medlems]funktion (metode i Objective C)
# mismatch -> passer ikke med
# mmap -> indlæse
# modifier, qualifier -> modifikation
# multiple inheritance -> multipel nedarvning
# newline -> linjeskift
# non-numeric -> ikke et tal
# null character -> nultegn
# null pointer -> nul[-]henvisning
# offset -> forskydning
# opcodes (til ovenstående) -> instruktioner
# out of range -> uden for det gyldige (til tider mulige) interval
# overflow -> (til tider) løber over
# overlap -> [interval]sammenfald
# overloading -> flertydiggørelse
# padding -> udfylning
# pass -> overbringe (fx parametre), videregive
# pointer -> henvisning[svariabel]
# preprocessor -> præprocessor
# profiling -> profilering
# promote -> forfremme
# request -> (til tider) forespørgsel
# return -> returnerer
# schedule -> planlæg
# scope -> virkningsfelt
# shadowing -> skygger for
# shift -> skift
# specified -> (oftest) angivet
# specifier -> anvisning, angivelse
# stab -> stik (?)
# statement -> sætning
# storage class -> lagringsklasse
# strict -> nøje
# string -> streng
# subscript -> indeks, opslag
# target -> mål[arkitektur]
# template -> skabelon
# thrown -> kastet
# token -> symbol
# top-level -> øverste niveau
# trigraphs ('??%c'-dimser) -> trigrafer
# undefine -> glemme definitionen
# undefined blahblah -> blahblah er ikke defineret
# underscore -> understreg
# universal-character-name -> universelt tegn[navn]
# unsigned -> uden fortegn
# varargs -> variable parameterlister
# variadic macro -> makro med vilkårligt antal parametre
# variabels -> variabler (med afslutnings-r)
# vtable -> virtuel tabel
# wide character -> bredtegn
# white space -> mellemrum
# whitespace -> mellemrum
#
# Reserverede ord ofte ikke oversat, ej heller er der anbragt ' omkring
# (fx unsigned -> unsigned; derimod function -> funktion). Forkortelser
# som decl (for declaration) og arg (for argument) er oversat uforkortet
# - der er jo masser af plads at tage af.
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.3\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2003-05-25 18:00+0200\n"
"Last-Translator: Ole Laursen <olau@hardworking.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr "traditionel C tillader ikke operatoren unær plus"
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
#: cppcharset.c:653
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "konvertering fra NaN til unsigned int"
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
#: cppcharset.c:811
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "betydningen af '\\%c' er anderledes i traditionel C"
#: cppcharset.c:837
#, fuzzy, c-format
msgid "incomplete universal character name %.*s"
msgstr "ufuldstændigt universelt tegnnavn"
#: cppcharset.c:849
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "'%T::%D' er ikke en gyldig erklærer"
#: cppcharset.c:859
#, fuzzy, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
#: cppcharset.c:863
#, fuzzy, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
#: cppcharset.c:898
#, fuzzy
msgid "converting UCN to source character set"
msgstr "konverterer NULL til en ikke-henvisningstype"
#: cppcharset.c:902
#, fuzzy
msgid "converting UCN to execution character set"
msgstr "konverterer NULL til en ikke-henvisningstype"
#: cppcharset.c:967
msgid "the meaning of '\\x' is different in traditional C"
msgstr "betydningen af '\\x' er anderledes i traditionel C"
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr "\\x angivet uden efterfølgende hexadecimale cifre"
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr "den hexadecimale undvigesekvens er uden for det gyldige interval"
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr "den oktale undvigesekvens er uden for det gyldige interval"
#: cppcharset.c:1098
msgid "the meaning of '\\a' is different in traditional C"
msgstr "betydningen af '\\a' er anderledes i traditionel C"
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "undvigesekvensen '\\%c' er ikke ISO-standard"
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "ukendt undvigesekvensen '\\%c'"
#: cppcharset.c:1116
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "ukendt undvigesekvensen '\\%03o'"
#: cppcharset.c:1122
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "undvigesekvens er uden for det gyldig interval for tegn"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
msgid "character constant too long for its type"
msgstr "tegnkonstanten er for lang for dens type"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "flerbyte-tegnkonstant"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "tom tegnkonstant"
#: cppcharset.c:1378
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "kunne ikke konvertere '%E' til '%T'"
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "advarsel: "
#: cpperror.c:112
msgid "internal error: "
msgstr "intern fejl: "
#: cpperror.c:174
msgid "stdout"
msgstr "std-ud"
#: cppexp.c:192
msgid "too many decimal points in number"
msgstr "for mange decimalkommaer i tal"
#: cppexp.c:212
#, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "ugyldig ciffer \"%c\" i oktal konstant"
#: cppexp.c:218
msgid "use of C99 hexadecimal floating constant"
msgstr "brug af C99 hexadecimal kommatalskonstant"
#: cppexp.c:227
msgid "exponent has no digits"
msgstr "der er ingen cifre i eksponent"
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr "hexadecimal kommatalskonstant skal have en eksponent"
#: cppexp.c:240
#, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "ugyldig endelse \"%.*s\" i kommatalskonstant"
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr "traditionel C tillader ikke endelsen \"%.*s\""
#: cppexp.c:261
#, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "ugyldig endelse \"%.*s\" i heltalskonstant"
#: cppexp.c:283
msgid "use of C99 long long integer constant"
msgstr "brug af ISO C99 long long-heltalskonstanter"
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr "imaginære konstanter er en GCC-udvidelse"
#: cppexp.c:376
msgid "integer constant is too large for its type"
msgstr "heltalskonstanten er for stor for dens type"
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr "heltalskonstanten er så stor at den er unsigned"
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr "manglende ')' efter \"defined\""
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr "operatoren \"defined\" kræver et kaldenavn"
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "(\"%s\" er et alternativt symbol for \"%s\" i C++)"
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr "denne brug af \"defined\" er muligvis ikke portabel"
#: cppexp.c:531
msgid "floating constant in preprocessor expression"
msgstr "kommatalskonstant i præprocessorudtryk"
#: cppexp.c:537
msgid "imaginary number in preprocessor expression"
msgstr "imaginært tal i præprocessorudtryk"
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr "\"%s\" er ikke defineret"
#: cppexp.c:714 cppexp.c:743
#, c-format
msgid "missing binary operator before token \"%s\""
msgstr "manglende binær operator før symbolet \"%s\""
#: cppexp.c:734
#, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "symbolet \"%s\" er ikke gyldigt i præprocessorudtryk"
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr "tomt udtryk mellem '(' og ')'"
#: cppexp.c:756
msgid "#if with no expression"
msgstr "#if uden noget udtryk"
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr "operatoren '%s' har ikke nogen højre operand"
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr " ':' uden forudgående '?'"
#: cppexp.c:811
msgid "unbalanced stack in #if"
msgstr "uafbalanceret stak i #if"
#: cppexp.c:830
#, c-format
msgid "impossible operator '%u'"
msgstr "umulig operator '%u'"
#: cppexp.c:922
msgid "missing ')' in expression"
msgstr "manglende ')' i udtryk"
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr "'?' uden efterfølgende ':'"
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr "heltallet løber over i præprocessorudtrykket"
#: cppexp.c:958
msgid "missing '(' in expression"
msgstr "manglende '(' i udtryk"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr "den venstre operand til \"%s\" ændrer fortegn ved forfremmelse"
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr "den højre operand til \"%s\" ændrer fortegn ved forfremmelse"
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr "kommeoperator i en operand til #if"
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr "division med nul i #if"
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr "%s er en blokenhed"
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr "%s er for stor"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr "%s er kortere end forventet"
#: cppfiles.c:714
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "der er ingen inkluderingssti at finde %s i"
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr "Flere inkluderingsvagter kan være nyttige til:\n"
#: cppinit.c:389
msgid "cppchar_t must be an unsigned type"
msgstr "cppchar_t skal være en unsigned type"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
"præprocessorberegning har en maksimal præcision på %lu bit; målarkitektur "
"kræver %lu bit"
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
"CPP-beregning skal være mindst lige så præcis som en målarkitekturs int"
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr "målarkitekturs char er mindre end 8 bit bred"
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr "målarkitekturs wchar_t er mindre end målarkitekturs char"
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr "målarkitekturs int er mindre end målarkitekturs char"
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr "CPP-halvheltal er mindre end CPP-tegn"
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
"CPP på denne vært kan ikke håndtere bredtegnkonstanter over %lu bit, men "
"målarkitekturen kræver %lu bit"
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr "nultegn ignoreret"
#: cpplex.c:445
#, fuzzy
msgid "'$' in identifier or number"
msgstr "'$'-tegn i kaldenavn eller tal"
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "forsøg på at bruge forgiftet \"%s\""
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
"__VA_ARGS__ kan kun optræde i udfoldelsen af en C99-makro med vilkårligt "
"antal parametre"
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr "nultegn bevaret i strengkonstant"
#: cpplex.c:916
msgid "unterminated comment"
msgstr "uafsluttet kommentar"
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr "kommentarer i C++-stil er ikke tilladt i ISO C90"
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr "(dette rapporteres kun en enkelt gang per inddatafil)"
#: cpplex.c:934
msgid "multi-line comment"
msgstr "flerlinjers kommentar"
#: cpplex.c:1198
#, c-format
msgid "unspellable token %s"
msgstr "symbol %s kan ikke staves"
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "ekstra symboler i slutningen af #%s-direktiv"
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s er en GCC-udvidelse"
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr "foreslår undladelse af brug af #elif i traditionel C"
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "traditionel C ignorerer #%s når '#' er indrykket"
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "foreslår at skjule #%s fra traditionel C vha. indrykket '#'"
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr "indlejring af et direktiv inden i makroparametre er ikke portabelt"
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr "linjestilsdirektiv er en GCC-udvidelse"
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "ugyldigt præprocessordirektiv #%s"
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr "\"defined\" kan ikke bruges som makronavn"
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr "\"%s\" kan ikke bruges som et makronavn da det er en operator i C++"
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr "intet makronavn angivet i direktivet #%s"
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr "makronavne skal være kaldenavne"
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr "glemmer definitionen af \"%s\""
#: cpplib.c:609
msgid "missing terminating > character"
msgstr "manglende afsluttende '>'-tegn"
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s forventer \"FILNAVN\" eller <FILNAVN>"
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr "#include indlejret for dybt"
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr "#include_next i den primære kildekodefil"
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "ugyldigt flag \"%s\" i linjedirektiv"
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "\"%s\" efter #line er ikke et positivt heltal"
#: cpplib.c:800
msgid "line number out of range"
msgstr "linjenummer er uden for det gyldige interval"
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" er ikke et ugyldigt filnavn"
#: cpplib.c:847
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "\"%s\" efter # er ikke et positivt heltal"
#: cpplib.c:947
msgid "invalid #ident directive"
msgstr "ugyldigt #ident-direktiv"
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr "registrerer \"%s\" som både et pragma og som et pragmanavnerum"
#: cpplib.c:1030
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s er allerede registreret"
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s er allerede registreret"
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr "'#pragma once' i hovedfil"
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr "ugyldigt #pragma GCC poison-direktiv"
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "forgifter eksisterende makro \"%s\""
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr "'#pragma system_header' ignoreret uden for inkluderingsfil"
#: cpplib.c:1255
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "kan ikke finde kilden %s"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr "aktuel fil er ældre end %s"
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma tager en strengkonstant med paranteser omkring"
#: cpplib.c:1451
msgid "#else without #if"
msgstr "#else uden #if"
#: cpplib.c:1456
msgid "#else after #else"
msgstr "#else efter #else"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr "#elif uden #if"
#: cpplib.c:1489
msgid "#elif after #else"
msgstr "#elif efter #else"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr "#endif uden #if"
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr "manglende '(' efter udsagn"
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr "manglende ')' til at fuldføre svar"
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr "udsagnets svar et tomt"
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr "postulat uden udsagn"
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr "udsagn skal være et kaldenavn"
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" genpostuleret"
#: cppmacro.c:125 cppmacro.c:280
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "ugyldig indbygget makro \"%s\""
#: cppmacro.c:221
msgid "could not determine date and time"
msgstr "kunne ikke bestemme dato og tid"
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr "ugyldig strengkonstant, ignorerer afsluttende '\\'"
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
"indsættelse af \"%s\" og \"%s\" giver ikke et gyldigt præprocessorsymbol"
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO C99 påkræver at restparametrene skal bruges"
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "makroen \"%s\" kræver %u parametre, men modtager kun %u"
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "makroen \"%s\" bliver viderebragt %u parametre, men tager kun mod %u"
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr "uafsluttet parameterliste ved kald af makroen \"%s\""
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "funktionsagtig makro \"%s\" skal bruges med parametre i traditionel C"
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "makroparameternavnet \"%s\" optræder mere end én gang"
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" må ikke optræde i makroparameterliste"
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr "makroparametre skal være komma-adskilte"
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr "parameternavn mangler"
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr "anonyme makroer med vilkårligt antal parametre blev introduceret i C99"
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C tillader ikke navngivne makroer med vilkårligt antal parametre"
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr "manglende ')' i makroparameterliste"
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C påkræver mellemrum efter makronavnet"
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr "'#' efterfølges ikke af en makroparameter"
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' må ikke optræde ved nogen af enderne i en makrokrop"
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
"makroparameteren \"%s\" ville blive gjort til en streng i traditionel C"
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "ugyldig hashtype %d i cpp_macro_definition"
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "etiketten '%s' er benyttet, men ikke defineret"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "'%s' brugt, men aldrig defineret"
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "\"%s\" er ikke et gyldigt tilvalg til præprocessoren"
#: cppspec.c:128
msgid "too many input files"
msgstr "for mange inddatafiler"
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr "opdagede rekursion ved udfoldelse af makroen \"%s\""
#: cpptrad.c:911
#, fuzzy
msgid "syntax error in macro parameter list"
msgstr "\"%s\" må ikke optræde i makroparameterliste"
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr "I filen inkluderet af %s:%u"
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""
",\n"
" af %s:%u"

790
libcpp/po/de.po Normal file
View File

@@ -0,0 +1,790 @@
# German translation of gcc messages.
# Copyright © 2002, 2003, 2004 Free Software Foundation, Inc.
# Karl Eichwalder <ke@suse.de>, 2002, 2003.
# Roland Stigge <stigge@antcom.de>, 2003, 2004.
# This file is distributed under the same license as the gcc package.
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.4-b20040206\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2004-02-15 12:14+0100\n"
"Last-Translator: Roland Stigge <stigge@antcom.de>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr "traditionelles C weist den unären Plus-Operator zurück"
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
#: cppcharset.c:653
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "Konvertierung von %s nach %s wird von iconv nicht unterstützt"
#: cppcharset.c:656
msgid "iconv_open"
msgstr "iconv_open"
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
"keine Implementation für iconv, es kann nicht von %s nach %s konvertiert "
"werden"
#: cppcharset.c:808
msgid "universal character names are only valid in C++ and C99"
msgstr "universelle Zeichennamen sind nur in C++ und C99 gültig"
#: cppcharset.c:811
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "die Bedeutung von '\\%c' ist in traditionellem C anders"
#: cppcharset.c:837
#, c-format
msgid "incomplete universal character name %.*s"
msgstr "unvollständiger Universal-Zeichenname %.*s"
#: cppcharset.c:849
#, c-format
msgid "%.*s is not a valid universal character"
msgstr "»%.*s« ist kein gültiges universelles Zeichen"
#: cppcharset.c:859
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "universelles Zeichen %.*s ist nicht gültig in Bezeichner"
#: cppcharset.c:863
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "universelles Zeichen %.*s ist nicht gültig am Anfang eines Bezeichners"
#: cppcharset.c:898
msgid "converting UCN to source character set"
msgstr "UCN wird in Quellzeichensatz konvertiert"
#: cppcharset.c:902
msgid "converting UCN to execution character set"
msgstr "UCN wird in Ausführungszeichensatz konvertiert"
#: cppcharset.c:967
msgid "the meaning of '\\x' is different in traditional C"
msgstr "die Bedeutung von '\\x' ist in traditionellem C anders"
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr "\\x ohne folgende Hex-Ziffern verwendet"
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr "Hex-Fluchtsequenz außerhalb des Wertebereiches"
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr "Oktal-Fluchtsequenz außerhalb des Wertebereiches"
#: cppcharset.c:1098
msgid "the meaning of '\\a' is different in traditional C"
msgstr "die Bedeutung von '\\a' ist in traditionellem C anders"
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "nicht-ISO-standardkonforme Fluchtsequenz '\\%c'"
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "unbekannte Fluchtsequenz '\\%c'"
#: cppcharset.c:1116
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "unbekannte Fluchtsequenz: '\\%03o'"
#: cppcharset.c:1122
msgid "converting escape sequence to execution character set"
msgstr "Fluchtsequenz wird in Zeichensatz der Ausführung konvertiert"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr "Konvertierung in Zeichensatz der Ausführung"
#: cppcharset.c:1244 cppcharset.c:1307
msgid "character constant too long for its type"
msgstr "Zeichenkonstante zu lang für ihren Typ"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "Zeichenkonstante mit mehreren Zeichen"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "Leere Zeichenkonstante"
#: cppcharset.c:1378
#, c-format
msgid "failure to convert %s to %s"
msgstr "Fehler beim Konvertieren von %s in %s"
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "Warnung: "
#: cpperror.c:112
msgid "internal error: "
msgstr "interner Fehler: "
#: cpperror.c:174
msgid "stdout"
msgstr "Standardausgabe"
#: cppexp.c:192
msgid "too many decimal points in number"
msgstr "zu viele Dezimalpunkte in Zahl"
#: cppexp.c:212
#, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "ungültige Ziffer »%c« in Oktal-Konstante"
#: cppexp.c:218
msgid "use of C99 hexadecimal floating constant"
msgstr "Verwendung von C99 hexadezimaler Gleitkommakonstante"
#: cppexp.c:227
msgid "exponent has no digits"
msgstr "Exponent hat keine Ziffern"
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr "hexadezimale Gleitkommakonstanten benötigen Exponenten"
#: cppexp.c:240
#, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "ungültiger Suffix »%.*s« an Gleitkommakonstante"
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr "traditionelles C lehnt den Suffix »%.*s« ab"
#: cppexp.c:261
#, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "ungültiger Suffix »%.*s« an Ganzzahlkonstante"
#: cppexp.c:283
msgid "use of C99 long long integer constant"
msgstr "C99 long long Ganzzahlkonstante verwendet"
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr "imaginäre Konstanten sind eine GCC-Erweiterung"
#: cppexp.c:376
msgid "integer constant is too large for its type"
msgstr "Ganzzahlkonstante ist zu groß für ihren Typ"
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr "Ganzzahlkonstante ist so groß, dass sie vorzeichenlos ist"
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr "fehlendes ')' hinter »defined«"
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr "Operator »defined« erfordert einen Bezeichner"
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "(»%s« ist ein alternatives Token for »%s« in C++)"
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr "diese Verwendung von »defined« könnte nicht portierbar sein"
#: cppexp.c:531
msgid "floating constant in preprocessor expression"
msgstr "Gleitkommakonstante in Präprozessorausdruck"
#: cppexp.c:537
msgid "imaginary number in preprocessor expression"
msgstr "imaginäre Zahl in Präprozessorausdruck"
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr "»%s« ist nicht definiert"
#: cppexp.c:714 cppexp.c:743
#, c-format
msgid "missing binary operator before token \"%s\""
msgstr "fehlender binärer Operator vor Token »%s«"
#: cppexp.c:734
#, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "Token »%s« ist nicht gültig in Präprozessorausdrücken"
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr "ungültiger Ausdruck zwischen '(' und ')'"
#: cppexp.c:756
msgid "#if with no expression"
msgstr "#if ohne Ausdruck"
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr "Operator »%s« hat keinen rechten Operanden"
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr " ':' ohne vorangehendes '?'"
#: cppexp.c:811
msgid "unbalanced stack in #if"
msgstr "unausgeglichener Keller in #if"
#: cppexp.c:830
#, c-format
msgid "impossible operator '%u'"
msgstr "unmöglicher Operator '%u'"
#: cppexp.c:922
msgid "missing ')' in expression"
msgstr "fehlendes ')' in Ausdruck"
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr "'?' ohne folgendes ':'"
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr "Ganzzahlüberlauf in Präprozessorausdruck"
#: cppexp.c:958
msgid "missing '(' in expression"
msgstr "fehlendes '(' in Ausdruck"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr "der linke Operand von »%s« ändert bei der Weitergabe das Vorzeichen"
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr "der rechte Operand von »%s« ändert bei der Weitergabe das Vorzeichen"
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr "Kommaoperator in Operand von #if"
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr "Division durch null in #if"
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr "NULL-Verzeichnis in find_file"
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr "ein oder mehrere PCH-Dateien wurden gefunden, aber sie sind ungültig"
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr "verwenden Sie -Winvalid-pch für mehr Informationen"
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr "%s ist ein Block-Gerät"
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr "%s ist zu groß"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr "%s ist kürzer als erwartet"
#: cppfiles.c:714
#, c-format
msgid "no include path in which to search for %s"
msgstr "kein Include-Pfad, um %s zu finden"
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr "Mehrere Include-Wächter könnten nützlich sein für:\n"
#: cppinit.c:389
msgid "cppchar_t must be an unsigned type"
msgstr "cppchar_t muss ein vorzeichenloser Typ sein"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
"Präprozessorarithmetik hat maximale Präzision von %lu Bits; Ziel erfordert %"
"lu Bits"
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr "CPP-Arithmetik muss mindestens so genau sein wie das Ziel int"
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr "Ziel-char ist weniger als 8 Bits breit"
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr "Ziel-wchar_t ist schmaler als Ziel char"
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr "Ziel-int ist schmaler als Ziel-char"
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr "CPP Halb-Ganzzahl ist schmaler als CPP-Zeichen"
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
"CPP kann auf diesem Computer keine Wide-Zeichenkonstanten über %lu Bits "
"Breite behandeln, das Ziel benötigt %lu Bits"
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr "Null-Zeichen ignoriert"
#: cpplex.c:445
msgid "'$' in identifier or number"
msgstr "'$' in Bezeichner oder Zahl"
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "Versuch, schlechtes »%s« zu verwenden"
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
"__VA_ARGS__ kann nur in Erweiterung eines variadischen C99-Makros auftreten"
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr "Null-Zeichen im Literal erhalten"
#: cpplex.c:916
msgid "unterminated comment"
msgstr "nicht beendeter Kommentar"
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr "C++-Stil-Kommentare sind in ISO-C90 nicht erlaubt"
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr "(dies wird nur einmal pro Eingabedatei gemeldet)"
#: cpplex.c:934
msgid "multi-line comment"
msgstr "mehrzeiliger Kommentar"
#: cpplex.c:1198
#, c-format
msgid "unspellable token %s"
msgstr "nicht buchstabierbares Token %s"
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "mehrere Token am Ende der Direktive #%s"
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s ist eine Erweiterung des GCC"
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr "empfehle, in traditionellem C nicht #elif zu verwenden"
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "traditionelles C ignoriert #%s mit eingerücktem #"
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "empfehle, #%s vor traditionellem C mit # zu verbergen"
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
"das Einbetten einer Direktive innerhalb von Makroargumenten ist nicht "
"portierbar"
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr "der Stil der line-Direktive ist eine Erweiterung des GCC"
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "ungültige Präprozessordirektive #%s"
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr "»defined« kann nicht als Makroname verwendet werden"
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
"»%s« kann nicht als Makroname verwendet werden, da es ein Operator in C++ ist"
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr "kein Makroname in Direktive #%s angegeben"
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr "Makronamen müssen Bezeichner sein"
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr "un-definiere »%s«"
#: cpplib.c:609
msgid "missing terminating > character"
msgstr "fehlendes abschließendes »>«-Zeichen"
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s erwartet \"DATEINAME\" oder <DATEINAME>"
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr "#include ist zu tief geschachtelt"
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr "#include_next in erster Quelldatei"
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "ungültiges Flag »%s« in line-Direktive"
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "»%s« hinter #line ist keine positive Ganzzahl"
#: cpplib.c:800
msgid "line number out of range"
msgstr "Zeilennummer ist außerhalb des Wertebereiches"
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "»%s« ist kein gültiger Dateiname"
#: cpplib.c:847
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "»%s« hinter # ist keine positive Ganzzahl"
#: cpplib.c:947
msgid "invalid #ident directive"
msgstr "ungültige #ident-Direktive"
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr "registriere »%s« sowohl als Pragma als auch als Pragma-Namespace"
#: cpplib.c:1030
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s ist bereits registriert"
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s ist bereits registriert"
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr "#pragma once in Hauptdatei"
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr "ungültige #pragma GCC Direktive"
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "schlechtes existierendes Makro »%s«"
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header außerhalb include-Datei ignoriert"
#: cpplib.c:1255
#, c-format
msgid "cannot find source file %s"
msgstr "Quelldatei %s kann nicht gefunden werden"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr "aktuelle Datei ist älter als %s"
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma nimmt ein geklammertes Zeichenkettenliteral"
#: cpplib.c:1451
msgid "#else without #if"
msgstr "#else ohne #if"
#: cpplib.c:1456
msgid "#else after #else"
msgstr "#else hinter #else"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr "#elif ohne #if"
#: cpplib.c:1489
msgid "#elif after #else"
msgstr "#elif hinter #else"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr "#endif ohne #if"
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr "fehlendes '(' hinter Prädikat"
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr "fehlendes ')', um Antwort abzuschließen"
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr "Prädikatantwort ist leer"
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr "Behauptung ohne Prädikat"
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr "Prädikat muss ein Bezeichner sein"
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr "»%s« wieder behauptet"
#: cppmacro.c:125 cppmacro.c:280
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "ungültiges eingebautes Makro »%s«"
#: cppmacro.c:221
msgid "could not determine date and time"
msgstr "Datum und Zeit konnten nicht bestimmt werden"
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr "ungültiges Zeichenkettenliteral, ignoriere abschließendes '\\'"
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr "das Einfügen von »%s« und »%s« ergibt kein gültiges Präprozessor-Token"
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO-C99 erfordert, dass Restargumente verwendet werden"
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "Makro »%s« erfordert %u Argumente, aber nur %u wurden angegeben"
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "dem Makro »%s« wurden %u Argumente übergeben, aber es nimmt nur %u"
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr "unvollendete Argumentliste beim Makroaufruf »%s«"
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
"funktionsähnliches Makro »%s« muss mit Argumenten in traditionellem C "
"verwendet werden"
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "doppelter Makroparameter »%s«"
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "»%s« darf nicht in Makroparameterliste auftreten"
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr "Makroparameter müssen mit Komma getrennt sein"
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr "Parametername fehlt"
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr "anonyme variadische Makros wurden in C99 eingeführt"
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr "ISO-C erlaubt keine benannten variadischen Makros"
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr "fehlendes ')' in Makroparameterliste"
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO-C erfordert Whitespace hinter Makroname"
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr "'#' wird nicht von einem Makroparameter gefolgt"
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' kann nicht an den Enden einer Makroexpansion auftreten"
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
"Makroargument »%s« würde in traditionellem C zum String gewandelt werden"
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "ungültiger Hash-Typ %d in cpp_macro_definition"
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr "beim Schreiben des vorkompilierten Headers"
#: cpppch.c:469
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "%s: nicht verwendet, da »%.*s« nicht definiert"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
"%s: nicht verwendet, da »%.*s« als »%s« statt als »%.*s« definiert wurde"
#: cpppch.c:522
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr "%s: nicht verwendet, da »%s« definiert ist"
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr "beim Lesen des vorkompilierten Headers"
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "»%s« ist keine gültige Präprozessoroption"
#: cppspec.c:128
msgid "too many input files"
msgstr "zu viele Eingabedateien"
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr "Rekursion bei Expansion des Makros »%s« entdeckt"
#: cpptrad.c:911
msgid "syntax error in macro parameter list"
msgstr "Syntaxfehler in Makroparameterliste"
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr "In Datei, eingefügt von %s:%u"
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""
",\n"
" von %s:%u"

808
libcpp/po/el.po Normal file
View File

@@ -0,0 +1,808 @@
# Greek translation of gcc.
# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
# Simos Xenitellis <simos@hellug.gr>, 2001, 2002.
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.2\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2002-08-18 15:46+0100\n"
"Last-Translator: Simos Xenitellis <simos@hellug.gr>\n"
"Language-Team: Greek <nls@tux.hellug.gr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-7\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr ""
# src/request.c:37
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
#: cppcharset.c:653
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "U+%04X: åêôüò ïñßùí ÷áñáêôÞñáò"
#: cppcharset.c:811
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr ""
#: cppcharset.c:837
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
#: cppcharset.c:849
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
#: cppcharset.c:859
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
#: cppcharset.c:863
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
#: cppcharset.c:898
msgid "converting UCN to source character set"
msgstr ""
#: cppcharset.c:902
msgid "converting UCN to execution character set"
msgstr ""
#: cppcharset.c:967
msgid "the meaning of '\\x' is different in traditional C"
msgstr ""
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr ""
#: cppcharset.c:991
#, fuzzy
msgid "hex escape sequence out of range"
msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
#: cppcharset.c:1030
#, fuzzy
msgid "octal escape sequence out of range"
msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
#: cppcharset.c:1098
msgid "the meaning of '\\a' is different in traditional C"
msgstr ""
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
# src/main.c:663
#: cppcharset.c:1113
#, fuzzy, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
# src/main.c:663
#: cppcharset.c:1116
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
#: cppcharset.c:1122
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
#, fuzzy
msgid "character constant too long for its type"
msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
#: cppcharset.c:1247
#, fuzzy
msgid "multi-character character constant"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
#: cppcharset.c:1339
#, fuzzy
msgid "empty character constant"
msgstr "êåíü áëöáñéèìçôéêü"
#: cppcharset.c:1378
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "ðñïåéäïðïßçóç: "
#: cpperror.c:112
msgid "internal error: "
msgstr "åóùôåñéêü óöÜëìá: "
#: cpperror.c:174
#, fuzzy
msgid "stdout"
msgstr "äïìÞ"
#: cppexp.c:192
#, fuzzy
msgid "too many decimal points in number"
msgstr "Õðåñâïëéêá ðïëëÜ áíïéêôÜ áñ÷åßá óôï óýóôçìá"
#: cppexp.c:212
#, fuzzy, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
#: cppexp.c:218
msgid "use of C99 hexadecimal floating constant"
msgstr ""
#: cppexp.c:227
msgid "exponent has no digits"
msgstr ""
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr ""
#: cppexp.c:240
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr ""
#: cppexp.c:261
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
#: cppexp.c:283
#, fuzzy
msgid "use of C99 long long integer constant"
msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr ""
#: cppexp.c:376
#, fuzzy
msgid "integer constant is too large for its type"
msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
#: cppexp.c:388
#, fuzzy
msgid "integer constant is so large that it is unsigned"
msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
#: cppexp.c:470
#, fuzzy
msgid "missing ')' after \"defined\""
msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôá ðåäßá"
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr ""
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr ""
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr ""
#: cppexp.c:531
#, fuzzy
msgid "floating constant in preprocessor expression"
msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
#: cppexp.c:537
#, fuzzy
msgid "imaginary number in preprocessor expression"
msgstr "ìç Ýãêõñïò áñéèìüò áðü ãñáììÝò"
#: cppexp.c:582
#, fuzzy, c-format
msgid "\"%s\" is not defined"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
#: cppexp.c:714 cppexp.c:743
#, fuzzy, c-format
msgid "missing binary operator before token \"%s\""
msgstr "%s: Áíáìåíüôáí äõáäéêüò ÷åéñéóôÞò.\n"
#: cppexp.c:734
#, fuzzy, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "%s: ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç: %s"
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr ""
#: cppexp.c:756
msgid "#if with no expression"
msgstr ""
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr ""
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr ""
#: cppexp.c:811
msgid "unbalanced stack in #if"
msgstr ""
#: cppexp.c:830
#, fuzzy, c-format
msgid "impossible operator '%u'"
msgstr "RPC: Ìç óõìâáôÝò åêäüóåéò ôïõ RPC"
#: cppexp.c:922
#, fuzzy
msgid "missing ')' in expression"
msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôéò èÝóåéò"
#: cppexp.c:943
#, fuzzy
msgid "'?' without following ':'"
msgstr "óõíôáêôéêü óöÜëìá óôïí ðñüëïãï: %s"
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr ""
#: cppexp.c:958
#, fuzzy
msgid "missing '(' in expression"
msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôéò èÝóåéò"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr ""
#: cppexp.c:1483
#, fuzzy
msgid "division by zero in #if"
msgstr "Äéáßñåóç ìå ìçäÝí óôçí áðïôßìçóç: %s"
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, fuzzy, c-format
msgid "%s is a block device"
msgstr "Äåí Ýìåéíå êáèüëïõ ÷þñïò óôç óõóêåõÞ"
# src/shred.c:1134
#: cppfiles.c:480
#, fuzzy, c-format
msgid "%s is too large"
msgstr "%s: ôï áñ÷åßï åßíáé ðïëý ìåãÜëï"
#: cppfiles.c:515
#, fuzzy, c-format
msgid "%s is shorter than expected"
msgstr "%s: Áíáìåíüôáí äõáäéêüò ÷åéñéóôÞò.\n"
#: cppfiles.c:714
#, c-format
msgid "no include path in which to search for %s"
msgstr ""
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr ""
#: cppinit.c:389
#, fuzzy
msgid "cppchar_t must be an unsigned type"
msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr ""
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr ""
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr ""
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr ""
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
#: cpplex.c:410
#, fuzzy
msgid "null character(s) ignored"
msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò óôï áñ÷åßï: "
#: cpplex.c:445
msgid "'$' in identifier or number"
msgstr ""
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr ""
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr ""
#: cpplex.c:916
#, fuzzy
msgid "unterminated comment"
msgstr "Ìç ôåñìáôéóìÝíç åíôïëÞ `s'"
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr ""
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr ""
#: cpplex.c:934
msgid "multi-line comment"
msgstr ""
#: cpplex.c:1198
#, fuzzy, c-format
msgid "unspellable token %s"
msgstr "%s: áäýíáôï ôï Üíïéãìá ôïõ %s: %m\n"
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr ""
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr ""
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr ""
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr ""
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr ""
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr ""
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr ""
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr ""
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr ""
#: cpplib.c:496
#, fuzzy
msgid "macro names must be identifiers"
msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
#: cpplib.c:537
#, fuzzy, c-format
msgid "undefining \"%s\""
msgstr "Ìç ïñéóìÝíï üíïìá %s"
#: cpplib.c:609
#, fuzzy
msgid "missing terminating > character"
msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr ""
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr ""
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr ""
#: cpplib.c:794
#, fuzzy, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
#: cpplib.c:800
#, fuzzy
msgid "line number out of range"
msgstr "%s: áñéèìüò ãñáììÞò Ýîù áðü ôá üñéá"
#: cpplib.c:812 cpplib.c:885
#, fuzzy, c-format
msgid "\"%s\" is not a valid filename"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
#: cpplib.c:847
#, fuzzy, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
#: cpplib.c:947
#, fuzzy
msgid "invalid #ident directive"
msgstr "%%%c: êáôåõèõíôÞñéïò ãñáììÞ ìç Ýãêõñç."
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
#: cpplib.c:1030
#, c-format
msgid "#pragma %s %s is already registered"
msgstr ""
#: cpplib.c:1033
#, fuzzy, c-format
msgid "#pragma %s is already registered"
msgstr "ï ÷Üñôçò ÷áñáêôÞñùí `%s' ïñßóôçêå Þäç"
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr ""
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr ""
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr ""
#: cpplib.c:1255
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "áäõíáìßá áíïßãìáôïò õðïäï÷Þò: %s"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr ""
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
#: cpplib.c:1451
msgid "#else without #if"
msgstr ""
#: cpplib.c:1456
msgid "#else after #else"
msgstr "#else ìåôÜ áðü #else"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr ""
#: cpplib.c:1489
msgid "#elif after #else"
msgstr "#elif ìåôÜ áðü #else"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr ""
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr ""
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr ""
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr ""
#: cpplib.c:1658
#, fuzzy
msgid "assertion without predicate"
msgstr "Ç ëåéôïõñãßá äåí åðéôñÝðåôáé"
#: cpplib.c:1660
#, fuzzy
msgid "predicate must be an identifier"
msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
#: cppmacro.c:125 cppmacro.c:280
#, fuzzy, c-format
msgid "invalid built-in macro \"%s\""
msgstr "ìç Ýãêõñï ìÞêïò ãñáììÞò: %s"
#: cppmacro.c:221
#, fuzzy
msgid "could not determine date and time"
msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
#: cppmacro.c:393
#, fuzzy
msgid "invalid string literal, ignoring final '\\'"
msgstr "ìç Ýãêõñïò áñ÷éêüò áñéèìüò ãñáììÞò: `%s'"
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
#: cppmacro.c:514
#, fuzzy
msgid "ISO C99 requires rest arguments to be used"
msgstr "ÊáêÞ áßôçóç ðáñáìÝôñùí"
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr ""
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr ""
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
#: cppmacro.c:1241
#, fuzzy, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr ""
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr ""
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr ""
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr ""
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr ""
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr ""
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr ""
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr ""
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, fuzzy, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
#: cppspec.c:128
msgid "too many input files"
msgstr "õðåñâïëéêÜ ðïëëÜ áñ÷åßá åéóüäïõ"
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr ""
#: cpptrad.c:911
#, fuzzy
msgid "syntax error in macro parameter list"
msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü êëÜóçò ÷áñáêôÞñùí"
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr ""
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""

793
libcpp/po/es.po Normal file
View File

@@ -0,0 +1,793 @@
# Mensajes en español para gcc-3.3
# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002, 2003.
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.3\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2003-06-29 15:48-0500\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr "C tradicional rechaza el operador unario mas"
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
#: cppcharset.c:653
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "conversión de NaNa a unsigned int"
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "universal-character-name `\\U%08x' no es válido en el identificador"
#: cppcharset.c:811
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "el significado de '\\%c' es diferente en C tradicional"
#: cppcharset.c:837
#, fuzzy, c-format
msgid "incomplete universal character name %.*s"
msgstr "universal-character-name incompleto"
#: cppcharset.c:849
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "`%T::%D' no es una declaración válida"
#: cppcharset.c:859
#, fuzzy, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "universal-character-name `\\U%08x' no es válido en el identificador"
#: cppcharset.c:863
#, fuzzy, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "universal-character-name `\\U%08x' no es válido en el identificador"
#: cppcharset.c:898
#, fuzzy
msgid "converting UCN to source character set"
msgstr "convirtiendo NULL a un tipo que no es puntero"
#: cppcharset.c:902
#, fuzzy
msgid "converting UCN to execution character set"
msgstr "convirtiendo NULL a un tipo que no es puntero"
#: cppcharset.c:967
msgid "the meaning of '\\x' is different in traditional C"
msgstr "el significado de '\\x' es diferente en C tradicional"
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr "se usó \\x sin dígitos hexadecimales a continuación"
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr "secuencia de escape hexadecimal fuera de rango"
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr "secuencia de escape octal fuera de rango"
#: cppcharset.c:1098
msgid "the meaning of '\\a' is different in traditional C"
msgstr "el significado de '\\a' es diferente en C tradicional"
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "secuencia de escape que no es estándard ISO, '\\%c'"
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "secuencia de escape desconocida, '\\%c'"
#: cppcharset.c:1116
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "secuencia de escape desconocida: '\\%03o'"
#: cppcharset.c:1122
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "secuencia de escape fuera de rango para el carácter"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
msgid "character constant too long for its type"
msgstr "constante de carácter demasiado grande para su tipo"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "constante de carácter con múltiples caracteres"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "constante de carácter vacía"
#: cppcharset.c:1378
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "no se puede convertir `%E' a `%T'"
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "aviso: "
#: cpperror.c:112
msgid "internal error: "
msgstr "error interno: "
#: cpperror.c:174
msgid "stdout"
msgstr "salida estándard"
#: cppexp.c:192
msgid "too many decimal points in number"
msgstr "demasiados puntos decimales en el número"
#: cppexp.c:212
#, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "dígito \"%c\" inválido en la constante octal"
#: cppexp.c:218
msgid "use of C99 hexadecimal floating constant"
msgstr "uso de una constante de coma flotante hexadecimal C99"
#: cppexp.c:227
msgid "exponent has no digits"
msgstr "el exponente no tiene dígitos"
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr "las constantes de coma flotante hexadecimal requieren un exponente"
#: cppexp.c:240
#, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "sufijo \"%.*s\" inválido en la constante de coma flotante"
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr "C tradicional rechaza el sufijo \"%.*s\""
#: cppexp.c:261
#, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "sufijo \"%.*s\" inválido en la constante entera"
#: cppexp.c:283
msgid "use of C99 long long integer constant"
msgstr "uso de una constante entera long long C99"
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr "las constantes imaginarias son una extensión GCC"
#: cppexp.c:376
msgid "integer constant is too large for its type"
msgstr "la constante entera es demasiado grande para su tipo"
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr "la constante entera es tan grande que es unsigned"
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr "falta `)' después de \"defined\""
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr "el operador \"defined\" requiere un identificador"
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "(\"%s\" es un elemento alternativo para \"%s\" en C++)"
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr "este uso de \"defined\" puede no ser transportable"
#: cppexp.c:531
msgid "floating constant in preprocessor expression"
msgstr "constante de coma flotante en una expresión del preprocesador"
#: cppexp.c:537
msgid "imaginary number in preprocessor expression"
msgstr "número imaginario en una expresión del preprocesador"
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr "\"%s\" no está definido"
#: cppexp.c:714 cppexp.c:743
#, c-format
msgid "missing binary operator before token \"%s\""
msgstr "falta un operador binario antes del elemento \"%s\""
#: cppexp.c:734
#, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "el elemento \"%s\" no es válido en las expresiones del preprocesador"
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr "expresión void entre '(' y ')'"
#: cppexp.c:756
msgid "#if with no expression"
msgstr "#if sin expresión"
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr "el operador '%s' no tiene operando derecho"
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr " ':' sin una '?' precedente"
#: cppexp.c:811
msgid "unbalanced stack in #if"
msgstr "pila desbalanceada en #if"
#: cppexp.c:830
#, c-format
msgid "impossible operator '%u'"
msgstr "operador '%u' imposible"
#: cppexp.c:922
msgid "missing ')' in expression"
msgstr "falta un ')' en la expresión"
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr "'?' sin ':' a continuación"
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr "desbordamiento entero en expresión del preprocesador"
#: cppexp.c:958
msgid "missing '(' in expression"
msgstr "falta un '(' en la expresión"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr "el operando izquierdo de \"%s\" cambia el signo cuando es promovido"
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr "el operando derecho de \"%s\" cambia el signo cuando es promovido"
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr "operador coma en operando de #if"
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr "división por cero en #if"
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr "%s es un dispositivo de bloques"
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr "%s es demasiado grande"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr "%s es más corto de lo esperado"
#: cppfiles.c:714
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "no hay ruta de inclusión en la cual se encuentre %s"
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr "Guardias múltiples de include pueden ser útiles para:\n"
#: cppinit.c:389
msgid "cppchar_t must be an unsigned type"
msgstr "cppchar_t debe ser de un tipo unsigned"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
"la aritmética del preprocesador tiene una precisión máxima de %lu bits; el "
"objetivo requiere de %lu bits"
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
"la aritmética de CPP debe se al menos tan precisa como un int del objetivo"
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr "el char del objetivo tiene menos de 8 bits de ancho"
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr "el wchar_t del objetivo es más estrecho que el char del objetivo"
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr "el int del objetivo es más estrecho que el char del objetivo"
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr "el medio-entero de CPP es más estrecho que el carácter de CPP"
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
"CPP no puede manejar constantes de carácter anchas más allá de %lu bits en "
"este objetivo, pero el objetivo requiere %lu bits"
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr "caracter(es) nulo(s) ignorados"
#: cpplex.c:445
#, fuzzy
msgid "'$' in identifier or number"
msgstr "caracter(es) '$' en el identificador o número"
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "intento de usar \"%s\" envenenado"
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
"__VA_ARGS__ solamente puede aparecer en la expansión de una macro variadic "
"C99"
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr "caracter(es) nulo(s) preservados en la literal"
#: cpplex.c:916
msgid "unterminated comment"
msgstr "comentario sin terminar"
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr "los comentarios de estilo C++ no se permiten en ISO C90"
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr "(esto se reportará solamente una vez por cada fichero de entrada)"
#: cpplex.c:934
msgid "multi-line comment"
msgstr "comentario en múltiples líneas"
#: cpplex.c:1198
#, c-format
msgid "unspellable token %s"
msgstr "elemento %s impronunciable"
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "elementos extra al final de la directiva #%s"
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s es una extensión de GCC"
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr "se sugiere no usar #elif en C tradicional"
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "C tradicional ignora #%s con el # indentado"
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "se sugiere ocultar #%s de C tradicional con un # indentado"
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
"imbuir una directiva dentro de los argumentos de una macro no es "
"transportable"
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr "la directiva de estilo de línea es una extensión de GCC"
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "directiva de preprocesamiento #%s inválida"
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr "\"defined\" no se puede usar como un nombre de macro"
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
"no se puede usar \"%s\" como un nombre de macro porque es un operador en C++"
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr "no se dio un nombre de macro en la directiva #%s"
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr "los nombres de macro deben ser identificadores"
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr "borrando la definición de \"%s\""
#: cpplib.c:609
msgid "missing terminating > character"
msgstr "falta el carácter de terminación >"
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s espera \"NOMBRE_ARCHIVO\" ó <NOMBRE_ARCHIVO>"
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr "#include anidado con demasiada profundidad"
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr "#include_next en fichero primario de código fuente"
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "indicador \"%s\" inválido en la línea de la directiva"
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "\"%s\" después de #line no es un entero positivo"
#: cpplib.c:800
msgid "line number out of range"
msgstr "número de línea fuera de rango"
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" no es un nombre de fichero válido"
#: cpplib.c:847
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "\"%s\" después de # no es un entero positivo"
#: cpplib.c:947
msgid "invalid #ident directive"
msgstr "directiva #ident inválida"
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
"registrando \"%s\" como un pragma y como un espacio de nombres de pragma"
#: cpplib.c:1030
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s ya está registrado"
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s ya está registrado"
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr "#pragma una vez en el fichero principal"
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr "directiva #pragma de GCC envenenada inválida"
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "envenenando la macro existente \"%s\""
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header ignorado fuera del fichero a incluir"
#: cpplib.c:1255
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "no se puede encontrar la fuente %s"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr "el fichero actual es más antiguo que %s"
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma lleva una cadena literal entre paréntesis"
#: cpplib.c:1451
msgid "#else without #if"
msgstr "#else sin #if"
#: cpplib.c:1456
msgid "#else after #else"
msgstr "#else después de #else"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr "#elif sin #if"
#: cpplib.c:1489
msgid "#elif after #else"
msgstr "#elif después de #else"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr "#endif sin #if"
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr "falta '(' antes del predicado"
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr "falta ')' para completar la respuesta"
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr "el predicado de la respuesta está vacío"
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr "afirmación sin predicado"
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr "el predicado debe ser un identificador"
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" reafirmado"
#: cppmacro.c:125 cppmacro.c:280
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "macro interna \"%s\" inválida"
#: cppmacro.c:221
msgid "could not determine date and time"
msgstr "no se puede determinar la fecha y la hora"
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr "cadena literal inválida, se ignora el '\\' finales"
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr "pegar \"%s\" y \"%s\" no da un elemento válido de preprocesamiento"
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO C99 requiere que el resto de los argumentos sea usado"
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "la macro \"%s\" requiere %u argumentos, pero solo se proporcionan %u"
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "la macro \"%s\" recibió %u argumentos, pero solamente tomó %u"
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr "lista de argumentos sin terminar al invocar la macro \"%s\""
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
"la función de macro \"%s\" se debe usar con argumentos en C tradicional"
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "parámetro de macro \"%s\" duplicado"
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" podría faltar en la lista de parámetro de macro"
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr "los parámetros de macro deben ser separados por comas"
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr "falta el nombre del parámetro"
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr "los macros variadic anónimos se introdujeron en C99"
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C no permite macros variadic nombrados"
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr "falta paréntesis derecho en la lista de parámetros de macro"
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C requiere espacios en blanco después del nombre de macro"
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr "'#' no es seguido por un parámetro de macro"
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' no puede aparece en o al final de una expansión de macro"
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
"el argumento de macro \"%s\" debería ser convertido a cadena en C tradicional"
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "tipo de hash %d inválido en cpp_macro_definition"
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "se usa la etiqueta `%s' pero no está definida"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "se usa `%s' pero nunca se definió"
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "\"%s\" no es una opción válida para el preprocesador"
#: cppspec.c:128
msgid "too many input files"
msgstr "demasiados ficheros de entrada"
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr "se detectó recursión al expandir la macro \"%s\""
#: cpptrad.c:911
#, fuzzy
msgid "syntax error in macro parameter list"
msgstr "error de sintaxis en la lista nombres de parámetros"
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr "En el fichero incluído de %s:%u"
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""
",\n"
" de %s:%u"

920
libcpp/po/fr.po Normal file
View File

@@ -0,0 +1,920 @@
# Messages français pour GNU concernant gcc.
# Copyright © 2001 Free Software Foundation, Inc.
# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
#
# Vocabulaire utilisé
# lvalue = membre gauche
# deprecated = obsolète
# out of range = hors des limites
# range = gamme
# scope = porté, champ
# shadowing = masquer
# embedded PIC = PIC enchâssé
# CPU = processeur
# structure with flexible member
# = structure ayant un membre flexible
# flag = fanion
# forward declaration
# = déclaration anticipée
# token = élément lexical (dans le contexte du parsing)
# to subscript = indicer
# top-level = hors de toute fonction
# member function = fonction membre
#
# Pas traduit:
# thread
#
# J'ai des doutes pour :
# inline = enligne (pas systématiquement)
# oui dans le contexte du langage C par exemple MR
# non autrement ...de manière générale MR
# section attribute attribut de section OK MR
# wide char caractère long ...non mieux caractère large MR
# plus conforme à l'esprit.
#
# ------
# literals littéral, ou mot composé ?
# msgid "ISO C89 forbids compound literals"
# msgstr "le C89 ISO interdit les mots composés"
#
# symbol table table des symboles ou table de symbole
# command map carte des commandes
# Combiner combinateur
# msgid ""
# ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
# ";; %d successes.\n"
# "\n"
# msgstr ""
# ";; Statistiques du combinateur : %d tentatives, %d substitutions (%d requérant un nouvel espace),\n"
# ";; %d succès.\n"
# "\n"
#
# promote promouvoir
# msgid "the left operand of \"%s\" changes sign when promoted"
# msgstr "L'opérande gauche de « %s » change de signe lors de sa promotion"
#
# include guards ???
# msgid "Multiple include guards may be useful for:\n"
# msgstr "De multiples balises pour les inclusions peuvent être utiles pour :\n"
#
#
# universal-character-name ???
# msgid "incomplete universal-character-name"
# msgid "non-hex digit '%c' in universal-character-name"
# msgid "universal-character-name on EBCDIC target"
#
# poisoning empoisonnement
# msgid "poisoning existing macro \"%s\""
# msgstr "empoisonnement de la macro existente « %s »"
# MR 9-jan 2004: poisoning etc... transformé par corruption corrompu etc..
#
# Autres règles:
# - j'ai ajouté un adjectif par rapport à l'anglais si le message est
# une phrase avec verbe conjugé.
# - ISO est considéré comme un adjectif dans « C ISO »
#
# Erreurs corrigées:
# librairies, assumer
#
# A faire:
# - s/en ligne/en-ligne/ modifié 9-janv-2004 MR
# - s/en-ligne/enligne/ modifié 18-février-2004 MR pcq expression ou terme enlignage vs inlining
# - hors gamme a été changé pour hors limite ...MR 09-jan-2004
# - literal
# - chaine de format => formatage
# - scope
# - supporté est un faux ami
#
# A rapporter upstream:
# <<<<<<<<
# In c-opts.c, begining line 1732, a lot of options are of the kind:
# " -W[no-]trigraphs Warn if trigraphs are encountered\n"
# I guess it would be better to change them all to something like
# " -W[no-]trigraphs Warn [or not] if trigraphs are encountered\n"
#
#
# #: c-opts.c:1759
# " -MP\t\t\t Generate phony targets for all headers\n"
# you may want to change the \t to spaces, as it is done for the other lines.
#
# #: c-typeck.c:3166 c-typeck.c:4632 c-typeck.c:4648 c-typeck.c:4664
# #: final.c:3146 final.c:3148 gcc.c:4397 rtl-error.c:122 toplev.c:1694
# #: config/cris/cris.c:529 cp/typeck.c:4341 java/expr.c:364 java/verify.c:1467
# #: java/verify.c:1468 java/verify.c:1483
# #, c-format
# msgid "%s"
# msgstr "%s"
#
# Are you sure you want to translate the messages in cfgrtl.c, or are they
# debugging informations ?
#
# You may want to use ngettext instead of putting (s) in text.
# msgid "null character(s) preserved in literal"
#
# >>>>>>>>>
#
msgid ""
msgstr ""
"Project-Id-Version: GNU gcc 3.4-b20040206\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2004-02-20 21:00-0500\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <traduc@traduc.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr "le C traditionnel rejette le plus unaire"
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr "%s : %s"
#: cppcharset.c:653
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "conversion de %s vers %s n'est pas supporté par iconv"
#: cppcharset.c:656
msgid "iconv_open"
msgstr "iconv_open"
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr "pas d'implantation iconv, ne peut convertir de %s vers %s"
#: cppcharset.c:808
msgid "universal character names are only valid in C++ and C99"
msgstr "noms de caractère universel sont seulement valides en C++ et C89"
#: cppcharset.c:811
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "la signification de « \\%c » est différente en C traditionel"
# FIXME
#: cppcharset.c:837
#, c-format
msgid "incomplete universal character name %.*s"
msgstr "nom de caractère universel incomplet %.*s"
#: cppcharset.c:849
#, c-format
msgid "%.*s is not a valid universal character"
msgstr "%.*s n'est pas un caractère universel valide"
#: cppcharset.c:859
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "caractère universel %.*s n'est pas valide dans un identificcateur"
#: cppcharset.c:863
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
"caractère universel %.*s n'est pas valide au début d'un identificcateur"
#: cppcharset.c:898
msgid "converting UCN to source character set"
msgstr "conversion UCN vers le jeu source de caractères"
#: cppcharset.c:902
msgid "converting UCN to execution character set"
msgstr "conversion UCN vers le jeu d'exécution de caractères"
#: cppcharset.c:967
msgid "the meaning of '\\x' is different in traditional C"
msgstr "la signification de « \\x » est différente en C traditionel"
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr "\\x utilisé sans être suivi de chiffres en hexdécimal"
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr "séquence d'échappement hexadécimale hors limite"
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr "séquence d'échappement octale hors limite"
#: cppcharset.c:1098
msgid "the meaning of '\\a' is different in traditional C"
msgstr "la signification de « \\a » est différente en C traditionel"
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "séquence d'échappement « \\%c » non conforme au standard ISO"
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "séquence d'échappement « \\%c » inconnue"
#: cppcharset.c:1116
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "séquence d'échappement « \\%03o » inconnue"
#: cppcharset.c:1122
msgid "converting escape sequence to execution character set"
msgstr ""
"conversion d'une séquence d'échappement vers un jeu d'exécution de caractères"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr "conversion vers un jeu d'exécution de caractères"
#: cppcharset.c:1244 cppcharset.c:1307
msgid "character constant too long for its type"
msgstr "constante caractère trop longue pour son type"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "constante caractère multi-caractères"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "constante caractère vide"
#: cppcharset.c:1378
#, c-format
msgid "failure to convert %s to %s"
msgstr "échec de conversion de %s vers %s"
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "attention : "
#: cpperror.c:112
msgid "internal error: "
msgstr "erreur interne : "
#: cpperror.c:174
msgid "stdout"
msgstr "stdout"
#: cppexp.c:192
msgid "too many decimal points in number"
msgstr "trop de points décimaux dans le nombre"
#: cppexp.c:212
#, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "chiffre « %c » invalide dans la constante en base 8"
#: cppexp.c:218
msgid "use of C99 hexadecimal floating constant"
msgstr "usage d'une constante hexadécimale constante à la C99"
#: cppexp.c:227
msgid "exponent has no digits"
msgstr "l'exposant n'a pas de chiffre"
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr "la contante hexadécimale flottante requière un exposant"
#: cppexp.c:240
#, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "suffixe « %.*s » invalide pour une constante flottante"
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr "le C traditionnel interdit le suffixe « %.*s »"
#: cppexp.c:261
#, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "suffixe « %.*s » invalide pour une constante entière"
#: cppexp.c:283
msgid "use of C99 long long integer constant"
msgstr "usage d'une constante entière « long long » à la C99"
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr "les constantes imaginaires sont une extension GCC"
#: cppexp.c:376
msgid "integer constant is too large for its type"
msgstr "constante entière trop grande pour tenir dans son type"
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr "cette constante entière est si grande qu'elle ne peut être signée"
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr "« ) » manquant après « defined »"
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr "l'opérateur « defined » requiert un identificateur"
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "(« %s » est un élément lexical alternatif pour « %s » en C++)"
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr "cette utilisation de « defined » peut ne pas être portable"
#: cppexp.c:531
msgid "floating constant in preprocessor expression"
msgstr "constante flottante dans une expresion pour le préprocesseur"
#: cppexp.c:537
msgid "imaginary number in preprocessor expression"
msgstr "constante complexe dans une expresion pour le préprocesseur"
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr "« %s » n'est pas défini"
#: cppexp.c:714 cppexp.c:743
#, c-format
msgid "missing binary operator before token \"%s\""
msgstr "opérateur binaire manquant avant l'élément lexical « %s »"
#: cppexp.c:734
#, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr ""
"l'élément lexical « %s » n'est pas valide dans les expressions pour le "
"préprocesseur"
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr "expression void entre parenthèses"
#: cppexp.c:756
msgid "#if with no expression"
msgstr "#if sans expression"
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr "l'opérateur « %s » n'a pas d'opérande droite"
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr "« : » n'est pas précédé de « ? »"
#: cppexp.c:811
msgid "unbalanced stack in #if"
msgstr "pile non balancée dans #if"
#: cppexp.c:830
#, c-format
msgid "impossible operator '%u'"
msgstr "opérateur impossible « %u »"
#: cppexp.c:922
msgid "missing ')' in expression"
msgstr "« ) » manquante dans l'expresion"
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr "« ? » n'est pas suivi de « : »"
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr "débordement d'entier dans l'expresion pour le préprocesseur"
#: cppexp.c:958
msgid "missing '(' in expression"
msgstr "« ( » manquante dans l'expresion"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr "L'opérande gauche de « %s » change de signe lors de sa promotion"
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr "L'opérande droite de « %s » change de signe lors de sa promotion"
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr "opérateur virgule dans l'opérande de #if"
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr "division par zéro dans #if"
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr "répertoire NUL dans find_file"
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
"un ou plusieurs fichiers PCH ont été repérés, mais ils étaient invalides"
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr "utiliser -Winvalid-pch pour plus d'informations"
# FIXME
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr "%s est un périphérique de blocs"
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr "%s est trop grand"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr "%s est plus petit que prévu"
#: cppfiles.c:714
#, c-format
msgid "no include path in which to search for %s"
msgstr "aucun chemin d'inclusion dans lequel on pourrait repérer %s"
# FIXME
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr "De multiples balises pour les inclusions peuvent être utiles pour:\n"
#: cppinit.c:389
msgid "cppchar_t must be an unsigned type"
msgstr "cppchar_t doit être d'un type non signé"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
"l'arithmétique du préprocesseur a une précision maximale de %lu bits ; la "
"cible requière %lu bits"
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
"l'arithmétique de CPP doit être au moins aussi précise que le type int de la "
"cible"
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr "sur la cible, « char » fait moins de 8 bits"
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr "sur la cible, « wchar_t » est plus petit que « char »"
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr "sur la cible, « int » est plus petit que « char »"
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr "les demi-entiers de CPP sont plus petit que les caractères de CPP"
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
"CPP sur cette machine ne peut gérer les constantes larges de caractères de "
"plus de %lu bits, mais la cible requière %lu bits"
# I18N
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr "caractère(s) nul(s) ignoré(s)"
#: cpplex.c:445
msgid "'$' in identifier or number"
msgstr "« $ » dans un identificateur ou un nombre"
# FIXME
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "tentative d'utilisation d'un « %s » corrompu"
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
"« __VA_ARGS__ » peut seulement appraître dans l'expansion des macros C99 à "
"nombre variable d'arguments"
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr "caractère(s) nul préservé(s) dans la chaîne"
#: cpplex.c:916
msgid "unterminated comment"
msgstr "commentaire non terminé"
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr "Les commentaires à la C++ ne sont pas permis en C89 ISO"
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr "(ceci sera rapporté une seule fois seulement par fichier d'entrée)"
#: cpplex.c:934
msgid "multi-line comment"
msgstr "commentaire multi-lignes"
#: cpplex.c:1198
#, c-format
msgid "unspellable token %s"
msgstr "l'élément lexical %s ne peut être épelé"
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "éléments lexicaux superflus à la fin de la directive #%s"
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s est une extension GCC"
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr "il est suggéré de ne pas utiliser #elif en C traditionnel"
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "le C traditionel ignore la directive #%s si le caractère # est indenté"
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "il est suggéré de cacher #%s au C traditionel en indentant le « # »"
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr "placer une directive dans les arguments d'une macro n'est pas portable"
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr "la directive de style de ligne est extension GCC"
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "directive de pré-traitement #%s invalide"
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr "« defined » ne peut être utilisé comme nom de macro"
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
"« %s » ne peut être utilisé comme nom de macro car c'est un opérateur en C++"
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr "aucun nom de macro donné dans la directive #%s"
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr "les noms de macro doivent être des identificateurs"
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr "indéfinition de « %s »"
#: cpplib.c:609
msgid "missing terminating > character"
msgstr "caractère > de terminaison manquant"
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s attend \"NOM_DE_FICHIER\" ou <NOM_DE_FICHIER>"
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr "#include imbriqué trop profondément"
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr "#include_next dans un fichier source primaire"
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "fanion « %s » invalide dans la ligne de directive"
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "« %s » après #line n'est pas un nombre entier positif"
#: cpplib.c:800
msgid "line number out of range"
msgstr "numéro de ligne hors limite"
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "« %s » n'est pas un nom de fichier valide"
#: cpplib.c:847
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "« %s » après # n'est pas un nombre entier positif"
#: cpplib.c:947
msgid "invalid #ident directive"
msgstr "directive #ident invalide"
# FIXME
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
"enregistrement de \"%s\" à la fois comme une pragma un espace de nom de "
"pragma"
#: cpplib.c:1030
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "la #pragma %s %s est déjà enregistrée"
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr "la #pragma %s est déjà enregistrée"
# FIXME
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr "#pragma utilisé une seule fois dans le fichier principal"
# FIXME
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr "la directive corrompue #pragma GCC est invalide"
# FIXME
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "corruption de la macro existente « %s »"
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header ignorée en dehors du fichier d'inclusion"
#: cpplib.c:1255
#, c-format
msgid "cannot find source file %s"
msgstr "impossible de trouver le fichier source %s"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr "le fichier courant est plus vieux que %s"
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma prend une chaîne entourée de parenthèrese"
#: cpplib.c:1451
msgid "#else without #if"
msgstr "#else sans #if"
#: cpplib.c:1456
msgid "#else after #else"
msgstr "#else après #else"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr "#elif sans #if"
#: cpplib.c:1489
msgid "#elif after #else"
msgstr "#elif après #else"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr "#endif sans #if"
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr "« ( » manquante après le prédicat"
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr "« ) » manquante pour completer la réponse"
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr "la réponse du prédicat est vide"
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr "assertion sans prédicat"
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr "le prédicat doit être un identificateur"
# FIXME
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr "« %s » re-asserti"
#: cppmacro.c:125 cppmacro.c:280
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "macro interne invalide « %s »"
#: cppmacro.c:221
msgid "could not determine date and time"
msgstr "ne peut déterminer la date et l'heure"
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr "chaîne invalide, « \\ » final ignoré"
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
"le collage de « %s » et de « %s » ne donne pas d'élément lexical de pré-"
"traitement valide"
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO C99 requiert que tous les arguments soient utilisés"
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "macro « %s » requiert %u arguments, mais seulement %u ont été passés"
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "la macro « %s » a reçu %u arguments, mais elle n'en prend que %u"
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr "liste d'arguments non terminée invoquant la macro « %s »"
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
"la macro « %s » ressemblant à une fonction doit utilisée avec des arguments "
"en C traditionnel"
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "paramètre de macro « %s » en double"
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "« %s » peut ne pas apparaître parmi les paramètres de macros"
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr "les paramètres de macro doivent être séparés par des virgules"
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr "nom de paramètre manquant"
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
"les macros anonymes à nombre variable d'arguments ont été introduites avec "
"le C99"
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C ne permet pas les macros nommées à nombre variable d'arguments"
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr "« ) » manquante dans la liste des paramètres de macros"
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C requiert un blanc après le nom de la macro"
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr "« # » n'est pas suivi d'un paramètre de macro"
# FIXME
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "« ## » ne peut apparaître à chacune des fins de l'expansion de macros"
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "l'argument macro « %s » serait changé en chaine en C traditionnel"
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "type de hachage %d invalide dans cpp_macro_definition"
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr "lors de l'écriture de l'en-tête pré-compilée"
#: cpppch.c:469
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "%s: n'est pas utilisé parce que « %.*s » n'est pas définie"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
"%s: n'est pas utilisé parce que « %.*s » est défini en tant « %s » et non "
"pas « %.*s »"
#: cpppch.c:522
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr "%s: non utilisé parce que « %s » est défini"
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr "lors de la lecture de l'en-tête pré-compilée"
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "« %s » n'est pas une option valide pour le préprocesseur"
#: cppspec.c:128
msgid "too many input files"
msgstr "trop de fichiers d'entrée"
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr "récursion détectée lors de l'expansion de la macro « %s »"
#: cpptrad.c:911
msgid "syntax error in macro parameter list"
msgstr "erreur de syntaxe dans la liste de paramètres macro"
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr "Dans le fichier inclus à partir de %s:%u"
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""
",\n"
" à partir de %s:%u"

803
libcpp/po/ja.po Normal file
View File

@@ -0,0 +1,803 @@
# Japanese messages for gcc 3.0
# Copyright (C) 2001 Free Software Foundation, Inc.
# Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 1999-2001
# Masahito Yamaga <yamaga@ipc.chiba-u.ac.jp>, 1999.
# IIDA Yosiaki <iida@secom.ne.jp>, 1999.
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.0\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2001-12-05 22:47+0900\n"
"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=EUC-JP\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr "古い C では単項プラス演算子を拒否します"
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
#: cppcharset.c:653
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "NaN から符合無し整数への変換です"
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "ユニバーサル文字名 `\\U%08x' は識別子の中では有効ではありません"
#: cppcharset.c:811
#, fuzzy, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "'\\%c' の意味は -traditional をつけた場合と異なります"
#: cppcharset.c:837
#, fuzzy, c-format
msgid "incomplete universal character name %.*s"
msgstr "無効な ユニバーサル文字名"
#: cppcharset.c:849
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "不適切なユニバーサルキャラクタ名"
#: cppcharset.c:859
#, fuzzy, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "ユニバーサル文字名 `\\U%08x' は識別子の中では有効ではありません"
#: cppcharset.c:863
#, fuzzy, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "ユニバーサル文字名 `\\U%08x' は識別子の中では有効ではありません"
#: cppcharset.c:898
msgid "converting UCN to source character set"
msgstr ""
#: cppcharset.c:902
msgid "converting UCN to execution character set"
msgstr ""
#: cppcharset.c:967
#, fuzzy
msgid "the meaning of '\\x' is different in traditional C"
msgstr "'\\a' の意味は -traditional をつけた場合と異なります"
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr "\\x に、それに続くはずの 16 進数がありません"
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr "16 進エスケープシーケンスが範囲外です"
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr "8 進エスケープシーケンスが範囲外です"
#: cppcharset.c:1098
#, fuzzy
msgid "the meaning of '\\a' is different in traditional C"
msgstr "'\\a' の意味は -traditional をつけた場合と異なります"
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "非 ISO 標準のエスケープシーケンス, '\\%c'"
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "不明なエスケープシーケンス '\\%c'"
#: cppcharset.c:1116
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "不明なエスケープシーケンス '\\%c'"
#: cppcharset.c:1122
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "文字に対するエスケープシーケンスが範囲を外れています"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
#, fuzzy
msgid "character constant too long for its type"
msgstr "文字定数が長すぎます"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "複数文字からなる文字定数"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "空の文字定数"
#: cppcharset.c:1378
#, c-format
msgid "failure to convert %s to %s"
msgstr ""
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "警告: "
#: cpperror.c:112
msgid "internal error: "
msgstr "内部エラー: "
#: cpperror.c:174
#, fuzzy
msgid "stdout"
msgstr "構造体"
#: cppexp.c:192
#, fuzzy
msgid "too many decimal points in number"
msgstr "`asm' 中の代替キーワードが多すぎます"
#: cppexp.c:212
#, fuzzy, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "無効な句読点 `%c' が制約内にあります"
#: cppexp.c:218
#, fuzzy
msgid "use of C99 hexadecimal floating constant"
msgstr "16 進浮動小数定数がべき乗を持ちません"
#: cppexp.c:227
#, fuzzy
msgid "exponent has no digits"
msgstr "浮動小数定数のべき数が、アラビア数字を持っていません"
#: cppexp.c:234
#, fuzzy
msgid "hexadecimal floating constants require an exponent"
msgstr "16 進浮動小数定数がべき乗を持ちません"
#: cppexp.c:240
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "接尾辞 '%.*s' は整数定数には無効です"
#: cppexp.c:250 cppexp.c:275
#, fuzzy, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr "古い C では 'f' 接尾辞が拒否されます"
#: cppexp.c:261
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "接尾辞 '%.*s' は整数定数には無効です"
#: cppexp.c:283
#, fuzzy
msgid "use of C99 long long integer constant"
msgstr "ISO C89 では long long 整数定数を禁じます"
#: cppexp.c:290
#, fuzzy
msgid "imaginary constants are a GCC extension"
msgstr "#if 式の中では文字列定数が使えません"
#: cppexp.c:376
#, fuzzy
msgid "integer constant is too large for its type"
msgstr "整数定数が大きすぎるので unsigned になりました"
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr "整数定数が大きすぎるので unsigned になりました"
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr "\"defined\" の後ろの ')' が欠けています"
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr "\"defined\" 演算子は識別子を要求します"
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "C++ では \"%s\" が \"%s\" の代替トークンです)"
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr ""
#: cppexp.c:531
#, fuzzy
msgid "floating constant in preprocessor expression"
msgstr "整数がプリプロセッサ式内でオーバーフローしました"
#: cppexp.c:537
#, fuzzy
msgid "imaginary number in preprocessor expression"
msgstr "整数がプリプロセッサ式内でオーバーフローしました"
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr "\"%s\" は定義されていません"
#: cppexp.c:714 cppexp.c:743
#, c-format
msgid "missing binary operator before token \"%s\""
msgstr ""
#: cppexp.c:734
#, fuzzy, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "整数がプリプロセッサ式内でオーバーフローしました"
#: cppexp.c:753
#, fuzzy
msgid "void expression between '(' and ')'"
msgstr "式文が無効です"
#: cppexp.c:756
#, fuzzy
msgid "#if with no expression"
msgstr " throw された式の中"
#: cppexp.c:758
#, fuzzy, c-format
msgid "operator '%s' has no right operand"
msgstr "反復子 `%s' は非整数型です"
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr ""
#: cppexp.c:811
#, fuzzy
msgid "unbalanced stack in #if"
msgstr "対応していない #endif"
#: cppexp.c:830
#, fuzzy, c-format
msgid "impossible operator '%u'"
msgstr "ありえない演算子 '%s'"
#: cppexp.c:922
#, fuzzy
msgid "missing ')' in expression"
msgstr "定数式が欠けているか無効です"
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr ""
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr "整数がプリプロセッサ式内でオーバーフローしました"
#: cppexp.c:958
#, fuzzy
msgid "missing '(' in expression"
msgstr "定数式が欠けているか無効です"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr "カンマ演算子が #if 演算子の中にあります"
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr "#if でゼロ除算が発生しました"
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr "%s はブロックデバイスです"
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr "%s は大きすぎます"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr "%s が本来よりも短いです"
#: cppfiles.c:714
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "%s を見つけるためのインクルードパスがありません"
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr "多重 include からの保護が有益となるでしょう:\n"
#: cppinit.c:389
#, fuzzy
msgid "cppchar_t must be an unsigned type"
msgstr "述語は識別子でなければなりません"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr ""
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr ""
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr ""
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr ""
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr "null 文字は無視されました"
#: cpplex.c:445
msgid "'$' in identifier or number"
msgstr ""
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "汚染された '%s' 使おうとしています"
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr "__VA_ARGS__ は C99 可変引数マクロ拡張でのみ出現できます"
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr "リテラル中で null 文字が確保されました"
#: cpplex.c:916
msgid "unterminated comment"
msgstr "終端されていないコメント"
#: cpplex.c:927
#, fuzzy
msgid "C++ style comments are not allowed in ISO C90"
msgstr "C++ スタイルのコメントは ISO C89 では許されません"
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr "(これは入力ファイルにつき一回だけ報告されます)"
#: cpplex.c:934
msgid "multi-line comment"
msgstr "複数行のコメント"
#: cpplex.c:1198
#, fuzzy, c-format
msgid "unspellable token %s"
msgstr "綴れないトークン %s です"
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "余分なトークンが #%s ディレクティブの終りにあります"
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s は GCC の拡張です"
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr "古い C では #elif を使わない方がいいです"
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "古い C では、インデントされた # の #%s を無視します"
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "インデントされた # がある古い C からは #%s を隠すことをお勧めします"
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
#: cpplib.c:365
#, fuzzy
msgid "style of line directive is a GCC extension"
msgstr "#%s は GCC の拡張です"
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "無効なプリプロセスディレクティヴ #%s"
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr "\"defined\" をマクロ名としては使えません"
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr "\"%s\" は C++ の演算子であり、マクロ名として使用することはできません"
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr "マクロ名が #%s ディレクティブ中に与えられていません"
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr "マクロ名は識別子でなくてはなりません"
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr "\"%s\" を undef します"
#: cpplib.c:609
msgid "missing terminating > character"
msgstr "終端文字 > を欠いています"
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s は \"ファイル名\" あるいは <ファイル名> を必要とします"
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr "#include のネストが深すぎます"
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr "#include_next が主たるソースファイルにあります"
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "\"%s\" は line ディレクティブでは無効なフラグです"
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "#line の後ろの \"%s\" が正の整数ではありません"
#: cpplib.c:800
msgid "line number out of range"
msgstr "行番号が範囲外です"
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" は正常なファイル名ではありません"
#: cpplib.c:847
#, fuzzy, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "#line の後ろの \"%s\" が正の整数ではありません"
#: cpplib.c:947
#, fuzzy
msgid "invalid #ident directive"
msgstr "無効な #ident"
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
#: cpplib.c:1030
#, fuzzy, c-format
msgid "#pragma %s %s is already registered"
msgstr "クラス `%s' は既に存在します"
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr "#pragma once がメインファイルにあります"
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr "#pragma GCC 汚染ディレクティヴが無効です"
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "既存のマクロ \"%s' を汚染します"
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr "include ファイル外の #pragma system_header は無視されました"
#: cpplib.c:1255
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "ソース %s が見つかりません"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr "現在のファイルは %s より古いです"
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pramga が括弧で囲まれた文字列リテラルを受け取りました"
#: cpplib.c:1451
msgid "#else without #if"
msgstr "#else に #if がありません"
#: cpplib.c:1456
msgid "#else after #else"
msgstr "#else が #else の後ろにあります"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr "#elif に #if がありません"
#: cpplib.c:1489
msgid "#elif after #else"
msgstr "#elif が #else の後ろにあります"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr "#endif に #if がありません"
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr "述語の後ろの '(' を欠いています"
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr "解を補完する ')' を欠いています"
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr "述語の解が空です"
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr "述語のないアサーションです"
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr "述語は識別子でなければなりません"
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" が再アサートされました"
#: cppmacro.c:125 cppmacro.c:280
#, fuzzy, c-format
msgid "invalid built-in macro \"%s\""
msgstr "組み込みマクロ \"%s\" は無効です"
#: cppmacro.c:221
#, fuzzy
msgid "could not determine date and time"
msgstr "依存関係の追跡のためのターゲット名が特定できませんでした"
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr "文字列リテラルが無効です、最後の '\\' を無視します"
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
"\"%s\" と \"%s\" を貼付けましたが正常なプリプロセッサトークンとなりません"
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO C99 は使用されるべき残りのの引数を要求します"
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "マクロ \"%s\" は引数を %u 要求しますが、%u 個しか与えられていません"
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "マクロ \"%s\" に引数が %u 渡されましたが、%u しか受け取りません"
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr "終端されていない引数リストがマクロ \"%s\" を起動しようとしました"
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "古い C では、関数的マクロ \"%s\" に引数が与えられねばなりません"
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "マクロ仮引数 \"%s\" が重複しています"
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" はマクロ仮引数リストに現れてはなりません"
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr "マクロ仮引数はカンマ区切りされなければなりません"
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr "仮引数名を欠いています"
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr "無名可変引数マクロは C99 で採り入れられました"
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C では名前つき可変引数マクロを許しません"
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr "マクロ仮引数リストで、')' を欠いています"
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C ではマクロ名の後ろに空白を要求します"
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr "'#' にマクロ仮引数名が続いていません"
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' はマクロ展開の両端には出現できません"
#: cppmacro.c:1588
#, fuzzy, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "マクロ引数 \"%s\" は -traditional をつけると文字列化された事でしょう"
#: cppmacro.c:1611
#, fuzzy, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "dump_definition に 無効なハッシュタイプ %d"
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "ラベル `%s' が使われましたが定義されていません"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "`%s' が使われましたが未定義です"
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "\"%s\" はプリプロセッサに対する正常なオプションではありません"
#: cppspec.c:128
msgid "too many input files"
msgstr "入力ファイルが多すぎます"
#: cpptrad.c:744
#, fuzzy, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr "終端されていない引数リストがマクロ \"%s\" を起動しようとしました"
#: cpptrad.c:911
#, fuzzy
msgid "syntax error in macro parameter list"
msgstr "\"%s\" はマクロ仮引数リストに現れてはなりません"
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr "%s:%u から include されたファイル中"
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""
",\n"
" %s:%u から"

834
libcpp/po/nl.po Normal file
View File

@@ -0,0 +1,834 @@
# Dutch messages for gcc 3.x.
# Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
# Tim Van Holder <tim.van.holder@pandora.be>, 1999, 2000, 2002, 2003.
#
# Still a lot of fuzzies, since this started life as a
# .po file for gcc 2.95.2.
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.3.2\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2003-10-26 10:40+0100\n"
"Last-Translator: Tim Van Holder <tim.van.holder@pandora.be>\n"
"Language-Team: Dutch <vertaling@nl.linux.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr ""
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr ""
#: cppcharset.c:653
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "case-waarde buiten bereik"
#: cppcharset.c:811
#, fuzzy, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr ""
"de betekenis van `\\a' varieert naargelang -traditional al dan niet gebruikt "
"wordt"
#: cppcharset.c:837
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
#: cppcharset.c:849
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "`%s' is geen iterator"
#: cppcharset.c:859
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
#: cppcharset.c:863
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
#: cppcharset.c:898
msgid "converting UCN to source character set"
msgstr ""
#: cppcharset.c:902
msgid "converting UCN to execution character set"
msgstr ""
#: cppcharset.c:967
#, fuzzy
msgid "the meaning of '\\x' is different in traditional C"
msgstr ""
"de betekenis van `\\x' varieert naargelang -traditional al dan niet gebruikt "
"wordt"
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr "\\x gebruikt zonder daaropvolgende hexadecimale cijfers"
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr "hexadecimale escape sequence buiten bereik"
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr "octale escape sequence buiten bereik"
#: cppcharset.c:1098
#, fuzzy
msgid "the meaning of '\\a' is different in traditional C"
msgstr ""
"de betekenis van `\\a' varieert naargelang -traditional al dan niet gebruikt "
"wordt"
#: cppcharset.c:1105
#, fuzzy, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "niet-ANSI-standaard escape sequence `\\%c'"
#: cppcharset.c:1113
#, fuzzy, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "onbekende escape sequence `\\%c'"
#: cppcharset.c:1116
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "onbekende escape sequence `\\%c'"
#: cppcharset.c:1122
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "octale escape sequence buiten bereik"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
#, fuzzy
msgid "character constant too long for its type"
msgstr "karakterconstante te lang"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "karakterconstante met meer dan één karakter"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "lege karakterconstante"
# 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter
#: cppcharset.c:1378
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "kon 0x%l.8x niet naar een regio omzetten"
# Dit zou misschien beter 'warning' blijven
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "let op: "
#: cpperror.c:112
#, fuzzy
msgid "internal error: "
msgstr "interne fout"
#: cpperror.c:174
#, fuzzy
msgid "stdout"
msgstr "struct"
#: cppexp.c:192
#, fuzzy
msgid "too many decimal points in number"
msgstr "teveel `l'en in integerconstante"
#: cppexp.c:212
#, fuzzy, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "twee `u's in integerconstante"
#: cppexp.c:218
#, fuzzy
msgid "use of C99 hexadecimal floating constant"
msgstr "hexadecimale floating-point constante heeft geen exponent"
#: cppexp.c:227
#, fuzzy
msgid "exponent has no digits"
msgstr "exponent van floating-point constante heeft geen cijfers"
#: cppexp.c:234
#, fuzzy
msgid "hexadecimal floating constants require an exponent"
msgstr "hexadecimale floating-point constante heeft geen exponent"
#: cppexp.c:240
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "misvormde floating-point constante"
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr ""
#: cppexp.c:261
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "twee `u's in integerconstante"
#: cppexp.c:283
#, fuzzy
msgid "use of C99 long long integer constant"
msgstr "ANSI C verbiedt long long integerconstantes"
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr ""
#: cppexp.c:376
#, fuzzy
msgid "integer constant is too large for its type"
msgstr "integerconstante is zo groot dat hij unsigned is"
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr "integerconstante is zo groot dat hij unsigned is"
#: cppexp.c:470
#, fuzzy
msgid "missing ')' after \"defined\""
msgstr "witruimte ontbreekt na `#define %.*s'"
#: cppexp.c:477
#, fuzzy
msgid "operator \"defined\" requires an identifier"
msgstr "`defined' zonder een naam"
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr ""
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr ""
#: cppexp.c:531
#, fuzzy
msgid "floating constant in preprocessor expression"
msgstr "integer-overflow in preprocessor-expressie"
#: cppexp.c:537
#, fuzzy
msgid "imaginary number in preprocessor expression"
msgstr "integer-overflow in preprocessor-expressie"
#: cppexp.c:582
#, fuzzy, c-format
msgid "\"%s\" is not defined"
msgstr "`%.*s' is niet gedefinieerd"
# 'whitespace' -> 'witruimte'?
#: cppexp.c:714 cppexp.c:743
#, fuzzy, c-format
msgid "missing binary operator before token \"%s\""
msgstr "ontbrekende witruimte na getal `%s'"
#: cppexp.c:734
#, fuzzy, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "stringconstantes zijn niet toegestaan in #if-expressies"
#: cppexp.c:753
#, fuzzy
msgid "void expression between '(' and ')'"
msgstr "ongeldige expressie als operand"
#: cppexp.c:756
#, fuzzy
msgid "#if with no expression"
msgstr "modi in %s expressie komen niet overeen"
#: cppexp.c:758
#, fuzzy, c-format
msgid "operator '%s' has no right operand"
msgstr "iterator `%s' is van een niet-integraal type"
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr ""
#: cppexp.c:811
#, fuzzy
msgid "unbalanced stack in #if"
msgstr "niet-gebalanceerde `#endif'"
#: cppexp.c:830
#, fuzzy, c-format
msgid "impossible operator '%u'"
msgstr "incompatibele operands voor %s"
#: cppexp.c:922
#, fuzzy
msgid "missing ')' in expression"
msgstr "ontbrekende index-expressie"
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr ""
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr "integer-overflow in preprocessor-expressie"
#: cppexp.c:958
#, fuzzy
msgid "missing '(' in expression"
msgstr "ontbrekende index-expressie"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:1352
#, fuzzy
msgid "comma operator in operand of #if"
msgstr "comma-operator in operand van `#if'"
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr "deling door nul in `#if'"
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr ""
#: cppfiles.c:480
#, fuzzy, c-format
msgid "%s is too large"
msgstr "bestand `%s' is te groot"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr ""
#: cppfiles.c:714
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "Geen include-pad waarin %s kan gevonden worden"
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr ""
#: cppinit.c:389
#, fuzzy
msgid "cppchar_t must be an unsigned type"
msgstr "`defined' zonder een naam"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr ""
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr ""
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr ""
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr ""
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
#: cpplex.c:410
#, fuzzy
msgid "null character(s) ignored"
msgstr "%s bij nulkarakter"
# Wat is een correcte vertaling voor 'identifier'? Ik kies voor 'naam'.
#: cpplex.c:445
#, fuzzy
msgid "'$' in identifier or number"
msgstr "`$' in naam"
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr ""
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr ""
#: cpplex.c:916
msgid "unterminated comment"
msgstr "niet-beëindigde commentaar"
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr ""
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr ""
#: cpplex.c:934
#, fuzzy
msgid "multi-line comment"
msgstr "'//'-commentaar op meerdere lijnen"
#: cpplex.c:1198
#, fuzzy, c-format
msgid "unspellable token %s"
msgstr "kan bestand '%s' niet openen"
# OK, OK... Dit hoort thuis in lang nl@be, niet nl
#: cpplib.c:218
#, fuzzy, c-format
msgid "extra tokens at end of #%s directive"
msgstr "brol aan einde van `#line'-commando"
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr ""
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr ""
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr ""
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr ""
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr ""
#: cpplib.c:415
#, fuzzy, c-format
msgid "invalid preprocessing directive #%s"
msgstr "ongeldig preprocessing-commando"
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr ""
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr ""
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr ""
# is ongedefinieerd beter? ik denk van nie
#: cpplib.c:537
#, fuzzy, c-format
msgid "undefining \"%s\""
msgstr "`%s' wordt geondefinieerd"
#: cpplib.c:609
#, fuzzy
msgid "missing terminating > character"
msgstr "niet-beëindigde string- of karakterconstante"
#: cpplib.c:662
#, fuzzy, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "`#%s' verwacht \"BESTAND\" of <BESTAND>"
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr ""
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr ""
#: cpplib.c:749
#, fuzzy, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "`#line'-commando in slecht formaat"
#: cpplib.c:794
#, fuzzy, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "switch-waarde is geen integer"
#: cpplib.c:800
#, fuzzy
msgid "line number out of range"
msgstr "case-waarde buiten bereik"
#: cpplib.c:812 cpplib.c:885
#, fuzzy, c-format
msgid "\"%s\" is not a valid filename"
msgstr "-fPIC is niet geldig met -mcoff"
#: cpplib.c:847
#, fuzzy, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "switch-waarde is geen integer"
#: cpplib.c:947
#, fuzzy
msgid "invalid #ident directive"
msgstr "`#line'-commando in slecht formaat"
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
#: cpplib.c:1030
#, c-format
msgid "#pragma %s %s is already registered"
msgstr ""
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
#: cpplib.c:1178
#, fuzzy
msgid "#pragma once in main file"
msgstr "`#pragma once' is verouderd"
#: cpplib.c:1201
#, fuzzy
msgid "invalid #pragma GCC poison directive"
msgstr "ongeldig preprocessing-commando"
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr ""
#: cpplib.c:1255
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "[kan %s niet vinden]"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr ""
#: cpplib.c:1373
#, fuzzy
msgid "_Pragma takes a parenthesized string literal"
msgstr "Onbeëindigde stringconstante"
#: cpplib.c:1451
msgid "#else without #if"
msgstr ""
#: cpplib.c:1456
#, fuzzy
msgid "#else after #else"
msgstr "`#else' na `#else'"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr ""
#: cpplib.c:1489
#, fuzzy
msgid "#elif after #else"
msgstr "`#elif' na `#else'"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr ""
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr ""
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr ""
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr ""
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr ""
#: cpplib.c:1660
#, fuzzy
msgid "predicate must be an identifier"
msgstr "`defined' zonder een naam"
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
#: cppmacro.c:125 cppmacro.c:280
#, fuzzy, c-format
msgid "invalid built-in macro \"%s\""
msgstr "ongeldige macronaam"
#: cppmacro.c:221
msgid "could not determine date and time"
msgstr ""
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr ""
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
#: cppmacro.c:514
#, fuzzy
msgid "ISO C99 requires rest arguments to be used"
msgstr "ANSI C heeft een benoemd argument nodig vóór `...'"
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr ""
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
#: cppmacro.c:635
#, fuzzy, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr "niet-beëindigde parameterlijst in `#define'"
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
#: cppmacro.c:1241
#, fuzzy, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "herhaald lid `%s'"
#: cppmacro.c:1286
#, fuzzy, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "ongeldig karakter in naam van macro-parameter"
#: cppmacro.c:1294
#, fuzzy
msgid "macro parameters must be comma-separated"
msgstr "parameter 2 moet een locatie zijn"
#: cppmacro.c:1311
#, fuzzy
msgid "parameter name missing"
msgstr "parameternaam weggelaten"
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
#: cppmacro.c:1330
#, fuzzy
msgid "ISO C does not permit named variadic macros"
msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
#: cppmacro.c:1339
#, fuzzy
msgid "missing ')' in macro parameter list"
msgstr "parameternaam ontbreekt uit parameterlijst"
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr ""
#: cppmacro.c:1430
#, fuzzy
msgid "'#' is not followed by a macro parameter"
msgstr "`#' operator wordt niet gevolgd door een naam van een macro-argument"
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
#: cppmacro.c:1588
#, fuzzy, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "macro-argument `%.*s' zou met -traditional string gemaakt worden."
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr ""
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr ""
#: cppspec.c:128
#, fuzzy
msgid "too many input files"
msgstr "Geen invoerbestanden"
#: cpptrad.c:744
#, fuzzy, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr "niet-beëindigde parameterlijst in `#define'"
#: cpptrad.c:911
#, fuzzy
msgid "syntax error in macro parameter list"
msgstr "ongeldig karakter in naam van macro-parameter"
#: line-map.c:218
#, fuzzy, c-format
msgid "In file included from %s:%u"
msgstr "In bestand ingevoegd door "
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, fuzzy, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""
",\n"
" door "

820
libcpp/po/sv.po Normal file
View File

@@ -0,0 +1,820 @@
# Swedish translation for the GNU CC.
# Copyright (C) 2000 Free Software Foundation, Inc.
# Dennis Björklund <db@zigo.dhs.org>, 2000, 2001, 2002.
#
# Kom ihåg att i svenskan så använder vi "" för citat
# och inte '' som det är i originaluttrycken.
#
# Jag har gjort en liten ordlista över uttryck som kan finnas i
# översättningen
#
# http://www.zigo.dhs.org/~dennis/gcc/
#
# Denna lista är inte komplett men är det någon som vill hjälpa till
# att översätta gcc och har åsikter om hur dessa uttryck skall skrivas
# så ta kontakt så kan vi uppdatera den.
#
# Det mesta av övdersättningen som finns nu kommer från tiden
# innan version 3.0 av gcc. Dessvärre så fungerade aldrig gcc
# med översättningar korrekt då, så den kom inte till användning.
# Jag har överfört de gamla strängarna till dagens version (3.2)
# så det finns en början, men det är mycket kvar. Men vill någon hjälpa
# till så vore det jättebra. Jag kommer översätta en bit då och då
# i mån av tid, men det är en stor fil med komplicerade uttryck så
# det tar en stund att bli klar.
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.2\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2002-08-26 12:58+0200\n"
"Last-Translator: Dennis Björklund <db@zigo.dhs.org>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr "traditionell C hanterar inte operatorn unärt plus"
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
#: cppcharset.c:653
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "konveretering från NaN till unsigned int"
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
msgid "universal character names are only valid in C++ and C99"
msgstr ""
#: cppcharset.c:811
#, fuzzy, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "semantiken för \"\\%c\" varierar med -traditional"
#: cppcharset.c:837
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
#: cppcharset.c:849
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "\"%s\" är inte i början av deklarationen"
#: cppcharset.c:859
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
#: cppcharset.c:863
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
#: cppcharset.c:898
#, fuzzy
msgid "converting UCN to source character set"
msgstr "kan inte konvertera till en pekartyp"
#: cppcharset.c:902
#, fuzzy
msgid "converting UCN to execution character set"
msgstr "kan inte konvertera till en pekartyp"
#: cppcharset.c:967
#, fuzzy
msgid "the meaning of '\\x' is different in traditional C"
msgstr "semantiken för \"\\x\" varierar med -traditional"
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr ""
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr ""
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr ""
#: cppcharset.c:1098
#, fuzzy
msgid "the meaning of '\\a' is different in traditional C"
msgstr "semantiken för \"\\a\" varierar med -traditional"
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "okänd escape-sekvens \"\\%c\""
#: cppcharset.c:1116
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "okänd escape-sekvens \"\\%c\""
#: cppcharset.c:1122
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "escape-sekvens ryms ej i ett tecken"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
#, fuzzy
msgid "character constant too long for its type"
msgstr "teckenkonstant för lång"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "flerteckens teckenkonstant"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "tom teckenkonstant"
#: cppcharset.c:1378
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "kunde inte öppna dump-fil \"%s\""
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "varning: "
#: cpperror.c:112
msgid "internal error: "
msgstr "internt fel: "
#: cpperror.c:174
#, fuzzy
msgid "stdout"
msgstr "struct"
#: cppexp.c:192
#, fuzzy
msgid "too many decimal points in number"
msgstr "för många decimalpunker i flyttalskonstant"
#: cppexp.c:212
#, fuzzy, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "ogiltigt suffix på heltalskonstant"
#: cppexp.c:218
#, fuzzy
msgid "use of C99 hexadecimal floating constant"
msgstr "för många decimalpunker i flyttalskonstant"
#: cppexp.c:227
#, fuzzy
msgid "exponent has no digits"
msgstr "numerisk kostant utan siffror"
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr ""
#: cppexp.c:240
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "både suffix 'f' och 'l' på flyttalskonstant"
#: cppexp.c:250 cppexp.c:275
#, fuzzy, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr "traditionell C stödjer inte suffixet 'f'"
#: cppexp.c:261
#, fuzzy, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "ogiltigt suffix på heltalskonstant"
#: cppexp.c:283
#, fuzzy
msgid "use of C99 long long integer constant"
msgstr "ISO C89 förbjuder long long integer konstanter"
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr ""
#: cppexp.c:376
#, fuzzy
msgid "integer constant is too large for its type"
msgstr "heltalskonstant är större än maximala värdet för sin typ"
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr ""
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr "saknar ')' efter \"defined\""
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr ""
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr ""
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr ""
#: cppexp.c:531
#, fuzzy
msgid "floating constant in preprocessor expression"
msgstr "flyttalsspill i uttryck"
#: cppexp.c:537
#, fuzzy
msgid "imaginary number in preprocessor expression"
msgstr "ogiltig användning av void-uttryck"
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr "\"%s\" är inte definierad"
#: cppexp.c:714 cppexp.c:743
#, fuzzy, c-format
msgid "missing binary operator before token \"%s\""
msgstr "saknar mellanrum efter nummer \"%.*s\""
#: cppexp.c:734
#, fuzzy, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "\"%s\" är inte ett giltigt filnamn"
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr ""
#: cppexp.c:756
#, fuzzy
msgid "#if with no expression"
msgstr "#%s utan argument"
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr ""
#: cppexp.c:784
#, fuzzy
msgid " ':' without preceding '?'"
msgstr "syntaxfel vid token \"%s\""
#: cppexp.c:811
#, fuzzy
msgid "unbalanced stack in #if"
msgstr "obalanserad #endif"
#: cppexp.c:830
#, fuzzy, c-format
msgid "impossible operator '%u'"
msgstr "saknar mellanrum efter nummer \"%.*s\""
#: cppexp.c:922
#, fuzzy
msgid "missing ')' in expression"
msgstr "heltalsspill i uttryck"
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr ""
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr ""
#: cppexp.c:958
#, fuzzy
msgid "missing '(' in expression"
msgstr "heltalsspill i uttryck"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr ""
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr ""
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr ""
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr "%s är en blockenhet"
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr "%s är för stor"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr "%s är kortare än förväntat"
#: cppfiles.c:714
#, c-format
msgid "no include path in which to search for %s"
msgstr ""
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr ""
#: cppinit.c:389
#, fuzzy
msgid "cppchar_t must be an unsigned type"
msgstr "predikat måste vara en identifierare"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr ""
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr ""
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr ""
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr ""
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr ""
#: cpplex.c:445
msgid "'$' in identifier or number"
msgstr ""
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "försök att använda förgiftad \"%s\""
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr ""
#: cpplex.c:916
msgid "unterminated comment"
msgstr "ej avslutad kommentar"
#: cpplex.c:927
#, fuzzy
msgid "C++ style comments are not allowed in ISO C90"
msgstr "C++ kommentarer tillåts inte av ISO C89"
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr ""
#: cpplex.c:934
msgid "multi-line comment"
msgstr ""
#: cpplex.c:1198
#, fuzzy, c-format
msgid "unspellable token %s"
msgstr "kan inte öppna fil \"%s\""
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr ""
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s är en GCC-utvidgning"
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr ""
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "traditionell C ignorerar #%s dör tecknet # är indenterat"
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr ""
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
#: cpplib.c:365
#, fuzzy
msgid "style of line directive is a GCC extension"
msgstr "#%s är en GCC-utvidgning"
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr ""
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr ""
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr ""
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr ""
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr ""
#: cpplib.c:609
msgid "missing terminating > character"
msgstr "saknar avslutande tecken >"
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr "#include nästlad för djupt"
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr ""
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "ogiltigt flagga \"%s\" i line-direktiv"
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "\"%s\" efter #line är inte ett positivt heltal"
#: cpplib.c:800
msgid "line number out of range"
msgstr "radnummer utanför möjligt intervall"
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" är inte ett giltigt filnamn"
#: cpplib.c:847
#, fuzzy, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "\"%s\" efter #line är inte ett positivt heltal"
#: cpplib.c:947
#, fuzzy
msgid "invalid #ident directive"
msgstr "ogiltig #indent"
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
#: cpplib.c:1030
#, fuzzy, c-format
msgid "#pragma %s %s is already registered"
msgstr "Klass \"%s\" finns redan"
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr "#pragma once i huvudfil"
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr "ogiltigt GCC-direktiv #pragma poison"
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "förgiftar existerande makro \"%s\""
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr ""
#: cpplib.c:1255
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "kan inte hitta källfil %s"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr "aktuell fil är äldre än %s"
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
#: cpplib.c:1451
msgid "#else without #if"
msgstr "#else utan #if"
#: cpplib.c:1456
msgid "#else after #else"
msgstr "#else efter #else"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr "#elif utan #if"
#: cpplib.c:1489
msgid "#elif after #else"
msgstr "#elif efter #else"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr "#endif utan #if"
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr "saknas '(' efter predikat"
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr "saknas ')' för att avsluta svaret"
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr "predikatets svar är tomt"
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr ""
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr "predikat måste vara en identifierare"
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
#: cppmacro.c:125 cppmacro.c:280
#, fuzzy, c-format
msgid "invalid built-in macro \"%s\""
msgstr "förgiftar existerande makro \"%s\""
#: cppmacro.c:221
#, fuzzy
msgid "could not determine date and time"
msgstr "Kunde inte öppna datafil %s.\n"
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr ""
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr ""
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr ""
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr ""
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr ""
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr ""
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr "parameternamn saknas"
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr ""
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr ""
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr ""
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr ""
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "etikett \"%s\" använd men inte definierad"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "\"%s\" är använd men inte definierad"
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr ""
#: cppspec.c:128
msgid "too many input files"
msgstr "för många indatafiler"
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr ""
#: cpptrad.c:911
#, fuzzy
msgid "syntax error in macro parameter list"
msgstr "parameternamn saknas i parameterlista"
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr "I fil inkluderad från %s:%u"
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""
",\n"
" från %s:%u"

792
libcpp/po/tr.po Normal file
View File

@@ -0,0 +1,792 @@
# Turkish translations for gcc messages.
# Copyright (C) 2003 Free Software Foundation, Inc.
# Nilgün Belma Bugüner <nilgun@superonline.com>, 2001, 2002, 2003.
#
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.3.2\n"
"POT-Creation-Date: 2004-02-06 01:34+0000\n"
"PO-Revision-Date: 2003-10-25 11:35+0300\n"
"Last-Translator: Nilgün Belma Bugüner <nilgun@superonline.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"X-Generator: KBabel 1.0\n"
#: cppexp.c:1253
msgid "traditional C rejects the unary plus operator"
msgstr "geleneksel C tekil artı işlecini dışlar"
#: cpperror.c:176
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
#: cppcharset.c:653
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "NaN'dan unsigned int'e dönüşüm"
#: cppcharset.c:656
msgid "iconv_open"
msgstr ""
#. FIXME: should be DL_SORRY
#: cppcharset.c:664
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
#: cppcharset.c:808
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "evrensel karakter ismi '\\U%08x' tanıtıcı içinde geçerli değil"
#: cppcharset.c:811
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "`\\%c'nin anlamı geleneksel C'de farklıdır"
#: cppcharset.c:837
#, fuzzy, c-format
msgid "incomplete universal character name %.*s"
msgstr "evrensel karakter ismi tamamlanmamış"
#: cppcharset.c:849
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "`%T::%D' geçerli bir bildirici değil"
#: cppcharset.c:859
#, fuzzy, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "evrensel karakter ismi '\\U%08x' tanıtıcı içinde geçerli değil"
#: cppcharset.c:863
#, fuzzy, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "evrensel karakter ismi '\\U%08x' tanıtıcı içinde geçerli değil"
#: cppcharset.c:898
#, fuzzy
msgid "converting UCN to source character set"
msgstr "NULL'dan gösterici olmayan türe dönüşüm"
#: cppcharset.c:902
#, fuzzy
msgid "converting UCN to execution character set"
msgstr "NULL'dan gösterici olmayan türe dönüşüm"
#: cppcharset.c:967
msgid "the meaning of '\\x' is different in traditional C"
msgstr "'\\x'in anlamı geleneksel C'de farklıdır"
#: cppcharset.c:984 f/lex.c:580
msgid "\\x used with no following hex digits"
msgstr "\\x izleyen onaltılık rakamlar olmaksızın kullanılmış"
#: cppcharset.c:991
msgid "hex escape sequence out of range"
msgstr "onaltılık önceleme dizgesi kapsamdışı"
#: cppcharset.c:1030
msgid "octal escape sequence out of range"
msgstr "sekizlik önceleme dizgesi kapsamdışı"
#: cppcharset.c:1098
msgid "the meaning of '\\a' is different in traditional C"
msgstr "`\\a'nın anlamı geleneksel C'de farklıdır"
#: cppcharset.c:1105
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "ISO standardı olmayan önceleme dizgesi, '\\%c'"
#: cppcharset.c:1113
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "bilinmeyen önceleme dizgesi '\\%c'"
#: cppcharset.c:1116
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "bilinmeyen önceleme dizgesi: '\\%03o'"
#: cppcharset.c:1122
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "önceleme dizgesi karakter için kapsam dışı"
#: cppcharset.c:1181
msgid "converting to execution character set"
msgstr ""
#: cppcharset.c:1244 cppcharset.c:1307
msgid "character constant too long for its type"
msgstr "karakter sabiti, türü için çok uzun"
#: cppcharset.c:1247
msgid "multi-character character constant"
msgstr "çoklu-karakter karakter sabiti"
#: cppcharset.c:1339
msgid "empty character constant"
msgstr "karakter sabit boş"
#: cppcharset.c:1378
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "`%E' den `%T' ye dönüşüm yapılamaz"
#: cpperror.c:110 diagnostic.def:5
msgid "warning: "
msgstr "uyarı: "
#: cpperror.c:112
msgid "internal error: "
msgstr "iç hata: "
#: cpperror.c:174
msgid "stdout"
msgstr "stdÇ"
#: cppexp.c:192
msgid "too many decimal points in number"
msgstr "sayı içindeki ondalık nokta sayısı çok fazla"
#: cppexp.c:212
#, c-format
msgid "invalid digit \"%c\" in octal constant"
msgstr "sekizlik sabit içindeki \"%c\" geçersiz"
#: cppexp.c:218
msgid "use of C99 hexadecimal floating constant"
msgstr "C99 onaltılık gerçel sayı sabit kullanımı"
#: cppexp.c:227
msgid "exponent has no digits"
msgstr "üs rakam içermiyor"
#: cppexp.c:234
msgid "hexadecimal floating constants require an exponent"
msgstr "onaltılık gerçel sabitler bir üs gerektirir"
#: cppexp.c:240
#, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "gerçel sabitin \"%.*s\" soneki geçersiz"
#: cppexp.c:250 cppexp.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr "geleneksel C \"%.*s\" sonekini kullanmaz"
#: cppexp.c:261
#, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "tamsayı sabitte sonek \"%.*s\" soneki geçersiz"
#: cppexp.c:283
msgid "use of C99 long long integer constant"
msgstr "ISO C99 long long tamsayı sabitleri yasaklar"
#: cppexp.c:290
msgid "imaginary constants are a GCC extension"
msgstr "sanal sabitler bir GCC genişletmesidir"
#: cppexp.c:376
msgid "integer constant is too large for its type"
msgstr "tamsayı sabit, türü için oldukça büyük"
#: cppexp.c:388
msgid "integer constant is so large that it is unsigned"
msgstr "tamsayı sabit unsigned olarak oldukça büyük"
#: cppexp.c:470
msgid "missing ')' after \"defined\""
msgstr "\"defined\" dan sonra ')' eksik"
#: cppexp.c:477
msgid "operator \"defined\" requires an identifier"
msgstr "\"defined\" işleci bir tanımlayıcı gerektirir"
#: cppexp.c:485
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "(C++'da \"%s\" \"%s\" için bir alternatif dizgeciktir)"
#: cppexp.c:495
msgid "this use of \"defined\" may not be portable"
msgstr "\"defined\" bu kullanımıyla uyarlanabilir olmayabilir"
#: cppexp.c:531
msgid "floating constant in preprocessor expression"
msgstr "önişlemci ifadesinde gerçel sayı taşması"
#: cppexp.c:537
msgid "imaginary number in preprocessor expression"
msgstr "önişlemci ifadesinde sanal sayı"
#: cppexp.c:582
#, c-format
msgid "\"%s\" is not defined"
msgstr "\"%s\" tanımlı değil"
#: cppexp.c:714 cppexp.c:743
#, c-format
msgid "missing binary operator before token \"%s\""
msgstr "\"%s\" dizgeciğinden önceki iki terimli işleç eksik"
#: cppexp.c:734
#, c-format
msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "\"%s\" dizgeciği önişlemci ifadelerinde geçersizdir"
#: cppexp.c:753
msgid "void expression between '(' and ')'"
msgstr "'(' ve ')' arasında void ifade"
#: cppexp.c:756
msgid "#if with no expression"
msgstr "#if ifadesiz"
#: cppexp.c:758
#, c-format
msgid "operator '%s' has no right operand"
msgstr "`%s' işlecinin sağ tarafı yok"
#: cppexp.c:784
msgid " ':' without preceding '?'"
msgstr "':' den önce '?' yok"
#: cppexp.c:811
msgid "unbalanced stack in #if"
msgstr "#if ifadesinde karşılıksız yığın"
#: cppexp.c:830
#, c-format
msgid "impossible operator '%u'"
msgstr "işleç '%u' imkansız"
#: cppexp.c:922
msgid "missing ')' in expression"
msgstr "ifadede ')' eksik"
#: cppexp.c:943
msgid "'?' without following ':'"
msgstr "'?' dan sonra ':' yok"
#: cppexp.c:953
msgid "integer overflow in preprocessor expression"
msgstr "önişlemci ifadesinde tamsayı taşması"
#: cppexp.c:958
msgid "missing '(' in expression"
msgstr "ifadede '(' eksik"
#: cppexp.c:990
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr "\"%s\"in soldaki terimi yükseltgenirken işaret değiştiriyor"
#: cppexp.c:995
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr "\"%s\"in sağdaki terimi yükseltgenirken işaret değiştiriyor"
#: cppexp.c:1352
msgid "comma operator in operand of #if"
msgstr "#if'in teriminde virgül"
#: cppexp.c:1483
msgid "division by zero in #if"
msgstr "#if içinde sıfırla bölme"
#: cppfiles.c:375
msgid "NULL directory in find_file"
msgstr ""
#: cppfiles.c:402
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
#: cppfiles.c:405
msgid "use -Winvalid-pch for more information"
msgstr ""
#: cppfiles.c:463
#, c-format
msgid "%s is a block device"
msgstr "%s bir blok aygıtıdır"
#: cppfiles.c:480
#, c-format
msgid "%s is too large"
msgstr "%s çok büyük"
#: cppfiles.c:515
#, c-format
msgid "%s is shorter than expected"
msgstr "%s beklenenden daha kısa"
#: cppfiles.c:714
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "%s arama yolunda include dosyaları yok"
#: cppfiles.c:974
msgid "Multiple include guards may be useful for:\n"
msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n"
#: cppinit.c:389
msgid "cppchar_t must be an unsigned type"
msgstr "cppchar_t bir usigned tür olmalı"
#: cppinit.c:393
#, c-format
msgid ""
"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
"lu bits"
msgstr ""
"önişlemci aritmetiği %lu bitlik maksimum genişliğe sahip; hedef için %lu bit "
"gerekiyor"
#: cppinit.c:400
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr "CPP aritmetiği en azından bir hedef int kadar genişlikte olmalı "
#: cppinit.c:403
msgid "target char is less than 8 bits wide"
msgstr "hedef char 8bitlik genişlikten küçük"
#: cppinit.c:407
msgid "target wchar_t is narrower than target char"
msgstr "hedef wchar_t hedef char'dan daha dar"
#: cppinit.c:411
msgid "target int is narrower than target char"
msgstr "hedef int hedef char'dan daha dar"
#: cppinit.c:416
msgid "CPP half-integer narrower than CPP character"
msgstr "CPP half-integer'ı CPP character'dan daha dar"
#: cppinit.c:420
#, c-format
msgid ""
"CPP on this host cannot handle wide character constants over %lu bits, but "
"the target requires %lu bits"
msgstr ""
"Bu konaktaki CPP %lu bitten büyük karakter sabitleriyle çalışamaz, hedef ise "
"%lu bit gerektiriyor"
#: cpplex.c:410
msgid "null character(s) ignored"
msgstr "null karakter(ler) yoksayıldı"
#: cpplex.c:445
#, fuzzy
msgid "'$' in identifier or number"
msgstr "belirteç ya da sayı içinde '$' karakter(ler)i"
#: cpplex.c:492
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "zehirli \"%s\" kullanılmaya çalışılıyor"
#: cpplex.c:500
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
"__VA_ARGS__ sadece argümanlarının sayısı değişebilen bir C99 makrosunun "
"genişleme alanında görünebilir"
#: cpplex.c:596
msgid "null character(s) preserved in literal"
msgstr "null karakter(ler) sabit içinde saklanmış"
#: cpplex.c:916
msgid "unterminated comment"
msgstr "sonlandırılmamış açıklama"
#: cpplex.c:927
msgid "C++ style comments are not allowed in ISO C90"
msgstr "C++ tarzııklamalara ISO C90'da izin verilmez"
#: cpplex.c:929
msgid "(this will be reported only once per input file)"
msgstr "(her girdi dosyasında sadece bir kere raporlanacaktır)"
#: cpplex.c:934
msgid "multi-line comment"
msgstr "çok satırlııklama"
#: cpplex.c:1198
#, c-format
msgid "unspellable token %s"
msgstr "dizgecik %s okunabilir değil"
#: cpplib.c:218
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "#%s yönergesinin sonunda fazladan dizgecikler"
#: cpplib.c:304
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s bir GCC uzantısıdır"
#: cpplib.c:316
msgid "suggest not using #elif in traditional C"
msgstr "geleneksel C'de #elif kullanılmıyor varsayılır"
#: cpplib.c:319
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "geleneksel C'de girintili # ile #%s yoksayılır"
#: cpplib.c:323
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr ""
"geleneksel C'den #%s in saklanması için bir girintili # kullanılmış "
"farzedilir"
#: cpplib.c:345
msgid "embedding a directive within macro arguments is not portable"
msgstr "bir yönergenin makro argümanlarla gömülmesi uyarlanabilir değil"
#: cpplib.c:365
msgid "style of line directive is a GCC extension"
msgstr "satır yönergesinin tarzı bir GCC özelliğidir"
#: cpplib.c:415
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "önişlem yönergesi #%s geçersiz"
#: cpplib.c:484
msgid "\"defined\" cannot be used as a macro name"
msgstr "\"defined\" makro ismi olarak kullanılamaz"
#: cpplib.c:490
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr "\"%s\" C++'da bir işleç olduğundan makro ismi olarak kullanılamaz"
#: cpplib.c:493
#, c-format
msgid "no macro name given in #%s directive"
msgstr "#%s yönergesinde makro ismi verilmemiş"
#: cpplib.c:496
msgid "macro names must be identifiers"
msgstr "makro isimleri tanımlayıcılar olmalı"
#: cpplib.c:537
#, c-format
msgid "undefining \"%s\""
msgstr "tanımsız yapılan \"%s\""
#: cpplib.c:609
msgid "missing terminating > character"
msgstr "sonlandıran > karakteri eksik"
#: cpplib.c:662
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s \"DOSYA\" ya da <DOSYA> gerektirir"
#: cpplib.c:685
msgid "#include nested too deeply"
msgstr "#include iç içeliği çok derin"
#: cpplib.c:723
msgid "#include_next in primary source file"
msgstr "birncil kaynak dosyasında #include_next"
#: cpplib.c:749
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "satır yönergesinde geçersiz \"%s\" seçeneği"
#: cpplib.c:794
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "#line'dan sonraki \"%s\" bir pozitif tamsayı değil"
#: cpplib.c:800
msgid "line number out of range"
msgstr "satır numarası kapsam dışı"
#: cpplib.c:812 cpplib.c:885
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" geçerli bir dosya ismi değil"
#: cpplib.c:847
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "#'dan sonraki \"%s\" bir pozitif tamsayı değil"
#: cpplib.c:947
msgid "invalid #ident directive"
msgstr "geçersiz #ident yönergesi"
#: cpplib.c:1027
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr "\"%s\" hem pragma hem de pragma isim alanı olarak kaydediliyor"
#: cpplib.c:1030
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s zaten kayıtlı"
#: cpplib.c:1033
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s zaten kayıtlı"
#: cpplib.c:1178
msgid "#pragma once in main file"
msgstr "main dosyasında '#pragma once'"
#: cpplib.c:1201
msgid "invalid #pragma GCC poison directive"
msgstr "geçersiz #pragma GCC poison yönergesi"
#: cpplib.c:1210
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "zehirlenen mevcut makro \"%s\""
#: cpplib.c:1231
msgid "#pragma system_header ignored outside include file"
msgstr "başlık dosyasının dışındaki '#pragma system_header' yoksayıldı"
#: cpplib.c:1255
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "kaynak %s bulunamıyor"
#: cpplib.c:1259
#, c-format
msgid "current file is older than %s"
msgstr "mevcut dosya %s den daha eski"
#: cpplib.c:1373
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma bir parantezli dizge sabiti alır"
#: cpplib.c:1451
msgid "#else without #if"
msgstr "#if siz #else"
#: cpplib.c:1456
msgid "#else after #else"
msgstr "#else den sonra #else"
#: cpplib.c:1484
msgid "#elif without #if"
msgstr "#if siz #elif "
#: cpplib.c:1489
msgid "#elif after #else"
msgstr "#else den sonra #elif"
#: cpplib.c:1519
msgid "#endif without #if"
msgstr "#if siz #endif"
#: cpplib.c:1596
msgid "missing '(' after predicate"
msgstr "dayanaktan sonra '(' eksik"
#: cpplib.c:1611
msgid "missing ')' to complete answer"
msgstr "yanıtı tamamlayacak ')' eksik"
#: cpplib.c:1631
msgid "predicate's answer is empty"
msgstr "dayanakların cevabı boş"
#: cpplib.c:1658
msgid "assertion without predicate"
msgstr "dayanaksız olumlama"
#: cpplib.c:1660
msgid "predicate must be an identifier"
msgstr "dayanak bir tanımlayıcı olmalı"
#: cpplib.c:1744
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" tekrar olumlanmış"
#: cppmacro.c:125 cppmacro.c:280
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "geçersiz yerleşik makro \"%s\""
#: cppmacro.c:221
msgid "could not determine date and time"
msgstr "tarih ve saat saptanamadı"
#: cppmacro.c:393
msgid "invalid string literal, ignoring final '\\'"
msgstr "geçersiz dizge sabit, son '\\' yoksayılıyor"
#: cppmacro.c:476
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr "\"%s\" ve \"%s\" geçişi geçerli bir önişlem dizgeciği vermez"
#: cppmacro.c:514
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO C kalan argümanların kullanılmış olmasını gerektirir"
#: cppmacro.c:519
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "makro \"%s\" %u argüman gerektiriyor ama sadece %u argüman verilmiş"
#: cppmacro.c:524
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "makro \"%s\" için %u argüman verilmiş ama tam %u argüman alıyor"
#: cppmacro.c:635
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr "sonlandırılmamış argüman listesi çağıran makro \"%s\""
#: cppmacro.c:738
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
"işlev benzeri makro \"%s\" geleneksel C'de argümanlarla kullanılmalıdır"
#: cppmacro.c:1241
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "yinelenmiş makro parametresi \"%s\""
#: cppmacro.c:1286
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" makro parametre listesinde görünmeyebilir"
#: cppmacro.c:1294
msgid "macro parameters must be comma-separated"
msgstr "makro parametreleri virgüllerle ayrılmış olmalı"
#: cppmacro.c:1311
msgid "parameter name missing"
msgstr "parametre ismi eksik"
#: cppmacro.c:1326
msgid "anonymous variadic macros were introduced in C99"
msgstr "argümanlarının sayısı değişebilen anonim makrolar C99 da tanıtıldı"
#: cppmacro.c:1330
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C argümanlarının sayısı değişebilen isimli makrolara izin vermez"
#: cppmacro.c:1339
msgid "missing ')' in macro parameter list"
msgstr "makro parametre listesinde ')' eksik"
#: cppmacro.c:1402
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C makro isminden sonra boşluk gerektirir"
#: cppmacro.c:1430
msgid "'#' is not followed by a macro parameter"
msgstr "'#' işaretinden sonra bir makro parametresi yok"
#: cppmacro.c:1449
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' bir makronun her iki ucunda da görünemez"
#: cppmacro.c:1588
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "makro argümanı \"%s\" geleneksel C'de dizgelenmiş olmalıydı"
#: cppmacro.c:1611
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "cpp_macro_definition içindeki isimli yapı türü %d geçersiz"
#: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 cpppch.c:371
msgid "while writing precompiled header"
msgstr ""
#: cpppch.c:469
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "`%s' etiketi tanımsız kullanılmış"
#: cpppch.c:481
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
#: cpppch.c:522
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "`%s' tanımlanmadan kullanılmış"
#: cpppch.c:535 cpppch.c:724
msgid "while reading precompiled header"
msgstr ""
#: cppspec.c:106
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "\"%s\" önişlemci için geçerli bir seçenek değil"
#: cppspec.c:128
msgid "too many input files"
msgstr "girdi dosyası sayısı çok fazla"
#: cpptrad.c:744
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr "makro \"%s\" genişletilirken iç içelik saptandı"
#: cpptrad.c:911
#, fuzzy
msgid "syntax error in macro parameter list"
msgstr "parametre isim listesinde sözdizimi hatası"
#: line-map.c:218
#, c-format
msgid "In file included from %s:%u"
msgstr ""
"Sırayla bir altındaki dosyada içerilerek:\n"
"\t\t%s:%u"
#. Translators note: this message is used in conjunction
#. with "In file included from %s:%ld" and some other
#. tricks. We want something like this:
#.
#. | In file included from sys/select.h:123,
#. | from sys/types.h:234,
#. | from userfile.c:31:
#. | bits/select.h:45: <error message here>
#.
#. with all the "from"s lined up.
#. The trailing comma is at the beginning of this message,
#. and the trailing colon is not translated.
#: line-map.c:236
#, c-format
msgid ""
",\n"
" from %s:%u"
msgstr ""
",\n"
"\t\t%s:%u"

310
libcpp/symtab.c Normal file
View File

@@ -0,0 +1,310 @@
/* Hash tables.
Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
In other words, you are welcome to use, share and improve this program.
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding! */
#include "config.h"
#include "system.h"
#include "symtab.h"
/* The code below is a specialization of Vladimir Makarov's expandable
hash tables (see libiberty/hashtab.c). The abstraction penalty was
too high to continue using the generic form. This code knows
intrinsically how to calculate a hash value, and how to compare an
existing entry with a potential new one. Also, the ability to
delete members from the table has been removed. */
static unsigned int calc_hash (const unsigned char *, size_t);
static void ht_expand (hash_table *);
static double approx_sqrt (double);
/* Calculate the hash of the string STR of length LEN. */
static unsigned int
calc_hash (const unsigned char *str, size_t len)
{
size_t n = len;
unsigned int r = 0;
#define HASHSTEP(r, c) ((r) * 67 + ((c) - 113));
while (n--)
r = HASHSTEP (r, *str++);
return r + len;
#undef HASHSTEP
}
/* Initialize an identifier hashtable. */
hash_table *
ht_create (unsigned int order)
{
unsigned int nslots = 1 << order;
hash_table *table;
table = xcalloc (1, sizeof (hash_table));
/* Strings need no alignment. */
_obstack_begin (&table->stack, 0, 0,
(void *(*) (long)) xmalloc,
(void (*) (void *)) free);
obstack_alignment_mask (&table->stack) = 0;
table->entries = xcalloc (nslots, sizeof (hashnode));
table->nslots = nslots;
return table;
}
/* Frees all memory associated with a hash table. */
void
ht_destroy (hash_table *table)
{
obstack_free (&table->stack, NULL);
free (table->entries);
free (table);
}
/* Returns the hash entry for the a STR of length LEN. If that string
already exists in the table, returns the existing entry, and, if
INSERT is CPP_ALLOCED, frees the last obstack object. If the
identifier hasn't been seen before, and INSERT is CPP_NO_INSERT,
returns NULL. Otherwise insert and returns a new entry. A new
string is alloced if INSERT is CPP_ALLOC, otherwise INSERT is
CPP_ALLOCED and the item is assumed to be at the top of the
obstack. */
hashnode
ht_lookup (hash_table *table, const unsigned char *str, size_t len,
enum ht_lookup_option insert)
{
unsigned int hash = calc_hash (str, len);
unsigned int hash2;
unsigned int index;
size_t sizemask;
hashnode node;
sizemask = table->nslots - 1;
index = hash & sizemask;
table->searches++;
node = table->entries[index];
if (node != NULL)
{
if (node->hash_value == hash
&& HT_LEN (node) == (unsigned int) len
&& !memcmp (HT_STR (node), str, len))
{
if (insert == HT_ALLOCED)
/* The string we search for was placed at the end of the
obstack. Release it. */
obstack_free (&table->stack, (void *) str);
return node;
}
/* hash2 must be odd, so we're guaranteed to visit every possible
location in the table during rehashing. */
hash2 = ((hash * 17) & sizemask) | 1;
for (;;)
{
table->collisions++;
index = (index + hash2) & sizemask;
node = table->entries[index];
if (node == NULL)
break;
if (node->hash_value == hash
&& HT_LEN (node) == (unsigned int) len
&& !memcmp (HT_STR (node), str, len))
{
if (insert == HT_ALLOCED)
/* The string we search for was placed at the end of the
obstack. Release it. */
obstack_free (&table->stack, (void *) str);
return node;
}
}
}
if (insert == HT_NO_INSERT)
return NULL;
node = (*table->alloc_node) (table);
table->entries[index] = node;
HT_LEN (node) = (unsigned int) len;
node->hash_value = hash;
if (insert == HT_ALLOC)
HT_STR (node) = obstack_copy0 (&table->stack, str, len);
else
HT_STR (node) = str;
if (++table->nelements * 4 >= table->nslots * 3)
/* Must expand the string table. */
ht_expand (table);
return node;
}
/* Double the size of a hash table, re-hashing existing entries. */
static void
ht_expand (hash_table *table)
{
hashnode *nentries, *p, *limit;
unsigned int size, sizemask;
size = table->nslots * 2;
nentries = xcalloc (size, sizeof (hashnode));
sizemask = size - 1;
p = table->entries;
limit = p + table->nslots;
do
if (*p)
{
unsigned int index, hash, hash2;
hash = (*p)->hash_value;
index = hash & sizemask;
if (nentries[index])
{
hash2 = ((hash * 17) & sizemask) | 1;
do
{
index = (index + hash2) & sizemask;
}
while (nentries[index]);
}
nentries[index] = *p;
}
while (++p < limit);
free (table->entries);
table->entries = nentries;
table->nslots = size;
}
/* For all nodes in TABLE, callback CB with parameters TABLE->PFILE,
the node, and V. */
void
ht_forall (hash_table *table, ht_cb cb, const void *v)
{
hashnode *p, *limit;
p = table->entries;
limit = p + table->nslots;
do
if (*p)
{
if ((*cb) (table->pfile, *p, v) == 0)
break;
}
while (++p < limit);
}
/* Dump allocation statistics to stderr. */
void
ht_dump_statistics (hash_table *table)
{
size_t nelts, nids, overhead, headers;
size_t total_bytes, longest, sum_of_squares;
double exp_len, exp_len2, exp2_len;
hashnode *p, *limit;
#define SCALE(x) ((unsigned long) ((x) < 1024*10 \
? (x) \
: ((x) < 1024*1024*10 \
? (x) / 1024 \
: (x) / (1024*1024))))
#define LABEL(x) ((x) < 1024*10 ? ' ' : ((x) < 1024*1024*10 ? 'k' : 'M'))
total_bytes = longest = sum_of_squares = nids = 0;
p = table->entries;
limit = p + table->nslots;
do
if (*p)
{
size_t n = HT_LEN (*p);
total_bytes += n;
sum_of_squares += n * n;
if (n > longest)
longest = n;
nids++;
}
while (++p < limit);
nelts = table->nelements;
overhead = obstack_memory_used (&table->stack) - total_bytes;
headers = table->nslots * sizeof (hashnode);
fprintf (stderr, "\nString pool\nentries\t\t%lu\n",
(unsigned long) nelts);
fprintf (stderr, "identifiers\t%lu (%.2f%%)\n",
(unsigned long) nids, nids * 100.0 / nelts);
fprintf (stderr, "slots\t\t%lu\n",
(unsigned long) table->nslots);
fprintf (stderr, "bytes\t\t%lu%c (%lu%c overhead)\n",
SCALE (total_bytes), LABEL (total_bytes),
SCALE (overhead), LABEL (overhead));
fprintf (stderr, "table size\t%lu%c\n",
SCALE (headers), LABEL (headers));
exp_len = (double)total_bytes / (double)nelts;
exp2_len = exp_len * exp_len;
exp_len2 = (double) sum_of_squares / (double) nelts;
fprintf (stderr, "coll/search\t%.4f\n",
(double) table->collisions / (double) table->searches);
fprintf (stderr, "ins/search\t%.4f\n",
(double) nelts / (double) table->searches);
fprintf (stderr, "avg. entry\t%.2f bytes (+/- %.2f)\n",
exp_len, approx_sqrt (exp_len2 - exp2_len));
fprintf (stderr, "longest entry\t%lu\n",
(unsigned long) longest);
#undef SCALE
#undef LABEL
}
/* Return the approximate positive square root of a number N. This is for
statistical reports, not code generation. */
static double
approx_sqrt (double x)
{
double s, d;
if (x < 0)
abort ();
if (x == 0)
return 0;
s = x;
do
{
d = (s * s - x) / (2 * s);
s -= d;
}
while (d > .0001);
return s;
}

363
libcpp/system.h Normal file
View File

@@ -0,0 +1,363 @@
/* Get common system includes and various definitions and declarations based
on autoconf macros.
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of libcpp (aka cpplib).
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
#ifndef LIBCPP_SYSTEM_H
#define LIBCPP_SYSTEM_H
/* We must include stdarg.h before stdio.h. */
#include <stdarg.h>
#ifdef HAVE_STDDEF_H
# include <stddef.h>
#endif
#include <stdio.h>
/* Define a generic NULL if one hasn't already been defined. */
#ifndef NULL
#define NULL 0
#endif
/* The compiler is not a multi-threaded application and therefore we
do not have to use the locking functions. In fact, using the locking
functions can cause the compiler to be significantly slower under
I/O bound conditions (such as -g -O0 on very large source files).
HAVE_DECL_PUTC_UNLOCKED actually indicates whether or not the stdio
code is multi-thread safe by default. If it is set to 0, then do
not worry about using the _unlocked functions.
fputs_unlocked, fwrite_unlocked, and fprintf_unlocked are
extensions and need to be prototyped by hand (since we do not
define _GNU_SOURCE). */
#if defined HAVE_DECL_PUTC_UNLOCKED && HAVE_DECL_PUTC_UNLOCKED
# ifdef HAVE_PUTC_UNLOCKED
# undef putc
# define putc(C, Stream) putc_unlocked (C, Stream)
# endif
# ifdef HAVE_FPUTC_UNLOCKED
# undef fputc
# define fputc(C, Stream) fputc_unlocked (C, Stream)
# endif
# ifdef HAVE_FPUTS_UNLOCKED
# undef fputs
# define fputs(String, Stream) fputs_unlocked (String, Stream)
# if defined (HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED
extern int fputs_unlocked (const char *, FILE *);
# endif
# endif
# ifdef HAVE_FWRITE_UNLOCKED
# undef fwrite
# define fwrite(Ptr, Size, N, Stream) fwrite_unlocked (Ptr, Size, N, Stream)
# if defined (HAVE_DECL_FWRITE_UNLOCKED) && !HAVE_DECL_FWRITE_UNLOCKED
extern int fwrite_unlocked (const void *, size_t, size_t, FILE *);
# endif
# endif
# ifdef HAVE_FPRINTF_UNLOCKED
# undef fprintf
/* We can't use a function-like macro here because we don't know if
we have varargs macros. */
# define fprintf fprintf_unlocked
# if defined (HAVE_DECL_FPRINTF_UNLOCKED) && !HAVE_DECL_FPRINTF_UNLOCKED
extern int fprintf_unlocked (FILE *, const char *, ...);
# endif
# endif
#endif
/* ??? Glibc's fwrite/fread_unlocked macros cause
"warning: signed and unsigned type in conditional expression". */
#undef fread_unlocked
#undef fwrite_unlocked
#include <sys/types.h>
#include <errno.h>
#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO
extern int errno;
#endif
/* Some of glibc's string inlines cause warnings. Plus we'd rather
rely on (and therefore test) GCC's string builtins. */
#define __NO_STRING_INLINES
#ifdef STRING_WITH_STRINGS
# include <string.h>
# include <strings.h>
#else
# ifdef HAVE_STRING_H
# include <string.h>
# else
# ifdef HAVE_STRINGS_H
# include <strings.h>
# endif
# endif
#endif
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#if HAVE_LIMITS_H
# include <limits.h>
#endif
/* Infrastructure for defining missing _MAX and _MIN macros. Note that
macros defined with these cannot be used in #if. */
/* The extra casts work around common compiler bugs. */
#define INTTYPE_SIGNED(t) (! ((t) 0 < (t) -1))
/* The outer cast is needed to work around a bug in Cray C 5.0.3.0.
It is necessary at least when t == time_t. */
#define INTTYPE_MINIMUM(t) ((t) (INTTYPE_SIGNED (t) \
? ~ (t) 0 << (sizeof(t) * CHAR_BIT - 1) : (t) 0))
#define INTTYPE_MAXIMUM(t) ((t) (~ (t) 0 - INTTYPE_MINIMUM (t)))
/* Use that infrastructure to provide a few constants. */
#ifndef UCHAR_MAX
# define UCHAR_MAX INTTYPE_MAXIMUM (unsigned char)
#endif
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# ifdef HAVE_TIME_H
# include <time.h>
# endif
# endif
#endif
#ifdef HAVE_FCNTL_H
# include <fcntl.h>
#else
# ifdef HAVE_SYS_FILE_H
# include <sys/file.h>
# endif
#endif
#ifdef HAVE_LOCALE_H
# include <locale.h>
#endif
#ifdef HAVE_LANGINFO_CODESET
# include <langinfo.h>
#endif
#ifndef HAVE_SETLOCALE
# define setlocale(category, locale) (locale)
#endif
#ifdef ENABLE_NLS
#include <libintl.h>
#else
/* Stubs. */
# undef dgettext
# define dgettext(msgid) (msgid)
#endif
#ifndef _
# define _(msgid) dgettext (PACKAGE, msgid)
#endif
#ifndef N_
# define N_(msgid) msgid
#endif
/* Some systems define these in, e.g., param.h. We undefine these names
here to avoid the warnings. We prefer to use our definitions since we
know they are correct. */
#undef MIN
#undef MAX
#define MIN(X,Y) ((X) < (Y) ? (X) : (Y))
#define MAX(X,Y) ((X) > (Y) ? (X) : (Y))
/* The HAVE_DECL_* macros are three-state, undefined, 0 or 1. If they
are defined to 0 then we must provide the relevant declaration
here. These checks will be in the undefined state while configure
is running so be careful to test "defined (HAVE_DECL_*)". */
#if defined (HAVE_DECL_ABORT) && !HAVE_DECL_ABORT
extern void abort (void);
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
/* Test if something is a normal file. */
#ifndef S_ISREG
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
#endif
/* Test if something is a directory. */
#ifndef S_ISDIR
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
/* Test if something is a character special file. */
#ifndef S_ISCHR
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
#endif
/* Test if something is a block special file. */
#ifndef S_ISBLK
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
#endif
/* Test if something is a socket. */
#ifndef S_ISSOCK
# ifdef S_IFSOCK
# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
# else
# define S_ISSOCK(m) 0
# endif
#endif
/* Test if something is a FIFO. */
#ifndef S_ISFIFO
# ifdef S_IFIFO
# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
# else
# define S_ISFIFO(m) 0
# endif
#endif
/* Approximate O_NOCTTY and O_BINARY. */
#ifndef O_NOCTTY
#define O_NOCTTY 0
#endif
#ifndef O_BINARY
# define O_BINARY 0
#endif
/* Filename handling macros. */
#include "filenames.h"
/* Get libiberty declarations. */
#include "libiberty.h"
#include "safe-ctype.h"
/* 1 if we have C99 designated initializers. */
#if !defined(HAVE_DESIGNATED_INITIALIZERS)
#define HAVE_DESIGNATED_INITIALIZERS \
((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L))
#endif
/* 1 if we have _Bool. */
#ifndef HAVE__BOOL
# define HAVE__BOOL \
((GCC_VERSION >= 3000) || (__STDC_VERSION__ >= 199901L))
#endif
/* Be conservative and only use enum bitfields with GCC.
FIXME: provide a complete autoconf test for buggy enum bitfields. */
#if (GCC_VERSION > 2000)
#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE
#else
#define ENUM_BITFIELD(TYPE) unsigned int
#endif
/* We only use bool bitfields with gcc3. Some supposedly C99
compilers don't handle them correctly. */
#if (GCC_VERSION >= 3000)
#define BOOL_BITFIELD _Bool
#else
#define BOOL_BITFIELD unsigned int
#endif
#ifndef offsetof
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
#endif
/* __builtin_expect(A, B) evaluates to A, but notifies the compiler that
the most likely value of A is B. This feature was added at some point
between 2.95 and 3.0. Let's use 3.0 as the lower bound for now. */
#if (GCC_VERSION < 3000)
#define __builtin_expect(a, b) (a)
#endif
/* Provide some sort of boolean type. We use stdbool.h if it's
available. This must be after all inclusion of system headers,
as some of them will mess us up. */
#undef bool
#undef true
#undef false
#undef TRUE
#undef FALSE
#ifdef HAVE_STDBOOL_H
# include <stdbool.h>
#else
# if !HAVE__BOOL
typedef char _Bool;
# endif
# define bool _Bool
# define true 1
# define false 0
#endif
#if (GCC_VERSION >= 3000)
#undef calloc
#undef strdup
#undef malloc
#undef realloc
#pragma GCC poison calloc strdup
#pragma GCC poison malloc realloc
/* Libiberty macros that are no longer used in GCC. */
#undef ANSI_PROTOTYPES
#undef PTR_CONST
#undef LONG_DOUBLE
#undef VPARAMS
#undef VA_OPEN
#undef VA_FIXEDARG
#undef VA_CLOSE
#undef VA_START
#pragma GCC poison ANSI_PROTOTYPES PTR_CONST LONG_DOUBLE VPARAMS VA_OPEN \
VA_FIXEDARG VA_CLOSE VA_START
/* Note: not all uses of the `index' token (e.g. variable names and
structure members) have been eliminated. */
#undef bcopy
#undef bzero
#undef bcmp
#undef rindex
#pragma GCC poison bcopy bzero bcmp rindex
#endif /* GCC >= 3.0 */
#endif /* ! LIBCPP_SYSTEM_H */

1110
libcpp/traditional.c Normal file

File diff suppressed because it is too large Load Diff

336
libcpp/ucnid.h Normal file
View File

@@ -0,0 +1,336 @@
/* Table of UCNs which are valid in identifiers.
Copyright (C) 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Automatically generated from cppucnid.tab, do not edit */
/* This file reproduces the table in ISO/IEC 9899:1999 (C99) Annex
D, which is itself a reproduction from ISO/IEC TR 10176:1998, and
the similar table from ISO/IEC 14882:1988 (C++98) Annex E, which is
a reproduction of ISO/IEC PDTR 10176. Unfortunately these tables
are not identical. */
#ifndef LIBCPP_UCNID_H
#define LIBCPP_UCNID_H
#define C99 1
#define CXX 2
#define DIG 4
struct ucnrange
{
unsigned short lo, hi;
unsigned short flags;
};
static const struct ucnrange ucnranges[] = {
{ 0x00aa, 0x00aa, C99 }, /* Latin */
{ 0x00b5, 0x00b5, C99 }, /* Special characters */
{ 0x00b7, 0x00b7, C99 },
{ 0x00ba, 0x00ba, C99 }, /* Latin */
{ 0x00c0, 0x00d6, CXX|C99 },
{ 0x00d8, 0x00f6, CXX|C99 },
{ 0x00f8, 0x01f5, CXX|C99 },
{ 0x01fa, 0x0217, CXX|C99 },
{ 0x0250, 0x02a8, CXX|C99 },
{ 0x02b0, 0x02b8, C99 }, /* Special characters */
{ 0x02bb, 0x02bb, C99 },
{ 0x02bd, 0x02c1, C99 },
{ 0x02d0, 0x02d1, C99 },
{ 0x02e0, 0x02e4, C99 },
{ 0x037a, 0x037a, C99 },
{ 0x0384, 0x0384, CXX }, /* Greek */
{ 0x0386, 0x0386, C99 },
{ 0x0388, 0x038a, CXX|C99 },
{ 0x038c, 0x038c, CXX|C99 },
{ 0x038e, 0x03a1, CXX|C99 },
{ 0x03a3, 0x03ce, CXX|C99 },
{ 0x03d0, 0x03d6, CXX|C99 },
{ 0x03da, 0x03da, CXX|C99 },
{ 0x03dc, 0x03dc, CXX|C99 },
{ 0x03de, 0x03de, CXX|C99 },
{ 0x03e0, 0x03e0, CXX|C99 },
{ 0x03e2, 0x03f3, CXX|C99 },
{ 0x0401, 0x040c, CXX|C99 }, /* Cyrillic */
{ 0x040d, 0x040d, CXX },
{ 0x040e, 0x040e, C99 },
{ 0x040f, 0x044f, CXX|C99 },
{ 0x0451, 0x045c, CXX|C99 },
{ 0x045e, 0x0481, CXX|C99 },
{ 0x0490, 0x04c4, CXX|C99 },
{ 0x04c7, 0x04c8, CXX|C99 },
{ 0x04cb, 0x04cc, CXX|C99 },
{ 0x04d0, 0x04eb, CXX|C99 },
{ 0x04ee, 0x04f5, CXX|C99 },
{ 0x04f8, 0x04f9, CXX|C99 },
{ 0x0531, 0x0556, CXX|C99 }, /* Armenian */
{ 0x0559, 0x0559, C99 }, /* Special characters */
{ 0x0561, 0x0587, CXX|C99 }, /* Armenian */
{ 0x05b0, 0x05b9, C99 }, /* Hebrew */
{ 0x05bb, 0x05bd, C99 },
{ 0x05bf, 0x05bf, C99 },
{ 0x05c1, 0x05c2, C99 },
{ 0x05d0, 0x05ea, CXX|C99 },
{ 0x05f0, 0x05f2, CXX|C99 },
{ 0x05f3, 0x05f4, CXX },
{ 0x0621, 0x063a, CXX|C99 }, /* Arabic */
{ 0x0640, 0x0652, CXX|C99 },
{ 0x0660, 0x0669, C99|DIG }, /* Digits */
{ 0x0670, 0x06b7, CXX|C99 }, /* Arabic */
{ 0x06ba, 0x06be, CXX|C99 },
{ 0x06c0, 0x06ce, CXX|C99 },
{ 0x06d0, 0x06dc, C99 },
{ 0x06e5, 0x06e7, CXX|C99 },
{ 0x06e8, 0x06e8, C99 },
{ 0x06ea, 0x06ed, C99 },
{ 0x06f0, 0x06f9, C99|DIG }, /* Digits */
{ 0x0901, 0x0903, C99 }, /* Devanagari */
{ 0x0905, 0x0939, CXX|C99 },
{ 0x093d, 0x093d, C99 }, /* Special characters */
{ 0x093e, 0x094d, C99 }, /* Devanagari */
{ 0x0950, 0x0952, C99 },
{ 0x0958, 0x0962, CXX|C99 },
{ 0x0963, 0x0963, C99 },
{ 0x0966, 0x096f, C99|DIG }, /* Digits */
{ 0x0981, 0x0983, C99 }, /* Bengali */
{ 0x0985, 0x098c, CXX|C99 },
{ 0x098f, 0x0990, CXX|C99 },
{ 0x0993, 0x09a8, CXX|C99 },
{ 0x09aa, 0x09b0, CXX|C99 },
{ 0x09b2, 0x09b2, CXX|C99 },
{ 0x09b6, 0x09b9, CXX|C99 },
{ 0x09be, 0x09c4, C99 },
{ 0x09c7, 0x09c8, C99 },
{ 0x09cb, 0x09cd, C99 },
{ 0x09dc, 0x09dd, CXX|C99 },
{ 0x09df, 0x09e1, CXX|C99 },
{ 0x09e2, 0x09e3, C99 },
{ 0x09e6, 0x09ef, C99|DIG }, /* Digits */
{ 0x09f0, 0x09f1, CXX|C99 }, /* Bengali */
{ 0x0a02, 0x0a02, C99 }, /* Gurmukhi */
{ 0x0a05, 0x0a0a, CXX|C99 },
{ 0x0a0f, 0x0a10, CXX|C99 },
{ 0x0a13, 0x0a28, CXX|C99 },
{ 0x0a2a, 0x0a30, CXX|C99 },
{ 0x0a32, 0x0a33, CXX|C99 },
{ 0x0a35, 0x0a36, CXX|C99 },
{ 0x0a38, 0x0a39, CXX|C99 },
{ 0x0a3e, 0x0a42, C99 },
{ 0x0a47, 0x0a48, C99 },
{ 0x0a4b, 0x0a4d, C99 },
{ 0x0a59, 0x0a5c, CXX|C99 },
{ 0x0a5e, 0x0a5e, CXX|C99 },
{ 0x0a66, 0x0a6f, C99|DIG }, /* Digits */
{ 0x0a74, 0x0a74, C99 }, /* Gurmukhi */
{ 0x0a81, 0x0a83, C99 }, /* Gujarati */
{ 0x0a85, 0x0a8b, CXX|C99 },
{ 0x0a8d, 0x0a8d, CXX|C99 },
{ 0x0a8f, 0x0a91, CXX|C99 },
{ 0x0a93, 0x0aa8, CXX|C99 },
{ 0x0aaa, 0x0ab0, CXX|C99 },
{ 0x0ab2, 0x0ab3, CXX|C99 },
{ 0x0ab5, 0x0ab9, CXX|C99 },
{ 0x0abd, 0x0ac5, C99 },
{ 0x0ac7, 0x0ac9, C99 },
{ 0x0acb, 0x0acd, C99 },
{ 0x0ad0, 0x0ad0, C99 },
{ 0x0ae0, 0x0ae0, CXX|C99 },
{ 0x0ae6, 0x0aef, C99|DIG }, /* Digits */
{ 0x0b01, 0x0b03, C99 }, /* Oriya */
{ 0x0b05, 0x0b0c, CXX|C99 },
{ 0x0b0f, 0x0b10, CXX|C99 },
{ 0x0b13, 0x0b28, CXX|C99 },
{ 0x0b2a, 0x0b30, CXX|C99 },
{ 0x0b32, 0x0b33, CXX|C99 },
{ 0x0b36, 0x0b39, CXX|C99 },
{ 0x0b3d, 0x0b3d, C99 }, /* Special characters */
{ 0x0b3e, 0x0b43, C99 }, /* Oriya */
{ 0x0b47, 0x0b48, C99 },
{ 0x0b4b, 0x0b4d, C99 },
{ 0x0b5c, 0x0b5d, CXX|C99 },
{ 0x0b5f, 0x0b61, CXX|C99 },
{ 0x0b66, 0x0b6f, C99|DIG }, /* Digits */
{ 0x0b82, 0x0b83, C99 }, /* Tamil */
{ 0x0b85, 0x0b8a, CXX|C99 },
{ 0x0b8e, 0x0b90, CXX|C99 },
{ 0x0b92, 0x0b95, CXX|C99 },
{ 0x0b99, 0x0b9a, CXX|C99 },
{ 0x0b9c, 0x0b9c, CXX|C99 },
{ 0x0b9e, 0x0b9f, CXX|C99 },
{ 0x0ba3, 0x0ba4, CXX|C99 },
{ 0x0ba8, 0x0baa, CXX|C99 },
{ 0x0bae, 0x0bb5, CXX|C99 },
{ 0x0bb7, 0x0bb9, CXX|C99 },
{ 0x0bbe, 0x0bc2, C99 },
{ 0x0bc6, 0x0bc8, C99 },
{ 0x0bca, 0x0bcd, C99 },
{ 0x0be7, 0x0bef, C99|DIG }, /* Digits */
{ 0x0c01, 0x0c03, C99 }, /* Telugu */
{ 0x0c05, 0x0c0c, CXX|C99 },
{ 0x0c0e, 0x0c10, CXX|C99 },
{ 0x0c12, 0x0c28, CXX|C99 },
{ 0x0c2a, 0x0c33, CXX|C99 },
{ 0x0c35, 0x0c39, CXX|C99 },
{ 0x0c3e, 0x0c44, C99 },
{ 0x0c46, 0x0c48, C99 },
{ 0x0c4a, 0x0c4d, C99 },
{ 0x0c60, 0x0c61, CXX|C99 },
{ 0x0c66, 0x0c6f, C99|DIG }, /* Digits */
{ 0x0c82, 0x0c83, C99 }, /* Kannada */
{ 0x0c85, 0x0c8c, CXX|C99 },
{ 0x0c8e, 0x0c90, CXX|C99 },
{ 0x0c92, 0x0ca8, CXX|C99 },
{ 0x0caa, 0x0cb3, CXX|C99 },
{ 0x0cb5, 0x0cb9, CXX|C99 },
{ 0x0cbe, 0x0cc4, C99 },
{ 0x0cc6, 0x0cc8, C99 },
{ 0x0cca, 0x0ccd, C99 },
{ 0x0cde, 0x0cde, C99 },
{ 0x0ce0, 0x0ce1, CXX|C99 },
{ 0x0ce6, 0x0cef, C99|DIG }, /* Digits */
{ 0x0d02, 0x0d03, C99 }, /* Malayalam */
{ 0x0d05, 0x0d0c, CXX|C99 },
{ 0x0d0e, 0x0d10, CXX|C99 },
{ 0x0d12, 0x0d28, CXX|C99 },
{ 0x0d2a, 0x0d39, CXX|C99 },
{ 0x0d3e, 0x0d43, C99 },
{ 0x0d46, 0x0d48, C99 },
{ 0x0d4a, 0x0d4d, C99 },
{ 0x0d60, 0x0d61, CXX|C99 },
{ 0x0d66, 0x0d6f, C99|DIG }, /* Digits */
{ 0x0e01, 0x0e30, CXX|C99 }, /* Thai */
{ 0x0e31, 0x0e31, C99 },
{ 0x0e32, 0x0e33, CXX|C99 },
{ 0x0e34, 0x0e3a, C99 },
{ 0x0e40, 0x0e46, CXX|C99 },
{ 0x0e47, 0x0e49, C99 },
{ 0x0e50, 0x0e59, CXX|C99|DIG }, /* Digits */
{ 0x0e5a, 0x0e5b, CXX|C99 }, /* Thai */
{ 0x0e81, 0x0e82, CXX|C99 }, /* Lao */
{ 0x0e84, 0x0e84, CXX|C99 },
{ 0x0e87, 0x0e88, CXX|C99 },
{ 0x0e8a, 0x0e8a, CXX|C99 },
{ 0x0e8d, 0x0e8d, CXX|C99 },
{ 0x0e94, 0x0e97, CXX|C99 },
{ 0x0e99, 0x0e9f, CXX|C99 },
{ 0x0ea1, 0x0ea3, CXX|C99 },
{ 0x0ea5, 0x0ea5, CXX|C99 },
{ 0x0ea7, 0x0ea7, CXX|C99 },
{ 0x0eaa, 0x0eab, CXX|C99 },
{ 0x0ead, 0x0eae, CXX|C99 },
{ 0x0eaf, 0x0eaf, CXX },
{ 0x0eb0, 0x0eb0, CXX|C99 },
{ 0x0eb1, 0x0eb1, C99 },
{ 0x0eb2, 0x0eb3, CXX|C99 },
{ 0x0eb4, 0x0eb9, C99 },
{ 0x0ebb, 0x0ebc, C99 },
{ 0x0ebd, 0x0ebd, CXX|C99 },
{ 0x0ec0, 0x0ec4, CXX|C99 },
{ 0x0ec6, 0x0ec6, CXX|C99 },
{ 0x0ec8, 0x0ecd, C99 },
{ 0x0ed0, 0x0ed9, C99|DIG }, /* Digits */
{ 0x0edc, 0x0edd, C99 }, /* Lao */
{ 0x0f00, 0x0f00, C99 }, /* Tibetan */
{ 0x0f18, 0x0f19, C99 },
{ 0x0f20, 0x0f33, C99|DIG }, /* Digits */
{ 0x0f35, 0x0f35, C99 }, /* Tibetan */
{ 0x0f37, 0x0f37, C99 },
{ 0x0f39, 0x0f39, C99 },
{ 0x0f3e, 0x0f47, C99 },
{ 0x0f49, 0x0f69, C99 },
{ 0x0f71, 0x0f84, C99 },
{ 0x0f86, 0x0f8b, C99 },
{ 0x0f90, 0x0f95, C99 },
{ 0x0f97, 0x0f97, C99 },
{ 0x0f99, 0x0fad, C99 },
{ 0x0fb1, 0x0fb7, C99 },
{ 0x0fb9, 0x0fb9, C99 },
{ 0x10a0, 0x10c5, CXX|C99 }, /* Georgian */
{ 0x10d0, 0x10f6, CXX|C99 },
{ 0x1100, 0x1159, CXX }, /* Hangul */
{ 0x1161, 0x11a2, CXX },
{ 0x11a8, 0x11f9, CXX },
{ 0x1e00, 0x1e9a, CXX|C99 }, /* Latin */
{ 0x1e9b, 0x1e9b, C99 },
{ 0x1ea0, 0x1ef9, CXX|C99 },
{ 0x1f00, 0x1f15, CXX|C99 }, /* Greek */
{ 0x1f18, 0x1f1d, CXX|C99 },
{ 0x1f20, 0x1f45, CXX|C99 },
{ 0x1f48, 0x1f4d, CXX|C99 },
{ 0x1f50, 0x1f57, CXX|C99 },
{ 0x1f59, 0x1f59, CXX|C99 },
{ 0x1f5b, 0x1f5b, CXX|C99 },
{ 0x1f5d, 0x1f5d, CXX|C99 },
{ 0x1f5f, 0x1f7d, CXX|C99 },
{ 0x1f80, 0x1fb4, CXX|C99 },
{ 0x1fb6, 0x1fbc, CXX|C99 },
{ 0x1fbe, 0x1fbe, C99 }, /* Special characters */
{ 0x1fc2, 0x1fc4, CXX|C99 }, /* Greek */
{ 0x1fc6, 0x1fcc, CXX|C99 },
{ 0x1fd0, 0x1fd3, CXX|C99 },
{ 0x1fd6, 0x1fdb, CXX|C99 },
{ 0x1fe0, 0x1fec, CXX|C99 },
{ 0x1ff2, 0x1ff4, CXX|C99 },
{ 0x1ff6, 0x1ffc, CXX|C99 },
{ 0x203f, 0x2040, C99 }, /* Special characters */
{ 0x207f, 0x207f, C99 }, /* Latin */
{ 0x2102, 0x2102, C99 }, /* Special characters */
{ 0x2107, 0x2107, C99 },
{ 0x210a, 0x2113, C99 },
{ 0x2115, 0x2115, C99 },
{ 0x2118, 0x211d, C99 },
{ 0x2124, 0x2124, C99 },
{ 0x2126, 0x2126, C99 },
{ 0x2128, 0x2128, C99 },
{ 0x212a, 0x2131, C99 },
{ 0x2133, 0x2138, C99 },
{ 0x2160, 0x2182, C99 },
{ 0x3005, 0x3007, C99 },
{ 0x3021, 0x3029, C99 },
{ 0x3041, 0x3093, CXX|C99 }, /* Hiragana */
{ 0x3094, 0x3094, CXX },
{ 0x309b, 0x309c, CXX|C99 },
{ 0x309d, 0x309e, CXX },
{ 0x30a1, 0x30f6, CXX|C99 }, /* Katakana */
{ 0x30f7, 0x30fa, CXX },
{ 0x30fb, 0x30fc, CXX|C99 },
{ 0x30fd, 0x30fe, CXX },
{ 0x3105, 0x312c, CXX|C99 }, /* Bopomofo */
{ 0x4e00, 0x9fa5, CXX|C99 }, /* CJK Unified Ideographs */
{ 0xac00, 0xd7a3, C99 }, /* Hangul */
{ 0xf900, 0xfa2d, CXX }, /* CJK Unified Ideographs */
{ 0xfb1f, 0xfb36, CXX },
{ 0xfb38, 0xfb3c, CXX },
{ 0xfb3e, 0xfb3e, CXX },
{ 0xfb40, 0xfb44, CXX },
{ 0xfb46, 0xfbb1, CXX },
{ 0xfbd3, 0xfd3f, CXX },
{ 0xfd50, 0xfd8f, CXX },
{ 0xfd92, 0xfdc7, CXX },
{ 0xfdf0, 0xfdfb, CXX },
{ 0xfe70, 0xfe72, CXX },
{ 0xfe74, 0xfe74, CXX },
{ 0xfe76, 0xfefc, CXX },
{ 0xff21, 0xff3a, CXX },
{ 0xff41, 0xff5a, CXX },
{ 0xff66, 0xffbe, CXX },
{ 0xffc2, 0xffc7, CXX },
{ 0xffca, 0xffcf, CXX },
{ 0xffd2, 0xffd7, CXX },
{ 0xffda, 0xffdc, CXX },
};
#endif /* LIBCPP_UCNID_H */

130
libcpp/ucnid.pl Normal file
View File

@@ -0,0 +1,130 @@
#! /usr/bin/perl -w
use strict;
# Convert cppucnid.tab to cppucnid.h. We use two arrays of length
# 65536 to represent the table, since this is nice and simple. The
# first array holds the tags indicating which ranges are valid in
# which contexts. The second array holds the language name associated
# with each element.
our(@tags, @names);
@tags = ("") x 65536;
@names = ("") x 65536;
# Array mapping tag numbers to standard #defines
our @stds;
# Current standard and language
our($curstd, $curlang);
# First block of the file is a template to be saved for later.
our @template;
while (<>) {
chomp;
last if $_ eq '%%';
push @template, $_;
};
# Second block of the file is the UCN tables.
# The format looks like this:
#
# [std]
#
# ; language
# xxxx-xxxx xxxx xxxx-xxxx ....
#
# with comment lines starting with #.
while (<>) {
chomp;
/^#/ and next;
/^\s*$/ and next;
/^\[(.+)\]$/ and do {
$curstd = $1;
next;
};
/^; (.+)$/ and do {
$curlang = $1;
next;
};
process_range(split);
}
# Print out the template, inserting as requested.
$\ = "\n";
for (@template) {
print("/* Automatically generated from cppucnid.tab, do not edit */"),
next if $_ eq "[dne]";
print_table(), next if $_ eq "[table]";
print;
}
sub print_table {
my($lo, $hi);
my $prevname = "";
for ($lo = 0; $lo <= $#tags; $lo = $hi) {
$hi = $lo;
$hi++ while $hi <= $#tags
&& $tags[$hi] eq $tags[$lo]
&& $names[$hi] eq $names[$lo];
# Range from $lo to $hi-1.
# Don't make entries for ranges that are not valid idchars.
next if ($tags[$lo] eq "");
my $tag = $tags[$lo];
$tag = " ".$tag if $tag =~ /^C99/;
if ($names[$lo] eq $prevname) {
printf(" { 0x%04x, 0x%04x, %-11s },\n",
$lo, $hi-1, $tag);
} else {
printf(" { 0x%04x, 0x%04x, %-11s }, /* %s */\n",
$lo, $hi-1, $tag, $names[$lo]);
}
$prevname = $names[$lo];
}
}
# The line is a list of four-digit hexadecimal numbers or
# pairs of such numbers. Each is a valid identifier character
# from the given language, under the given standard.
sub process_range {
for my $range (@_) {
if ($range =~ /^[0-9a-f]{4}$/) {
my $i = hex($range);
if ($tags[$i] eq "") {
$tags[$i] = $curstd;
} else {
$tags[$i] = $curstd . "|" . $tags[$i];
}
if ($names[$i] ne "" && $names[$i] ne $curlang) {
warn sprintf ("language overlap: %s/%s at %x (tag %d)",
$names[$i], $curlang, $i, $tags[$i]);
next;
}
$names[$i] = $curlang;
} elsif ($range =~ /^ ([0-9a-f]{4}) - ([0-9a-f]{4}) $/x) {
my ($start, $end) = (hex($1), hex($2));
my $i;
for ($i = $start; $i <= $end; $i++) {
if ($tags[$i] eq "") {
$tags[$i] = $curstd;
} else {
$tags[$i] = $curstd . "|" . $tags[$i];
}
if ($names[$i] ne "" && $names[$i] ne $curlang) {
warn sprintf ("language overlap: %s/%s at %x (tag %d)",
$names[$i], $curlang, $i, $tags[$i]);
next;
}
$names[$i] = $curlang;
}
} else {
warn "malformed range expression $range";
}
}
}

239
libcpp/ucnid.tab Normal file
View File

@@ -0,0 +1,239 @@
/* Table of UCNs which are valid in identifiers.
Copyright (C) 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
[dne]
/* This file reproduces the table in ISO/IEC 9899:1999 (C99) Annex
D, which is itself a reproduction from ISO/IEC TR 10176:1998, and
the similar table from ISO/IEC 14882:1988 (C++98) Annex E, which is
a reproduction of ISO/IEC PDTR 10176. Unfortunately these tables
are not identical. */
#ifndef LIBCPP_UCNID_H
#define LIBCPP_UCNID_H
#define C99 1
#define CXX 2
#define DIG 4
struct ucnrange
{
unsigned short lo, hi;
unsigned short flags;
};
static const struct ucnrange ucnranges[] = {
[table]
};
#endif /* LIBCPP_UCNID_H */
%%
[C99]
; Latin
00aa 00ba 00c0-00d6 00d8-00f6 00f8-01f5 01fa-0217 0250-02a8 1e00-1e9b
1ea0-1ef9 207f
; Greek
0386 0388-038a 038c 038e-03a1 03a3-03ce 03d0-03d6 03da 03dc 03de 03e0
03e2-03f3 1f00-1f15 1f18-1f1d 1f20-1f45 1f48-1f4d 1f50-1f57 1f59 1f5b
1f5d 1f5f-1f7d 1f80-1fb4 1fb6-1fbc 1fc2-1fc4 1fc6-1fcc 1fd0-1fd3
1fd6-1fdb 1fe0-1fec 1ff2-1ff4 1ff6-1ffc
; Cyrillic
0401-040c 040e-044f 0451-045c 045e-0481 0490-04c4 04c7-04c8 04cb-04cc
04d0-04eb 04ee-04f5 04f8-04f9
; Armenian
0531-0556 0561-0587
; Hebrew
05b0-05b9 05bb-05bd 05bf 05c1-05c2 05d0-05ea 05f0-05f2
; Arabic
0621-063a 0640-0652 0670-06b7 06ba-06be 06c0-06ce 06d0-06dc 06e5-06e8
06ea-06ed
; Devanagari
0901-0903 0905-0939 093e-094d 0950-0952 0958-0963
; Bengali
0981-0983 0985-098c 098f-0990 0993-09a8 09aa-09b0 09b2 09b6-09b9
09be-09c4 09c7-09c8 09cb-09cd 09dc-09dd 09df-09e3 09f0-09f1
; Gurmukhi
0a02 0a05-0a0a 0a0f-0a10 0a13-0a28 0a2a-0a30 0a32-0a33 0a35-0a36
0a38-0a39 0a3e-0a42 0a47-0a48 0a4b-0a4d 0a59-0a5c 0a5e 0a74
; Gujarati
0a81-0a83 0a85-0a8b 0a8d 0a8f-0a91 0a93-0aa8 0aaa-0ab0 0ab2-0ab3
0ab5-0ab9 0abd-0ac5 0ac7-0ac9 0acb-0acd 0ad0 0ae0
; Oriya
0b01-0b03 0b05-0b0c 0b0f-0b10 0b13-0b28 0b2a-0b30 0b32-0b33 0b36-0b39
0b3e-0b43 0b47-0b48 0b4b-0b4d 0b5c-0b5d 0b5f-0b61
; Tamil
0b82-0b83 0b85-0b8a 0b8e-0b90 0b92-0b95 0b99-0b9a 0b9c 0b9e-0b9f
0ba3-0ba4 0ba8-0baa 0bae-0bb5 0bb7-0bb9 0bbe-0bc2 0bc6-0bc8 0bca-0bcd
; Telugu
0c01-0c03 0c05-0c0c 0c0e-0c10 0c12-0c28 0c2a-0c33 0c35-0c39 0c3e-0c44
0c46-0c48 0c4a-0c4d 0c60-0c61
; Kannada
0c82-0c83 0c85-0c8c 0c8e-0c90 0c92-0ca8 0caa-0cb3 0cb5-0cb9 0cbe-0cc4
0cc6-0cc8 0cca-0ccd 0cde 0ce0-0ce1
; Malayalam
0d02-0d03 0d05-0d0c 0d0e-0d10 0d12-0d28 0d2a-0d39 0d3e-0d43 0d46-0d48
0d4a-0d4d 0d60-0d61
# CORRECTION: exclude 0e50-0e59 from the Thai range as it also appears
# in the Digits range below.
; Thai
0e01-0e3a 0e40-0e49 0e5a-0e5b
; Lao
0e81-0e82 0e84 0e87-0e88 0e8a 0e8d 0e94-0e97 0e99-0e9f 0ea1-0ea3 0ea5
0ea7 0eaa-0eab 0ead-0eae 0eb0-0eb9 0ebb-0ebd 0ec0-0ec4 0ec6 0ec8-0ecd
0edc-0edd
; Tibetan
0f00 0f18-0f19 0f35 0f37 0f39 0f3e-0f47 0f49-0f69 0f71-0f84 0f86-0f8b
0f90-0f95 0f97 0f99-0fad 0fb1-0fb7 0fb9
; Georgian
10a0-10c5 10d0-10f6
; Hiragana
3041-3093 309b-309c
; Katakana
30a1-30f6 30fb-30fc
; Bopomofo
3105-312c
; CJK Unified Ideographs
4e00-9fa5
; Hangul
ac00-d7a3
; Special characters
00b5 00b7 02b0-02b8 02bb 02bd-02c1 02d0-02d1 02e0-02e4 037a 0559 093d
0b3d 1fbe 203f-2040 2102 2107 210a-2113 2115 2118-211d 2124 2126 2128
212a-2131 2133-2138 2160-2182 3005-3007 3021-3029
[C99|DIG]
; Digits
0660-0669 06f0-06f9 0966-096f 09e6-09ef 0a66-0a6f 0ae6-0aef 0b66-0b6f
0be7-0bef 0c66-0c6f 0ce6-0cef 0d66-0d6f 0e50-0e59 0ed0-0ed9 0f20-0f33
[CXX]
; Latin
00c0-00d6 00d8-00f6 00f8-01f5 01fa-0217 0250-02a8 1e00-1e9a 1ea0-1ef9
; Greek
0384 0388-038a 038c 038e-03a1 03a3-03ce 03d0-03d6 03da 03dc 03de 03e0
03e2-03f3 1f00-1f15 1f18-1f1d 1f20-1f45 1f48-1f4d 1f50-1f57 1f59 1f5b
1f5d 1f5f-1f7d 1f80-1fb4 1fb6-1fbc 1fc2-1fc4 1fc6-1fcc 1fd0-1fd3
1fd6-1fdb 1fe0-1fec 1ff2-1ff4 1ff6-1ffc
; Cyrillic
0401-040d 040f-044f 0451-045c 045e-0481 0490-04c4 04c7-04c8 04cb-04cc
04d0-04eb 04ee-04f5 04f8-04f9
; Armenian
0531-0556 0561-0587
; Hebrew
05d0-05ea 05f0-05f4
; Arabic
0621-063a 0640-0652 0670-06b7 06ba-06be 06c0-06ce 06e5-06e7
; Devanagari
0905-0939 0958-0962
; Bengali
0985-098c 098f-0990 0993-09a8 09aa-09b0 09b2 09b6-09b9 09dc-09dd
09df-09e1 09f0-09f1
; Gurmukhi
0a05-0a0a 0a0f-0a10 0a13-0a28 0a2a-0a30 0a32-0a33 0a35-0a36 0a38-0a39
0a59-0a5c 0a5e
; Gujarati
0a85-0a8b 0a8d 0a8f-0a91 0a93-0aa8 0aaa-0ab0 0ab2-0ab3 0ab5-0ab9 0ae0
; Oriya
0b05-0b0c 0b0f-0b10 0b13-0b28 0b2a-0b30 0b32-0b33 0b36-0b39 0b5c-0b5d
0b5f-0b61
; Tamil
0b85-0b8a 0b8e-0b90 0b92-0b95 0b99-0b9a 0b9c 0b9e-0b9f 0ba3-0ba4
0ba8-0baa 0bae-0bb5 0bb7-0bb9
; Telugu
0c05-0c0c 0c0e-0c10 0c12-0c28 0c2a-0c33 0c35-0c39 0c60-0c61
; Kannada
0c85-0c8c 0c8e-0c90 0c92-0ca8 0caa-0cb3 0cb5-0cb9 0ce0-0ce1
; Malayalam
0d05-0d0c 0d0e-0d10 0d12-0d28 0d2a-0d39 0d60-0d61
# CORRECTION: Exclude 0e50-0e59 from the Thai range and make a fake
# Digits range for it, to match C99. cppcharset.c knows that C++
# doesn't distinguish digits from other UCNs valid in identifiers.
; Thai
0e01-0e30 0e32-0e33 0e40-0e46 0e4f-0e49 0e5a-0e5b
; Digits
0e50-0e59
# CORRECTION: Change 0e0d to 0e8d (typo in standard; see C++ DR 131)
; Lao
0e81-0e82 0e84 0e87-0e88 0e8a 0e8d 0e94-0e97 0e99-0e9f 0ea1-0ea3 0ea5
0ea7 0eaa-0eab 0ead-0eb0 0eb2 0eb3 0ebd 0ec0-0ec4 0ec6
; Georgian
10a0-10c5 10d0-10f6
; Hiragana
3041-3094 309b-309e
; Katakana
30a1-30fe
# CORRECTION: language spelled "Bopmofo" in C++98.
; Bopomofo
3105-312c
; Hangul
1100-1159 1161-11a2 11a8-11f9
; CJK Unified Ideographs
f900-fa2d fb1f-fb36 fb38-fb3c fb3e fb40-fb41 fb42-fb44 fb46-fbb1
fbd3-fd3f fd50-fd8f fd92-fdc7 fdf0-fdfb fe70-fe72 fe74 fe76-fefc
ff21-ff3a ff41-ff5a ff66-ffbe ffc2-ffc7 ffca-ffcf ffd2-ffd7
ffda-ffdc 4e00-9fa5