阶段 2 完成
This commit is contained in:
@@ -79,8 +79,31 @@ class SymbolNode:
|
||||
'type': self.type,
|
||||
'lineno': self.lineno,
|
||||
'file': self.file,
|
||||
**self.attributes.entry
|
||||
}
|
||||
# 序列化 CTypeInfo 属性
|
||||
attrs = self.attributes
|
||||
if attrs.BaseType:
|
||||
result['BaseType'] = str(attrs.BaseType)
|
||||
if attrs.PtrCount:
|
||||
result['PtrCount'] = attrs.PtrCount
|
||||
if attrs.IsTypedef:
|
||||
result['IsTypedef'] = True
|
||||
if attrs.IsStruct:
|
||||
result['IsStruct'] = True
|
||||
if attrs.IsEnum:
|
||||
result['IsEnum'] = True
|
||||
if attrs.IsUnion:
|
||||
result['IsUnion'] = True
|
||||
if attrs.IsFunction:
|
||||
result['IsFunction'] = True
|
||||
if attrs.IsVariable:
|
||||
result['IsVariable'] = True
|
||||
if attrs.IsDefine:
|
||||
result['IsDefine'] = True
|
||||
if attrs.OriginalType:
|
||||
result['OriginalType'] = str(attrs.OriginalType)
|
||||
if attrs._sm._extra:
|
||||
result.update(attrs._sm._extra)
|
||||
|
||||
if self.children:
|
||||
result['children'] = {name: child.ToDict() for name, child in self.children.items()}
|
||||
@@ -118,7 +141,7 @@ class SymbolNode:
|
||||
node.attributes.Lineno = lineno
|
||||
else:
|
||||
if TypeName is not None:
|
||||
node.attributes.BaseType = CTypeInfo.create_FromTypeName(TypeName)
|
||||
node.attributes.BaseType = CTypeInfo.CreateFromTypeName(TypeName)
|
||||
if IsPtr:
|
||||
node.attributes.PtrCount = 1
|
||||
if dims:
|
||||
@@ -158,7 +181,7 @@ class SymbolNode:
|
||||
CTypeMember.PtrCount = max(CTypeMember.PtrCount, 1)
|
||||
node.attributes.Members[MemberName] = CTypeMember
|
||||
if TypeKind == 'struct':
|
||||
node.attributes.is_struct = True
|
||||
node.attributes.IsStruct = True
|
||||
elif TypeKind == 'enum':
|
||||
node.attributes.IsEnum = True
|
||||
elif TypeKind == 'union':
|
||||
@@ -198,7 +221,7 @@ class SymbolNode:
|
||||
if IsUnion:
|
||||
node.attributes.IsUnion = True
|
||||
else:
|
||||
node.attributes.is_struct = True
|
||||
node.attributes.IsStruct = True
|
||||
return node
|
||||
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user