parser: add padding syntax
diff --git a/loxi_front_end/frontend.py b/loxi_front_end/frontend.py
index fdcd286..6c7a153 100644
--- a/loxi_front_end/frontend.py
+++ b/loxi_front_end/frontend.py
@@ -46,7 +46,18 @@
     for s in ast:
         if s[0] == 'struct':
             name = s[1]
-            members = [dict(m_type=x[0], name=x[1]) for x in s[2]]
+            pad_count = 0
+            members = []
+            for x in s[2]:
+                if x[0] == 'pad':
+                    # HACK until we have a real intermediate representation
+                    m_name = 'pad%d' % pad_count
+                    if m_name == 'pad0': m_name = 'pad'
+                    members.append(dict(m_type='uint8_t[%d]' % x[1],
+                                        name=m_name))
+                    pad_count += 1
+                else:
+                    members.append(dict(m_type=x[0], name=x[1]))
             ofinput.classes[name] = members
             ofinput.ordered_classes.append(name)
             if name in type_maps.inheritance_map:
diff --git a/loxi_front_end/parser.py b/loxi_front_end/parser.py
index 73135ff..5e994dc 100644
--- a/loxi_front_end/parser.py
+++ b/loxi_front_end/parser.py
@@ -50,9 +50,10 @@
 any_type = (array_type | list_type | scalar_type).setName("type name")
 
 # Structs
-struct_member = P.Group(any_type - identifier - s(';'))
+pad_member = P.Group(kw('pad') - s('(') - integer - s(')'))
+struct_member = pad_member | P.Group(any_type - identifier);
 struct = kw('struct') - identifier - s('{') + \
-         P.Group(P.ZeroOrMore(struct_member)) + \
+         P.Group(P.ZeroOrMore(struct_member - s(';'))) + \
          s('}') - s(';')
 
 # Enums
diff --git a/utest/test_parser.py b/utest/test_parser.py
index 749e530..da262a4 100755
--- a/utest/test_parser.py
+++ b/utest/test_parser.py
@@ -83,6 +83,16 @@
         self.assertEquals(ast,
             [['struct', 'foo', [['list(of_action_t)', 'bar']]]])
 
+    def test_pad_type(self):
+        src = """\
+struct foo {
+    pad(1);
+};
+"""
+        ast = parser.parse(src)
+        self.assertEquals(ast,
+            [['struct', 'foo', [['pad', 1]]]])
+
 class EnumTests(unittest.TestCase):
     def test_empty(self):
         src = """\