team-worthwhile / worthwhile

PSE am KIT 2011/12: Programmverifikation (Team 2)
BSD 3-Clause "New" or "Revised" License
5 stars 3 forks source link

EmptyStackException when dividing negative values #47

Closed jspam closed 12 years ago

jspam commented 12 years ago

When evaluating expressions such as -1/-2, -1/2 or 1/-2, an EmptyStackException occurs.

See testInterpreterContextDivisionWithNegativeOperands in InterpreterASTNodeVisitorTest

jspam commented 12 years ago

Stack trace for -1/-2:

java.util.EmptyStackException
    at java.util.Stack.peek(Stack.java:102)
    at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.popIntegerValue(InterpreterASTNodeVisitor.java:405)
    at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:904)
    at edu.kit.iti.formal.pse.worthwhile.model.ast.Minus.accept(Minus.java:46)
    at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:648)
    at edu.kit.iti.formal.pse.worthwhile.model.ast.Division.accept(Division.java:47)
    at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:1109)
    at edu.kit.iti.formal.pse.worthwhile.model.ast.VariableDeclaration.accept(VariableDeclaration.java:255)
    at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:548)
    at edu.kit.iti.formal.pse.worthwhile.model.ast.Block.accept(Block.java:92)
    at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:996)
    at edu.kit.iti.formal.pse.worthwhile.model.ast.Program.accept(Program.java:197)
    at edu.kit.iti.formal.pse.worthwhile.interpreter.Interpreter.execute(Interpreter.java:80)