示例#1
0
 def p_Inline(self, p):
   """Inline : INLINE"""
   words = p[1].split()
   name = self.BuildAttribute('NAME', words[1])
   lines = p[1].split('\n')
   value = self.BuildAttribute('VALUE', '\n'.join(lines[1:-1]) + '\n')
   children = ListFromConcat(name, value)
   p[0] = self.BuildProduction('Inline', p, 1, children)
示例#2
0
 def p_ConstValue(self, p):
   """ConstValue : integer
                 | integer LSHIFT integer
                 | integer RSHIFT integer"""
   val = str(p[1])
   if len(p) > 2:
     val = "%s %s %s" % (p[1], p[2], p[3])
   p[0] = ListFromConcat(self.BuildAttribute('TYPE', 'integer'),
                         self.BuildAttribute('VALUE', val))
示例#3
0
 def p_LabelList(self, p):
   """LabelList : identifier '=' float LabelCont"""
   val  = self.BuildAttribute('VALUE', p[3])
   label = self.BuildNamed('LabelItem', p, 1, val)
   p[0] = ListFromConcat(label, p[4])
示例#4
0
 def p_Definitions(self, p):
   """Definitions : ExtendedAttributeList Definition Definitions
          | """
   if len(p) > 1:
     p[2].AddChildren(p[1])
     p[0] = ListFromConcat(p[2], p[3])
示例#5
0
 def p_Top(self, p):
   """Top : COMMENT COMMENT Definitions"""
   Copyright = self.BuildComment('Copyright', p, 1)
   Filedoc = self.BuildComment('Comment', p, 2)
   p[0] = ListFromConcat(Copyright, Filedoc, p[3])
示例#6
0
 def p_ValueList(self, p):
   """ValueList : ConstValue ValueListCont"""
   p[0] = ListFromConcat(p[1], p[2])
示例#7
0
 def p_EnumValues(self, p):
   """EnumValues : ',' EnumValue EnumValues
                 |"""
   if len(p) > 1:
     p[0] = ListFromConcat(p[2], p[3])
示例#8
0
 def p_EnumValueList(self, p):
   """EnumValueList : EnumValue EnumValues"""
   p[0] = ListFromConcat(p[1], p[2])
示例#9
0
 def p_ConstValueStr(self, p):
   """ConstValue : string"""
   p[0] = ListFromConcat(self.BuildAttribute('TYPE', 'string'),
                         self.BuildAttribute('VALUE', p[1]))
示例#10
0
 def p_Typedef(self, p):
   """Typedef : TYPEDEF ExtendedAttributeListNoComments Type identifier ';'"""
   p[0] = self.BuildNamed('Typedef', p, 4, ListFromConcat(p[2], p[3]))
示例#11
0
 def p_TypedefFunc(self, p):
   """Typedef : TYPEDEF ExtendedAttributeListNoComments ReturnType identifier '(' ArgumentList ')' ';'"""
   args = self.BuildProduction('Arguments', p, 5, p[6])
   p[0] = self.BuildNamed('Callback', p, 4, ListFromConcat(p[2], p[3], args))
示例#12
0
 def p_StructMember(self, p):
   """StructMember : ExtendedAttributeList Type identifier ';'"""
   p[0] = self.BuildNamed('Member', p, 3, ListFromConcat(p[1], p[2]))
示例#13
0
 def p_StructMembers(self, p):
   """StructMembers : StructMember StructMembers
                    |"""
   if len(p) > 1:
     p[0] = ListFromConcat(p[1], p[2])
示例#14
0
 def p_Struct(self, p):
   """Struct : STRUCT identifier Inheritance '{' StructMembers '}' ';'"""
   p[0] = self.BuildNamed('Struct', p, 2, ListFromConcat(p[3], p[5]))
 def p_ValueList(self, p):
     """ValueList : ConstValue ValueListCont"""
     values = self.BuildProduction('Values', p, 2,
                                   ListFromConcat(p[1], p[2]))
 def p_ValueListCont(self, p):
     """ValueListCont : ConstValue ValueListCont
                  |"""
     if len(p) > 1:
         p[0] = ListFromConcat(p[1], p[2])