00001 #ifndef OPTIONS_HXX 00002 #define OPTIONS_HXX 00003 00004 /************************************************************************** 00005 * 00006 * Copyright (C) 2008, Johns Hopkins University. 00007 * All rights reserved. 00008 * 00009 * Redistribution and use in source and binary forms, with or 00010 * without modification, are permitted provided that the following 00011 * conditions are met: 00012 * 00013 * - Redistributions of source code must contain the above 00014 * copyright notice, this list of conditions, and the following 00015 * disclaimer. 00016 * 00017 * - Redistributions in binary form must reproduce the above 00018 * copyright notice, this list of conditions, and the following 00019 * disclaimer in the documentation and/or other materials 00020 * provided with the distribution. 00021 * 00022 * - Neither the names of the copyright holders nor the names of any 00023 * of any contributors may be used to endorse or promote products 00024 * derived from this software without specific prior written 00025 * permission. 00026 * 00027 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00028 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00029 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00030 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00031 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00032 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00033 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00034 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00035 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00036 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00037 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00038 * 00039 **************************************************************************/ 00040 00041 #include <set> 00042 #include <boost/filesystem/path.hpp> 00043 #include "backend.hxx" 00044 #include "FQName.hxx" 00045 #include "Special.hxx" 00046 #include "TvPrinter.hxx" 00047 00048 /* Flags set from command line option */ 00049 namespace Options { 00050 extern bool showParse; 00051 extern bool showLex; 00052 extern bool showTypes; 00053 extern bool xmlTypes; 00054 extern bool showPP; 00055 extern bool useStdInc; 00056 extern bool useStdLib; 00057 extern bool advisory; 00058 extern bool rawTvars; 00059 extern bool showMaybes; 00060 extern bool FQtypes; 00061 extern bool showAllTccs; 00062 extern bool showPasses; 00063 extern bool ppFQNS; 00064 extern bool ppDecorate; 00065 extern bool show_usage; 00066 extern unsigned verbose; // 0 = no, 1 = show exec, 2 = forward 00067 00068 extern unsigned mixfixDebug; 00069 00076 extern bool noPrelude; 00077 extern bool dumpAfterMidEnd; 00078 extern bool dumpTypesAfterMidEnd; 00079 extern std::set<std::string> showTypesUocs; 00080 extern std::set<std::string> xmlTypesUocs; 00081 extern FQNameSet entryPts; 00082 extern BackEnd *backEnd; 00083 extern std::string outputFileName; 00084 extern std::vector<boost::filesystem::path> libDirs; 00085 extern std::vector<boost::filesystem::path> inputs; 00086 00089 extern std::vector<std::string> LinkPreOptionsGCC; 00090 extern std::vector<std::string> CompilePreOptionsGCC; 00091 00094 extern std::vector<std::string> LinkPostOptionsGCC; 00095 00096 extern std::vector<boost::filesystem::path> SystemDirs; 00097 00098 extern bool Wall; // All Warnings are errors. 00099 extern bool noGC; // no garbage collection mode 00100 extern bool noAlloc; // statically reject heap-allocating constructs 00101 extern bool heuristicInference; 00102 00111 extern boost::shared_ptr<TvPrinter> debugTvP; 00112 } /* namespace Options */; 00113 00114 #endif /* OPTIONS_HXX */
1.4.7