summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ui/android/src/se/chalmers/phrasebook/backend/syntax/ChoiceContext.java10
-rw-r--r--src/ui/android/src/se/chalmers/phrasebook/backend/syntax/SyntaxTree.java4
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