@@ -52,15 +52,15 @@ private module Impl {
5252 e2 .( ExprNode:: PreDecrExpr ) .getOperand ( ) = e1 and delta = - 1
5353 or
5454 exists ( ConstantIntegerExpr x |
55- e2 .( ExprNode:: AddExpr ) .getAnOperand ( ) = e1 and
56- e2 .( ExprNode:: AddExpr ) .getAnOperand ( ) = x and
55+ e2 .( ExprNode:: AddOperation ) .getAnOperand ( ) = e1 and
56+ e2 .( ExprNode:: AddOperation ) .getAnOperand ( ) = x and
5757 e1 != x and
5858 x .getIntValue ( ) = delta
5959 )
6060 or
6161 exists ( ConstantIntegerExpr x |
62- e2 .( ExprNode:: SubExpr ) .getLeftOperand ( ) = e1 and
63- e2 .( ExprNode:: SubExpr ) .getRightOperand ( ) = x and
62+ e2 .( ExprNode:: SubOperation ) .getLeftOperand ( ) = e1 and
63+ e2 .( ExprNode:: SubOperation ) .getRightOperand ( ) = x and
6464 x .getIntValue ( ) = - delta
6565 )
6666 or
@@ -318,168 +318,80 @@ module ExprNode {
318318 }
319319
320320 /** An addition operation. */
321- abstract private class AddExprImpl extends BinaryOperation {
322- override TAddOp getOp ( ) { any ( ) }
323- }
324-
325- final class AddExpr = AddExprImpl ;
326-
327- private class AddAddExpr extends AddExprImpl {
328- override CS:: AddExpr e ;
329- }
321+ class AddOperation extends BinaryOperation {
322+ override CS:: AddOperation e ;
330323
331- private class AddAssignAddExpr extends AddExprImpl , AssignOperation {
332- override CS:: AssignAddExpr e ;
324+ override TAddOp getOp ( ) { any ( ) }
333325 }
334326
335327 /** A subtraction operation. */
336- abstract private class SubExprImpl extends BinaryOperation {
337- override TSubOp getOp ( ) { any ( ) }
338- }
339-
340- final class SubExpr = SubExprImpl ;
328+ class SubOperation extends BinaryOperation {
329+ override CS:: SubOperation e ;
341330
342- private class AddSubExpr extends SubExprImpl {
343- override CS:: SubExpr e ;
344- }
345-
346- private class AddAssignSubExpr extends SubExprImpl , AssignOperation {
347- override CS:: AssignSubExpr e ;
331+ override TSubOp getOp ( ) { any ( ) }
348332 }
349333
350334 /** A multiplication operation. */
351- abstract private class MulExprImpl extends BinaryOperation {
352- override TMulOp getOp ( ) { any ( ) }
353- }
354-
355- final class MulExpr = MulExprImpl ;
356-
357- private class AddMulExpr extends MulExprImpl {
358- override CS:: MulExpr e ;
359- }
335+ class MulOperation extends BinaryOperation {
336+ override CS:: MulOperation e ;
360337
361- private class AddAssignMulExpr extends MulExprImpl , AssignOperation {
362- override CS:: AssignMulExpr e ;
338+ override TMulOp getOp ( ) { any ( ) }
363339 }
364340
365341 /** A division operation. */
366- abstract private class DivExprImpl extends BinaryOperation {
367- override TDivOp getOp ( ) { any ( ) }
368- }
369-
370- final class DivExpr = DivExprImpl ;
342+ class DivOperation extends BinaryOperation {
343+ override CS:: DivOperation e ;
371344
372- private class AddDivExpr extends DivExprImpl {
373- override CS:: DivExpr e ;
374- }
375-
376- private class AddAssignDivExpr extends DivExprImpl , AssignOperation {
377- override CS:: AssignDivExpr e ;
345+ override TDivOp getOp ( ) { any ( ) }
378346 }
379347
380348 /** A remainder operation. */
381- abstract private class RemExprImpl extends BinaryOperation {
382- override TRemOp getOp ( ) { any ( ) }
383- }
384-
385- final class RemExpr = RemExprImpl ;
386-
387- private class AddRemExpr extends RemExprImpl {
388- override CS:: RemExpr e ;
389- }
349+ class RemOperation extends BinaryOperation {
350+ override CS:: RemOperation e ;
390351
391- private class AddAssignRemExpr extends RemExprImpl , AssignOperation {
392- override CS:: AssignRemExpr e ;
352+ override TRemOp getOp ( ) { any ( ) }
393353 }
394354
395355 /** A bitwise-and operation. */
396- abstract private class BitwiseAndExprImpl extends BinaryOperation {
397- override TBitAndOp getOp ( ) { any ( ) }
398- }
399-
400- final class BitwiseAndExpr = BitwiseAndExprImpl ;
356+ class BitwiseAndOperation extends BinaryOperation {
357+ override CS:: BitwiseAndOperation e ;
401358
402- private class AddBitwiseAndExpr extends BitwiseAndExprImpl {
403- override CS:: BitwiseAndExpr e ;
404- }
405-
406- private class AddAssignAndExpr extends BitwiseAndExprImpl , AssignOperation {
407- override CS:: AssignAndExpr e ;
359+ override TBitAndOp getOp ( ) { any ( ) }
408360 }
409361
410362 /** A bitwise-or operation. */
411- abstract private class BitwiseOrExprImpl extends BinaryOperation {
412- override TBitOrOp getOp ( ) { any ( ) }
413- }
363+ class BitwiseOrOperation extends BinaryOperation {
364+ override CS:: BitwiseOrOperation e ;
414365
415- final class BitwiseOrExpr = BitwiseOrExprImpl ;
416-
417- private class AddBitwiseOrExpr extends BitwiseOrExprImpl {
418- override CS:: BitwiseOrExpr e ;
419- }
420-
421- private class AddAssignOrExpr extends BitwiseOrExprImpl , AssignOperation {
422- override CS:: AssignOrExpr e ;
366+ override TBitOrOp getOp ( ) { any ( ) }
423367 }
424368
425369 /** A bitwise-xor operation. */
426- abstract private class BitwiseXorExprImpl extends BinaryOperation {
427- override TBitXorOp getOp ( ) { any ( ) }
428- }
429-
430- final class BitwiseXorExpr = BitwiseXorExprImpl ;
431-
432- private class AddBitwiseXorExpr extends BitwiseXorExprImpl {
433- override CS:: BitwiseXorExpr e ;
434- }
370+ class BitwiseXorOperation extends BinaryOperation {
371+ override CS:: BitwiseXorOperation e ;
435372
436- private class AddAssignXorExpr extends BitwiseXorExprImpl , AssignOperation {
437- override CS:: AssignXorExpr e ;
373+ override TBitXorOp getOp ( ) { any ( ) }
438374 }
439375
440376 /** A left-shift operation. */
441- abstract private class LeftShiftExprImpl extends BinaryOperation {
442- override TLeftShiftOp getOp ( ) { any ( ) }
443- }
377+ class LeftShiftOperation extends BinaryOperation {
378+ override CS:: LeftShiftOperation e ;
444379
445- final class LeftShiftExpr = LeftShiftExprImpl ;
446-
447- private class AddLeftShiftExpr extends LeftShiftExprImpl {
448- override CS:: LeftShiftExpr e ;
449- }
450-
451- private class AddAssignLeftShiftExpr extends LeftShiftExprImpl , AssignOperation {
452- override CS:: AssignLeftShiftExpr e ;
380+ override TLeftShiftOp getOp ( ) { any ( ) }
453381 }
454382
455383 /** A right-shift operation. */
456- abstract private class RightShiftExprImpl extends BinaryOperation {
457- override TRightShiftOp getOp ( ) { any ( ) }
458- }
459-
460- final class RightShiftExpr = RightShiftExprImpl ;
461-
462- private class AddRightShiftExpr extends RightShiftExprImpl {
463- override CS:: RightShiftExpr e ;
464- }
384+ class RightShiftOperation extends BinaryOperation {
385+ override CS:: RightShiftOperation e ;
465386
466- private class AddAssignRightShiftExpr extends RightShiftExprImpl , AssignOperation {
467- override CS:: AssignRightShiftExpr e ;
387+ override TRightShiftOp getOp ( ) { any ( ) }
468388 }
469389
470390 /** An unsigned right-shift operation. */
471- abstract private class UnsignedRightShiftExprImpl extends BinaryOperation {
472- override TUnsignedRightShiftOp getOp ( ) { any ( ) }
473- }
391+ class UnsignedRightShiftOperation extends BinaryOperation {
392+ override CS:: UnsignedRightShiftOperation e ;
474393
475- final class UnsignedRightShiftExpr = UnsignedRightShiftExprImpl ;
476-
477- private class AddUnsignedRightShiftExpr extends UnsignedRightShiftExprImpl {
478- override CS:: UnsignedRightShiftExpr e ;
479- }
480-
481- private class AddAssignUnsignedRightShiftExpr extends UnsignedRightShiftExprImpl , AssignOperation {
482- override CS:: AssignUnsighedRightShiftExpr e ;
394+ override TUnsignedRightShiftOp getOp ( ) { any ( ) }
483395 }
484396
485397 /** A conditional expression. */
0 commit comments