forked from MoSync/MoSync
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstabs_builtins.h
60 lines (48 loc) · 1.63 KB
/
stabs_builtins.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/* Copyright (C) 2009 Mobile Sorcery AB
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License, version 2, as published by
the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
#ifndef STABS_BUILTINS_H
#define STABS_BUILTINS_H
#include "stabs_types.h"
struct BUILTINdecl {
const char* name;
TypeBase* type;
};
extern BUILTINdecl sBuiltins[];
extern const int snBuiltins;
#include "stabs_builtins_generated.h"
#define ENUM_BUILTIN_FIRST(name, id) e##id
#define ENUM_BUILTIN(name, id) ,e##id
class Builtin : public TypeBase {
public:
enum SubType {
BUILTINS(ENUM_BUILTIN_FIRST, ENUM_BUILTIN)
BROKEN_BUILTINS(ENUM_BUILTIN),
eBool,
eVTablePtr,
NUM_SUB_TYPES
};
Builtin(const char* name, int s, SubType st) :
mSize(s), mName(name), mSubType(st) {}
int size() const { return mSize; }
bool isSimpleValue() const { return true; }
Type type() const { return eBuiltin; }
const TypeBase* resolve() const { return this; }
void printTypeMI(printfPtr p, bool complex) const { p("%s", mName); }
SubType subType() const { return mSubType; }
public:
const int mSize;
const char* const mName;
const SubType mSubType;
};
#endif //STABS_BUILTINS_H