public AliasedExp except_clause()
{
var token = Expect(TokenType.Except);
var posStart = token.Start;
var posEnd = token.End;
Exp t = null;
Identifier alias = null;
if (!Peek(TokenType.COLON))
{
t = test();
posEnd = t.End;
if (PeekAndDiscard(TokenType.As))
{
alias = id();
posEnd = alias.End;
}
else if (PeekAndDiscard(TokenType.COMMA))
{
alias = id();
posEnd = token.End;
}
}
return new AliasedExp(t, alias, filename, posStart, posEnd);
}