Upgrade to Pro — share decks privately, control downloads, hide ads and more …

“A ::= aAa / a” in PEG

“A ::= aAa / a” in PEG

さっき考えてたことのメモ

Masaki Hara

June 09, 2013
Tweet

More Decks by Masaki Hara

Other Decks in Programming

Transcript

  1. a a a a a a a A ::= aAa

    | a × aAaを試そうと するが失敗
  2. a a a a a a a A ::= aAa

    | a ◦ aを試す →成功
  3. a a a a a a a A ::= aAa

    | a ◦ aにマッチ
  4. a a a a a a a A ::= aAa

    | a ◦ aAaにマッチ
  5. a a a a a a a A ::= aAa

    | a aAaにマッチしてしまった のでaにはマッチしない
  6. a a a a a a a A ::= aAa

    | a A=aaaと決まっているので aaaaaにマッチしようとする →失敗
  7. a a a a a a a A ::= aAa

    | a aaaにマッチ →全体にマッチしない (∴5文字は×)
  8. a a a a a a a A ::= aAa

    | a 7文字は◦
  9. a a a a a a a A ::= aAa

    | a 0 1 2 3 4 5 6 7
  10. 位置 マッチ先 1 0 2 1 3 0 4 3

    5 2 6 1 7 0 aAaにマッチする時 →数字が1減る
  11. 位置 マッチ先 1 0 2 1 3 0 4 3

    5 2 6 1 7 0 aにマッチする時 →直後を参照