From cdf8e5bc4ae78a872298cb7b503fa46cf44fa3ab Mon Sep 17 00:00:00 2001
From: Patrick Baudin <patrick.baudin@cea.fr>
Date: Wed, 19 Jun 2019 10:38:42 +0200
Subject: [PATCH] no semantic change (just reorder some lines)

---
 .../ast_printing/cil_printer.ml               | 71 ++++++++++---------
 1 file changed, 38 insertions(+), 33 deletions(-)

diff --git a/src/kernel_services/ast_printing/cil_printer.ml b/src/kernel_services/ast_printing/cil_printer.ml
index 2c25e5bfaa3..de4e3512654 100644
--- a/src/kernel_services/ast_printing/cil_printer.ml
+++ b/src/kernel_services/ast_printing/cil_printer.ml
@@ -158,13 +158,22 @@ let state =
 *)
 module Precedence = struct
 
-  let derefStarLevel = 20      (* 23 [%left DOT ARROW LSQUARE] *)
-  let indexLevel = 20          (* 23 [%left DOT ARROW LSQUARE] *)
-  let arrowLevel = 20          (* 23 [%left DOT ARROW LSQUARE] *)
-  let addrOfLevel = 30         (* 21 [%right prec_cast TILDE NOT prec_unary_op] *)
-  let multiplicativeLevel = 40 (* 20 [%left STAR SLASH PERCENT] *)
-  let additiveLevel = 60       (* 19 [%left PLUS MINUS] *)
-  let comparativeLevel = 70    (* 17 [%left LT] *)
+  let upperLevel = 110          (* Occurence order in [logic_parser.mly]: 
+                                   1 [%right prec_named]
+                                   2 [%nonassoc TYPENAME] *)
+  let questionLevel = 100 (* Pif, Aquestion:
+                                   4 [%right QUESTION prec_question] *)
+  let binderLevel = 90          (* 3 [%nonassoc prec_forall prec_exists prec_lambda LET] *)
+
+  (* Be careful if you change the relative order of these 3 levels *)
+  let or_level = 85             (* 7 [%left OR] *)
+  let xor_level = 84            (* 8 [%left HATHAT] *)
+  let and_level = 83            (* 9 [%left AND] *)
+  let assoc_connector_level x =
+    and_level <= x && x <= or_level
+
+  let logic_level = 77 (* Tif:     4 [%right QUESTION prec_question] *)
+
   let bitwiseLevel = 75        (* 10 [%left BIFF]
                                   11 [%right BIMPLIES]
                                   12 [%left PIPE]
@@ -172,21 +181,14 @@ module Precedence = struct
                                   14 [%left STARHAT] (releted to \repeat)
                                   15 [%nonassoc IN] ???
                                   16 [%left AMP] *)
-  let logic_level = 77 (* Tif:
-                                   4 [%right QUESTION prec_question] *)
-
-  (* Be careful if you change the relative order of these 3 levels *)
-  let and_level = 83            (* 9 [%left AND] *)
-  let xor_level = 84            (* 8 [%left HATHAT] *)
-  let or_level = 85             (* 7 [%left OR] *)
-  let assoc_connector_level x =
-    and_level <= x && x <= or_level
+  let comparativeLevel = 70    (* 17 [%left LT] *)
+  let additiveLevel = 60       (* 19 [%left PLUS MINUS] *)
+  let multiplicativeLevel = 40 (* 20 [%left STAR SLASH PERCENT] *)
+  let addrOfLevel = 30         (* 21 [%right prec_cast TILDE NOT prec_unary_op] *)
+  let derefStarLevel = 20      (* 23 [%left DOT ARROW LSQUARE] *)
+  let indexLevel = 20          (* 23 [%left DOT ARROW LSQUARE] *)
+  let arrowLevel = 20          (* 23 [%left DOT ARROW LSQUARE] *)
 
-  let binderLevel = 90          (* 3 [%nonassoc prec_forall prec_exists prec_lambda LET] *)
-  let questionLevel = 100 (* Pif, Aquestion:
-                                   4 [%right QUESTION prec_question] *)
-  let upperLevel = 110          (* 2 [%nonassoc TYPENAME]
-                                   1 [%right prec_named] *)
 
   (* is this predicate the encoding of [\in]? If so, return its arguments. *)
   let subset_is_backslash_in p = match p with
@@ -209,21 +211,24 @@ module Precedence = struct
     | Pseparated _
     | Pat _
     | Pfresh _ -> 0
-    | Papp _ as p -> if subset_is_backslash_in p = None then 0 else 36
-    | Pnot _ -> 30               (* 21 [%right prec_cast TILDE NOT prec_unary_op] *)
-    | Psubtype _ -> 75           (* 22 [%nonassoc LTCOLON COLONGT] *)
 
-    | Pand _ -> and_level         (* 9 [%left AND] *)
-    | Pxor _ -> xor_level         (* 8 [%left HATHAT] *)
-    | Por _ -> or_level           (* 7 [%left OR] *)
-    | Pimplies _ -> 87 (* and 88 for positive side *)
-                                  (* 4 [%right IMPLIES] *)
-    | Piff _ -> 89                (* 5 [%left IFF] *)
-    | Pif _ -> questionLevel      (* 4 [%right QUESTION prec_question] *)
-    | Prel _ -> comparativeLevel  (* 18 [%left LT] *)
     | Plet _
     | Pforall _
-    | Pexists _ -> binderLevel    (* 3 [%nonassoc prec_forall prec_exists prec_lambda LET] *)
+    | Pexists _ -> binderLevel    (* Occurence order in [logic_parser.mly]: 
+                                     3 [%nonassoc prec_forall prec_exists prec_lambda LET] *)
+    | Pif _ -> questionLevel      (* 4 [%right QUESTION prec_question] *)
+    | Piff _ -> 89                (* 5 [%left IFF] *)
+    | Pimplies _ -> 87 (* and 88 for positive side *)
+                                  (* 6 [%right IMPLIES] *)
+    | Por _ -> or_level           (* 7 [%left OR] *)
+    | Pxor _ -> xor_level         (* 8 [%left HATHAT] *)
+    | Pand _ -> and_level         (* 9 [%left AND] *)
+
+    | Papp _ as p -> if subset_is_backslash_in p = None
+      then 0 else 36             (* 15 [%nonassoc IN] ??? *)
+    | Prel _ -> comparativeLevel (* 18 [%left LT] *)
+    | Pnot _ -> 30               (* 21 [%right prec_cast TILDE NOT prec_unary_op] *)
+    | Psubtype _ -> 75           (* 22 [%nonassoc LTCOLON COLONGT] *)
 
   let compareLevel x y =
     if assoc_connector_level x && assoc_connector_level y then 0
-- 
GitLab