diff --git a/src/com/annimon/everlastingsummer/Parser.java b/src/com/annimon/everlastingsummer/Parser.java index 59288bb..48b96ee 100644 --- a/src/com/annimon/everlastingsummer/Parser.java +++ b/src/com/annimon/everlastingsummer/Parser.java @@ -16,8 +16,9 @@ public final class Parser { private static Parser instance; - public static Parser parse(List tokens) { - instance = new Parser(tokens); + public static Parser parse(List tokens, SaveInfo save) { + if (save == null) instance = new Parser(tokens); + else instance = new Parser(tokens, save); return instance; } @@ -42,9 +43,18 @@ public final class Parser { private boolean hasEndMenu, hasEndIf; public Parser(List tokens) { + this(tokens, 0); + } + + public Parser(List tokens, SaveInfo info) { + this(tokens, info.getPosition()); + Variables.setVariables(info.getVariables()); + } + + private Parser(List tokens, int position) { this.tokens = tokens; tokensCount = tokens.size(); - position = 0; + this.position = position; labels = new HashMap(); hasEndMenu = false; hasEndIf = false; diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java index f790b93..e6d085c 100644 --- a/src/com/annimon/everlastingsummer/ViewActivity.java +++ b/src/com/annimon/everlastingsummer/ViewActivity.java @@ -94,7 +94,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch finish(); } - Parser.parse(Lexer.tokenize( IOUtil.readContents(stream) )); + Parser.parse(Lexer.tokenize( IOUtil.readContents(stream) ), save); Parser.getInstance().next(); stream = null; } catch (Exception ex) {