このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

HoareRulesのラベル

nmTokenをああいう定義にすると、name⊂nmToken、integer⊂nmTokenになってしまって、どうも気持ち悪いですね。

しかし、たいていのレクサー・ジェネレータは文脈により字句解析規則を切り替えることができるだろうから、ラベルの認識は別な文脈にすることにしましょう。つまり:


/* ルール全体のトップレベルでのみ認識される字句 */
labelChar ::= [-._a-zA-Z0-9] // ハイフンとピリオドも許すことにした
labelToken ::= labelChar+

/* ルール全体の構文定義 */
rule ::= '[' labelToken ']' preCondition action postCondition ';'

labelTokenの定義はルール・トップレベルの、'['から']'のあいだだけで有効。nameやnumberは別な文脈で認識されるので、かぶることはなくなります。