private static ExpressionBodyTuple MakeExpressionBody(ref TokenReader reader) { bool rewind = TryLookAhead(ref reader, Token.TokenType.Exclamation); if (TryLookAhead(ref reader, Token.TokenType.OpenBracket, false)) { // 開き括弧/!マーク -> クラスタ if (rewind) reader.RewindOne(); return new ExpressionBodyTuple() { Cluster = MakeCluster(ref reader) }; } else { if (rewind) reader.RewindOne(); return new ExpressionBodyTuple() { MethodDeclaration = MakeMethodDeclaration(ref reader) }; } }