我试图弄清楚如何检查文字字符串中的分隔引用。任何帮助表示赞赏。
这是我到目前为止的开始状态。
<stringLiteral>INITIAL {value = ""; beginLine = lineNum; beginCol = colNum; }
<stringLiteral>\\n {cout<<"\n"; newline();}
<stringLiteral>\" {yylval.sval = new string(value); return STRING;}
<stringLiteral>\\. {error(linenum, colnum, string(YYText()) + " illegal token");}
答案 0 :(得分:0)
(@rici在评论中回答了这个问题并在此复制;另见Question with no answers, but issue solved in the comments (or extended in chat))
“规则”没有明显错误。
如果Literal String没有结尾引用。例如:“这是一个字符串,它会导致未终止字符串的问题。
不幸的是,缺少的字符是不可见的,因为它们只存在于想象中。 (“可能是一种抽象/剩余的永久可能性/仅在一个猜测的世界。” - A艾略特)。因此,扫描将继续到下一个字符串的开头(如果有)或文件的结尾。或者,如果您不允许字符串文字中的行结尾,则为行尾。恢复和继续解析是很困难的,尽管如果你禁止换行,有可能继续下一行并希望你不要错过太多。