• ベストアンサー

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における「マクロ」とはなんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.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. というのはダメと言うことです。

choco0213
質問者

お礼

正規表現ですね。 かなりややこしいですが、理解できました。ありがとうございます。

関連するQ&A