llcppsigfetch:basic marco process

This commit is contained in:
luoliwoshang
2024-08-16 18:39:09 +08:00
parent 2b1d4b6672
commit 02651c93a7
4 changed files with 110 additions and 1 deletions

View File

@@ -34,9 +34,24 @@ func MarshalASTFile(file *ast.File) *cjson.JSON {
// json:macros,omitempty
if file.Macros != nil {
macros := cjson.Array()
for _, m := range file.Macros {
marco := cjson.Object()
marco.SetItem(c.Str("Name"), TokenInfo(m.Name))
body := cjson.Array()
for _, b := range m.Body {
body.AddItem(TokenInfo(b))
}
marco.SetItem(c.Str("Body"), body)
macros.AddItem(marco)
}
root.SetItem(c.Str("macros"), macros)
}
return root
}
func TokenInfo(t *ast.TokenInfo) *cjson.JSON {
root := cjson.Object()
root.SetItem(c.Str("Token"), cjson.Number(float64(t.Token)))
root.SetItem(c.Str("Lit"), cjson.String(c.AllocaCStr(t.Lit)))
return root
}