0
我有以下語法:的java StreamTokenizer極解析器
gui ::=
Window String widgets
widgets ::=
Button STRING ';'|
radio_button End ';'
radio_button ::=
Radio String ';'
GUI,窗口小部件和radio_button是非終端。其他人是終端。
我需要解析的語句是:
窗口 「測試」 無線 「R1」;
我在java中使用streamtokenizer來進行解析。當涉及到小部件時,我需要測試第一行然後測試第二行。我使用nextToken()來獲取語句的標記。我想在解析窗口部件之前保存一個標記器的副本,這樣如果第一行失敗,我可以使用該副本來解析第二行。如何保存副本?
非常感謝。我非常感謝你的幫助。
嗨@laune! 'pushBack'方法的Javadoc爲:_「導致下一次調用此標記器的nextToken方法以返回ttype字段中的當前值,而不是修改nval或sval字段中的值。」真的不理解「,並且不要修改nval或sval字段中的值。更簡單地說,這是否意味着調用「pushBack」向後移回令牌指針,以便調用「nextToken(); pushBack(); nextToken()」相當於調用一次「nextToken()」? –
這些字段仍然包含nextToken之後存儲的內容,pushBack推回的內容。是的,給你的Q. – laune