public override void ExitAndExpression(CParser.AndExpressionContext context) { if (context.andExpression() != null) { // andExpression '&' equalityExpression SafeCall(context, CExpression.BitwiseAndOperator); } }
protected ObjectDef EmitAndExpression(CParser.AndExpressionContext andExpression) { ObjectDef returnObjectDef = null; if (andExpression.equalityExpression() != null) { returnObjectDef = EmitEqualityExpression(andExpression.equalityExpression()); } if (andExpression.equalityExpression() != null && andExpression.andExpression() != null) { var andObj = EmitAndExpression(andExpression.andExpression()); andObj.Load(); returnObjectDef.Load(); _generatorIL.Emit(OpCodes.And); returnObjectDef = LocalObjectDef.AllocateLocal(typeof(int)); } return(returnObjectDef); }