Did the same thing with type specifiers
This commit is contained in:
parent
8e74216430
commit
ef375810fb
@ -42,9 +42,8 @@ func (parser *ParsingOperation) parseArgument () (argument Argument, err error)
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
declaration := Declaration {
|
declaration := Declaration { }
|
||||||
what: what,
|
declaration.what = what
|
||||||
}
|
|
||||||
declaration.setName(identifier.trail[0])
|
declaration.setName(identifier.trail[0])
|
||||||
declaration.setLocation(argument.Location())
|
declaration.setLocation(argument.Location())
|
||||||
|
|
||||||
|
@ -43,3 +43,18 @@ func (trait nameable) Name () (name string) {
|
|||||||
func (trait *nameable) setName (name string) {
|
func (trait *nameable) setName (name string) {
|
||||||
trait.name = name
|
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) () {
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -309,7 +309,7 @@ func (section *TypeSection) ToString (indent int) (output string) {
|
|||||||
"type ",
|
"type ",
|
||||||
section.permission.ToString(), " ",
|
section.permission.ToString(), " ",
|
||||||
section.name, ":",
|
section.name, ":",
|
||||||
section.inherits.ToString())
|
section.what.ToString())
|
||||||
|
|
||||||
isComplexInitialization :=
|
isComplexInitialization :=
|
||||||
section.defaultValue.kind == ArgumentKindObjectInitializationValues ||
|
section.defaultValue.kind == ArgumentKindObjectInitializationValues ||
|
||||||
|
@ -62,7 +62,7 @@ type Type struct {
|
|||||||
type Declaration struct {
|
type Declaration struct {
|
||||||
locatable
|
locatable
|
||||||
nameable
|
nameable
|
||||||
what Type
|
typeable
|
||||||
}
|
}
|
||||||
|
|
||||||
// ObjectInitializationValues represents a list of object member initialization
|
// ObjectInitializationValues represents a list of object member initialization
|
||||||
@ -150,8 +150,8 @@ type Argument struct {
|
|||||||
type DataSection struct {
|
type DataSection struct {
|
||||||
locatable
|
locatable
|
||||||
nameable
|
nameable
|
||||||
|
typeable
|
||||||
|
|
||||||
what Type
|
|
||||||
permission types.Permission
|
permission types.Permission
|
||||||
value Argument
|
value Argument
|
||||||
}
|
}
|
||||||
@ -160,8 +160,8 @@ type DataSection struct {
|
|||||||
type TypeSection struct {
|
type TypeSection struct {
|
||||||
locatable
|
locatable
|
||||||
nameable
|
nameable
|
||||||
|
typeable
|
||||||
|
|
||||||
inherits Type
|
|
||||||
permission types.Permission
|
permission types.Permission
|
||||||
defaultValue Argument
|
defaultValue Argument
|
||||||
}
|
}
|
||||||
@ -170,8 +170,8 @@ type TypeSection struct {
|
|||||||
type ObjtMember struct {
|
type ObjtMember struct {
|
||||||
locatable
|
locatable
|
||||||
nameable
|
nameable
|
||||||
|
typeable
|
||||||
what Type
|
|
||||||
bitWidth uint64
|
bitWidth uint64
|
||||||
permission types.Permission
|
permission types.Permission
|
||||||
defaultValue Argument
|
defaultValue Argument
|
||||||
@ -181,8 +181,8 @@ type ObjtMember struct {
|
|||||||
type ObjtSection struct {
|
type ObjtSection struct {
|
||||||
locatable
|
locatable
|
||||||
nameable
|
nameable
|
||||||
|
inherits Identifier
|
||||||
|
|
||||||
inherits Identifier
|
|
||||||
permission types.Permission
|
permission types.Permission
|
||||||
members []ObjtMember
|
members []ObjtMember
|
||||||
}
|
}
|
||||||
@ -198,8 +198,8 @@ type EnumMember struct {
|
|||||||
type EnumSection struct {
|
type EnumSection struct {
|
||||||
locatable
|
locatable
|
||||||
nameable
|
nameable
|
||||||
|
typeable
|
||||||
what Type
|
|
||||||
permission types.Permission
|
permission types.Permission
|
||||||
members []EnumMember
|
members []EnumMember
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ func (parser *ParsingOperation) parseTypeSection () (
|
|||||||
if err != nil { return }
|
if err != nil { return }
|
||||||
err = parser.nextToken()
|
err = parser.nextToken()
|
||||||
if err != nil { return }
|
if err != nil { return }
|
||||||
section.inherits, err = parser.parseType()
|
section.what, err = parser.parseType()
|
||||||
if err != nil { return }
|
if err != nil { return }
|
||||||
|
|
||||||
// parse default values
|
// parse default values
|
||||||
|
Reference in New Issue
Block a user