我正在尝试用我正在使用的语言模拟一个注释语句。通过使用关键字REM,我想忽略该标记之后的所有内容,直到它遇到enter为止。
示例如下
REM randominstruction {;}其中randominstruction在C中有一些随机指令。当REM令牌在它之前时,我想忽略整个randominstruction。
发布于 2016-02-05 03:29:48
识别和忽略注释最好在词法扫描器中完成,使用如下规则:
REM([[:blank:]].*)?$ ;这与“在C中随机指令有一些随机指令”是不同的,这有点误导。注释忽略文本行,而不管它是否由有效的语言标记组成。
上面的正则表达式之所以复杂,是因为REM不是较长单词的一部分。坚持它后面跟着空格可能太严格了( REM(....)是一个有效的注释吗?),所以更好的注释可能是:
REM([^[:alnum:]_].*)?$ ;如果REM是唯一的问题,那么?$的意图也是接受它。使用两种模式可能会更清楚:
REM[^[:alnum:]_].* ;
REM$ ;https://stackoverflow.com/questions/35204432
复制相似问题