MCPcopy Create free account
hub / github.com/ddnet/ddnet / Array

Class Array

datasrc/datatypes.py:118–153  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

116
117
118class Array(BaseType):
119 def __init__(self, typ):
120 BaseType.__init__(self, typ.TypeName())
121 self.type = typ
122 self.items = []
123
124 def Add(self, instance):
125 if instance.TypeName() != self.type.TypeName():
126 raise ValueError("bah")
127 self.items += [instance]
128
129 def EmitDeclaration(self, name):
130 return [f"int m_Num{FixCasing(name)};", f"{self.TypeName()} *{FormatName('[]', name)};"]
131
132 def EmitPreDefinition(self, target_name):
133 BaseType.EmitPreDefinition(self, target_name)
134
135 lines = []
136 i = 0
137 for item in self.items:
138 lines += item.EmitPreDefinition(f"{self.Identifier()}[{int(i)}]")
139 i += 1
140
141 if self.items:
142 lines += [f"static {self.TypeName()} {self.Identifier()}[] = {{"]
143 for item in self.items:
144 itemlines = item.EmitDefinition("")
145 lines += ["\t" + " ".join(itemlines).replace("\t", " ") + ","]
146 lines += ["};"]
147 else:
148 lines += [f"static {self.TypeName()} *{self.Identifier()} = 0;"]
149
150 return lines
151
152 def EmitDefinition(self, _name):
153 return [str(len(self.items)) + "," + self.Identifier()]
154
155
156# Basic Types

Callers 5

__init__Method · 0.90
__init__Method · 0.90
__init__Method · 0.90
__init__Method · 0.90
__init__Method · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected