Did the same thing with type specifiers

This commit is contained in:
Sasha Koshka 2022-09-03 22:56:08 -04:00
parent 8e74216430
commit ef375810fb
5 changed files with 27 additions and 13 deletions

View File

@ -42,9 +42,8 @@ func (parser *ParsingOperation) parseArgument () (argument Argument, err error)
return
}
declaration := Declaration {
what: what,
}
declaration := Declaration { }
declaration.what = what
declaration.setName(identifier.trail[0])
declaration.setLocation(argument.Location())

View File

@ -43,3 +43,18 @@ func (trait nameable) Name () (name string) {
func (trait *nameable) setName (name string) {
trait.name = name
}
// typeable allows a node to have a type.
type typeable struct {
what Type
}
// Type returns the type of the node.
func (trait typeable) Type () (what Type) {
return trait.what
}
// setType sets the type of the node.
func (trait *typeable) setType (what Type) () {
}

View File

@ -309,7 +309,7 @@ func (section *TypeSection) ToString (indent int) (output string) {
"type ",
section.permission.ToString(), " ",
section.name, ":",
section.inherits.ToString())
section.what.ToString())
isComplexInitialization :=
section.defaultValue.kind == ArgumentKindObjectInitializationValues ||

View File

@ -62,7 +62,7 @@ type Type struct {
type Declaration struct {
locatable
nameable
what Type
typeable
}
// ObjectInitializationValues represents a list of object member initialization
@ -150,8 +150,8 @@ type Argument struct {
type DataSection struct {
locatable
nameable
typeable
what Type
permission types.Permission
value Argument
}
@ -160,8 +160,8 @@ type DataSection struct {
type TypeSection struct {
locatable
nameable
typeable
inherits Type
permission types.Permission
defaultValue Argument
}
@ -170,8 +170,8 @@ type TypeSection struct {
type ObjtMember struct {
locatable
nameable
what Type
typeable
bitWidth uint64
permission types.Permission
defaultValue Argument
@ -181,8 +181,8 @@ type ObjtMember struct {
type ObjtSection struct {
locatable
nameable
inherits Identifier
inherits Identifier
permission types.Permission
members []ObjtMember
}
@ -198,8 +198,8 @@ type EnumMember struct {
type EnumSection struct {
locatable
nameable
what Type
typeable
permission types.Permission
members []EnumMember
}

View File

@ -31,7 +31,7 @@ func (parser *ParsingOperation) parseTypeSection () (
if err != nil { return }
err = parser.nextToken()
if err != nil { return }
section.inherits, err = parser.parseType()
section.what, err = parser.parseType()
if err != nil { return }
// parse default values