Re-add generating constants

This commit is contained in:
Sasha Koshka 2024-04-22 19:56:28 -04:00
parent 1d1908cd5d
commit 298b819b46
2 changed files with 14 additions and 2 deletions

View File

@ -160,3 +160,11 @@ func (this *generator) generateMemberAccessLoc (access *entity.MemberAccess) (ll
access.Source))
}
}
func (this *generator) generateConstantLoc (constant *entity.Constant) (llvm.Value, error) {
return this.constant(entity.Key {
Unit: constant.Unit,
Type: constant.TypeName,
Constant: constant.Name,
})
}

View File

@ -67,7 +67,8 @@ func (this *generator) generateExpressionAny (expression entity.Expression) (reg
*entity.LiteralString,
*entity.LiteralStruct,
*entity.Variable,
*entity.Declaration:
*entity.Declaration,
*entity.Constant:
pointer, err := this.generateExpressionLoc(expression)
return pointer, true, err
@ -132,7 +133,8 @@ func (this *generator) generateExpressionVal (expression entity.Expression) (llv
*entity.LiteralString,
*entity.LiteralStruct,
*entity.Variable,
*entity.Declaration:
*entity.Declaration,
*entity.Constant:
pointer, err := this.generateExpressionLoc(expression)
if err != nil { return nil, err }
@ -249,6 +251,8 @@ func (this *generator) generateExpressionLoc (expression entity.Expression) (llv
case *entity.For:
loc, _, err := this.generateFor(expression, resultModeLoc)
return loc, err
case *entity.Constant:
return this.generateConstantLoc(expression)
case *entity.LiteralArray:
return this.generateLiteralArrayLoc(expression, nil)
case *entity.LiteralString: