スタイルシートの構文解析
Sassスタイルシートは、Unicodeコードポイントのシーケンスから解析されます。トークンストリームに変換されることなく、直接解析されます。
入力エンコーディング入力エンコーディング permalink
- Dart Sass
- ✗
- LibSass
- ✓
- Ruby Sass
- ✓
互換性
ドキュメントが最初にバイトシーケンスとしてのみ利用可能な場合が多いですが、これはUnicodeにデコードする必要があります。Sassはこのデコードを次のように実行します。
-
バイトシーケンスがU+FEFFバイトオーダーマークのUTF-8またはUTF-16エンコーディングで始まる場合、対応するエンコーディングが使用されます。
-
バイトシーケンスがプレーンASCII文字列`@charset`で始まる場合、Sassはフォールバックエンコーディングを決定するためのCSSアルゴリズムのステップ2を使用してエンコーディングを決定します。フォールバックエンコーディングの決定.
-
それ以外の場合は、UTF-8が使用されます。
構文解析エラー構文解析エラー permalink
Sassがスタイルシートで無効な構文を検出すると、構文解析は失敗し、無効な構文の位置と無効な理由に関する情報を含むエラーがユーザーに提示されます。
これはCSSとは異なり、CSSはほとんどのエラーからの回復方法を指定するのではなく、すぐに失敗します。これは、SCSSがCSSの厳密な上位集合ではない数少ないケースの1つです。ただし、Sassユーザーにとって、エラーをすぐに確認できる方が、CSS出力に渡すよりもはるかに役立ちます。
構文解析エラーの位置は、実装固有のAPIを介してアクセスできます。たとえば、Dart SassではSassException.span
にアクセスできます。Node SassとDart SassのJS APIでは、file
、line
、column
プロパティにアクセスできます。