第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

這是 ast 解析的正確行為嗎?

這是 ast 解析的正確行為嗎?

Go
有只小跳蛙 2022-08-24 15:39:47
我正在努力學(xué)習(xí)如何使用以及golang的ast庫(kù)如何工作。我正在解析 https://github.com/modern-go/concurrent,避免測(cè)試文件和go_below_19.go,因?yàn)樗鼤?huì)導(dǎo)致錯(cuò)誤。我的問(wèn)題是解析文件中的這些行,unbounded_executor.govar HandlePanic = func(recovered interface{}, funcName string) {    ErrorLogger.Println(fmt.Sprintf("%s panic: %v", funcName, recovered))    ErrorLogger.Println(string(debug.Stack()))}阿斯特。在這兩種情況下,Ident 都有一個(gè) nil obj。ErrorLogger但是,我認(rèn)為它不應(yīng)該是零,而應(yīng)該引用這些行從,log.go// ErrorLogger is used to print out error, can be set to writer other than stderrvar ErrorLogger = log.New(os.Stderr, "", 0)是我錯(cuò)了,還是解析器有問(wèn)題?我遵循了有關(guān)解析文件的幾個(gè)參考,并重用了*令牌。文件跨每個(gè)文件設(shè)置,并使用 ParseComments 作為模式。編輯:圍繞這一點(diǎn)有一個(gè)很大的代碼庫(kù),因此演示這一點(diǎn)的代碼將包括代碼片段。這是在所有非測(cè)試go文件中使用相同的fset執(zhí)行的,沒(méi)有構(gòu)建限制,不會(huì)阻止代碼與1.16一起使用parsedFile, parseErr := parser.ParseFile(fset, filePath, nil, parser.ParseComments)
查看完整描述

1 回答

?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊

打電話給阿斯特。用于解析 AST 中的標(biāo)識(shí)符的 NewPackage:


fset := token.NewFileSet()

files := make(map[string]*ast.File)

for _, name := range []string{"unbounded_executor.go", "log.go"} {

    f, err := parser.ParseFile(fset, name, nil, parser.ParseComments)

    if err != nil {

        log.Fatal(err)

    }

    files[name] = f

}


ast.NewPackage(fset, files, nil, nil)


ast.Inspect(files["unbounded_executor.go"], func(n ast.Node) bool {

    if n, ok := n.(*ast.Ident); ok && n.Name == "ErrorLogger" {

        fmt.Println(n.Obj)

    }

    return true

})

由于未提供正確的導(dǎo)入程序,并且文件列表不包括包中的所有文件,因此 NewPackage 將返回未解決的符號(hào)錯(cuò)誤。


查看完整回答
反對(duì) 回復(fù) 2022-08-24
  • 1 回答
  • 0 關(guān)注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)