作者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