From 65ca89e46dfe4c6e6f8861e79471932ed762860b Mon Sep 17 00:00:00 2001 From: natanfeitosa Date: Mon, 25 Dec 2023 14:32:23 -0300 Subject: [PATCH] =?UTF-8?q?fix:=20convers=C3=A3o=20e=20interpreta=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20inteiros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ptst/inteiro.go | 5 ++++- ptst/interpretador.go | 9 +-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/ptst/inteiro.go b/ptst/inteiro.go index b22b98a..b641ae4 100644 --- a/ptst/inteiro.go +++ b/ptst/inteiro.go @@ -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 @@ -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__() diff --git a/ptst/interpretador.go b/ptst/interpretador.go index e5e3a69..e44f59b 100644 --- a/ptst/interpretador.go +++ b/ptst/interpretador.go @@ -1,7 +1,6 @@ package ptst import ( - "github.com/natanfeitosa/portuscript/compartilhado" "github.com/natanfeitosa/portuscript/parser" ) @@ -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) {