Putting pointers in interfaces is incredibly stupid

This commit is contained in:
Sasha Koshka 2022-09-03 00:01:01 -04:00
parent dbbe0198d5
commit 689200085a
3 changed files with 15 additions and 18 deletions

View File

@ -48,7 +48,7 @@ func (parser *ParsingOperation) parseArgument () (argument Argument, err error)
}
} else {
argument.kind = ArgumentKindIdentifier
argument.value = &identifier
argument.value = identifier
}
case lexer.TokenKindInt:
@ -77,12 +77,9 @@ func (parser *ParsingOperation) parseArgument () (argument Argument, err error)
parser.nextToken()
case lexer.TokenKindLBracket:
argument.kind = ArgumentKindPhrase
var phrase Phrase
phrase, err = parser.parseArgumentLevelPhrase()
argument.value = &phrase
argument.kind = ArgumentKindPhrase
argument.value, err = parser.parseArgumentLevelPhrase()
parser.nextToken()
default:
panic (

View File

@ -73,7 +73,7 @@ func (parser *ParsingOperation) parseInitializationValues (
var initializationValues ObjectInitializationValues
initializationValues, err = parser.parseObjectInitializationValues()
initializationArgument.kind = ArgumentKindObjectInitializationValues
initializationArgument.value = &initializationValues
initializationArgument.value = initializationValues
} else {
@ -82,7 +82,7 @@ func (parser *ParsingOperation) parseInitializationValues (
var initializationValues ArrayInitializationValues
initializationValues, err = parser.parseArrayInitializationValues()
initializationArgument.kind = ArgumentKindArrayInitializationValues
initializationArgument.value = &initializationValues
initializationArgument.value = initializationValues
}
return

View File

@ -78,7 +78,7 @@ func (tree *SyntaxTree) ToString (indent int) (output string) {
return
}
func (identifier *Identifier) ToString () (output string) {
func (identifier Identifier) ToString () (output string) {
for index, trailItem := range identifier.trail {
if index > 0 {
output += "."
@ -115,13 +115,13 @@ func (what *Type) ToString () (output string) {
return
}
func (declaration *Declaration) ToString () (output string) {
func (declaration Declaration) ToString () (output string) {
output += declaration.name + ":"
output += declaration.what.ToString()
return
}
func (attributes *ObjectInitializationValues) ToString (
func (attributes ObjectInitializationValues) ToString (
indent int,
) (
output string,
@ -141,7 +141,7 @@ func (attributes *ObjectInitializationValues) ToString (
return
}
func (values *ArrayInitializationValues) ToString (
func (values ArrayInitializationValues) ToString (
indent int,
) (
output string,
@ -153,7 +153,7 @@ func (values *ArrayInitializationValues) ToString (
return
}
func (phrase *Phrase) ToString (indent int, ownLine bool) (output string) {
func (phrase Phrase) ToString (indent int, ownLine bool) (output string) {
if ownLine {
output += doIndent(indent)
}
@ -187,30 +187,30 @@ func (argument *Argument) ToString (indent int, breakLine bool) (output string)
switch argument.kind {
case ArgumentKindPhrase:
output += argument.value.(*Phrase).ToString (
output += argument.value.(Phrase).ToString (
indent,
breakLine)
case ArgumentKindObjectInitializationValues:
// this should only appear in contexts where breakLine is true
output += argument.value.(*ObjectInitializationValues).
output += argument.value.(ObjectInitializationValues).
ToString(indent)
case ArgumentKindArrayInitializationValues:
// this should only appear in contexts where breakLine is true
output += argument.value.(*ArrayInitializationValues).
output += argument.value.(ArrayInitializationValues).
ToString(indent)
case ArgumentKindIdentifier:
output += doIndent (
indent,
argument.value.(*Identifier).ToString())
argument.value.(Identifier).ToString())
if breakLine { output += "\n" }
case ArgumentKindDeclaration:
output += doIndent (
indent,
argument.value.(*Declaration).ToString())
argument.value.(Declaration).ToString())
if breakLine { output += "\n" }
case ArgumentKindInt, ArgumentKindUInt, ArgumentKindFloat: