diff --git a/parser/tree.go b/parser/tree.go index 63f885d..d8f502e 100644 --- a/parser/tree.go +++ b/parser/tree.go @@ -161,19 +161,32 @@ type DataSection struct { value Argument } -// TypeNode represents a part of a type. -type TypeNode struct { +// TypeSection represents a blind type definition. +type TypeSection struct { location file.Location name string what Type permission types.Permission defaultValue Argument - children map[string] TypeNode } -// TypeSection represents a type definition. -type TypeSection struct { +// ObjtSection represents an object type definition +type ObjtSection struct { location file.Location - root TypeNode + name string + + what Type + permission types.Permission + children map[string] ObjtMember +} + +// ObjtMember represents a part of an object type definition. +type ObjtMember struct { + location file.Location + name string + + what Type + permission types.Permission + defaultValue Argument }