grammar XdrStructGrammar

rule struct_def
  "struct" space
  identifier space? 
  struct_body space? 
  ";"
  <Xdrgen::AST::Definitions::Struct>
end

rule struct_body
  "{" 
  space?
  children_n:(struct_member)+
  "}"
  <Xdrgen::AST::Definitions::StructBody>
end

rule struct_member
  declaration 
  space? 
  ";" 
  space?
  <Xdrgen::AST::Definitions::StructMember>
end

rule struct_type_spec
  "struct" space struct_body
  <Xdrgen::AST::Definitions::NestedStruct>
end

end