loxi_frontend: move classes only used by c to c_gen

 - flags
 - identifiers
 - match
 - translation
 - type_maps

were only used by the c backend. I'm moving them to c_gen to
unclutter the loxi_front_end space (and updating references
in the c backend)
diff --git a/c_gen/flags.py b/c_gen/flags.py
new file mode 100644
index 0000000..1fa4ae5
--- /dev/null
+++ b/c_gen/flags.py
@@ -0,0 +1,75 @@
+# Copyright 2013, Big Switch Networks, Inc.
+#
+# LoxiGen is licensed under the Eclipse Public License, version 1.0 (EPL), with
+# the following special exception:
+#
+# LOXI Exception
+#
+# As a special exception to the terms of the EPL, you may distribute libraries
+# generated by LoxiGen (LoxiGen Libraries) under the terms of your choice, provided
+# that copyright and licensing notices generated by LoxiGen are not altered or removed
+# from the LoxiGen Libraries and the notice provided below is (i) included in
+# the LoxiGen Libraries, if distributed in source code form and (ii) included in any
+# documentation for the LoxiGen Libraries, if distributed in binary form.
+#
+# Notice: "Copyright 2013, Big Switch Networks, Inc. This library was generated by the LoxiGen Compiler."
+#
+# You may not use this file except in compliance with the EPL or LOXI Exception. You may obtain
+# a copy of the EPL at:
+#
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# EPL for the specific language governing permissions and limitations
+# under the EPL.
+
+"""
+This file needs significant work and normalization.  We need a better
+representation for flags, associating them to variables, and associating
+them to OF versions.
+
+@fixme Most of this will be going away soon
+"""
+
+import sys
+import copy
+import type_maps
+import c_gen.of_g_legacy as of_g
+import re
+
+# These mark idents as _not_ flags and have precedence
+non_flag_rules = [
+    "OF_CONFIG_FRAG_NORMAL",
+    "OF_FLOW_MOD_FAILED_BAD_FLAGS",
+    "OF_SWITCH_CONFIG_FAILED_BAD_FLAGS",
+    "OF_PORT_STATE_FLAG_STP_LISTEN",
+    "OF_TABLE_CONFIG_TABLE_MISS_CONTROLLER",
+    ]
+
+# These mark idents as flags
+flag_rules = [
+    "OF_CONFIG_",
+    "OF_TABLE_CONFIG_",
+    ]
+
+def ident_is_flag(ident):
+    """
+    Return True if ident should be treated as a flag
+    """
+
+    # Do negative matches first
+    for entry in non_flag_rules:
+        if re.match(entry, ident):
+            return False
+
+    # General rule, if it says flag it is (unless indicated above)
+    if ident.find("FLAG") >= 0:
+        return True
+
+    for entry in flag_rules:
+        if re.match(entry, ident):
+            return True
+
+    return False