簡體   English   中英

Javacc:期待字符串文字之一

[英]Javacc: was expecting one of string literal

我對 javacc 有點陌生。 有人可以解釋一下為什么我不斷收到此錯誤。 這不是寫語法的正確方法嗎?

盡管編寫了正確的語法,但我仍然收到此錯誤。

以下是我的代碼:

options {
    Static = false ;
}
PARSER_BEGIN(Adder)
        class Adder {
            static void main(String[] args) throws ParseException, TokeMgrError {
                Adder parser = new Adder(System.in);
                parser.Start;
        }
        }
PARSER_END(Adder)

SKIP :{
    ” ”
|   ”\n”
|   ”\r”
|   ”\r\n”}
TOKEN :{<PLUS : ”+”>}
TOKEN :{<NUMBER : ([”0”-”9”])+>}

void Start() :
{}
{
        <NUMBER>
        (
            <PLUS>
            <NUMBER>
        )*
        <EOF>6

這是我得到的錯誤:

C:\Users\musta>java -cp C:\javacc-6.0\bin\lib\javacc.jar javacc adder.jj
Java Compiler Compiler Version 6.0_1 (Parser Generator)
(type "javacc" with no arguments for help)
Reading from file adder.jj . . .
org.javacc.parser.ParseException: Encountered " <IDENTIFIER> "\u00e2\u20ac "" at line 14, column 9.
Was expecting one of:
    <STRING_LITERAL> ...
    "<" ...

Detected 1 errors and 0 warnings.

字符串文字只能以普通的 ASCII 引號 ( " ) 開頭,而不是“漂亮的”unicode 引號 ( )。因此,它不會識別您的字符串文字,而是將它們識別為標識符。由於這些地方不允許使用標識符,您收到此錯誤消息。

所以用普通的 ASCII 引號替換你的引號,錯誤就會消失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM