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