public override void ExitExclusiveOrExpression(CParser.ExclusiveOrExpressionContext context) { if (context.exclusiveOrExpression() != null) { // exclusiveOrExpression '^' andExpression SafeCall(context, CExpression.BitwiseXorOperator); } }
protected ObjectDef EmitExclusiveOrExpression(CParser.ExclusiveOrExpressionContext exclusiveOrExpression) { ObjectDef returnObjectDef = null; if (exclusiveOrExpression.andExpression() != null) { returnObjectDef = EmitAndExpression(exclusiveOrExpression.andExpression()); } if (exclusiveOrExpression.andExpression() != null && exclusiveOrExpression.exclusiveOrExpression() != null) { var orObj = EmitExclusiveOrExpression(exclusiveOrExpression.exclusiveOrExpression()); orObj.Load(); returnObjectDef.Load(); _generatorIL.Emit(OpCodes.Xor); returnObjectDef = LocalObjectDef.AllocateLocal(typeof(int)); } return(returnObjectDef); }