Skip to content

Commit 7615d7c

Browse files
James Michael DuPontJames Michael DuPont
James Michael DuPont
authored and
James Michael DuPont
committed
removed the gtk and perl interfaces for now, beefing up the internal structure
1 parent 10e3ab8 commit 7615d7c

File tree

5 files changed

+47
-23
lines changed

5 files changed

+47
-23
lines changed

example_output.c

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ noname(),fields(
66
field(
77
name("code"),
88
declare_field_type(tree_code(6,"enumeral_type"),
9+
TYPE_NAME("tree_code"),
10+
TYPE_SIZE_UNIT_val(4),
11+
TYPE_PRECISION(32),
12+
TYPE_UNSIGNED(1),
913
TREE_CODE(6),
1014
ENUM(
1115
ENUMVALUE("ERROR_MARK",0),
@@ -292,9 +296,6 @@ ENUMVALUE("MESSAGE_SEND_EXPR",280),
292296
ENUMVALUE("CLASS_REFERENCE_EXPR",281),
293297
ENUMVALUE("MAX_TREE_CODES",282),
294298
0),/*enum*/
295-
TYPE_SIZE_UNIT_val(4),
296-
TYPE_PRECISION(32),
297-
TYPE_UNSIGNED(1),
298299
0),/*ft*/
299300
CONSTRUCTOR_BITFIELD_P(),
300301
BIT_FIELD(),

field_type.c

+34-16
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,22 @@ void field_type_TYPE_SIZE_UNIT_value(tree t)
99
fprintf( code_outputfile,PREFIX "\tTYPE_SIZE_UNIT_val(%ld),\n",tree_low_cst(TYPE_SIZE_UNIT(t),1));
1010
}
1111
}
12+
13+
void field_type_TYPE_NAME(tree t)
14+
{
15+
ENTER; if (TYPE_NAME(t)) {
16+
17+
if (TREE_CODE (TYPE_NAME (t)) == IDENTIFIER_NODE)
18+
{
19+
fprintf( code_outputfile,PREFIX "TYPE_NAME(\"%s\"),\n",IDENTIFIER_POINTER (TYPE_NAME(t)));
20+
}
21+
else if (TREE_CODE (TYPE_NAME (t)) == TYPE_DECL
22+
&& DECL_NAME (TYPE_NAME (t)))
23+
{
24+
fprintf( code_outputfile,PREFIX "TYPE_NAME(DECL_NAME(\"%s\")),\n",IDENTIFIER_POINTER (DECL_NAME(TYPE_NAME(t))));
25+
}
26+
}
27+
}
1228
void field_type_TYPE_UNSIGNED(tree t)
1329
{
1430
ENTER; if (TYPE_UNSIGNED(t)) {
@@ -29,6 +45,16 @@ void field_type_EXPR_P(tree t)
2945
fprintf( code_outputfile,PREFIX "\tEXPR_P(%d),\n",EXPR_P(t));
3046
}
3147
}
48+
void field_type_TYPE_MAIN_VARIANT(tree t)
49+
{
50+
ENTER; if (TYPE_MAIN_VARIANT(t)) {
51+
// fprintf( code_outputfile,PREFIX "TYPE_MAIN_VARIANT\n");
52+
fprintf( code_outputfile,PREFIX "TYPE_MAIN_VARIANT(\n");
53+
// field_type(TYPE_MAIN_VARIANT(t));
54+
field_type_TYPE_NAME(TYPE_MAIN_VARIANT(t));
55+
fprintf( code_outputfile,PREFIX "),\n");
56+
}
57+
}
3258

3359
void field_type_TREE_CONSTANT(tree t)
3460
{
@@ -1714,27 +1740,15 @@ void field_type_TYPE_SYMTAB_DIE(tree t)
17141740
//struct die_struct *
17151741
}
17161742
}
1717-
void field_type_TYPE_NAME(tree t)
1718-
{
1719-
ENTER; if (TYPE_NAME(t)) {
1720-
fprintf( code_outputfile,PREFIX "TYPE_NAME\n");
1721-
fprintf( code_outputfile,PREFIX "TYPE_NAME %p\n",TYPE_NAME(t));
1722-
}
1723-
}
1743+
17241744
void field_type_TYPE_NEXT_VARIANT(tree t)
17251745
{
17261746
ENTER; if (TYPE_NEXT_VARIANT(t)) {
17271747
fprintf( code_outputfile,PREFIX "TYPE_NEXT_VARIANT\n");
17281748
fprintf( code_outputfile,PREFIX "TYPE_NEXT_VARIANT %p\n",TYPE_NEXT_VARIANT(t));
17291749
}
17301750
}
1731-
void field_type_TYPE_MAIN_VARIANT(tree t)
1732-
{
1733-
ENTER; if (TYPE_MAIN_VARIANT(t)) {
1734-
fprintf( code_outputfile,PREFIX "TYPE_MAIN_VARIANT\n");
1735-
fprintf( code_outputfile,PREFIX "TYPE_MAIN_VARIANT %p\n",TYPE_MAIN_VARIANT(t));
1736-
}
1737-
}
1751+
17381752
void field_type_TYPE_CONTEXT(tree t)
17391753
{
17401754
ENTER; if (TYPE_CONTEXT(t)) {
@@ -3030,12 +3044,16 @@ void field_type_MAIN_NAME_P(tree t)
30303044
void field_type(tree t)
30313045
{
30323046
fprintf( code_outputfile, "declare_field_type(tree_code(%d,\"%s\"),\n", TREE_CODE(t),tree_code_name[TREE_CODE(t)]);
3033-
field_type_TREE_CODE(t);
3047+
field_type_TYPE_NAME(t);
3048+
3049+
// field_type_TYPE_MAIN_VARIANT(t);
3050+
// tree type = TYPE_MAIN_VARIANT(orig_type);
30343051
// field_type_TYPE_SIZE_UNIT(t);
30353052
field_type_TYPE_SIZE_UNIT_value(t);
30363053
field_type_TYPE_PRECISION(t);
30373054
field_type_TYPE_UNSIGNED(t);
30383055
field_type_TREE_CONSTANT(t);
3056+
field_type_TREE_CODE(t);
30393057
fprintf( code_outputfile,"0),/*ft*/\n");// field_type
30403058

30413059
return;
@@ -3419,7 +3437,7 @@ void field_type(tree t)
34193437
field_type_TYPE_LANG_FLAG_6(t);
34203438
field_type_TYPE_LANG_SLOT_1(t);
34213439
field_type_TYPE_LANG_SPECIFIC(t);
3422-
field_type_TYPE_MAIN_VARIANT(t);
3440+
34233441
field_type_TYPE_MAXVAL(t);
34243442
field_type_TYPE_MAX_VALUE(t);
34253443
field_type_TYPE_METHODS(t);

field_type_switch.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ void field_type_GCC_BLOCK(tree t){emit_tree_code("GCC_BLOCK");
3737
};
3838
void field_type_OFFSET_TYPE(tree t){emit_tree_code("OFFSET_TYPE");
3939
};
40-
void field_type_ENUMERAL_TYPE(tree t){emit_tree_code("ENUMERAL_TYPE");
40+
void field_type_ENUMERAL_TYPE(tree t){
41+
emit_tree_code("ENUMERAL_TYPE");
4142
field_type_ENUMERAL_TYPE2(t);
4243
};
4344
void field_type_BOOLEAN_TYPE(tree t){emit_tree_code("BOOLEAN_TYPE");

gccinterface.c

+4
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,7 @@ void fields(){}
1919
void noname(){}
2020
void finish_type(){}
2121
void start_plugin(){}
22+
void DECL_NAME(const char * pname){
23+
printf("Typename %s\n", pname);
24+
}
25+
void TYPE_NAME(){}

hello2.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
typedef enum tree_code {
1+
enum tree_code {
22
ERROR_MARK,
33
IDENTIFIER_NODE,
44
TREE_LIST,
@@ -282,10 +282,10 @@ CLASS_METHOD_DECL,
282282
MESSAGE_SEND_EXPR,
283283
CLASS_REFERENCE_EXPR,
284284
MAX_TREE_CODES
285-
} t_tree_code;
285+
} ;
286286

287287

288288
struct funky
289289
{
290-
t_tree_code code;
290+
enum tree_code code;
291291
};

0 commit comments

Comments
 (0)