cpiParsePreviousSibling

目的

指定した構文エレメントの直前の (左の) 兄弟を構文解析します。 これは、現行の構文エレメントの直前の (左の) 兄弟エレメントが必要な場合に、ブローカーによって呼び出されます。

定義されている場所 タイプ メンバー
CPI_VFT 必須 iFpParsePreviousSibling

構文

void cpiParsePreviousSibling(
    CciParser*  parser,
    CciContext* context,
  CciElement*  currentElement);

パラメーター

parser
パーサー・オブジェクトのアドレス (入力)。
context
プラグイン・コンテキストのアドレス (入力)。
currentElement
現行の構文エレメントのアドレス (入力)。

戻り値

なし。

サンプル

void cpiParsePreviousSibling(
    CciParser*  parser,
    CciContext* context,
    CciElement* element
){
    PARSER_CONTEXT_ST* pc = (PARSER_CONTEXT_ST *)context ;
    int rc;

    while ((!cpiElementCompletePrevious(&rc, cpiParent(&rc, element))) &&
                  (!cpiPreviousSibling(&rc, element))       &&
                    (pc->iCurrentElement))
  {
          pc->iCurrentElement = parsePreviousItem(parser, context, pc->iCurrentElement);
  }

            if (pc->trace) {
        fprintf(pc->tracefile, "PLUGIN: <- cpiParsePreviousSibling()\n");
              fflush(pc->tracefile);
  }

    return;
}

このコード例は、cpiParseNextSibling で使用されるものに似ています。 ビット・ストリームを右から左に構文解析する際には、上述のコンテキスト内で cpiParsePreviousSibling を使用してください。

関連概念
ユーザー定義のパーサー
ユーザー定義拡張機能

関連タスク
C でのパーサーの作成

関連資料
cpiParseNextSibling
パーサー・インプリメンテーション関数