From e8fe5ad5f130864946bb5aab3c201279f042ff74 Mon Sep 17 00:00:00 2001 From: krasimir Date: Fri, 3 Jun 2016 07:14:52 +0000 Subject: [PATCH] bugfix in the Phrasebook UI --- .../phrasebook/backend/syntax/ChoiceContext.java | 10 +++++++--- .../chalmers/phrasebook/backend/syntax/SyntaxTree.java | 4 +++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ui/android/src/se/chalmers/phrasebook/backend/syntax/ChoiceContext.java b/src/ui/android/src/se/chalmers/phrasebook/backend/syntax/ChoiceContext.java index c06d6c343..3995ad063 100644 --- a/src/ui/android/src/se/chalmers/phrasebook/backend/syntax/ChoiceContext.java +++ b/src/ui/android/src/se/chalmers/phrasebook/backend/syntax/ChoiceContext.java @@ -18,6 +18,11 @@ public class ChoiceContext { stack.clear(); } + public void trim() { + while (pos < choices.size()) + choices.remove(choices.size()-1); + } + public int choose(SyntaxNode node) { SyntacticChoice choice = null; @@ -25,8 +30,7 @@ public class ChoiceContext { if (choices.get(pos).getNode().unlink() == node.unlink()) { choice = choices.get(pos); } else { - while (pos < choices.size()) - choices.remove(choices.size()-1); + trim(); } } @@ -38,7 +42,7 @@ public class ChoiceContext { pos++; return choice.getChoice(); } - + public void push(SyntaxNode[] args) { stack.add(args); } diff --git a/src/ui/android/src/se/chalmers/phrasebook/backend/syntax/SyntaxTree.java b/src/ui/android/src/se/chalmers/phrasebook/backend/syntax/SyntaxTree.java index 5a685277c..964f07d0b 100644 --- a/src/ui/android/src/se/chalmers/phrasebook/backend/syntax/SyntaxTree.java +++ b/src/ui/android/src/se/chalmers/phrasebook/backend/syntax/SyntaxTree.java @@ -21,7 +21,9 @@ public class SyntaxTree implements Serializable { } public Expr getAbstractSyntax(ChoiceContext choices) { - return Expr.readExpr(root.getAbstractSyntax(choices)); + Expr expr = Expr.readExpr(root.getAbstractSyntax(choices)); + choices.trim(); + return expr; } @Override