From 703604ceb3222d54468f0120d9f835759440a2a6 Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 4 May 2015 16:28:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BF=D1=80=D0=BE=D1=89=D1=91=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D1=81=D0=B8=D0=BD=D1=82=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D1=81=20=D0=B4=D0=BB=D1=8F=20play=20music?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/everlastingsummer/Parser.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/com/annimon/everlastingsummer/Parser.java b/src/com/annimon/everlastingsummer/Parser.java index 114736b..086d28a 100644 --- a/src/com/annimon/everlastingsummer/Parser.java +++ b/src/com/annimon/everlastingsummer/Parser.java @@ -393,11 +393,7 @@ public final class Parser { } private boolean playMusic() { - consume(TokenType.WORD); - consume(TokenType.LBRACKET); - final String name = consume(TokenType.TEXT).getText(); - consume(TokenType.RBRACKET); - + final String name = consumeMusicName(); final FadeInfo fade = matchFade(); ViewActivity.getInstance().music(name, fade); return false; @@ -733,6 +729,22 @@ public final class Parser { return "true".equalsIgnoreCase(consume(TokenType.WORD).getText()); } + private String consumeMusicName() { + final String name; + if (lookMatch(1, TokenType.LBRACKET)) { + // music_list["music"] + consume(TokenType.WORD); + consume(TokenType.LBRACKET); + name = consume(TokenType.TEXT).getText(); + consume(TokenType.RBRACKET); + } else if (lookMatch(0, TokenType.TEXT)) { + name = consume(TokenType.TEXT).getText(); + } else { + name = consume(TokenType.WORD).getText(); + } + return name; + } + private FadeInfo matchFade() { final FadeInfo result = new FadeInfo(); if (match(TokenType.FADEIN)) {