Various fixes to get a P4Runtime demo that works

Change-Id: Icab512fceeb6ec0faf1b402c1e325e055cdb2caf
diff --git a/tools/test/p4src/p4-16/default.p4 b/tools/test/p4src/p4-16/default.p4
index 86ed4ee..c571331 100644
--- a/tools/test/p4src/p4-16/default.p4
+++ b/tools/test/p4src/p4-16/default.p4
@@ -31,11 +31,22 @@
 
 control ingress(inout headers_t hdr, inout metadata_t meta, inout standard_metadata_t standard_metadata) {
 
+    /*
+    FIXME:
+    It seems that with BMv2 it is not possible to use the same indirect table (like table0 with the
+    implementation attribute enabled), with table entries that use direct actions (e.g. send_to_cpu()).
+    A separate table for ECMP should be created.
+    */
+
     direct_counter(CounterType.packets) table0_counter;
-    action_selector(HashAlgorithm.crc16, 32w64, 32w16) ecmp_selector;
+    // action_selector(HashAlgorithm.crc16, 32w64, 32w16) ecmp_selector;
 
     table table0 {
-        support_timeout = true;
+        /*
+        Disabling timeout here as P4runtime doesn't allow setting timeouts.
+        This way the FlowRuleTranslator will produce instances of PiTableEntry without timeout.
+        */
+        support_timeout = false;
         key = {
             standard_metadata.ingress_port : ternary;
             hdr.ethernet.dstAddr           : ternary;
@@ -43,13 +54,13 @@
             hdr.ethernet.etherType         : ternary;
             // Not for matching.
             // Inputs to the hash function of the action selector.
-            hdr.ipv4.srcAddr               : selector;
+            /* hdr.ipv4.srcAddr               : selector;
             hdr.ipv4.dstAddr               : selector;
             hdr.ipv4.protocol              : selector;
             hdr.tcp.srcPort                : selector;
             hdr.tcp.dstPort                : selector;
             hdr.udp.srcPort                : selector;
-            hdr.udp.dstPort                : selector;
+            hdr.udp.dstPort                : selector; */
         }
         actions = {
             set_egress_port(standard_metadata);
@@ -57,7 +68,7 @@
             drop(standard_metadata);
         }
         counters = table0_counter;
-        implementation = ecmp_selector;
+        // implementation = ecmp_selector;
     }
 
     PacketIoIngressControl() packet_io_ingress_control;
diff --git a/tools/test/p4src/p4-16/include/packet_io.p4 b/tools/test/p4src/p4-16/include/packet_io.p4
index 49fe650..6186761 100644
--- a/tools/test/p4src/p4-16/include/packet_io.p4
+++ b/tools/test/p4src/p4-16/include/packet_io.p4
@@ -28,7 +28,7 @@
 control PacketIoEgressControl(inout headers_t hdr, inout standard_metadata_t standard_metadata) {
     apply {
         hdr.packet_out.setInvalid();
-        if (standard_metadata.egress_spec == CPU_PORT) {
+        if (standard_metadata.egress_port == CPU_PORT) {
             hdr.packet_in.setValid();
             hdr.packet_in.ingress_port = standard_metadata.ingress_port;
         }
diff --git a/tools/test/p4src/p4-16/p4c-out/default.json b/tools/test/p4src/p4-16/p4c-out/default.json
index 1d6dcbf..7a26032d 100644
--- a/tools/test/p4src/p4-16/p4c-out/default.json
+++ b/tools/test/p4src/p4-16/p4c-out/default.json
@@ -2486,7 +2486,7 @@
           ],
           "source_info" : {
             "filename" : "include/packet_io.p4",
-            "line" : 7,
+            "line" : 23,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
           }
@@ -2605,7 +2605,7 @@
           ],
           "source_info" : {
             "filename" : "include/packet_io.p4",
-            "line" : 16,
+            "line" : 32,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.setValid()"
           }
@@ -2624,7 +2624,7 @@
           ],
           "source_info" : {
             "filename" : "include/packet_io.p4",
-            "line" : 17,
+            "line" : 33,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
           }
@@ -2646,7 +2646,7 @@
           ],
           "source_info" : {
             "filename" : "include/packet_io.p4",
-            "line" : 14,
+            "line" : 30,
             "column" : 8,
             "source_fragment" : "hdr.packet_out.setInvalid()"
           }
@@ -2660,7 +2660,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "default.p4",
-        "line" : 16,
+        "line" : 32,
         "column" : 8,
         "source_fragment" : "ingress"
       },
@@ -2694,7 +2694,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "default.p4",
-            "line" : 21,
+            "line" : 44,
             "column" : 10,
             "source_fragment" : "table0"
           },
@@ -2721,8 +2721,7 @@
             }
           ],
           "match_type" : "ternary",
-          "type" : "indirect_ws",
-          "action_profile" : "ecmp_selector",
+          "type" : "simple",
           "max_size" : 1024,
           "support_timeout" : false,
           "direct_meters" : null,
@@ -2734,6 +2733,12 @@
             "send_to_cpu" : "node_6",
             "drop" : "node_6",
             "NoAction" : "node_6"
+          },
+          "default_entry" : {
+            "action_id" : 3,
+            "action_const" : false,
+            "action_data" : [],
+            "action_entry_const" : false
           }
         },
         {
@@ -2760,53 +2765,14 @@
           }
         }
       ],
-      "action_profiles" : [
-        {
-          "name" : "ecmp_selector",
-          "id" : 0,
-          "max_size" : 64,
-          "selector" : {
-            "algo" : "crc16",
-            "input" : [
-              {
-                "type" : "field",
-                "value" : ["ipv4", "srcAddr"]
-              },
-              {
-                "type" : "field",
-                "value" : ["ipv4", "dstAddr"]
-              },
-              {
-                "type" : "field",
-                "value" : ["ipv4", "protocol"]
-              },
-              {
-                "type" : "field",
-                "value" : ["tcp", "srcPort"]
-              },
-              {
-                "type" : "field",
-                "value" : ["tcp", "dstPort"]
-              },
-              {
-                "type" : "field",
-                "value" : ["udp", "srcPort"]
-              },
-              {
-                "type" : "field",
-                "value" : ["udp", "dstPort"]
-              }
-            ]
-          }
-        }
-      ],
+      "action_profiles" : [],
       "conditionals" : [
         {
           "name" : "node_2",
           "id" : 0,
           "source_info" : {
             "filename" : "include/packet_io.p4",
-            "line" : 6,
+            "line" : 22,
             "column" : 12,
             "source_fragment" : "hdr.packet_out.isValid()"
           },
@@ -2832,7 +2798,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "default.p4",
-            "line" : 52,
+            "line" : 79,
             "column" : 13,
             "source_fragment" : "hdr.packet_out.isValid()"
           },
@@ -2886,7 +2852,7 @@
       "id" : 1,
       "source_info" : {
         "filename" : "default.p4",
-        "line" : 60,
+        "line" : 87,
         "column" : 8,
         "source_fragment" : "egress"
       },
@@ -2946,9 +2912,9 @@
           "id" : 3,
           "source_info" : {
             "filename" : "include/packet_io.p4",
-            "line" : 15,
+            "line" : 31,
             "column" : 12,
-            "source_fragment" : "standard_metadata.egress_spec == CPU_PORT"
+            "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
           },
           "expression" : {
             "type" : "expression",
@@ -2956,7 +2922,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["standard_metadata", "egress_spec"]
+                "value" : ["standard_metadata", "egress_port"]
               },
               "right" : {
                 "type" : "hexstr",
diff --git a/tools/test/p4src/p4-16/p4c-out/default.p4info b/tools/test/p4src/p4-16/p4c-out/default.p4info
index f898190..bf37f15 100644
--- a/tools/test/p4src/p4-16/p4c-out/default.p4info
+++ b/tools/test/p4src/p4-16/p4c-out/default.p4info
@@ -41,10 +41,8 @@
     id: 16800567
     annotations: "@defaultonly()"
   }
-  implementation_id: 285227860
   direct_resource_ids: 301990488
   size: 1024
-  with_entry_timeout: true
 }
 actions {
   preamble {
@@ -79,16 +77,6 @@
     alias: "NoAction"
   }
 }
-action_profiles {
-  preamble {
-    id: 285227860
-    name: "ecmp_selector"
-    alias: "ecmp_selector"
-  }
-  table_ids: 33617813
-  with_selector: true
-  size: 64
-}
 counters {
   preamble {
     id: 302025528
diff --git a/tools/test/p4src/p4-16/p4c-out/ecmp.json b/tools/test/p4src/p4-16/p4c-out/ecmp.json
index a441844..c416184 100644
--- a/tools/test/p4src/p4-16/p4c-out/ecmp.json
+++ b/tools/test/p4src/p4-16/p4c-out/ecmp.json
@@ -419,7 +419,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/parsers.p4",
-        "line" : 64,
+        "line" : 48,
         "column" : 8,
         "source_fragment" : "DeparserImpl"
       },
@@ -445,7 +445,7 @@
       "id" : 2,
       "source_info" : {
         "filename" : "include/port_counters.p4",
-        "line" : 22,
+        "line" : 6,
         "column" : 38,
         "source_fragment" : "egress_port_counter"
       },
@@ -457,7 +457,7 @@
       "id" : 3,
       "source_info" : {
         "filename" : "include/port_counters.p4",
-        "line" : 23,
+        "line" : 7,
         "column" : 38,
         "source_fragment" : "ingress_port_counter"
       },
@@ -529,7 +529,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -548,7 +548,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -567,7 +567,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -586,7 +586,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -605,7 +605,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -624,7 +624,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -643,7 +643,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -662,7 +662,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -681,7 +681,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -700,7 +700,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -719,7 +719,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -738,7 +738,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -757,7 +757,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -776,7 +776,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -795,7 +795,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -814,7 +814,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -833,7 +833,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -852,7 +852,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 27,
+            "line" : 11,
             "column" : 4,
             "source_fragment" : "standard_metadata.egress_spec = port"
           }
@@ -871,7 +871,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -890,7 +890,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -909,7 +909,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -928,7 +928,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -947,7 +947,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -966,7 +966,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -985,7 +985,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1004,7 +1004,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1023,7 +1023,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1042,7 +1042,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1061,7 +1061,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1080,7 +1080,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1099,7 +1099,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1118,7 +1118,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1137,7 +1137,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1156,7 +1156,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1175,7 +1175,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1206,7 +1206,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1225,7 +1225,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1244,7 +1244,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1263,7 +1263,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1282,7 +1282,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1301,7 +1301,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1320,7 +1320,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1339,7 +1339,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1358,7 +1358,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1377,7 +1377,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1396,7 +1396,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1415,7 +1415,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1434,7 +1434,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1453,7 +1453,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1472,7 +1472,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1491,7 +1491,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1510,7 +1510,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1529,7 +1529,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 27,
+            "line" : 11,
             "column" : 4,
             "source_fragment" : "standard_metadata.egress_spec = port"
           }
@@ -1548,7 +1548,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1567,7 +1567,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1586,7 +1586,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1605,7 +1605,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1624,7 +1624,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1643,7 +1643,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1662,7 +1662,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1681,7 +1681,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1700,7 +1700,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1719,7 +1719,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1738,7 +1738,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1757,7 +1757,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1776,7 +1776,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1795,7 +1795,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1814,7 +1814,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1833,7 +1833,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1852,7 +1852,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1890,7 +1890,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1909,7 +1909,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1928,7 +1928,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1947,7 +1947,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1966,7 +1966,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1985,7 +1985,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2004,7 +2004,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2023,7 +2023,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2042,7 +2042,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2061,7 +2061,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2080,7 +2080,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2099,7 +2099,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2118,7 +2118,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2137,7 +2137,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2156,7 +2156,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2175,7 +2175,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2194,7 +2194,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2213,9 +2213,9 @@
           ],
           "source_info" : {
             "filename" : "include/defines.p4",
-            "line" : 28,
+            "line" : 12,
             "column" : 24,
-            "source_fragment" : "0x00FF; ..."
+            "source_fragment" : "255; ..."
           }
         },
         {
@@ -2232,7 +2232,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2251,7 +2251,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2270,7 +2270,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2289,7 +2289,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2308,7 +2308,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2327,7 +2327,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2346,7 +2346,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2365,7 +2365,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2384,7 +2384,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2403,7 +2403,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2422,7 +2422,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2441,7 +2441,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2460,7 +2460,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2479,7 +2479,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2498,7 +2498,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2517,7 +2517,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2536,7 +2536,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2562,7 +2562,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2581,7 +2581,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2600,7 +2600,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2619,7 +2619,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2638,7 +2638,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2657,7 +2657,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2676,7 +2676,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2695,7 +2695,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2714,7 +2714,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2733,7 +2733,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2752,7 +2752,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2771,7 +2771,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2790,7 +2790,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2809,7 +2809,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2828,7 +2828,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2847,7 +2847,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2866,7 +2866,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2885,7 +2885,7 @@
           ],
           "source_info" : {
             "filename" : "include/defines.p4",
-            "line" : 29,
+            "line" : 13,
             "column" : 25,
             "source_fragment" : "511; ..."
           }
@@ -2904,7 +2904,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2923,7 +2923,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2942,7 +2942,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2961,7 +2961,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2980,7 +2980,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2999,7 +2999,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3018,7 +3018,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3037,7 +3037,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3056,7 +3056,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3075,7 +3075,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3094,7 +3094,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3113,7 +3113,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3132,7 +3132,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3151,7 +3151,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3170,7 +3170,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3189,7 +3189,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3208,7 +3208,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3243,7 +3243,7 @@
           ],
           "source_info" : {
             "filename" : "ecmp.p4",
-            "line" : 48,
+            "line" : 32,
             "column" : 8,
             "source_fragment" : "meta.ecmp_metadata.group_id = group_id"
           }
@@ -3296,7 +3296,7 @@
           ],
           "source_info" : {
             "filename" : "ecmp.p4",
-            "line" : 49,
+            "line" : 33,
             "column" : 8,
             "source_fragment" : "hash(meta.ecmp_metadata.selector, HashAlgorithm.crc16, (bit<64>)0, ..."
           }
@@ -3374,7 +3374,7 @@
           ],
           "source_info" : {
             "filename" : "include/port_counters.p4",
-            "line" : 27,
+            "line" : 11,
             "column" : 12,
             "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
           }
@@ -3419,7 +3419,7 @@
           ],
           "source_info" : {
             "filename" : "include/port_counters.p4",
-            "line" : 28,
+            "line" : 12,
             "column" : 12,
             "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
           }
@@ -3496,7 +3496,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "ecmp.p4",
-        "line" : 42,
+        "line" : 26,
         "column" : 8,
         "source_fragment" : "ingress"
       },
@@ -3530,7 +3530,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "ecmp.p4",
-            "line" : 66,
+            "line" : 50,
             "column" : 10,
             "source_fragment" : "table0"
           },
@@ -3583,7 +3583,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "ecmp.p4",
-            "line" : 55,
+            "line" : 39,
             "column" : 10,
             "source_fragment" : "ecmp_group_table"
           },
@@ -3675,7 +3675,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "ecmp.p4",
-            "line" : 88,
+            "line" : 72,
             "column" : 13,
             "source_fragment" : "hdr.packet_out.isValid()"
           },
@@ -3701,7 +3701,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/port_counters.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_spec < 254"
           },
@@ -3729,7 +3729,7 @@
       "id" : 1,
       "source_info" : {
         "filename" : "ecmp.p4",
-        "line" : 99,
+        "line" : 83,
         "column" : 8,
         "source_fragment" : "egress"
       },
@@ -3791,7 +3791,7 @@
             "filename" : "include/packet_io.p4",
             "line" : 31,
             "column" : 12,
-            "source_fragment" : "standard_metadata.egress_spec == CPU_PORT"
+            "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
           },
           "expression" : {
             "type" : "expression",
@@ -3799,7 +3799,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["standard_metadata", "egress_spec"]
+                "value" : ["standard_metadata", "egress_port"]
               },
               "right" : {
                 "type" : "hexstr",
diff --git a/tools/test/p4src/p4-16/p4c-out/empty.json b/tools/test/p4src/p4-16/p4c-out/empty.json
index 8da30fa..d308780 100644
--- a/tools/test/p4src/p4-16/p4c-out/empty.json
+++ b/tools/test/p4src/p4-16/p4c-out/empty.json
@@ -107,7 +107,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "empty.p4",
-        "line" : 60,
+        "line" : 44,
         "column" : 8,
         "source_fragment" : "DeparserImpl"
       },
@@ -145,7 +145,7 @@
           ],
           "source_info" : {
             "filename" : "empty.p4",
-            "line" : 39,
+            "line" : 23,
             "column" : 8,
             "source_fragment" : "meta.dummy_metadata.dummyField = 8w1"
           }
@@ -159,7 +159,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "empty.p4",
-        "line" : 37,
+        "line" : 21,
         "column" : 8,
         "source_fragment" : "ingress"
       },
@@ -170,7 +170,7 @@
           "id" : 0,
           "source_info" : {
             "filename" : "empty.p4",
-            "line" : 41,
+            "line" : 25,
             "column" : 10,
             "source_fragment" : "table0"
           },
@@ -210,7 +210,7 @@
       "id" : 1,
       "source_info" : {
         "filename" : "empty.p4",
-        "line" : 54,
+        "line" : 38,
         "column" : 8,
         "source_fragment" : "egress"
       },
diff --git a/tools/test/p4src/p4-16/p4c-out/wcmp.json b/tools/test/p4src/p4-16/p4c-out/wcmp.json
index eeb1bcc..6e57c49 100644
--- a/tools/test/p4src/p4-16/p4c-out/wcmp.json
+++ b/tools/test/p4src/p4-16/p4c-out/wcmp.json
@@ -419,7 +419,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/parsers.p4",
-        "line" : 64,
+        "line" : 48,
         "column" : 8,
         "source_fragment" : "DeparserImpl"
       },
@@ -445,7 +445,7 @@
       "id" : 2,
       "source_info" : {
         "filename" : "include/port_counters.p4",
-        "line" : 22,
+        "line" : 6,
         "column" : 38,
         "source_fragment" : "egress_port_counter"
       },
@@ -457,7 +457,7 @@
       "id" : 3,
       "source_info" : {
         "filename" : "include/port_counters.p4",
-        "line" : 23,
+        "line" : 7,
         "column" : 38,
         "source_fragment" : "ingress_port_counter"
       },
@@ -529,7 +529,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -548,7 +548,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -567,7 +567,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -586,7 +586,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -605,7 +605,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -624,7 +624,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -643,7 +643,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -662,7 +662,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -681,7 +681,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -700,7 +700,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -719,7 +719,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -738,7 +738,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -757,7 +757,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -776,7 +776,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -795,7 +795,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -814,7 +814,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -833,7 +833,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -852,7 +852,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 27,
+            "line" : 11,
             "column" : 4,
             "source_fragment" : "standard_metadata.egress_spec = port"
           }
@@ -871,7 +871,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -890,7 +890,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -909,7 +909,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -928,7 +928,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -947,7 +947,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -966,7 +966,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -985,7 +985,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1004,7 +1004,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1023,7 +1023,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1042,7 +1042,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1061,7 +1061,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1080,7 +1080,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1099,7 +1099,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1118,7 +1118,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1137,7 +1137,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1156,7 +1156,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1175,7 +1175,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1206,7 +1206,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1225,7 +1225,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1244,7 +1244,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1263,7 +1263,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1282,7 +1282,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1301,7 +1301,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1320,7 +1320,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1339,7 +1339,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1358,7 +1358,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1377,7 +1377,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1396,7 +1396,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1415,7 +1415,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1434,7 +1434,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1453,7 +1453,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1472,7 +1472,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1491,7 +1491,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1510,7 +1510,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1529,7 +1529,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 27,
+            "line" : 11,
             "column" : 4,
             "source_fragment" : "standard_metadata.egress_spec = port"
           }
@@ -1548,7 +1548,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1567,7 +1567,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1586,7 +1586,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1605,7 +1605,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1624,7 +1624,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1643,7 +1643,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1662,7 +1662,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1681,7 +1681,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1700,7 +1700,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1719,7 +1719,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1738,7 +1738,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1757,7 +1757,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1776,7 +1776,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1795,7 +1795,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1814,7 +1814,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1833,7 +1833,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1852,7 +1852,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 49,
             "source_fragment" : "standard_metadata, port_t port) { ..."
           }
@@ -1878,7 +1878,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1897,7 +1897,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1916,7 +1916,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1935,7 +1935,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1954,7 +1954,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1973,7 +1973,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -1992,7 +1992,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2011,7 +2011,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2030,7 +2030,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2049,7 +2049,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2068,7 +2068,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2087,7 +2087,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2106,7 +2106,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2125,7 +2125,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2144,7 +2144,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2163,7 +2163,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2182,7 +2182,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2201,9 +2201,9 @@
           ],
           "source_info" : {
             "filename" : "include/defines.p4",
-            "line" : 28,
+            "line" : 12,
             "column" : 24,
-            "source_fragment" : "0x00FF; ..."
+            "source_fragment" : "255; ..."
           }
         },
         {
@@ -2220,7 +2220,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2239,7 +2239,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2258,7 +2258,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2277,7 +2277,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2296,7 +2296,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2315,7 +2315,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2334,7 +2334,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2353,7 +2353,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2372,7 +2372,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2391,7 +2391,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2410,7 +2410,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2429,7 +2429,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2448,7 +2448,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2467,7 +2467,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2486,7 +2486,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2505,7 +2505,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2524,7 +2524,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 22,
+            "line" : 6,
             "column" : 45,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2550,7 +2550,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2569,7 +2569,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2588,7 +2588,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2607,7 +2607,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2626,7 +2626,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2645,7 +2645,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2664,7 +2664,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2683,7 +2683,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2702,7 +2702,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2721,7 +2721,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2740,7 +2740,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2759,7 +2759,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2778,7 +2778,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2797,7 +2797,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2816,7 +2816,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2835,7 +2835,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2854,7 +2854,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2873,7 +2873,7 @@
           ],
           "source_info" : {
             "filename" : "include/defines.p4",
-            "line" : 29,
+            "line" : 13,
             "column" : 25,
             "source_fragment" : "511; ..."
           }
@@ -2892,7 +2892,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2911,7 +2911,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2930,7 +2930,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2949,7 +2949,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2968,7 +2968,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -2987,7 +2987,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3006,7 +3006,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3025,7 +3025,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3044,7 +3044,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3063,7 +3063,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3082,7 +3082,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3101,7 +3101,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3120,7 +3120,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3139,7 +3139,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3158,7 +3158,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3177,7 +3177,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3196,7 +3196,7 @@
           ],
           "source_info" : {
             "filename" : "include/actions.p4",
-            "line" : 30,
+            "line" : 14,
             "column" : 38,
             "source_fragment" : "standard_metadata) { ..."
           }
@@ -3239,7 +3239,7 @@
           ],
           "source_info" : {
             "filename" : "wcmp.p4",
-            "line" : 50,
+            "line" : 34,
             "column" : 8,
             "source_fragment" : "meta.wcmp_metadata.group_id = group_id"
           }
@@ -3266,7 +3266,7 @@
           ],
           "source_info" : {
             "filename" : "wcmp.p4",
-            "line" : 51,
+            "line" : 35,
             "column" : 8,
             "source_fragment" : "hash(meta.wcmp_metadata.numBits, HashAlgorithm.crc16, (bit<64>)2, ..."
           }
@@ -3375,7 +3375,7 @@
           ],
           "source_info" : {
             "filename" : "wcmp.p4",
-            "line" : 58,
+            "line" : 42,
             "column" : 8,
             "source_fragment" : "meta.wcmp_metadata.selector = ((ONE << meta.wcmp_metadata.numBits) - ONE) << (64 - meta.wcmp_metadata.numBits)"
           }
@@ -3453,7 +3453,7 @@
           ],
           "source_info" : {
             "filename" : "include/port_counters.p4",
-            "line" : 27,
+            "line" : 11,
             "column" : 12,
             "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
           }
@@ -3498,7 +3498,7 @@
           ],
           "source_info" : {
             "filename" : "include/port_counters.p4",
-            "line" : 28,
+            "line" : 12,
             "column" : 12,
             "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
           }
@@ -3575,7 +3575,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "wcmp.p4",
-        "line" : 44,
+        "line" : 28,
         "column" : 8,
         "source_fragment" : "ingress"
       },
@@ -3609,7 +3609,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "wcmp.p4",
-            "line" : 61,
+            "line" : 45,
             "column" : 10,
             "source_fragment" : "table0"
           },
@@ -3685,7 +3685,7 @@
           "id" : 3,
           "source_info" : {
             "filename" : "wcmp.p4",
-            "line" : 78,
+            "line" : 62,
             "column" : 10,
             "source_fragment" : "wcmp_group_table"
           },
@@ -3777,7 +3777,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "wcmp.p4",
-            "line" : 94,
+            "line" : 78,
             "column" : 13,
             "source_fragment" : "hdr.packet_out.isValid()"
           },
@@ -3803,7 +3803,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/port_counters.p4",
-            "line" : 26,
+            "line" : 10,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_spec < 254"
           },
@@ -3831,7 +3831,7 @@
       "id" : 1,
       "source_info" : {
         "filename" : "wcmp.p4",
-        "line" : 106,
+        "line" : 90,
         "column" : 8,
         "source_fragment" : "egress"
       },
@@ -3893,7 +3893,7 @@
             "filename" : "include/packet_io.p4",
             "line" : 31,
             "column" : 12,
-            "source_fragment" : "standard_metadata.egress_spec == CPU_PORT"
+            "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
           },
           "expression" : {
             "type" : "expression",
@@ -3901,7 +3901,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["standard_metadata", "egress_spec"]
+                "value" : ["standard_metadata", "egress_port"]
               },
               "right" : {
                 "type" : "hexstr",