2 #include "generator.hh"
4 static ast::generator::Node nodes
[] = {
9 {"std::string", "name"},
21 {"Integer", "Number", {
32 {"ast::Type*", "type"},
38 {"ast::Type*", "type"},
39 {"unsigned", "count"},
46 {"ast::Type*", "type"},
52 {"std::string", "name"},
53 {"ast::Type*", "type"},
65 {"Function", "Node", {
66 {"std::string", "name"},
67 {"ast::Type*", "returnType"},
68 {"std::vector<ast::Type*>", "params"},
78 ast::generator::Node
*node
;
79 ast::generator::Attribute
*attr
;
81 std::cout
<< "#include <vector>" << std::endl
<< std::endl
;
83 for (node
= nodes
; node
->name
.length() > 0; node
++)
84 std::cout
<< "struct " << node
->name
<< ";" << std::endl
;
86 std::cout
<< std::endl
;
88 for (node
= nodes
; !node
->name
.empty() > 0; node
++)
90 std::cout
<< "struct " << node
->name
;
91 if (!node
->parent
.empty())
92 std::cout
<< " : public " << node
->parent
;
93 std::cout
<< std::endl
<< "{" << std::endl
;
94 for (attr
= node
->attrs
; !attr
->type
.empty() > 0; attr
++)
95 std::cout
<< " " << attr
->type
<< " " << attr
->name
<< ";" << std::endl
;
96 std::cout
<< "};" << std::endl
<< std::endl
;