字句規則(Lexical conventions)
字句規則(Lexical conventions)は、PDF構文内で文字がどのように解釈され、意味のある単位に組織化されるかを定める基本的なルールです。
字句規則(Lexical conventions)は、PDF構文内で文字がどのように解釈され、意味のある単位に組織化されるかを定める基本的なルールです。 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で規定されているように、これらの規則はトークンの構造、区切り文字の使用、コメント構文、および空白文字の処理を管理します。字句規則を理解することは、PDFファイルを正しく解析および生成するために不可欠です。なぜなら、これらはすべての高レベルPDFオブジェクトが構築される基盤を形成するからです。
字句規則は、PDFファイルが文字およびトークンレベルでどのように構造化されるかを定める低レベルの構文規則です。これらの規則は、PDFパーサーが個々の文字をどのように解釈し、それらをトークン(名前、数値、文字列、キーワードなどのPDF構文の基本的な字句単位)にグループ化するかを指定します。規則はまた、区切り文字として機能する特殊文字(括弧、角括弧、山括弧など)を定義し、コメントのフォーマット方法(%文字で始まり行末まで続く)を確立し、どの文字が空白文字を構成するか(スペース、タブ、キャリッジリターン、ラインフィード、ヌル、フォームフィード)を決定します。オブジェクトやコンテンツストリームなどの高レベルPDF構造とは異なり、字句規則は最も基本的な解析レベルで動作し、従来のプログラミング言語コンパイラにおける字句解析フェーズに相当します。
PDF生成または解析ライブラリを扱う開発者にとって、字句規則を理解することはいくつかの理由で重要です。第一に、これらの規則は、PDFファイルを書き込む際にコードがデータをどのようにフォーマットする必要があるかを決定します。不適切な間隔、誤った区切り文字の使用、または不正なトークンは、リーダーが処理できない無効なPDFを生成します。第二に、PDFパーサーやバリデーターを実装する際、字句規則は、意味解析が行われる前に実装されなければならないトークン化ロジックを定義します。第三に、PDF関連の問題をデバッグするには、生のPDF構文を調査する必要があることが多く、字句規則に精通していれば、開発者は区切り文字の欠落、不適切なコメント構文、無効なトークン形式などの構造的問題を迅速に特定できます。最後に、JavaやJavaScriptなどの言語でPDFライブラリを使用する場合、これらの規則を理解することで、開発者は特定の文字列エスケープやエンコーディング手法がなぜ必要なのかを認識できるようになります。
PDFの字句規則は、相互に関連するいくつかの規則を通じて動作します。第一に、PDFパーサーはファイルをバイトストリームとして読み取り、空白文字規則を適用してトークン境界を識別します。空白文字(ASCIIコード0、9、10、12、13、32)は一般的にトークンを分離しますが、文字列やストリーム内では無視されます。第二に、パーサーは区切り文字((、)、<、>、[、]、{、}、/、%)を認識します。これらは特別であり、オブジェクトを区切り、単独でトークンとして機能できます。第三に、コメントは%文字によって識別され、パーサーはその行の後続するすべての文字を無視します。これにより、PDF構造に影響を与えずに注釈を付けるメカニズムが提供されます。第四に、残りの文字はコンテキストに基づいてトークンにグループ化されます。通常の文字の連続は、名前(/が前に付く場合)、数値(数値パターンに一致する場合)、キーワード(true、false、nullなどの予約語に一致する場合)、または文字列(括弧または山括弧で囲まれている場合)になります。パーサーはこれらの規則を正しい順序で処理する必要があります。なぜなら、文字の解釈はそのコンテキストに依存するからです。たとえば、/は名前を導入する際には区切り文字として機能しますが、文字列内ではリテラル文字になる可能性があります。
- Token(トークン) – 名前、数値、キーワードなど、PDF構文の基本的な字句単位
- Delimiter(区切り文字) – オブジェクトを分離し、PDFで構文的意味を持つ特殊文字
- PDF Object(PDFオブジェクト) – 字句規則に従ってトークンから構築される高レベルのデータ構造
- Content Stream(コンテンツストリーム) – レンダリング操作のために字句規則に従う命令のシーケンス
- White Space Character(空白文字) – トークンを分離し、可読性のためにPDFファイルをフォーマットするために使用される文字
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
