亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

antlr 重新聲明為導入的軟件包名稱

antlr 重新聲明為導入的軟件包名稱

Go
精慕HU 2022-08-01 18:50:49
我構建了一個目錄 src,其中包含以下內容:src/  antlr/   basic_levex.go   basic_parse.go   basicparser_base_visitor.go   basicparser_visitor.go  example1.goantlr文件看起來是正確的,并構建了名為BasicLexer.g4和BasicParser.g4的文件。我的示例1.go文件如下所示:package main// example1.goimport (    "./antlr"    "fmt"    "github.com/antlr/antlr4/runtime/Go/antlr")func main() {    // Setup the input    is := antlr.NewInputStream("1 + 2 * 3")    // Create the Lexer    lexer := antlr.NewBasicLexer(is)    // Read all tokens    for {        t := lexer.NextToken()        if t.GetTokenType() == antlr.TokenEOF {            break        }        fmt.Printf("%s (%q)\n",            lexer.SymbolicNames[t.GetTokenType()], t.GetText())    }}我在編譯時遇到的錯誤是# command-line-arguments./example1.go:8:2: antlr redeclared as imported package name    previous declaration at ./example1.go:6:2./example1.go:16:11: undefined: "github.com/antlr/antlr4/runtime/Go/antlr".NewBasicLexer我真的不知道出了什么問題。如何修復它,使其將來不會發生?
查看完整描述

1 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

讓我們一個接一個地看看你的兩個問題


重復導入

./example1.go:8:2: antlr redeclared as imported package name

    previous declaration at ./example1.go:6:2

錯誤消息很好地解釋了發生了什么,包括以下行:在第8行上,您嘗試導入的名稱與已在第6行上導入的名稱相同。除此之外,Go不支持相對進口,就像Flimzy在評論中指出的那樣。要解決此問題,請刪除第 6 行上的相對導入。


未定義的函數

./example1.go:16:11: undefined: "github.com/antlr/antlr4/runtime/Go/antlr".NewBasicLexer

您嘗試使用的函數不存在。


在這種情況下,它實際上是被調用的,而不是您在代碼中看到的NewBaseLexerNewBasicLexer


查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號