use identifiers parsed from input files
diff --git a/loxigen.py b/loxigen.py
index d72e9e2..aa2b49f 100755
--- a/loxigen.py
+++ b/loxigen.py
@@ -85,6 +85,7 @@
import loxi_front_end.identifiers as identifiers
import pyparsing
import loxi_front_end.parser as parser
+import loxi_front_end.translation as translation
from generic_utils import *
@@ -343,6 +344,10 @@
# Clone class into header class and add to list
ofinput.classes[name + "_header"] = members[:]
ofinput.ordered_classes.append(name + "_header")
+ if s[0] == 'enum':
+ name = s[1]
+ members = s[2]
+ ofinput.enums[name] = [(x[0], x[1]) for x in members]
elif s[0] == 'metadata':
if s[1] == 'version':
log("Found version: wire version " + s[2])
@@ -464,6 +469,13 @@
versions[version_name]['classes'].update(copy.deepcopy(ofinput.classes))
of_g.ordered_classes[wire_version].extend(ofinput.ordered_classes)
+ for enum_name, members in ofinput.enums.items():
+ for member_name, value in members:
+ identifiers.add_identifier(
+ translation.loxi_name(member_name),
+ member_name, enum_name, value, wire_version,
+ of_g.identifiers, of_g.identifiers_by_group)
+
def add_extra_classes():
"""
Add classes that are generated by Python code instead of from the
diff --git a/of_g.py b/of_g.py
index 87da1c9..6c8144f 100644
--- a/of_g.py
+++ b/of_g.py
@@ -522,3 +522,4 @@
self.wire_versions = set()
self.classes = {}
self.ordered_classes = []
+ self.enums = {}