我正在學習韋克斯利韋默編程語言課程 lexer。Python詞法分析器令牌優先級規則順序處理歧義---爲什麼STRING優先於WORD?
的音符在這裏 https://www.udacity.com/wiki/cs262/unit-2#quiz-rule-order
{視頻,如果你願意看,最後40秒。} https://www.udacity.com/course/viewer#!/c-cs262/l-48713810/e-48652568/m-48676965
測驗: 當兩個標記定義可以匹配相同的字符串,行爲我們的詞法分析器可能是模糊.....
假設我們有輸入字符串
你好,「世界,「
並且我們希望輸入字符串產生 WORD STRING 。哪個規則必須持續? ie 「......我想讓你做的是告訴我哪些函數中的哪一個,這些規則中的哪一個必須最後一個,記住先來的那個會贏得所有的爲了打招呼,「世界」要分成一個字和一個字符串。「
def t_WORD(token):
r'[^ <>]+'
def t_STRING(token)
r'"[^"]*"'
........答案是:
T_STRING ,然後 t_WORD
..........我不明白這一點連在多次觀看視頻後,爲什麼STRING優先於WORD?
請指教。
非常感謝。