Skip to content
Snippets Groups Projects
Commit 11afea5d authored by Lior Spach's avatar Lior Spach
Browse files

Arrumado atribuição

parent 4ed96d8b
No related branches found
No related tags found
No related merge requests found
......@@ -99,7 +99,22 @@ class Arith extends JavaTokenParsers {
def verificaTipoAtrib (idAtrib:String) {
val e = TabelaSimb.getById(idAtrib).get
val tipoExpr = stackbooltipo.pop()
val boolDistinct = stackbooltipo.distinct
if (boolDistinct.size!=1 && !(boolDistinct.size==2 && boolDistinct.contains("integer")) )
{
println("Erro de tipagem na expressão da atribuição")
sys.exit(1)
}
val tipoExpr = boolDistinct.size match {
case 1 => boolDistinct.pop()
case 2 => boolDistinct.top match {
case "integer" => boolDistinct.pop(); boolDistinct.pop()
case _ => boolDistinct.pop()
}
}
boolDistinct.clear()
val tipoAtrib = e match {
case v:Var => v.tipo
case p:Param => p.tipo
......@@ -175,6 +190,7 @@ class Arith extends JavaTokenParsers {
if (distinct.size==1 || (distinct.size==2 && distinct.contains("integer")) )
{
//fine
stackbooltipo.clear()
}
else {
println("Erro de tipo: dois lados da expressão booleana com tipos diferentes")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment