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 | ||||
| 			} | ||||
| 			 | ||||
| 			declaration := Declaration { | ||||
| 				what: what, | ||||
| 			} | ||||
| 			declaration := Declaration { } | ||||
| 			declaration.what = what | ||||
| 			declaration.setName(identifier.trail[0]) | ||||
| 			declaration.setLocation(argument.Location()) | ||||
| 
 | ||||
|  | ||||
| @ -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) () { | ||||
| 	 | ||||
| } | ||||
|  | ||||
| @ -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 || | ||||
|  | ||||
| @ -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 | ||||
| 	typeable | ||||
| 	 | ||||
| 	what         Type | ||||
| 	bitWidth     uint64 | ||||
| 	permission   types.Permission | ||||
| 	defaultValue Argument | ||||
| @ -181,8 +181,8 @@ type ObjtMember struct { | ||||
| type ObjtSection struct { | ||||
| 	locatable | ||||
| 	nameable | ||||
| 
 | ||||
| 	inherits Identifier | ||||
| 
 | ||||
| 	permission   types.Permission | ||||
| 	members      []ObjtMember | ||||
| } | ||||
| @ -198,8 +198,8 @@ type EnumMember struct { | ||||
| type EnumSection struct { | ||||
| 	locatable | ||||
| 	nameable | ||||
| 	typeable | ||||
| 
 | ||||
| 	what       Type | ||||
| 	permission types.Permission | ||||
| 	members    []EnumMember | ||||
| } | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user