clang API Documentation

Options.h
Go to the documentation of this file.
00001 //===--- Options.h - Option info & table ------------------------*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 
00010 #ifndef LLVM_CLANG_DRIVER_OPTIONS_H
00011 #define LLVM_CLANG_DRIVER_OPTIONS_H
00012 
00013 namespace llvm {
00014 namespace opt {
00015 class OptTable;
00016 }
00017 }
00018 
00019 namespace clang {
00020 namespace driver {
00021 
00022 namespace options {
00023 /// Flags specifically for clang options.  Must not overlap with
00024 /// llvm::opt::DriverFlag.
00025 enum ClangFlags {
00026   DriverOption = (1 << 4),
00027   LinkerInput = (1 << 5),
00028   NoArgumentUnused = (1 << 6),
00029   Unsupported = (1 << 7),
00030   CoreOption = (1 << 8),
00031   CLOption = (1 << 9),
00032   CC1Option = (1 << 10),
00033   CC1AsOption = (1 << 11),
00034   NoDriverOption = (1 << 12)
00035 };
00036 
00037 enum ID {
00038     OPT_INVALID = 0, // This is not an option ID.
00039 #define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
00040                HELPTEXT, METAVAR) OPT_##ID,
00041 #include "clang/Driver/Options.inc"
00042     LastOption
00043 #undef OPTION
00044   };
00045 }
00046 
00047 llvm::opt::OptTable *createDriverOptTable();
00048 }
00049 }
00050 
00051 #endif