/** Pertaining to nodes in the C/C++ AST. */ module dpp2.sea.node; import dpp.from; alias Node = from!"sumtype".SumType!( Struct, Field, Typedef, ); struct Struct { string spelling; Node[] nodes; // Anonymous structs still have a type, and that type has a name string typeSpelling; } struct Field { import dpp2.sea.type: Type; Type type; string spelling; } struct Typedef { import dpp2.sea.type: Type; string spelling; Type underlying; }