2014-09-18 52 views
0

我想弄清楚如何检查文字字符串中的分隔报价。任何帮助表示赞赏。Flex扫描器检查分隔报价

这是我到目前为止在我的开始条件。

<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

“规则”没有什么明显的错误,它是什么对你不起作用? – rici 2014-09-18 20:39:08

+0

如果文字字符串没有结尾引号,比如说:“这是一个字符串。 – pdf2e 2014-09-18 22:53:16

+0

不幸的是,缺少的字符是不可见的,因为它们只存在于想象中。 (“可能是一个抽象/ 保持永恒的可能性/只在一个猜测的世界。”-TS艾略特)。因此,扫描将继续到下一个字符串(如果有的话)或文件结尾的开头。或者,如果您不允许以字符串文字结束行结束。恢复和继续解析是很困难的,但如果你禁止换行,就有可能继续下一行,希望你不会错过太多。 – rici 2014-09-19 05:18:18

回答

0

(此问题已回答由@rici的意见,并在这里复制;也见Question with no answers, but issue solved in the comments (or extended in chat)

没有什么明显错误的\”规则

如果文字字符串没有按”。例如说:“这是一个字符串,它会导致一个未终止的字符串问题。

不幸的是,缺失的字符是不可见的,因为它们只存在于想象中。 (“可能是一种抽象/保持一种永恒的可能性/只有在一个猜测的世界里。”-TS艾略特)。因此,扫描将继续到下一个字符串(如果有的话)或文件结尾的开头。或者,如果您不允许以字符串文字结束行结束。恢复和继续解析是很困难的,但如果你禁止换行,就有可能继续下一行,希望你不会错过太多。