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