2017-04-05 39 views
0

在EBNF表示法中,我看到很多=>,但找不到說明。我搜索了一些PDF和維基百科,但仍然沒有線索。EBNF表示法中=>的含義

assignmentExpression: 
    (leftHandSideExpression assignmentOperator) => 
    leftHandSideExpression assignmentOperator assignmentExpression 
    | conditionalExpression 
    ; 
+1

什麼是使用這種EBNF符號?這可能有幫助。我很驚訝沒有描述如何使用這種符號,因爲在使用中有許多不同的EBNF變體。有些人甚至可以自己編寫自己的代碼,比如各種編程語言(例如Python)的作者,維護XML定義的W3C,而IETF也有自己的變體名ABNF,不必介意國際標準ISO/IEC 14977,我很少見過使用。你的問題中的符號對我來說是陌生的;這很可能是另一個EBNF表示法。 –

回答

2

我的猜測是,它是解析器的提示或指令(可能是遞歸下降)。例如,如果您試圖解析assignmentExpression,並且您可以將未定義輸入的前綴解析爲leftHandSideExpression assignmentOperator,然後承諾解析assignmentExpression的替代leftHandSideExpression assignmentOperator assignmentExpression

+1

同意。也許一個例子可以改善你的答案:'x = $;'應該會產生一個語法錯誤,說'$'是在預期賦值表達式的地方。沒有提示,語法錯誤可能會抱怨'='而不是。 – hvd