X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=lang_features.h;h=7bff32e185aef13fcbc97d6f4672badda5b8c236;hb=373937ba4ad87e9fa55dbf89644182050ed1b75a;hp=66524de0f92e55998c94e33f9493f9c6f8c99fd8;hpb=12122487643531b9e98342f7803b5f38944847d9;p=cparser diff --git a/lang_features.h b/lang_features.h index 66524de..7bff32e 100644 --- a/lang_features.h +++ b/lang_features.h @@ -1,6 +1,6 @@ /* * This file is part of cparser. - * Copyright (C) 2007-2008 Matthias Braun + * Copyright (C) 2007-2009 Matthias Braun * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,29 +20,39 @@ #ifndef LANG_FEATURES_H #define LANG_FEATURES_H +#include "type.h" + +#define BITS_PER_BYTE 8 + typedef enum lang_features_t { _C89 = 1U << 0, - _ANSI = 1U << 1, - _C99 = 1U << 2, + _C99 = 1U << 1, + _C11 = 1U << 2, _CXX = 1U << 3, _GNUC = 1U << 4, _MS = 1U << 5, _ALL = 0xFF } lang_features_t; -/* the current C mode/dialect */ -extern lang_features_t c_mode; +/** the current C mode/dialect */ +extern unsigned int c_mode; -/* the 'machine size', 16, 32 or 64 bit */ -extern unsigned int machine_size; +/** + * whether architecture shift instructions usually perform modulo bit_size + * on the shift amount, if yes this equals to the machine_size. + */ +extern unsigned int architecture_modulo_shift; -/* true if the char type is signed */ -extern bool char_is_signed; +/** byte-order: true = big-endian, false = little-endian */ +extern bool byte_order_big_endian; -/* true for strict language checking. */ +/** true for strict language checking. */ extern bool strict_mode; -/* true if wchar_t is equal to unsigned short. */ -extern bool opt_short_wchar_t; +/** a hack that adds a call to __main into the main function, necessary on + * mingw */ +extern bool enable_main_collect2_hack; + +extern bool freestanding; #endif