在下面的語法中,我嘗試配置以'
作爲單行註釋開始的任何行,以及/' Multiline Comment '/
之間的任何行。單行註釋行得通。但出於某種原因,只要按/
或'
或';'或<
或'>'我得到下面的錯誤。我沒有配置上述字符。他們不應該被視爲默認並跳過解析?第0行第0列的詞法錯誤
錯誤
Lexical error at line 0, column 0. Encountered: "\"" (34), after : ""
Lexical error at line 0, column 0. Encountered: ">" (62), after : ""
Lexical error at line 0, column 0. Encountered: "\n" (10), after : "-"
我只包括下面的代碼爲簡明的一部分。對於完整的Lexer定義請訪問link
TOKEN :
{
< WHITESPACE:
" "
| "\t"
| "\n"
| "\r"
| "\f">
}
/* COMMENTS */
MORE :
{
<"/'"> { input_stream.backup(1); } : IN_MULTI_LINE_COMMENT
}
<IN_MULTI_LINE_COMMENT>
TOKEN :
{
<MULTI_LINE_COMMENT: "'/" > : DEFAULT
}
<IN_MULTI_LINE_COMMENT>
MORE :
{
< ~[] >
}
TOKEN :
{
<SINGLE_LINE_COMMENT: "'" (~["\n", "\r"])* ("\n" | "\r" | "\r\n")?>
}
昨天我嘗試過的一件事包括'TOKEN:{}'這可能不是因爲其他原因。我說'只要我輸入',因爲我正在開發這個詞法分析器,以在IDE中提供語法高亮度。我還沒有實施解析器的計劃,所以如果我跳過不屬於該語言的字符,那就足夠了。 我昨天整天都在試圖解決這個問題,並且在看到您的答案後能夠在今天早上一次性修復它。我想他們稱你爲科學家的原因:)。像這樣的答案應該至少獲得100分。謝謝。 –
ShaggyInjun
謝謝。你一直都有解決方案。項目祝你好運。 –