@@ -64,15 +64,15 @@ private module Impl {
6464 e2 .( ExprNode:: PreDecrExpr ) .getOperand ( ) = e1 and delta = - 1
6565 or
6666 exists ( ConstantIntegerExpr x |
67- e2 .( ExprNode:: AddExpr ) .getAnOperand ( ) = e1 and
68- e2 .( ExprNode:: AddExpr ) .getAnOperand ( ) = x and
67+ e2 .( ExprNode:: AddOperation ) .getAnOperand ( ) = e1 and
68+ e2 .( ExprNode:: AddOperation ) .getAnOperand ( ) = x and
6969 e1 != x and
7070 x .getIntValue ( ) = delta
7171 )
7272 or
7373 exists ( ConstantIntegerExpr x |
74- e2 .( ExprNode:: SubExpr ) .getLeftOperand ( ) = e1 and
75- e2 .( ExprNode:: SubExpr ) .getRightOperand ( ) = x and
74+ e2 .( ExprNode:: SubOperation ) .getLeftOperand ( ) = e1 and
75+ e2 .( ExprNode:: SubOperation ) .getRightOperand ( ) = x and
7676 x .getIntValue ( ) = - delta
7777 )
7878 or
@@ -330,168 +330,80 @@ module ExprNode {
330330 }
331331
332332 /** An addition operation. */
333- abstract private class AddExprImpl extends BinaryOperation {
334- override TAddOp getOp ( ) { any ( ) }
335- }
336-
337- final class AddExpr = AddExprImpl ;
338-
339- private class AddAddExpr extends AddExprImpl {
340- override CS:: AddExpr e ;
341- }
333+ class AddOperation extends BinaryOperation {
334+ override CS:: AddOperation e ;
342335
343- private class AddAssignAddExpr extends AddExprImpl , AssignOperation {
344- override CS:: AssignAddExpr e ;
336+ override TAddOp getOp ( ) { any ( ) }
345337 }
346338
347339 /** A subtraction operation. */
348- abstract private class SubExprImpl extends BinaryOperation {
349- override TSubOp getOp ( ) { any ( ) }
350- }
351-
352- final class SubExpr = SubExprImpl ;
340+ class SubOperation extends BinaryOperation {
341+ override CS:: SubOperation e ;
353342
354- private class AddSubExpr extends SubExprImpl {
355- override CS:: SubExpr e ;
356- }
357-
358- private class AddAssignSubExpr extends SubExprImpl , AssignOperation {
359- override CS:: AssignSubExpr e ;
343+ override TSubOp getOp ( ) { any ( ) }
360344 }
361345
362346 /** A multiplication operation. */
363- abstract private class MulExprImpl extends BinaryOperation {
364- override TMulOp getOp ( ) { any ( ) }
365- }
366-
367- final class MulExpr = MulExprImpl ;
368-
369- private class AddMulExpr extends MulExprImpl {
370- override CS:: MulExpr e ;
371- }
347+ class MulOperation extends BinaryOperation {
348+ override CS:: MulOperation e ;
372349
373- private class AddAssignMulExpr extends MulExprImpl , AssignOperation {
374- override CS:: AssignMulExpr e ;
350+ override TMulOp getOp ( ) { any ( ) }
375351 }
376352
377353 /** A division operation. */
378- abstract private class DivExprImpl extends BinaryOperation {
379- override TDivOp getOp ( ) { any ( ) }
380- }
381-
382- final class DivExpr = DivExprImpl ;
354+ class DivOperation extends BinaryOperation {
355+ override CS:: DivOperation e ;
383356
384- private class AddDivExpr extends DivExprImpl {
385- override CS:: DivExpr e ;
386- }
387-
388- private class AddAssignDivExpr extends DivExprImpl , AssignOperation {
389- override CS:: AssignDivExpr e ;
357+ override TDivOp getOp ( ) { any ( ) }
390358 }
391359
392360 /** A remainder operation. */
393- abstract private class RemExprImpl extends BinaryOperation {
394- override TRemOp getOp ( ) { any ( ) }
395- }
396-
397- final class RemExpr = RemExprImpl ;
398-
399- private class AddRemExpr extends RemExprImpl {
400- override CS:: RemExpr e ;
401- }
361+ class RemOperation extends BinaryOperation {
362+ override CS:: RemOperation e ;
402363
403- private class AddAssignRemExpr extends RemExprImpl , AssignOperation {
404- override CS:: AssignRemExpr e ;
364+ override TRemOp getOp ( ) { any ( ) }
405365 }
406366
407367 /** A bitwise-and operation. */
408- abstract private class BitwiseAndExprImpl extends BinaryOperation {
409- override TBitAndOp getOp ( ) { any ( ) }
410- }
411-
412- final class BitwiseAndExpr = BitwiseAndExprImpl ;
368+ class BitwiseAndOperation extends BinaryOperation {
369+ override CS:: BitwiseAndOperation e ;
413370
414- private class AddBitwiseAndExpr extends BitwiseAndExprImpl {
415- override CS:: BitwiseAndExpr e ;
416- }
417-
418- private class AddAssignAndExpr extends BitwiseAndExprImpl , AssignOperation {
419- override CS:: AssignAndExpr e ;
371+ override TBitAndOp getOp ( ) { any ( ) }
420372 }
421373
422374 /** A bitwise-or operation. */
423- abstract private class BitwiseOrExprImpl extends BinaryOperation {
424- override TBitOrOp getOp ( ) { any ( ) }
425- }
375+ class BitwiseOrOperation extends BinaryOperation {
376+ override CS:: BitwiseOrOperation e ;
426377
427- final class BitwiseOrExpr = BitwiseOrExprImpl ;
428-
429- private class AddBitwiseOrExpr extends BitwiseOrExprImpl {
430- override CS:: BitwiseOrExpr e ;
431- }
432-
433- private class AddAssignOrExpr extends BitwiseOrExprImpl , AssignOperation {
434- override CS:: AssignOrExpr e ;
378+ override TBitOrOp getOp ( ) { any ( ) }
435379 }
436380
437381 /** A bitwise-xor operation. */
438- abstract private class BitwiseXorExprImpl extends BinaryOperation {
439- override TBitXorOp getOp ( ) { any ( ) }
440- }
441-
442- final class BitwiseXorExpr = BitwiseXorExprImpl ;
443-
444- private class AddBitwiseXorExpr extends BitwiseXorExprImpl {
445- override CS:: BitwiseXorExpr e ;
446- }
382+ class BitwiseXorOperation extends BinaryOperation {
383+ override CS:: BitwiseXorOperation e ;
447384
448- private class AddAssignXorExpr extends BitwiseXorExprImpl , AssignOperation {
449- override CS:: AssignXorExpr e ;
385+ override TBitXorOp getOp ( ) { any ( ) }
450386 }
451387
452388 /** A left-shift operation. */
453- abstract private class LeftShiftExprImpl extends BinaryOperation {
454- override TLeftShiftOp getOp ( ) { any ( ) }
455- }
389+ class LeftShiftOperation extends BinaryOperation {
390+ override CS:: LeftShiftOperation e ;
456391
457- final class LeftShiftExpr = LeftShiftExprImpl ;
458-
459- private class AddLeftShiftExpr extends LeftShiftExprImpl {
460- override CS:: LeftShiftExpr e ;
461- }
462-
463- private class AddAssignLeftShiftExpr extends LeftShiftExprImpl , AssignOperation {
464- override CS:: AssignLeftShiftExpr e ;
392+ override TLeftShiftOp getOp ( ) { any ( ) }
465393 }
466394
467395 /** A right-shift operation. */
468- abstract private class RightShiftExprImpl extends BinaryOperation {
469- override TRightShiftOp getOp ( ) { any ( ) }
470- }
471-
472- final class RightShiftExpr = RightShiftExprImpl ;
473-
474- private class AddRightShiftExpr extends RightShiftExprImpl {
475- override CS:: RightShiftExpr e ;
476- }
396+ class RightShiftOperation extends BinaryOperation {
397+ override CS:: RightShiftOperation e ;
477398
478- private class AddAssignRightShiftExpr extends RightShiftExprImpl , AssignOperation {
479- override CS:: AssignRightShiftExpr e ;
399+ override TRightShiftOp getOp ( ) { any ( ) }
480400 }
481401
482402 /** An unsigned right-shift operation. */
483- abstract private class UnsignedRightShiftExprImpl extends BinaryOperation {
484- override TUnsignedRightShiftOp getOp ( ) { any ( ) }
485- }
403+ class UnsignedRightShiftOperation extends BinaryOperation {
404+ override CS:: UnsignedRightShiftOperation e ;
486405
487- final class UnsignedRightShiftExpr = UnsignedRightShiftExprImpl ;
488-
489- private class AddUnsignedRightShiftExpr extends UnsignedRightShiftExprImpl {
490- override CS:: UnsignedRightShiftExpr e ;
491- }
492-
493- private class AddAssignUnsignedRightShiftExpr extends UnsignedRightShiftExprImpl , AssignOperation {
494- override CS:: AssignUnsighedRightShiftExpr e ;
406+ override TUnsignedRightShiftOp getOp ( ) { any ( ) }
495407 }
496408
497409 /** A conditional expression. */
0 commit comments