スタイルシートの構文解析

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では、filelinecolumnプロパティにアクセスできます。