1
1
package v3
2
2
3
3
import (
4
+ "github.com/davyxu/tabtoy/v3/helper"
4
5
"github.com/davyxu/tabtoy/v3/model"
5
6
"github.com/davyxu/tabtoy/v3/table"
6
7
)
7
8
8
9
func Parse (globals * model.Globals ) error {
9
10
11
+ defer func () {
12
+
13
+ switch err := recover ().(type ) {
14
+ case * helper.ErrorObject :
15
+ log .Errorf ("%s" , err .Error ())
16
+ case nil :
17
+ default :
18
+ panic (err )
19
+ }
20
+
21
+ }()
22
+
10
23
// TODO 更好的内建读取
11
- err := loadSymbols (globals , globals .BuiltinSymbolFile )
24
+ err := LoadSymbols (globals , globals .BuiltinSymbolFile )
12
25
13
26
if err != nil {
14
27
return err
15
28
}
16
29
17
30
var kvlist model.DataTableList
18
31
19
- LoadIndex (globals , globals .IndexFile , func ( pragma * table. TablePragma ) error {
32
+ LoadIndex (globals , globals .IndexFile )
20
33
21
- switch pragma .TableType {
22
- case table .TableType_Data :
34
+ for _ , pragma := range globals .IndexList {
35
+
36
+ switch pragma .TableMode {
37
+ case table .TableMode_Data :
23
38
24
39
tabName := getTableName (pragma )
25
40
@@ -28,6 +43,7 @@ func Parse(globals *model.Globals) error {
28
43
if dataTable == nil {
29
44
dataTable = model .NewDataTable ()
30
45
dataTable .Name = tabName
46
+ dataTable .FileName = pragma .TableFileName
31
47
globals .AddDataTable (dataTable )
32
48
}
33
49
@@ -37,14 +53,14 @@ func Parse(globals *model.Globals) error {
37
53
return err
38
54
}
39
55
40
- case table .TableType_Symbol :
56
+ case table .TableMode_Type :
41
57
42
- err = loadSymbols (globals , pragma .TableFileName )
58
+ err = LoadSymbols (globals , pragma .TableFileName )
43
59
44
60
if err != nil {
45
61
return err
46
62
}
47
- case table .TableType_KeyValue :
63
+ case table .TableMode_KeyValue :
48
64
49
65
tabName := getTableName (pragma )
50
66
@@ -53,6 +69,7 @@ func Parse(globals *model.Globals) error {
53
69
if kvtab == nil {
54
70
kvtab = model .NewDataTable ()
55
71
kvtab .Name = tabName
72
+ kvtab .FileName = pragma .TableFileName
56
73
kvlist .AddDataTable (kvtab )
57
74
}
58
75
@@ -61,11 +78,8 @@ func Parse(globals *model.Globals) error {
61
78
if err != nil {
62
79
return err
63
80
}
64
-
65
81
}
66
-
67
- return nil
68
- })
82
+ }
69
83
70
84
// kv转置
71
85
for _ , kvtab := range kvlist .Data {
0 commit comments