- ベストアンサー
CSS2の構文とデータ型
「Cascading Style Sheets, level 2 CSS2 Specification 」でCSSの勉強をしております。 その、4.1.1 字句解析(Tokenization) がまったく理解できません。 http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/syndata.html#tokenization サイトの4.1.1に箇条書きされている項目について詳しく説明しているサイトをご存知のかたはいらっしゃらないでしょうか? またCSSにおける「マクロ」とはなんでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
それぞれの説明は同じページにあるリンク D. CSS2の文法 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/grammar.html ) にあります。 一般的な正規表現 ( http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE )の知識は必要です。 この部分は、以後の説明で都度登場しますから先に進んでも良いと思います。 この部分は機械に対してどのように解釈すべきかを書いてあると考えても良いです。最後に説明します。 マクロとは、この場合は定義されたものに置き換えることを意味します。 解りやすいところで説明すると num [0-9]+|[0-9]*\.[0-9]+ numとは、0から9の文字をひとつ(+)、もしくは(|)、0-9の文字を0個以上に続いて小数点(\.)に続く0-9の文字ひとつ以上(+)と展開。 なお、.の前の\は、正規表現では任意の文字を意味する.をエスケープして、文字通り.(小数点)として解釈しろと言う意味です。 --windowsは任意の文字を*で示しますから混乱しますが、Windowsだけ特赦なOSなので-- 人は、それが書かれている状況--文脈--も含めて総合的に意味を理解できますが、お馬鹿な機械はわずかなタイプミスも混乱してしまいます。そのため、人に機械は、この様書くと正しく判断すると説明してある部分です。人にまどろっこしいですが、お馬鹿な機械にはこんなもの苦じゃないのです。 先の数字numのマクロを見ても解るように、数字は2.54とは書けるけど、2.54じゃダメだと言っているのです。それを厳密に書くと、 ・半角の0から9の文字ひとつ以上 1 とか 7 とか 56 あるいは ・半角の0から9の文字ゼロ個以上と小数点とそれに続く一個以上の0から9の文字 .5 とか 2.8 とか 0.008 52. というのはダメと言うことです。
お礼
正規表現ですね。 かなりややこしいですが、理解できました。ありがとうございます。