refactor: update data struct field

上级 b3f83de9
package trial
type CodeDataStruct struct {
Name string
ID string
MemberIds []string
Properties []CodeProperty
Extend string
Implements []string
Annotations []interface{}
Extension interface{}
}
type JavaExtension struct {
MethodCalls []CodeCall
Fields []CodeProperty
Tag []interface{}
}
type PythonAnnotation struct {
Name string
ID string
MemberIds []string
Properties []CodeProperty
//Fields []CodeProperty
//MethodCalls []CodeCall
//Extend string
//Implements []string
//Annotations []interface{}
//Tag []interface{}
}
......@@ -7,6 +7,7 @@ type CodeFile struct {
PackageName string
Imports []string
Members []*CodeMember
ClassNodes []domain.JClassNode
DataStructures []CodeDataStruct
// Deprecated: support for migration only
ClassNodes []domain.JClassNode
}
......@@ -2,7 +2,11 @@
"ClassNodes": null,
"DataStructures": [
{
"Annotations": null,
"Extend": "",
"Extension": null,
"ID": "",
"Implements": null,
"MemberIds": null,
"Name": "Shape",
"Properties": [
......@@ -35,7 +39,11 @@
]
},
{
"Annotations": null,
"Extend": "",
"Extension": null,
"ID": "",
"Implements": null,
"MemberIds": null,
"Name": "Object",
"Properties": [
......@@ -59,7 +67,11 @@
]
},
{
"Annotations": null,
"Extend": "",
"Extension": null,
"ID": "",
"Implements": null,
"MemberIds": null,
"Name": "Material",
"Properties": [
......
......@@ -2,7 +2,11 @@
"ClassNodes": null,
"DataStructures": [
{
"Annotations": null,
"Extend": "",
"Extension": null,
"ID": "",
"Implements": null,
"MemberIds": null,
"Name": "CodeFile",
"Properties": [
......
......@@ -2,7 +2,11 @@
"ClassNodes": null,
"DataStructures": [
{
"Annotations": null,
"Extend": "",
"Extension": null,
"ID": "",
"Implements": null,
"MemberIds": null,
"Name": "O",
"Properties": null
......
......@@ -2,7 +2,11 @@
"ClassNodes": null,
"DataStructures": [
{
"Annotations": null,
"Extend": "",
"Extension": null,
"ID": "",
"Implements": null,
"MemberIds": null,
"Name": "Person",
"Properties": [
......
......@@ -2,7 +2,11 @@
"ClassNodes": null,
"DataStructures": [
{
"Annotations": null,
"Extend": "",
"Extension": null,
"ID": "",
"Implements": null,
"MemberIds": null,
"Name": "person",
"Properties": [
......
......@@ -42,3 +42,14 @@ func Test_PythonClass(t *testing.T) {
results := app.Analysis(string(defs), "testdata/grammar/classdef.py")
g.Expect(len(results.DataStructures)).To(Equal(3))
}
func Test_PythonClassWithDecorator(t *testing.T) {
g := NewGomegaWithT(t)
app := new(PythonApiApp)
file, _ := ioutil.ReadFile("testdata/grammar/class_or_func_def_stmt.py")
codeFile := app.Analysis(string(file), "testdata/grammar/class_or_func_def_stmt.py")
g.Expect(len(codeFile.DataStructures)).To(Equal(1))
}
package pyast
import (
"fmt"
parser "github.com/phodal/coca/languages/python"
"github.com/phodal/coca/pkg/domain/trial"
"reflect"
)
type PythonIdentListener struct {
......@@ -25,6 +27,13 @@ func (s *PythonIdentListener) EnterClassdef(ctx *parser.ClassdefContext) {
Properties: nil,
}
switch x := ctx.GetParent().GetChild(0).(type) {
case *parser.DecoratorContext:
default:
fmt.Println(reflect.TypeOf(x))
}
currentCodeFile.DataStructures = append(currentCodeFile.DataStructures, dataStruct)
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册