/*******************************************************************************
* Copyright (c) 2013, 2014 Google, Inc and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Sergey Prigogin (Google) - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.ui.refactoring.includes;
import java.util.Arrays;
import java.util.List;
public class GCCHeaderSubstitutionMaps {
@SuppressWarnings("nls")
private static final String[] symbolExportMap = new String[] {
"EOF", "<stdio.h>",
"EOF", "<cstdio>",
"EOF", "<libio.h>",
"NULL", "<stddef.h>",
"NULL", "<cstddef>",
"NULL", "<stdlib.h>",
"NULL", "<cstdlib>",
"NULL", "<stdio.h>",
"NULL", "<cstdio>",
"NULL", "<string.h>",
"NULL", "<cstring>",
"NULL", "<string>",
"NULL", "<wchar.h>",
"NULL", "<cwchar>",
"NULL", "<locale.h>",
"NULL", "<time.h>",
"NULL", "<ctime>",
"blkcnt_t", "<sys/stat.h>",
"blkcnt_t", "<sys/types.h>",
"blksize_t", "<sys/types.h>",
"blksize_t", "<sys/stat.h>",
"calloc", "<stdlib.h>",
"calloc", "<cstdlib>",
"daddr_t", "<sys/types.h>",
"daddr_t", "<rpc/types.h>",
"dev_t", "<sys/types.h>",
"dev_t", "<sys/stat.h>",
"error_t", "<errno.h>",
"error_t", "<argp.h>",
"error_t", "<argz.h>",
"free", "<stdlib.h>",
"free", "<cstdlib>",
"fsblkcnt_t", "<sys/types.h>",
"fsblkcnt_t", "<sys/statvfs.h>",
"fsfilcnt_t", "<sys/types.h>",
"fsfilcnt_t", "<sys/statvfs.h>",
"gid_t", "<sys/types.h>",
"gid_t", "<grp.h>",
"gid_t", "<pwd.h>",
"gid_t", "<stropts.h>",
"gid_t", "<sys/ipc.h>",
"gid_t", "<sys/stat.h>",
"gid_t", "<unistd.h>",
"id_t", "<sys/types.h>",
"id_t", "<sys/resource.h>",
"ino64_t", "<sys/types.h>",
"ino64_t", "<dirent.h>",
"ino_t", "<sys/types.h>",
"ino_t", "<dirent.h>",
"ino_t", "<sys/stat.h>",
"int8_t", "<sys/types.h>",
"int8_t", "<stdint.h>",
"intptr_t", "<stdint.h>",
"intptr_t", "<unistd.h>",
"key_t", "<sys/types.h>",
"key_t", "<sys/ipc.h>",
"malloc", "<stdlib.h>",
"malloc", "<cstdlib>",
"mode_t", "<sys/types.h>",
"mode_t", "<sys/stat.h>",
"mode_t", "<sys/ipc.h>",
"mode_t", "<sys/mman.h>",
"nlink_t", "<sys/types.h>",
"nlink_t", "<sys/stat.h>",
"off64_t", "<sys/types.h>",
"off64_t", "<unistd.h>",
"off_t", "<sys/types.h>",
"off_t", "<unistd.h>",
"off_t", "<sys/stat.h>",
"off_t", "<sys/mman.h>",
"pid_t", "<sys/types.h>",
"pid_t", "<unistd.h>",
"pid_t", "<signal.h>",
"pid_t", "<sys/msg.h>",
"pid_t", "<sys/shm.h>",
"pid_t", "<termios.h>",
"pid_t", "<time.h>",
"pid_t", "<ctime>",
"pid_t", "<utmpx.h>",
"realloc", "<stdlib.h>",
"realloc", "<cstdlib>",
"sigset_t", "<signal.h>",
"sigset_t", "<sys/epoll.h>",
"sigset_t", "<sys/select.h>",
"size_t", "<stddef.h>",
"size_t", "<cstddef>",
"socklen_t", "<bits/socket.h>",
"socklen_t", "<unistd.h>",
"socklen_t", "<arpa/inet.h>",
"ssize_t", "<sys/types.h>",
"ssize_t", "<unistd.h>",
"ssize_t", "<monetary.h>",
"ssize_t", "<sys/msg.h>",
"std::allocator", "<memory>",
"std::allocator", "<string>",
"std::allocator", "<vector>",
"std::allocator", "<map>",
"std::allocator", "<set>",
"std::char_traits", "<string>",
"std::char_traits", "<ostream>",
"std::char_traits", "<istream>",
"suseconds_t", "<sys/types.h>",
"suseconds_t", "<sys/time.h>",
"suseconds_t", "<sys/select.h>",
"u_char", "<sys/types.h>",
"u_char", "<rpc/types.h>",
"uid_t", "<sys/types.h>",
"uid_t", "<unistd.h>",
"uid_t", "<pwd.h>",
"uid_t", "<signal.h>",
"uid_t", "<stropts.h>",
"uid_t", "<sys/ipc.h>",
"uid_t", "<sys/stat.h>",
"useconds_t", "<sys/types.h>",
"useconds_t", "<unistd.h>",
"va_list", "<stdarg.h>",
"va_list", "<cstdarg>",
};
@SuppressWarnings("nls")
private static final String[] cIncludeMap = new String[] {
"<asm/errno-base.h>", "<errno.h>",
"<asm/errno.h>", "<errno.h>",
"<asm/ioctls.h>", "<sys/ioctl.h>",
"<asm/posix_types_32.h>", "<asm/posix_types.h>",
"<asm/posix_types_64.h>", "<asm/posix_types.h>",
"<asm/ptrace-abi.h>", "<asm/ptrace.h>",
"<asm/socket.h>", "<sys/socket.h>",
"<asm/unistd.h>", "<syscall.h>",
"<asm/unistd_32.h>", "<syscall.h>",
"<asm/unistd_64.h>", "<syscall.h>",
"<bits/a.out.h>", "<a.out.h>",
"<bits/byteswap.h>", "<byteswap.h>",
"<bits/cmathcalls.h>", "<complex.h>",
"<bits/confname.h>", "<unistd.h>",
"<bits/dirent.h>", "<dirent.h>",
"<bits/dlfcn.h>", "<dlfcn.h>",
"<bits/elfclass.h>", "<link.h>",
"<bits/endian.h>", "<endian.h>",
"<bits/environments.h>", "<unistd.h>",
"<bits/errno.h>", "<errno.h>",
"<bits/error.h>", "<error.h>",
"<bits/fcntl.h>", "<fcntl.h>",
"<bits/fcntl2.h>", "<fcntl.h>",
"<bits/fcntl-linux.h>", "<fcntl.h>",
"<bits/fenv.h>", "<fenv.h>",
"<bits/fenvinline.h>", "<fenv.h>",
"<bits/huge_val.h>", "<math.h>",
"<bits/huge_valf.h>", "<math.h>",
"<bits/huge_vall.h>", "<math.h>",
"<bits/in.h>", "<netinet/in.h>",
"<bits/inf.h>", "<math.h>",
"<bits/ioctl-types.h>", "<sys/ioctl.h>",
"<bits/ioctls.h>", "<sys/ioctl.h>",
"<bits/ipc.h>", "<sys/ipc.h>",
"<bits/ipctypes.h>", "<sys/ipc.h>",
"<bits/libio-ldbl.h>", "<libio.h>",
"<bits/link.h>", "<link.h>",
"<bits/locale.h>", "<locale.h>",
"<bits/mathcalls.h>", "<math.h>",
"<bits/mathdef.h>", "<math.h>",
"<bits/mathinline.h>", "<math.h>",
"<bits/mman.h>", "<sys/mman.h>",
"<bits/monetary-ldbl.h>", "<monetary.h>",
"<bits/mqueue.h>", "<mqueue.h>",
"<bits/mqueue2.h>", "<mqueue.h>",
"<bits/msq.h>", "<sys/msg.h>",
"<bits/nan.h>", "<math.h>",
"<bits/netdb.h>", "<netdb.h>",
"<bits/poll.h>", "<poll.h>",
"<bits/posix1_lim.h>", "<limits.h>",
"<bits/posix2_lim.h>", "<limits.h>",
"<bits/posix_opt.h>", "<unistd.h>",
"<bits/predefs.h>", "<features.h>",
"<bits/printf-ldbl.h>", "<printf.h>",
"<bits/pthreadtypes.h>", "<pthread.h>",
"<bits/resource.h>", "<sys/resource.h>",
"<bits/sched.h>", "<sched.h>",
"<bits/select.h>", "<sys/select.h>",
"<bits/sem.h>", "<sys/sem.h>",
"<bits/semaphore.h>", "<semaphore.h>",
"<bits/setjmp.h>", "<setjmp.h>",
"<bits/shm.h>", "<sys/shm.h>",
"<bits/sigaction.h>", "<signal.h>",
"<bits/sigcontext.h>", "<signal.h>",
"<bits/siginfo.h>", "<signal.h>",
"<bits/signum.h>", "<signal.h>",
"<bits/sigset.h>", "<signal.h>",
"<bits/sigstack.h>", "<signal.h>",
"<bits/sigthread.h>", "<signal.h>",
"<bits/sockaddr.h>", "<sys/un.h>",
"<bits/socket.h>", "<sys/socket.h>",
"<bits/stab.def>", "<stab.h>",
"<bits/stat.h>", "<sys/stat.h>",
"<bits/statfs.h>", "<sys/statfs.h>",
"<bits/statvfs.h>", "<sys/statvfs.h>",
"<bits/stdio-ldbl.h>", "<stdio.h>",
"<bits/stdio-lock.h>", "<libio.h>",
"<bits/stdio.h>", "<stdio.h>",
"<bits/stdio2.h>", "<stdio.h>",
"<bits/stdio_lim.h>", "<stdio.h>",
"<bits/stdlib-ldbl.h>", "<stdlib.h>",
"<bits/stdlib.h>", "<stdlib.h>",
"<bits/string.h>", "<string.h>",
"<bits/string2.h>", "<string.h>",
"<bits/string3.h>", "<string.h>",
"<bits/stropts.h>", "<stropts.h>",
"<bits/sys_errlist.h>", "<stdio.h>",
"<bits/syscall.h>", "<syscall.h>",
"<bits/syslog-ldbl.h>", "<syslog.h>",
"<bits/syslog-path.h>", "<syslog.h>",
"<bits/syslog.h>", "<syslog.h>",
"<bits/termios.h>", "<termios.h>",
"<bits/time.h>", "<sys/time.h>",
"<bits/types.h>", "<sys/types.h>",
"<bits/uio.h>", "<sys/uio.h>",
"<bits/unistd.h>", "<unistd.h>",
"<bits/ustat.h>", "<ustat.h>",
"<bits/utmp.h>", "<utmp.h>",
"<bits/utmpx.h>", "<utmpx.h>",
"<bits/utsname.h>", "<sys/utsname.h>",
"<bits/waitflags.h>", "<sys/wait.h>",
"<bits/waitstatus.h>", "<sys/wait.h>",
"<bits/wchar-ldbl.h>", "<wchar.h>",
"<bits/wchar.h>", "<wchar.h>",
"<bits/wchar2.h>", "<wchar.h>",
"<bits/xopen_lim.h>", "<limits.h>",
"<bits/xtitypes.h>", "<stropts.h>",
"<linux/errno.h>", "<errno.h>",
"<linux/limits.h>", "<limits.h>",
"<linux/socket.h>", "<sys/socket.h>",
"<sys/poll.h>", "<poll.h>",
"<sys/syscall.h>", "<syscall.h>",
"<sys/syslog.h>", "<syslog.h>",
"<sys/ucontext.h>", "<ucontext.h>",
"<sys/ustat.h>", "<ustat.h>",
"<wait.h>", "<sys/wait.h>",
};
private static final String[] cIncludeMapWeak = new String[] {
};
@SuppressWarnings("nls")
private static final String[] cppIncludeMap = new String[] {
"<auto_ptr.h>", "<memory>",
"<backward/auto_ptr.h>", "<memory>",
"<backward/binders.h>", "<functional>",
"<backward/hash_fun.h>", "<hash_map>",
"<backward/hash_fun.h>", "<hash_set>",
"<backward/hashtable.h>", "<hash_map>",
"<backward/hashtable.h>", "<hash_set>",
"<backward/strstream>", "<strstream>",
"<binders.h>", "<functional>",
"<bits/algorithmfwd.h>", "<algorithm>",
"<bits/allocator.h>", "<memory>",
"<bits/atomic_word.h>", "<ext/atomicity.h>",
"<bits/basic_file.h>", "<fstream>",
"<bits/basic_ios.h>", "<ios>",
"<bits/basic_string.h>", "<string>",
"<bits/basic_string.tcc>", "<string>",
"<bits/boost_concept_check.h>", "<bits/concept_check.h>",
"<bits/boost_sp_shared_count.h>", "<memory>",
"<bits/c++allocator.h>", "<memory>",
"<bits/c++config.h>", "<cstddef>",
"<bits/c++io.h>", "<ext/stdio_sync_filebuf.h>",
"<bits/char_traits.h>", "<string>",
"<bits/cmath.tcc>", "<cmath>",
"<bits/codecvt.h>", "<fstream>",
"<bits/codecvt.h>", "<locale>",
"<bits/ctype_base.h>", "<locale>",
"<bits/ctype_base.h>", "<ios>",
"<bits/ctype_inline.h>", "<locale>",
"<bits/ctype_inline.h>", "<ios>",
"<bits/cxxabi_tweaks.h>", "<cxxabi.h>",
"<bits/deque.tcc>", "<deque>",
"<bits/exception_defines.h>", "<exception>",
"<bits/fstream.tcc>", "<fstream>",
"<bits/functexcept.h>", "<algorithm>",
"<bits/functional_hash.h>", "<unordered_map>",
"<bits/gslice.h>", "<valarray>",
"<bits/gslice_array.h>", "<valarray>",
"<bits/hashtable.h>", "<unordered_map>",
"<bits/hashtable.h>", "<unordered_set>",
"<bits/indirect_array.h>", "<valarray>",
"<bits/ios_base.h>", "<ios>",
"<bits/ios_base.h>", "<iostream>",
"<bits/ios_base.h>", "<iomanip>",
"<bits/istream.tcc>", "<istream>",
"<bits/list.tcc>", "<list>",
"<bits/locale_classes.h>", "<locale>",
"<bits/locale_classes.h>", "<ios>",
"<bits/locale_classes.tcc>", "<locale>",
"<bits/locale_classes.tcc>", "<ios>",
"<bits/locale_facets.h>", "<locale>",
"<bits/locale_facets.h>", "<ios>",
"<bits/locale_facets.tcc>", "<locale>",
"<bits/locale_facets.tcc>", "<ios>",
"<bits/locale_facets_nonio.h>", "<locale>",
"<bits/locale_facets_nonio.tcc>", "<locale>",
"<bits/localefwd.h>", "<locale>",
"<bits/mask_array.h>", "<valarray>",
"<bits/messages_members.h>", "<locale>",
"<bits/move.h>", "<algorithm>",
"<bits/ostream.tcc>", "<ostream>",
"<bits/ostream_insert.h>", "<ostream>",
"<bits/postypes.h>", "<iostream>",
"<bits/postypes.h>", "<string>",
"<bits/shared_ptr.h>", "<memory>",
"<bits/slice_array.h>", "<valarray>",
"<bits/sstream.tcc>", "<sstream>",
"<bits/stl_algo.h>", "<algorithm>",
"<bits/stl_algobase.h>", "<algorithm>",
"<bits/stl_bvector.h>", "<vector>",
"<bits/stl_construct.h>", "<memory>",
"<bits/stl_deque.h>", "<deque>",
"<bits/stl_function.h>", "<functional>",
"<bits/stl_heap.h>", "<queue>",
"<bits/stl_iterator.h>", "<iterator>",
"<bits/stl_iterator_base_funcs.h>", "<iterator>",
"<bits/stl_iterator_base_types.h>", "<iterator>",
"<bits/stl_list.h>", "<list>",
"<bits/stl_map.h>", "<map>",
"<bits/stl_move.h>", "<algorithm>",
"<bits/stl_multimap.h>", "<map>",
"<bits/stl_multiset.h>", "<set>",
"<bits/stl_numeric.h>", "<numeric>",
"<bits/stl_pair.h>", "<utility>",
"<bits/stl_pair.h>", "<tr1/utility>",
"<bits/stl_queue.h>", "<queue>",
"<bits/stl_raw_storage_iter.h>", "<memory>",
"<bits/stl_relops.h>", "<utility>",
"<bits/stl_set.h>", "<set>",
"<bits/stl_stack.h>", "<stack>",
"<bits/stl_tempbuf.h>", "<memory>",
"<bits/stl_tree.h>", "<map>",
"<bits/stl_tree.h>", "<set>",
"<bits/stl_uninitialized.h>", "<memory>",
"<bits/stl_vector.h>", "<vector>",
"<bits/stream_iterator.h>", "<iterator>",
"<bits/streambuf.tcc>", "<streambuf>",
"<bits/streambuf_iterator.h>", "<iterator>",
"<bits/streambuf_iterator.h>", "<ios>",
"<bits/stringfwd.h>", "<string>",
"<bits/unique_ptr.h>", "<memory>",
"<bits/valarray_after.h>", "<valarray>",
"<bits/valarray_array.h>", "<valarray>",
"<bits/valarray_array.tcc>", "<valarray>",
"<bits/valarray_before.h>", "<valarray>",
"<bits/vector.tcc>", "<vector>",
"<debug/safe_iterator.tcc>", "<debug/safe_iterator.h>",
"<exception_defines.h>", "<exception>",
"<ext/algorithm>", "<algorithm>",
"<ext/functional>", "<functional>",
"<ext/hash_map>", "<hash_map>",
"<ext/hash_set>", "<hash_set>",
"<ext/numeric>", "<numeric>",
"<ext/slist>", "<slist>",
"<ext/sso_string_base.h>", "<string>",
"<ext/vstring.h>", "<string>",
"<ext/vstring.tcc>", "<string>",
"<ext/vstring_fwd.h>", "<string>",
"<hash_fun.h>", "<hash_map>",
"<hash_fun.h>", "<hash_set>",
"<hashtable.h>", "<hash_map>",
"<hashtable.h>", "<hash_set>",
"<tr1/bessel_function.tcc>", "<tr1/cmath>",
"<tr1/beta_function.tcc>", "<tr1/cmath>",
"<tr1/ell_integral.tcc>", "<tr1/cmath>",
"<tr1/exp_integral.tcc>", "<tr1/cmath>",
"<tr1/gamma.tcc>", "<tr1/cmath>",
"<tr1/hypergeometric.tcc>", "<tr1/cmath>",
"<tr1/legendre_function.tcc>", "<tr1/cmath>",
"<tr1/modified_bessel_func.tcc>", "<tr1/cmath>",
"<tr1/poly_hermite.tcc>", "<tr1/cmath>",
"<tr1/poly_laguerre.tcc>", "<tr1/cmath>",
"<tr1/riemann_zeta.tcc>", "<tr1/cmath>",
"<tr1_impl/array>", "<array>",
"<tr1_impl/array>", "<tr1/array>",
"<tr1_impl/boost_shared_ptr.h>", "<memory>",
"<tr1_impl/boost_shared_ptr.h>", "<tr1/memory>",
"<tr1_impl/boost_sp_counted_base.h>", "<memory>",
"<tr1_impl/boost_sp_counted_base.h>", "<tr1/memory>",
"<tr1_impl/cctype>", "<cctype>",
"<tr1_impl/cctype>", "<tr1/cctype>",
"<tr1_impl/cfenv>", "<cfenv>",
"<tr1_impl/cfenv>", "<tr1/cfenv>",
"<tr1_impl/cinttypes>", "<cinttypes>",
"<tr1_impl/cinttypes>", "<tr1/cinttypes>",
"<tr1_impl/cmath>", "<cmath>",
"<tr1_impl/cmath>", "<tr1/cmath>",
"<tr1_impl/complex>", "<complex>",
"<tr1_impl/complex>", "<tr1/complex>",
"<tr1_impl/cstdint>", "<cstdint>",
"<tr1_impl/cstdint>", "<tr1/cstdint>",
"<tr1_impl/cstdio>", "<cstdio>",
"<tr1_impl/cstdio>", "<tr1/cstdio>",
"<tr1_impl/cstdlib>", "<cstdlib>",
"<tr1_impl/cstdlib>", "<tr1/cstdlib>",
"<tr1_impl/cwchar>", "<cwchar>",
"<tr1_impl/cwchar>", "<tr1/cwchar>",
"<tr1_impl/cwctype>", "<cwctype>",
"<tr1_impl/cwctype>", "<tr1/cwctype>",
"<tr1_impl/functional>", "<functional>",
"<tr1_impl/functional>", "<tr1/functional>",
"<tr1_impl/functional_hash.h>", "<tr1/functional_hash.h>",
"<tr1_impl/hashtable>", "<tr1/hashtable.h>",
"<tr1_impl/random.tcc>", "<random>",
"<tr1_impl/random.tcc>", "<tr1/random>",
"<tr1_impl/random>", "<random>",
"<tr1_impl/random>", "<tr1/random>",
"<tr1_impl/regex>", "<regex>",
"<tr1_impl/regex>", "<tr1/regex>",
"<tr1_impl/type_traits>", "<tr1/type_traits>",
"<tr1_impl/type_traits>", "<type_traits>",
"<tr1_impl/unordered_map>", "<tr1/unordered_map>",
"<tr1_impl/unordered_map>", "<unordered_map>",
"<tr1_impl/unordered_set>", "<tr1/unordered_set>",
"<tr1_impl/unordered_set>", "<unordered_set>",
"<tr1_impl/utility>", "<tr1/utility>",
"<tr1_impl/utility>", "<utility>",
};
@SuppressWarnings("nls")
private static final String[] cppIncludeMapWeak = new String[] {
"<assert.h>", "<cassert>",
"<complex.h>", "<ccomplex>",
"<ctype.h>", "<cctype>",
"<errno.h>", "<cerrno>",
"<fenv.h>", "<cfenv>",
"<float.h>", "<cfloat>",
"<inttypes.h>", "<cinttypes>",
"<iso646.h>", "<ciso646>",
"<limits.h>", "<climits>",
"<locale.h>", "<clocale>",
"<math.h>", "<cmath>",
"<setjmp.h>", "<csetjmp>",
"<signal.h>", "<csignal>",
"<stdarg.h>", "<cstdarg>",
"<stdbool.h>", "<cstdbool>",
"<stddef.h>", "<cstddef>",
"<stdint.h>", "<cstdint>",
"<stdio.h>", "<cstdio>",
"<stdlib.h>", "<cstdlib>",
"<string.h>", "<cstring>",
"<tgmath.h>", "<ctgmath>",
"<time.h>", "<ctime>",
"<wchar.h>", "<cwchar>",
"<wctype.h>", "<cwctype>",
"<ios>", "<iostream>",
"<ios>", "<istream>",
"<ios>", "<ostream>",
"<iosfwd>", "<ios>",
"<iosfwd>", "<streambuf>",
"<istream>", "<iostream>",
"<istream>", "<fstream>",
"<istream>", "<sstream>",
"<ostream>", "<iostream>",
"<ostream>", "<fstream>",
"<ostream>", "<istream>",
"<ostream>", "<sstream>",
"<streambuf>", "<ios>",
};
public static List<HeaderSubstitutionMap> getDefaultMaps() {
return Arrays.asList(new HeaderSubstitutionMap[] {
new HeaderSubstitutionMap(Messages.GCCHeaderSubstitutionMaps_c_map, false,
new IncludeMap(true, cIncludeMap),
new IncludeMap(false, cIncludeMapWeak)),
new HeaderSubstitutionMap(Messages.GCCHeaderSubstitutionMaps_cpp_map, true,
new IncludeMap(true, cppIncludeMap),
new IncludeMap(false, cppIncludeMapWeak)),
});
}
public static SymbolExportMap getSymbolExportMap() {
return new SymbolExportMap(symbolExportMap);
}
}