我正在尝试使用我正在处理的语言模拟注释语句。通过使用关键字REM
,我想忽略该令牌之后的所有内容,直到它遇到输入。
示例就像
REM randominstruction {;}
其中randominstruction
在C中有一些随机指令。我想在REM令牌位于其前面时忽略整个randominstruction
。
答案 0 :(得分:1)
最好在词法扫描程序中使用以下规则来识别和忽略注释:
REM([[:blank:]].*)?$ ;
与&#34相同;其中randominstruction在C"中有一些随机指令,这有点误导。注释忽略了文本行,而不考虑它是否包含有效的语言标记。
上述正则表达式的复杂性是由于REM
不需要成为较长单词的一部分。坚持它后跟空格可能过于严格(REM(....)
是一个有效的评论吗?),所以有可能是一个更好的评论:
REM([^[:alnum:]_].*)?$ ;
?$
的目的是接受REM
,如果这是唯一的话。使用两种模式可能更清楚:
REM[^[:alnum:]_].* ;
REM$ ;