看板 EE_DSnP 關於我們 聯絡資訊
※ 引述《ric2k1 (Ric)》之銘言: 如同 .doc/.pdf file 的註解 1 所說: Actually, the BNF for valid identifier is as follows (but you don't need to check it): WS [ \t]+ DIGIT [0-9] ALPHABET [a-zA-Z] SYMBOL [_.$] BRLEFT [(] BRRIGHT [)] SQLEFT [\[] SQRIGHT [\]] RANGE {BRLEFT}{DIGIT}+{BRRIGHT}|{SQLEFT}{DIGIT}+{SQRIGHT} IDCHAR {DIGIT}|{ALPHABET}|{SYMBOL}|{RANGE}|[\\]{WS} IDENTIFIER {IDCHAR}+ 我的 ref program 並沒有讓所有的 printable chars 都當作是 legal identifier. 只有符合上述的 rules 的字串才可以. 而當 illegal char 出現的時候, 目前我只有直接在 lex 檔掉, 並沒有傳到 yacc 去做處理, 也就是說: lex 會 complain: Error: Undefined symbol (@) in line 1!! 然後放棄掉去讀下一個 token, 因此, yacc 就等不到 string 而 "report Line 0: Missing circuit name!!". 大家可以假設檔案裡頭的 char 都符合上述的條件限制.不用擔心會有 "Undefined symbol (@)" 的請況發生. ※ 引述《KingSteven (HHung)》之銘言: : 如果亂打一些怪符號 : 他會顯示 : Error: Undefined symbol (@) in line 1!! : Line 0: Missing circuit name!! : Line 0: Missing circuit name!! : Error: Undefined symbol (#) in line 1!! : Line 0: Missing circuit name!! : Line 0: Missing circuit name!! : Error: Undefined symbol (%) in line 1!! : Line 0: Missing circuit name!! : Error: Undefined symbol (^) in line 1!! : Line 0: Missing circuit name!! : Error: Undefined symbol (&) in line 1!! : Line 0: Missing circuit name!! : Error: Undefined symbol (*) in line 1!! : Line 0: Missing circuit name!! : 我不懂的是 : 下面為什麼會有Line 0: Missing circuit name!! : 而且有些是一行 : 有些兩行 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.0.24 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.21.241