public Op augassign()
{
switch (lexer.Get().Type)
{
case TokenType.ADDEQ: return Op.AugAdd;
case TokenType.SUBEQ: return Op.AugSub;
case TokenType.MULEQ: return Op.AugMul;
case TokenType.DIVEQ: return Op.AugDiv;
case TokenType.MODEQ: return Op.AugMod;
case TokenType.ANDEQ: return Op.AugAnd;
case TokenType.OREQ: return Op.AugOr;
case TokenType.XOREQ: return Op.AugXor;
case TokenType.SHLEQ: return Op.AugShl;
case TokenType.SHREQ: return Op.AugShr;
case TokenType.EXPEQ: return Op.AugExp;
case TokenType.IDIVEQ: return Op.AugIDiv;
default: throw new InvalidOperationException();
}
}