xpeg api

  • 文字列オブジェクト 同じ部分文字列とマッチする要素。
  • 文字列を要素とする範囲オブジェクト ("a".."z") 範囲内の文字とマッチする要素。
  • 並び: e1 >> e2
  • 選択: e1 | e2
  • ゼロ個以上の繰り返し: e*0
  • 1個以上の繰り返し: e*1
  • 1個以内の省略可能: e*-1
  • 否定 ~e
  • xpeg::any なんの文字ともマッチする要素
  • xpeg::eol 行末とマッチする要素
  • xpeg::empty 空とマッチする要素
  • xpeg::degit "0".."9"とマッチする要素
  • xpeg::lalpha "a".."z"とマッチする要素
  • xpeg::ualpha "A".."Z"とマッチする要素
  • xpeg::alpha "a".."z" | "A".."Z"とマッチする要素
  • xpeg::word "a".."z" | "A".."Z" | "0".."9"とマッチする要素
  • xpeg::ascii ascii範囲の文字とマッチする要素
  • xpeg::set: fun(string) 文字列を渡した場合、一文字づつの選択要素に変換して返す関数 xpeg::set("az") は "a" | "z"と等しい
  • xpeg::cap: fun(pattern) patternがマッチした場合、値をキャプチャする要素に変換して返す関数
  • xpeg::pred: fun(pred_fun) 要素がマッチするかどうかをユーザーが判定できる要素に変換して返す関数 xpeg::pred(|x|x=="a"||x=="b") は"a"か"b"が来たらマッチする
  • xpeg::lookahead: fun(pattern) 先読み
  • xpeg::lookbehind: fun(pattern, num) 後読み
  • xpeg::bound: fun(body_pattern, sep_pattern) sep_patternを前後に挟んだbody_patternとマッチする要素に変換して返す関数
  • xpeg::error: fun(error_hook)
  • xpeg::Executor PEGのエンジンクラス
    • Executor::reset: method(stream_or_iterator) // パースするストリームかイテレータを渡す
    • Executor::match: method(pattern) // 渡されたパターンがマッチするか調べる。マッチ成功すればtrue
    • Executor::parse: method(stream) // 渡されたパターンでパースする。パース成功すればtrue
    • Executor::captures: method(stream) // キャプチャされた文字列を列挙するイテレータを取得する
    • Executor::op_at: method(key) // keyに名前付けられたキャプチャされた文字列を得る。空文字列を渡すとマッチした部分すべてを返す
    • Executor::prefix: method(key) // マッチした部分から前の文字列を取得する
    • Executor::suffix: method(key) // マッチした部分から後の文字列を取得する