MCPcopy
hub / github.com/davyxu/tabtoy / LoadTypeTable

Function LoadTypeTable

v3/compiler/tab_type.go:9–47  ·  view source on GitHub ↗
(typeTab *model.TypeTable, indexGetter helper.FileGetter, fileName string)

Source from the content-addressed store, hash-verified

7)
8
9func LoadTypeTable(typeTab *model.TypeTable, indexGetter helper.FileGetter, fileName string) error {
10
11 tabs, err := LoadDataTable(indexGetter, fileName, "TypeDefine", "TypeDefine", typeTab)
12
13 if err != nil {
14 return err
15 }
16
17 for _, tab := range tabs {
18
19 for row := 1; row < len(tab.Rows); row++ {
20
21 var objtype model.TypeDefine
22
23 if !ParseRow(&objtype, tab, row, typeTab) {
24 continue
25 }
26
27 if objtype.Kind == model.TypeUsage_None {
28 report.ReportError("UnknownTypeKind", objtype.ObjectType, objtype.FieldName)
29 }
30
31 if typeTab.FieldByName(objtype.ObjectType, objtype.FieldName) != nil {
32 cell := tab.GetValueByName(row, "字段名")
33 if cell != nil {
34 report.ReportError("DuplicateTypeFieldName", cell.String(), objtype.ObjectType, objtype.FieldName)
35 } else {
36 report.ReportError("InvalidTypeTable", objtype.ObjectType, objtype.FieldName, tab.FileName)
37 }
38
39 }
40
41 typeTab.AddField(&objtype, tab, row)
42 }
43
44 }
45
46 return nil
47}

Callers 1

loadVariantTablesFunction · 0.85

Calls 7

ReportErrorFunction · 0.92
LoadDataTableFunction · 0.85
ParseRowFunction · 0.85
FieldByNameMethod · 0.80
GetValueByNameMethod · 0.80
AddFieldMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected