[英]Is there an alternative to \b and/or negative lookahead for JFLEX?
我正在構建一個掃描儀,但似乎無法找到一種方法來使用 JFlex 和 Regex 來識別“if”或“else”等運算符。 由於 JFlex不完全符合我不能使用字邊界或 (?<=\s|^) + (?=\s|$) 因為兩者都不是? 或 $ 是允許的。 這個想法是找到正確編寫的運算符,而不是 ifo 或 elso。 提前致謝。
這個想法是找到正確編寫的運算符,而不是 ifo 或 elso。 提前致謝。
只需使用“if”和“else”,並有另一個匹配ifo
和elseo
的模式(比如標識符),並且在if
和else
的模式之后:
"if" { /* it's an if */ }
"else" { /* it's an else */ }
[a-zA-Z_][a-zA-Z_0-9]* { /* it's an identifier */ }
遵循最大咀嚼規則,這將匹配ifo
和elseo
等輸入的標識符規則,並且僅當不再有匹配標識符規則的輸入前綴時才匹配“if”和“else”規則。
如果您的語言沒有標識符,而ifo
和elseo
只是應該是無效的標記,您可以保留模式並更改操作以將其視為無效標記而不是標識符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.