Added -Any suffix to appropriate generation routines

This commit is contained in:
Sasha Koshka 2024-01-27 17:24:47 +00:00
parent e188b2f349
commit 64d246a997
3 changed files with 10 additions and 10 deletions

View File

@ -41,7 +41,7 @@ func (this *generator) generateExpressionMode (
) { ) {
switch mode { switch mode {
case ResultModeAny: case ResultModeAny:
return this.generateExpression(expression) return this.generateExpressionAny(expression)
case ResultModeVal: case ResultModeVal:
val, err := this.generateExpressionVal(expression) val, err := this.generateExpressionVal(expression)
return val, false, err return val, false, err
@ -56,7 +56,7 @@ func (this *generator) generateExpressionMode (
// representing the result, or a register containing the location of the result, // representing the result, or a register containing the location of the result,
// whichever will generate the least IR. In the latter case, the boolean // whichever will generate the least IR. In the latter case, the boolean
// "location" will be true. // "location" will be true.
func (this *generator) generateExpression (expression entity.Expression) (register llvm.Value, location bool, err error) { func (this *generator) generateExpressionAny (expression entity.Expression) (register llvm.Value, location bool, err error) {
// TODO: some of these could stand to know that they have a choice in // TODO: some of these could stand to know that they have a choice in
// the matter. // the matter.
@ -245,7 +245,7 @@ func (this *generator) generateStatementMode (
) { ) {
switch mode { switch mode {
case ResultModeAny: case ResultModeAny:
return this.generateStatement(statement) return this.generateStatementAny(statement)
case ResultModeVal: case ResultModeVal:
val, err := this.generateStatementVal(statement) val, err := this.generateStatementVal(statement)
return val, false, err return val, false, err
@ -256,14 +256,14 @@ func (this *generator) generateStatementMode (
} }
} }
func (this *generator) generateStatement (statement entity.Statement) (register llvm.Value, location bool, err error) { func (this *generator) generateStatementAny (statement entity.Statement) (register llvm.Value, location bool, err error) {
switch statement := statement.(type) { switch statement := statement.(type) {
case *entity.Assignment: case *entity.Assignment:
_, err := this.generateAssignment(statement) _, err := this.generateAssignment(statement)
return nil, false, err return nil, false, err
case entity.Expression: case entity.Expression:
return this.generateExpression(statement) return this.generateExpressionAny(statement)
default: default:
panic(fmt.Sprintf ( panic(fmt.Sprintf (
"BUG: generator doesnt know about statement %v, ty: %T", "BUG: generator doesnt know about statement %v, ty: %T",

View File

@ -10,7 +10,7 @@ func (this *generator) generateBlock (block *entity.Block, mode ResultMode) (llv
lastIndex := len(block.Steps) - 1 lastIndex := len(block.Steps) - 1
for _, step := range block.Steps[:lastIndex] { for _, step := range block.Steps[:lastIndex] {
_, _, err := this.generateStatement(step) _, _, err := this.generateStatementAny(step)
if err != nil { return nil, false, err } if err != nil { return nil, false, err }
} }
@ -24,7 +24,7 @@ func (this *generator) generateBreak (brk *entity.Break) (llvm.Value, error) {
var err error var err error
switch loopEntry.mode { switch loopEntry.mode {
case ResultModeAny: case ResultModeAny:
value, loopEntry.loc, err = this.generateStatement(brk.Value) value, loopEntry.loc, err = this.generateStatementAny(brk.Value)
case ResultModeVal: case ResultModeVal:
value, err = this.generateStatementVal(brk.Value) value, err = this.generateStatementVal(brk.Value)
loopEntry.loc = false loopEntry.loc = false
@ -124,7 +124,7 @@ func (this *generator) generateLoop (loop *entity.Loop, mode ResultMode) (llvm.V
loopEntry := this.blockManager.pushLoop(mode) loopEntry := this.blockManager.pushLoop(mode)
defer this.blockManager.popLoop() defer this.blockManager.popLoop()
_, _, err := this.generateExpression(loop.Body) _, _, err := this.generateExpressionAny(loop.Body)
if err != nil { return nil, false, err } if err != nil { return nil, false, err }
this.blockManager.NewBr(body) this.blockManager.NewBr(body)

View File

@ -34,7 +34,7 @@ func (this *generator) generateFunction (
this.blockManager.addFunctionArgumentDeclarations(function) this.blockManager.addFunctionArgumentDeclarations(function)
if function.Signature.Return == nil { if function.Signature.Return == nil {
_, _, err := this.generateExpression(function.Body) _, _, err := this.generateExpressionAny(function.Body)
if err != nil { return nil, err } if err != nil { return nil, err }
this.blockManager.NewRet(nil) this.blockManager.NewRet(nil)
} else { } else {
@ -80,7 +80,7 @@ func (this *generator) generateMethod (
this.blockManager.addFunctionArgumentDeclarations(method) this.blockManager.addFunctionArgumentDeclarations(method)
if method.Signature.Return == nil { if method.Signature.Return == nil {
_, _, err := this.generateExpression(method.Body) _, _, err := this.generateExpressionAny(method.Body)
if err != nil { return nil, err } if err != nil { return nil, err }
this.blockManager.NewRet(nil) this.blockManager.NewRet(nil)
} else { } else {