コード例 #1
0
 public override void ExitAndExpression(CParser.AndExpressionContext context)
 {
     if (context.andExpression() != null)
     {
         // andExpression '&' equalityExpression
         SafeCall(context, CExpression.BitwiseAndOperator);
     }
 }
コード例 #2
0
        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);
        }