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

ValiantParsing

 ValiantParsing

Kazuhiro Ichikawa

August 02, 2019
Tweet

More Decks by Kazuhiro Ichikawa

Other Decks in Programming

Transcript

  1. S → E E → E + E E →

    T T → T * T T → Num จ๏
  2. S → E E1 E → E E1 S →

    T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → * S → E E → E + E E → T T → T * T T → Num จ๏ ඪ४ܗ
  3. 1 + 2 * 3 * 4 S → E

    E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  4. 1 + 2 * 3 * 4 T,E,S N1 T,E,S

    N2 T,E,S N2 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  5. 1 + 2 * 3 * 4 T,E,S - N1

    T,E,S N2 T,E,S N2 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  6. 1 + 2 * 3 * 4 T,E,S - N1

    E1 T,E,S N2 T,E,S N2 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  7. 1 + 2 * 3 * 4 T,E,S - N1

    E1 T,E,S - N2 T,E,S N2 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  8. 1 + 2 * 3 * 4 T,E,S - N1

    E1 T,E,S - N2 T1 T,E,S N2 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  9. 1 + 2 * 3 * 4 T,E,S - N1

    E1 T,E,S - N2 T1 T,E,S - N2 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  10. 1 + 2 * 3 * 4 T,E,S - N1

    E1 T,E,S - N2 T1 T,E,S - N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  11. 1 + 2 * 3 * 4 T,E,S - E,S

    N1 E1 T,E,S - N2 T1 T,E,S - N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  12. 1 + 2 * 3 * 4 T,E,S - E,S

    N1 E1 - T,E,S - N2 T1 T,E,S - N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  13. 1 + 2 * 3 * 4 T,E,S - E,S

    N1 E1 - T,E,S - T,E,S N2 T1 T,E,S - N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  14. 1 + 2 * 3 * 4 T,E,S - E,S

    N1 E1 - T,E,S - T,E,S N2 T1 - T,E,S - N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  15. 1 + 2 * 3 * 4 T,E,S - E,S

    N1 E1 - T,E,S - T,E,S N2 T1 - T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  16. 1 + 2 * 3 * 4 T,E,S - E,S

    - N1 E1 - T,E,S - T,E,S N2 T1 - T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  17. 1 + 2 * 3 * 4 T,E,S - E,S

    - N1 E1 - E1 T,E,S - T,E,S N2 T1 - T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  18. 1 + 2 * 3 * 4 T,E,S - E,S

    - N1 E1 - E1 T,E,S - T,E,S - N2 T1 - T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  19. 1 + 2 * 3 * 4 T,E,S - E,S

    - N1 E1 - E1 T,E,S - T,E,S - N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  20. 1 + 2 * 3 * 4 T,E,S - E,S

    - E,S N1 E1 - E1 T,E,S - T,E,S - N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  21. 1 + 2 * 3 * 4 T,E,S - E,S

    - E,S N1 E1 - E1 - T,E,S - T,E,S - N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  22. 1 + 2 * 3 * 4 T,E,S - E,S

    - E,S N1 E1 - E1 - T,E,S - T,E,S - T,E,S N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  23. 1 + 2 * 3 * 4 T,E,S - E,S

    - E,S - N1 E1 - E1 - T,E,S - T,E,S - T,E,S N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  24. 1 + 2 * 3 * 4 T,E,S - E,S

    - E,S - N1 E1 - E1 - E1 T,E,S - T,E,S - T,E,S N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S S → E E1 E → E E1 S → T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → *
  25. S → E E1 E → E E1 S →

    T T1 E → T T1 T → T T1 E1 → N1 E T1 → N2 T S → Num E → Num T → Num N1 → + N2 → * 1 + 2 * 3 * 4 T,E,S - E,S - E,S - E,S N1 E1 - E1 - E1 T,E,S - T,E,S - T,E,S N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S
  26. ݟ֮͑ͷ͋Δࣶ໛༷ T,E,S - E,S - E,S - N1 E1 -

    E1 - T,E,S - T,E,S - T,E,S N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S
  27. ݟ֮͑ͷ͋Δࣶ໛༷ T,E,S - E,S - E,S N1 E1 - E1

    - T,E,S - T,E,S - T,E,S N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S T,E,S - E,S - E,S N1 E1 - E1 - T,E,S - T,E,S - T,E,S N2 T1 - T1 T,E,S - T,E,S N2 T1 T,E,S
  28. ݟ֮͑ͷ͋Δࣶ໛༷ - T,E,S - E,S - E,S - - -

    - N1 E1 - E1 - - - - - T,E,S - T,E,S - T,E,S - - - - N2 T1 - T1 - - - - - T,E,S - T,E,S - - - - - - N2 T1 - - - - - - - T,E,S - - - - - - - - - T,E,S - E,S - E,S - - - - N1 E1 - E1 - - - - - T,E,S - T,E,S - T,E,S - - - - N2 T1 - T1 - - - - - T,E,S - T,E,S - - - - - - N2 T1 - - - - - - - T,E,S - - - - - - - -
  29. શମͷܭࢉྔΛ1 O ͱ͠
 ӈ্෦෼ͷܭࢉྔΛ2 O D ON N ͱ͢Δͱ
 1

    O 1 O  2 O 
 OLͱͯ͠࠶ؼతʹల։͢Δͱ
 1 O L1   LD  OL N ʜ D ON
 O1   2 O   N L ʜ  
 NͳͷͰL㱣ͱ͢Δͱ
 N L ʜ ͸ N ʹऩଋ
 ͭ·Γશମͷܭࢉྔ͸2 O Ͱ཈͑ΒΕΔ
  30. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕ 
  31. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ࠨԼ੒෼ "✖9 9✖# $9
  32. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ࠨԼ੒෼ "✖9 9✖# $9 ࠶ؼ
  33. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ࠨ্੒෼ "✖9 "✖9 9✖# $9
  34. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ࠨ্੒෼ "✖9 "✖9 9✖# $9 ܭࢉࡁ
  35. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ࠨ্੒෼ "✖9 "✖9 9✖# $9 ܭࢉࡁ "✖9 9✖# $`9 $`"✖9 $ ࠶ؼ ߦྻੵ
  36. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ӈԼ੒෼ "✖9 9✖# 9✖# $9
  37. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ӈԼ੒෼ "✖9 9✖# 9✖# $9 ܭࢉࡁ
  38. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ӈԼ੒෼ "✖9 9✖# 9✖# $9 ܭࢉࡁ "✖9 9✖# $`9 $`9✖# $ ࠶ؼ ߦྻੵ
  39. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ӈ্੒෼ "✖9 "✖9 9✖# 9✖# $9
  40. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ӈ্੒෼ "✖9 "✖9 9✖# 9✖# $9 ܭࢉࡁ ܭࢉࡁ
  41. " " " 9 9 9 9 9 9 9

    9 # # # 9 9 9 9 $ $ $ $ ✖ ➕ ✖ ➕  ӈ্੒෼ "✖9 "✖9 9✖# 9✖# $9 ܭࢉࡁ ܭࢉࡁ "✖9 9✖# $`9 $`"✖9 9✖# $ ࠶ؼ ߦྻੵ ߦྻੵ
  42. ͜ͷ໰୊ͷܭࢉྔΛ2 O ͱ͠
 ߦྻੵͷܭࢉྔΛ3 O ͱ͢Δͱɺ
 2 O 2 O

     3 O  લͷઆ໌ͱಉ༷ͷํ๏Ͱɺ
 ܭࢉྔ͕3 O Ͱ཈͑ΒΕΔ͜ͱΛࣔͤΔ
 <ূ໌͸ಡऀͷԋश໰୊ͱ͢Δ>