作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [問題] circuit name
時間Wed Dec 9 17:26:28 2009
※ 引述《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