|
@@ -14,18 +14,10 @@ virtual context
|
|
virtual org
|
|
virtual org
|
|
virtual report
|
|
virtual report
|
|
|
|
|
|
-@ifm@
|
|
|
|
-expression *E;
|
|
|
|
-statement S1,S2;
|
|
|
|
-position p1;
|
|
|
|
-@@
|
|
|
|
-
|
|
|
|
-if@p1 ((E == NULL && ...) || ...) S1 else S2
|
|
|
|
-
|
|
|
|
// The following two rules are separate, because both can match a single
|
|
// The following two rules are separate, because both can match a single
|
|
// expression in different ways
|
|
// expression in different ways
|
|
@pr1 expression@
|
|
@pr1 expression@
|
|
-expression *ifm.E;
|
|
|
|
|
|
+expression E;
|
|
identifier f;
|
|
identifier f;
|
|
position p1;
|
|
position p1;
|
|
@@
|
|
@@
|
|
@@ -33,7 +25,7 @@ position p1;
|
|
(E != NULL && ...) ? <+...E->f@p1...+> : ...
|
|
(E != NULL && ...) ? <+...E->f@p1...+> : ...
|
|
|
|
|
|
@pr2 expression@
|
|
@pr2 expression@
|
|
-expression *ifm.E;
|
|
|
|
|
|
+expression E;
|
|
identifier f;
|
|
identifier f;
|
|
position p2;
|
|
position p2;
|
|
@@
|
|
@@
|
|
@@ -46,6 +38,14 @@ position p2;
|
|
sizeof(<+...E->f@p2...+>)
|
|
sizeof(<+...E->f@p2...+>)
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+@ifm@
|
|
|
|
+expression *E;
|
|
|
|
+statement S1,S2;
|
|
|
|
+position p1;
|
|
|
|
+@@
|
|
|
|
+
|
|
|
|
+if@p1 ((E == NULL && ...) || ...) S1 else S2
|
|
|
|
+
|
|
// For org and report modes
|
|
// For org and report modes
|
|
|
|
|
|
@r depends on !context && (org || report) exists@
|
|
@r depends on !context && (org || report) exists@
|
|
@@ -212,16 +212,8 @@ else S3
|
|
// The following three rules are duplicates of ifm, pr1 and pr2 respectively.
|
|
// The following three rules are duplicates of ifm, pr1 and pr2 respectively.
|
|
// It is need because the previous rule as already made a "change".
|
|
// It is need because the previous rule as already made a "change".
|
|
|
|
|
|
-@ifm1 depends on context && !org && !report@
|
|
|
|
-expression *E;
|
|
|
|
-statement S1,S2;
|
|
|
|
-position p1;
|
|
|
|
-@@
|
|
|
|
-
|
|
|
|
-if@p1 ((E == NULL && ...) || ...) S1 else S2
|
|
|
|
-
|
|
|
|
@pr11 depends on context && !org && !report expression@
|
|
@pr11 depends on context && !org && !report expression@
|
|
-expression *ifm1.E;
|
|
|
|
|
|
+expression E;
|
|
identifier f;
|
|
identifier f;
|
|
position p1;
|
|
position p1;
|
|
@@
|
|
@@
|
|
@@ -229,7 +221,7 @@ position p1;
|
|
(E != NULL && ...) ? <+...E->f@p1...+> : ...
|
|
(E != NULL && ...) ? <+...E->f@p1...+> : ...
|
|
|
|
|
|
@pr12 depends on context && !org && !report expression@
|
|
@pr12 depends on context && !org && !report expression@
|
|
-expression *ifm1.E;
|
|
|
|
|
|
+expression E;
|
|
identifier f;
|
|
identifier f;
|
|
position p2;
|
|
position p2;
|
|
@@
|
|
@@
|
|
@@ -242,6 +234,14 @@ position p2;
|
|
sizeof(<+...E->f@p2...+>)
|
|
sizeof(<+...E->f@p2...+>)
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+@ifm1 depends on context && !org && !report@
|
|
|
|
+expression *E;
|
|
|
|
+statement S1,S2;
|
|
|
|
+position p1;
|
|
|
|
+@@
|
|
|
|
+
|
|
|
|
+if@p1 ((E == NULL && ...) || ...) S1 else S2
|
|
|
|
+
|
|
@depends on context && !org && !report exists@
|
|
@depends on context && !org && !report exists@
|
|
expression subE <= ifm1.E;
|
|
expression subE <= ifm1.E;
|
|
expression *ifm1.E;
|
|
expression *ifm1.E;
|