private IExpression Consume_DialogueMember() { Token token = currentToken; if (currentToken.Type == TokenType.L_PAREN) { IExpression condition = Consume_Expression(); token = currentToken; Consume(TokenType.CONDITION); IExpression member = Consume_DialogueMember(); return(ExpressionFactory.CreateBinary(condition, member, token.Type, token)); } IDialogueMember dialogueMember = null; Consume(TokenType.MEMBERDELIMITER_LEFT); switch (currentToken.Type) { case TokenType.ACTOR: Consume(TokenType.ACTOR); Consume(TokenType.ASSIGN); dialogueMember = ExpressionFactory.CreateDialogueActorExpression(Consume_Factor(), token); break; case TokenType.MOOD: Consume(TokenType.MOOD); Consume(TokenType.ASSIGN); dialogueMember = ExpressionFactory.CreateDialogueMoodExpression(Consume_Factor(), token); break; case TokenType.CHOICE_MEMBER: dialogueMember = Consume_ChoiceExpression(); break; } Consume(TokenType.MEMBERDELIMITER_RIGHT); return(dialogueMember); }