1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef SOURCE_LANGUAGE_INFO_H 6 #define SOURCE_LANGUAGE_INFO_H 7 8 #include <SupportDefs.h> 9 10 11 struct SourceLanguageInfo { 12 const char* name; 13 uint8 arrayOrdering; 14 uint64 subrangeLowerBound; 15 }; 16 17 18 struct UnknownSourceLanguageInfo : SourceLanguageInfo { 19 UnknownSourceLanguageInfo(); 20 }; 21 22 23 struct CFamilySourceLanguageInfo : SourceLanguageInfo { 24 CFamilySourceLanguageInfo(); 25 }; 26 27 28 struct CSourceLanguageInfo : CFamilySourceLanguageInfo { 29 CSourceLanguageInfo(); 30 }; 31 32 33 struct C89SourceLanguageInfo : CFamilySourceLanguageInfo { 34 C89SourceLanguageInfo(); 35 }; 36 37 38 struct C99SourceLanguageInfo : CFamilySourceLanguageInfo { 39 C99SourceLanguageInfo(); 40 }; 41 42 43 struct CPlusPlusSourceLanguageInfo : CFamilySourceLanguageInfo { 44 CPlusPlusSourceLanguageInfo(); 45 }; 46 47 48 extern const UnknownSourceLanguageInfo kUnknownLanguageInfo; 49 extern const UnknownSourceLanguageInfo kUnsupportedLanguageInfo; 50 extern const CSourceLanguageInfo kCLanguageInfo; 51 extern const C89SourceLanguageInfo kC89LanguageInfo; 52 extern const C99SourceLanguageInfo kC99LanguageInfo; 53 extern const CPlusPlusSourceLanguageInfo kCPlusPlusLanguageInfo; 54 55 56 #endif // SOURCE_LANGUAGE_INFO_H 57