Skip to content

Commit

Permalink
fix: conversão e interpretação de inteiros
Browse files Browse the repository at this point in the history
  • Loading branch information
natanfeitosa committed Dec 25, 2023
1 parent fc9c032 commit 65ca89e
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 9 deletions.
5 changes: 4 additions & 1 deletion ptst/inteiro.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Chama obj.__inteiro__() ou se esse não for encontrado, um erro pode ser lançad
`,
)

func NewInteiro(obj Objeto) (Objeto, error) {
func NewInteiro(obj any) (Objeto, error) {
switch b := obj.(type) {
case nil:
return Inteiro(0), nil
Expand All @@ -25,6 +25,9 @@ func NewInteiro(obj Objeto) (Objeto, error) {
case Texto:
num, _ := compartilhado.StringParaInt(string(b))
return Inteiro(num), nil
case string:
num, _ := compartilhado.StringParaInt(string(b))
return Inteiro(num), nil
default:
if O, ok := b.(I__inteiro__); ok {
return O.O__inteiro__()
Expand Down
9 changes: 1 addition & 8 deletions ptst/interpretador.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package ptst

import (
"github.com/natanfeitosa/portuscript/compartilhado"
"github.com/natanfeitosa/portuscript/parser"
)

Expand Down Expand Up @@ -167,13 +166,7 @@ func (i *Interpretador) visiteTextoLiteral(node *parser.TextoLiteral) (Objeto, e
}

func (i *Interpretador) visiteInteiroLiteral(node *parser.InteiroLiteral) (Objeto, error) {
numero, err := compartilhado.StringParaInt(node.Valor)

if err != nil {
return nil, err
}

return Inteiro(numero), nil
return NewInteiro(node.Valor)
}

func (i *Interpretador) visiteOpBinaria(node *parser.OpBinaria) (Objeto, error) {
Expand Down

0 comments on commit 65ca89e

Please sign in to comment.