ExpressionKind.BitwiseOr => VisitBITOR(pExpr as ExprBinOp),
 ExpressionKind.Addr => VisitADDR(pExpr as ExprUnaryOp),
 ExpressionKind.DecimalInc => VisitDECIMALINC(pExpr as ExprUnaryOp),
 ExpressionKind.LogicalNot => VisitLOGNOT(pExpr as ExprUnaryOp),
 ExpressionKind.UnaryPlus => VisitUPLUS(pExpr as ExprUnaryOp),
 // Unary operators
 ExpressionKind.True => VisitTRUE(pExpr as ExprUnaryOp),
 ExpressionKind.Inc => VisitINC(pExpr as ExprUnaryOp),
 ExpressionKind.Sequence => VisitSEQUENCE(pExpr as ExprBinOp),
 ExpressionKind.Save => VisitSAVE(pExpr as ExprBinOp),
 ExpressionKind.LogicalAnd => VisitLOGAND(pExpr as ExprBinOp),
 ExpressionKind.LogicalOr => VisitLOGOR(pExpr as ExprBinOp),
 ExpressionKind.RightShift => VisitRSHIFT(pExpr as ExprBinOp),
 ExpressionKind.LeftShirt => VisitLSHIFT(pExpr as ExprBinOp),
 ExpressionKind.BitwiseExclusiveOr => VisitBITXOR(pExpr as ExprBinOp),
 ExpressionKind.DelegateSubtract => VisitDELEGATESUB(pExpr as ExprBinOp),
 ExpressionKind.Swap => VisitSWAP(pExpr as ExprBinOp),
 ExpressionKind.Eq => VisitEQ(pExpr as ExprBinOp),
 ExpressionKind.Indir => VisitINDIR(pExpr as ExprBinOp),
 ExpressionKind.False => VisitFALSE(pExpr as ExprUnaryOp),
 ExpressionKind.StringEq => VisitSTRINGEQ(pExpr as ExprBinOp),
 ExpressionKind.Dec => VisitDEC(pExpr as ExprUnaryOp),
 ExpressionKind.StringNotEq => VisitSTRINGNE(pExpr as ExprBinOp),
 ExpressionKind.Negate => VisitNEG(pExpr as ExprUnaryOp),
 ExpressionKind.DelegateEq => VisitDELEGATEEQ(pExpr as ExprBinOp),
 ExpressionKind.BitwiseNot => VisitBITNOT(pExpr as ExprUnaryOp),
 ExpressionKind.DelegateNotEq => VisitDELEGATENE(pExpr as ExprBinOp),
 ExpressionKind.DecimalNegate => VisitDECIMALNEG(pExpr as ExprUnaryOp),
 ExpressionKind.DelegateAdd => VisitDELEGATEADD(pExpr as ExprBinOp),
 ExpressionKind.DecimalDec => VisitDECIMALDEC(pExpr as ExprUnaryOp),
 ExpressionKind.BitwiseAnd => VisitBITAND(pExpr as ExprBinOp),