我試圖解析Lua,它在某些情況下依賴於空白,因爲它沒有爲範圍使用大括號。我認爲只有在另一個規則不匹配時才拋出空白是最好的方法,但我不知道如何做到這一點。有人能幫我嗎?刪除空格,但最後刪除空格嗎?
0
A
回答
1
看着Lua's documentation,我看到沒有必要考慮空格。
解析器規則ifStatement
:
ifStatement
: 'if' exp 'then' block ('elseif' exp 'then' block 'else' block)? 'end'
;
exp
: /* todo */
;
block
: /* todo */
;
應符合兩個:
if j==10 then print ("j equals 10") end
和:
if j<10 then
print ("j < 10")
elseif j>100 then
print ("j > 100")
else
print ("j >= 10 && j <= 100")
end
沒有必要採取空間考慮進去,據我所知。所以你可以在你的文法中加上:
Space
: (' ' | '\t' | '\r' | '\n'){$channel=HIDDEN;}
;
。
編輯
似乎有在ANTLR維基Lua的語法:http://www.antlr.org/grammar/1178608849736/Lua.g
而且似乎我我的一個建議,如果聲明中略微從上面的語法不同:
'if' exp 'then' block ('elseif' exp 'then' block)* ('else' block)? 'end'
這是正確的,你可以看到。
相關問題
- 1. java刪除空格也刪除空格後的所有內容
- 2. 刪除空格
- 3. 刪除空格
- 4. 刪除空格
- 5. 刪除空格
- 6. 縮放後刪除空格
- 7. 刪除空格組
- 8. ereg_replace刪除空格
- 9. DOS:刪除空格
- 10. C - 刪除空格
- 11. opentbs刪除空格
- 12. as3刪除空格
- 13. 如何刪除表格後的空格
- 14. 刪除javascript中的非空格空格
- 15. 經典ASP Request.Form刪除空格嗎?
- 16. 從網格刪除空行
- 17. std :: getline刪除空格?
- 18. 刪除表格的空行
- 19. VBA無法刪除空格
- 20. 刪除python中的空格
- 21. 刪除多個空格
- 22. 刪除多行空格
- 23. 刪除IntelliJ中的空格
- 24. Toolstripcontrolhost與Toolstripsplitbutton-刪除空格
- 25. 使用javascript刪除空格
- 26. 刪除不包括空格
- 27. 刪除Hololens中的空格
- 28. 從QRegExpValidator刪除空格
- 29. 從RadioSelect中刪除空格「---------」
- 30. 使用PIG刪除空格
我沒有Lua的經驗,所以你可能舉一個例子,當一個空格不能被忽略(或放在'$ channel = HIDDEN')? – 2009-12-10 09:06:34
舉例來說,你的if語句就是這樣的:'if'*'condition' *'then'*'block' *'end'並且空格是重要的,這樣可以正確讀取識別字。 – RCIX 2009-12-10 10:23:00