rename vars in subcompiler
This commit is contained in:
parent
e1860e2b4b
commit
3798d34428
1 changed files with 16 additions and 18 deletions
|
|
@ -10,13 +10,11 @@ struct node {
|
||||||
struct node *next;
|
struct node *next;
|
||||||
struct node *first_child, *next_child;
|
struct node *first_child, *next_child;
|
||||||
struct str name;
|
struct str name;
|
||||||
union {
|
struct StructNode s;
|
||||||
struct StructNode structNode;
|
struct EnumNode e;
|
||||||
struct EnumNode enumNode;
|
struct InterfaceNode i;
|
||||||
struct InterfaceNode interfaceNode;
|
struct ConstNode c;
|
||||||
struct ConstNode constNode;
|
struct FileNode f;
|
||||||
struct FileNode fileNode;
|
|
||||||
} u;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct node *g_files;
|
static struct node *g_files;
|
||||||
|
|
@ -67,9 +65,9 @@ static void define_enum(struct node *n) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
fprintf(HDR, "\nenum %s {", n->name.str);
|
fprintf(HDR, "\nenum %s {", n->name.str);
|
||||||
for (i = 0; i < n->u.enumNode.enumerants.p.len; i++) {
|
for (i = 0; i < n->e.enumerants.p.len; i++) {
|
||||||
struct EnumNode_Enumerant ee;
|
struct EnumNode_Enumerant ee;
|
||||||
get_EnumNode_Enumerant(&ee, n->u.enumNode.enumerants, i);
|
get_EnumNode_Enumerant(&ee, n->e.enumerants, i);
|
||||||
if (i) {
|
if (i) {
|
||||||
fprintf(HDR, ",");
|
fprintf(HDR, ",");
|
||||||
}
|
}
|
||||||
|
|
@ -472,12 +470,12 @@ static struct member *decode_member(struct member *mbrs, StructNode_Member_list
|
||||||
static void define_struct(struct node *n) {
|
static void define_struct(struct node *n) {
|
||||||
static struct str buf = STR_INIT;
|
static struct str buf = STR_INIT;
|
||||||
|
|
||||||
int i, j, mlen = n->u.structNode.members.p.len;
|
int i, j, mlen = n->s.members.p.len;
|
||||||
struct member *mbrs = calloc(mlen, sizeof(*mbrs));
|
struct member *mbrs = calloc(mlen, sizeof(*mbrs));
|
||||||
|
|
||||||
/* get list of members in code order and emit union enums */
|
/* get list of members in code order and emit union enums */
|
||||||
for (i = 0; i < mlen; i++) {
|
for (i = 0; i < mlen; i++) {
|
||||||
struct member *m = decode_member(mbrs, n->u.structNode.members, i);
|
struct member *m = decode_member(mbrs, n->s.members, i);
|
||||||
|
|
||||||
if (m->m.body_tag == StructNode_Member_unionMember) {
|
if (m->m.body_tag == StructNode_Member_unionMember) {
|
||||||
int first, ulen;
|
int first, ulen;
|
||||||
|
|
@ -616,19 +614,19 @@ int main() {
|
||||||
case Node_fileNode:
|
case Node_fileNode:
|
||||||
n->next = g_files;
|
n->next = g_files;
|
||||||
g_files = n;
|
g_files = n;
|
||||||
read_FileNode(&n->u.fileNode, n->n.body.fileNode);
|
read_FileNode(&n->f, n->n.body.fileNode);
|
||||||
break;
|
break;
|
||||||
case Node_structNode:
|
case Node_structNode:
|
||||||
read_StructNode(&n->u.structNode, n->n.body.structNode);
|
read_StructNode(&n->s, n->n.body.structNode);
|
||||||
break;
|
break;
|
||||||
case Node_enumNode:
|
case Node_enumNode:
|
||||||
read_EnumNode(&n->u.enumNode, n->n.body.enumNode);
|
read_EnumNode(&n->e, n->n.body.enumNode);
|
||||||
break;
|
break;
|
||||||
case Node_interfaceNode:
|
case Node_interfaceNode:
|
||||||
read_InterfaceNode(&n->u.interfaceNode, n->n.body.interfaceNode);
|
read_InterfaceNode(&n->i, n->n.body.interfaceNode);
|
||||||
break;
|
break;
|
||||||
case Node_constNode:
|
case Node_constNode:
|
||||||
read_ConstNode(&n->u.constNode, n->n.body.constNode);
|
read_ConstNode(&n->c, n->n.body.constNode);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
@ -674,9 +672,9 @@ int main() {
|
||||||
fprintf(HDR, "/* AUTO GENERATED DO NOT EDIT*/\n");
|
fprintf(HDR, "/* AUTO GENERATED DO NOT EDIT*/\n");
|
||||||
fprintf(HDR, "#include <capn.h>\n");
|
fprintf(HDR, "#include <capn.h>\n");
|
||||||
|
|
||||||
for (i = 0; i < n->u.fileNode.imports.p.len; i++) {
|
for (i = 0; i < n->f.imports.p.len; i++) {
|
||||||
struct FileNode_Import im;
|
struct FileNode_Import im;
|
||||||
get_FileNode_Import(&im, n->u.fileNode.imports, i);
|
get_FileNode_Import(&im, n->f.imports, i);
|
||||||
fprintf(HDR, "#include \"%s.h\"\n", im.name.str);
|
fprintf(HDR, "#include \"%s.h\"\n", im.name.str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue