expose new intermediate representation at of_g.ir
diff --git a/loxigen.py b/loxigen.py
index 79e6da8..9d94e68 100755
--- a/loxigen.py
+++ b/loxigen.py
@@ -76,6 +76,7 @@
 import os
 import glob
 import copy
+import collections
 import of_g
 import loxi_front_end.oxm as oxm
 import loxi_front_end.type_maps as type_maps
@@ -415,6 +416,7 @@
     @fixme Should select versions to support from command line
     """
 
+    ofinputs_by_version = collections.defaultdict(lambda: [])
     filenames = sorted(glob.glob("%s/openflow_input/*" % root_dir))
 
     for filename in filenames:
@@ -423,6 +425,7 @@
 
         # Populate global state
         for wire_version in ofinput.wire_versions:
+            ofinputs_by_version[wire_version].append(ofinput)
             version_name = of_g.of_version_wire2name[wire_version]
 
             for ofclass in ofinput.classes:
@@ -447,6 +450,13 @@
                         name, enum.name, value, wire_version,
                         of_g.identifiers, of_g.identifiers_by_group)
 
+        for wire_version, ofinputs in ofinputs_by_version.items():
+            ofprotocol = OFProtocol(wire_version=wire_version, classes=[], enums=[])
+            for ofinput in ofinputs:
+                ofprotocol.classes.extend(ofinput.classes)
+                ofprotocol.enums.extend(ofinput.enums)
+            of_g.ir[wire_version] = ofprotocol
+
 def add_extra_classes():
     """
     Add classes that are generated by Python code instead of from the