當我試圖用詞法分析器和解析器生成器弄溼我的時候,我意識到互聯網上的大多數資源(教程,論壇,StackOverflow)只談論語言。是因爲像Flex和Bison這樣的工具只適用於語言,還是因爲可以解析的任何東西都被認爲是一種語言?我應該使用解析器生成器來處理除了語言以外的其他任何東西嗎?
更具體地講,我有以下形式的文件:
File : Bananarama.xyz
Date : 22.12.2017
TableStart
BlockStart
Param1 : 12
Param2 : 1.5
Param3[lbs] : 1539
Param4[cm] : 55
BlockEnd
BlockStart
[...]
BlockEnd
TableEnd
是該文件適用於由LALR解析器解析?
那麼,一個塊不能包含另一個塊,但我簡化了一下這個例子。所有的塊被一個TableStart/TableEnd對包圍(我編輯了這個問題)。但是這並沒有改變什麼,是嗎? – exilit
另一個問題:不要塊引入某種上下文敏感性,以便它成爲類型1的語言? – exilit
@exilit如果一個塊中的符號改變了後面那些塊的語法,那就是語法隨着符號匹配而改變,這只是上下文敏感的。從你的例子看來並非如此。也許你把語法和數據的語義搞混了。 –