Tree t; if (ts.length == 1)
Tree t = null; if ((ts.length == 1)&&!( ts[0] instanceof Tree.Alternative ))  {
    Tree simplePattern() {        switch (s.token) {        case RPAREN:        case COMMA:            return make.Sequence(s.pos, Tree.EMPTY_ARRAY); // ((nothing))        case IDENTIFIER:            if (s.name == BAR) {                return make.Sequence(s.pos, Tree.EMPTY_ARRAY); // ((nothing))            }            // else fall through to case THIS        case THIS:            Tree t = stableId();            while (s.token == LPAREN) {		Tree[] ts = Tree.EMPTY_ARRAY;		accept(LPAREN);		if (s.token != RPAREN) 		    ts = patterns();		accept(RPAREN);                t = make.Apply(s.pos, convertToTypeId(t), ts);            }            return t;        case USCORE:            return make.Ident(s.skipToken(), Names.PATTERN_WILDCARD);	case CHARLIT:	case INTLIT:	case LONGLIT:	case FLOATLIT:	case DOUBLELIT:	case STRINGLIT:	case SYMBOLLIT:	case TRUE:	case FALSE:        case NULL:            return literal(true);        case LPAREN:            int p = s.pos;            s.nextToken();	    Tree[] ts = Tree.EMPTY_ARRAY;	    if( s.token!= RPAREN )		ts = patterns();            Tree t;            if (ts.length == 1)                t = ts[0];            else {                t = pN.flattenSequence(make.Sequence(s.pos, ts));                t = pN.elimSequence(t);            }            accept(RPAREN);            return t;        default:            return syntaxError("illegal start of pattern", true);	}	        }