我正在使用flex爲自定義語言生成詞法分析器。我遇到的問題是,只要我找到一個錯誤的標記......我無法告訴其他標記是否遵循這個標記。例如如何識別輸入字符串中的多個詞法錯誤(使用flex)?
int v1,v2;
v1=10;v2=20;
v1=v2+1v;
print(v1);
~return;
這裏,代幣的流將是ID,<,>,ID,<;> ......的語言指定每個令牌由空格分隔。因此,在1之後看到v應該會產生錯誤,並且掃描器必須打印該錯誤。在那之後,有更多的合法令牌和另一個非法令牌(〜return)。我如何處理其餘的合法令牌並打印第二個錯誤。 我使用flex作爲掃描生成器。當我發現沒有任何詞法匹配的正則表達式匹配時,我會調用一個打印適當消息的錯誤例程。
如何在調用此例程後恢復處理?
很好的問題......我想看看生成的詞法分析器,看看是否有保留任何變量跟蹤掃描儀的位置或開始在指定位置掃描的方法... – 2011-03-15 21:34:15