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
11struct SourceLanguageInfo {
12	const char*	name;
13	uint8		arrayOrdering;
14	uint64		subrangeLowerBound;
15};
16
17
18struct UnknownSourceLanguageInfo : SourceLanguageInfo {
19								UnknownSourceLanguageInfo();
20};
21
22
23struct CFamilySourceLanguageInfo : SourceLanguageInfo {
24								CFamilySourceLanguageInfo();
25};
26
27
28struct CSourceLanguageInfo : CFamilySourceLanguageInfo {
29								CSourceLanguageInfo();
30};
31
32
33struct C89SourceLanguageInfo : CFamilySourceLanguageInfo {
34								C89SourceLanguageInfo();
35};
36
37
38struct C99SourceLanguageInfo : CFamilySourceLanguageInfo {
39								C99SourceLanguageInfo();
40};
41
42
43struct CPlusPlusSourceLanguageInfo : CFamilySourceLanguageInfo {
44								CPlusPlusSourceLanguageInfo();
45};
46
47
48extern const UnknownSourceLanguageInfo		kUnknownLanguageInfo;
49extern const UnknownSourceLanguageInfo		kUnsupportedLanguageInfo;
50extern const CSourceLanguageInfo			kCLanguageInfo;
51extern const C89SourceLanguageInfo			kC89LanguageInfo;
52extern const C99SourceLanguageInfo			kC99LanguageInfo;
53extern const CPlusPlusSourceLanguageInfo	kCPlusPlusLanguageInfo;
54
55
56#endif	// SOURCE_LANGUAGE_INFO_H
57