mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 03:47:02 -05:00
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:
committed by
Paolo Bonzini
parent
b1c5b5a09b
commit
4f4e53dd85
35
libcpp/ChangeLog
Normal file
35
libcpp/ChangeLog
Normal 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
75
libcpp/Makefile.am
Normal 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
641
libcpp/Makefile.in
Normal 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
1899
libcpp/aclocal.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1429
libcpp/charset.c
Normal file
1429
libcpp/charset.c
Normal file
File diff suppressed because it is too large
Load Diff
198
libcpp/config.in
Normal file
198
libcpp/config.in
Normal 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
8776
libcpp/configure
vendored
Executable file
File diff suppressed because it is too large
Load Diff
96
libcpp/configure.ac
Normal file
96
libcpp/configure.ac
Normal 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
1987
libcpp/directives.c
Normal file
File diff suppressed because it is too large
Load Diff
182
libcpp/errors.c
Normal file
182
libcpp/errors.c
Normal 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
1540
libcpp/expr.c
Normal file
File diff suppressed because it is too large
Load Diff
1560
libcpp/files.c
Normal file
1560
libcpp/files.c
Normal file
File diff suppressed because it is too large
Load Diff
118
libcpp/identifiers.c
Normal file
118
libcpp/identifiers.c
Normal 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
7
libcpp/include/ChangeLog
Normal 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
773
libcpp/include/cpplib.h
Normal 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
182
libcpp/include/line-map.h
Normal 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
72
libcpp/include/mkdeps.h
Normal 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
81
libcpp/include/symtab.h
Normal 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
631
libcpp/init.c
Normal 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
651
libcpp/internal.h
Normal 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
1544
libcpp/lex.c
Normal file
File diff suppressed because it is too large
Load Diff
344
libcpp/line-map.c
Normal file
344
libcpp/line-map.c
Normal 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
1729
libcpp/macro.c
Normal file
File diff suppressed because it is too large
Load Diff
345
libcpp/mkdeps.c
Normal file
345
libcpp/mkdeps.c
Normal 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
723
libcpp/pch.c
Normal 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
13
libcpp/po/ChangeLog
Normal 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
776
libcpp/po/be.po
Normal 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
792
libcpp/po/ca.po
Normal 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
774
libcpp/po/cpplib.pot
Normal 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
911
libcpp/po/da.po
Normal 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
790
libcpp/po/de.po
Normal 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
808
libcpp/po/el.po
Normal 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
793
libcpp/po/es.po
Normal 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
920
libcpp/po/fr.po
Normal 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
803
libcpp/po/ja.po
Normal 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
834
libcpp/po/nl.po
Normal 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
820
libcpp/po/sv.po
Normal 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
792
libcpp/po/tr.po
Normal 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ı açı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ı açı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
310
libcpp/symtab.c
Normal 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
363
libcpp/system.h
Normal 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
1110
libcpp/traditional.c
Normal file
File diff suppressed because it is too large
Load Diff
336
libcpp/ucnid.h
Normal file
336
libcpp/ucnid.h
Normal 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
130
libcpp/ucnid.pl
Normal 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
239
libcpp/ucnid.tab
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user