Переделка: классы и типы обрабатываются отдельно
Этот коммит содержится в:
родитель
a3f14ed097
коммит
f7ed856d0c
3 изменённых файлов: 14 добавлений и 13 удалений
|
@ -97,14 +97,8 @@ func (c *Class) AddMethod(m *ast.FuncDecl) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handlers
|
// Handlers
|
||||||
func handleClass(t *ast.TypeSpec) string {
|
func handleClass(name string, st *ast.StructType) string {
|
||||||
st, ok := t.Type.(*ast.StructType)
|
addClassFromStructType(name, st)
|
||||||
if !ok {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
addClassFromStructType(t.Name.String(), st)
|
|
||||||
|
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
func addClassFromStructType(name string, s *ast.StructType) {
|
func addClassFromStructType(name string, s *ast.StructType) {
|
||||||
|
|
|
@ -33,7 +33,7 @@ func handleSpecs(specs []ast.Spec) (code string) {
|
||||||
case *ast.ValueSpec:
|
case *ast.ValueSpec:
|
||||||
code += handleValueSpec(s) + ";"
|
code += handleValueSpec(s) + ";"
|
||||||
case *ast.TypeSpec:
|
case *ast.TypeSpec:
|
||||||
code += handleTypeSpec(spec)
|
code += handleTypeSpec(s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
|
@ -8,10 +8,17 @@ var (
|
||||||
isPointerType = false
|
isPointerType = false
|
||||||
)
|
)
|
||||||
|
|
||||||
func handleTypeSpec(spec ast.Spec) (code string) {
|
func handleTypeSpec(s *ast.TypeSpec) (code string) {
|
||||||
s := spec.(*ast.TypeSpec)
|
st, ok := s.Type.(*ast.StructType)
|
||||||
handleClass(s)
|
if ok {
|
||||||
return
|
return handleClass(s.Name.String(), st)
|
||||||
|
}
|
||||||
|
|
||||||
|
return handleType(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleType(s *ast.TypeSpec) string {
|
||||||
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleStructType(s *ast.StructType) (code string) {
|
func handleStructType(s *ast.StructType) (code string) {
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче