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)
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))
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])
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])
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])
def p_ValueList(self, p): """ValueList : ConstValue ValueListCont""" p[0] = ListFromConcat(p[1], p[2])
def p_EnumValues(self, p): """EnumValues : ',' EnumValue EnumValues |""" if len(p) > 1: p[0] = ListFromConcat(p[2], p[3])
def p_EnumValueList(self, p): """EnumValueList : EnumValue EnumValues""" p[0] = ListFromConcat(p[1], p[2])
def p_ConstValueStr(self, p): """ConstValue : string""" p[0] = ListFromConcat(self.BuildAttribute('TYPE', 'string'), self.BuildAttribute('VALUE', p[1]))
def p_Typedef(self, p): """Typedef : TYPEDEF ExtendedAttributeListNoComments Type identifier ';'""" p[0] = self.BuildNamed('Typedef', p, 4, ListFromConcat(p[2], p[3]))
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))
def p_StructMember(self, p): """StructMember : ExtendedAttributeList Type identifier ';'""" p[0] = self.BuildNamed('Member', p, 3, ListFromConcat(p[1], p[2]))
def p_StructMembers(self, p): """StructMembers : StructMember StructMembers |""" if len(p) > 1: p[0] = ListFromConcat(p[1], p[2])
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])