Japanese subtitles

← 05xps-05 Parsing Javascript Expressions Solution

Get Embed Code
3 Languages

Showing Revision 1 created 10/23/2014 by Udacity.

  1. この問題ではJavaScriptの構文解析器のうち
  2. JavaScriptの式を扱う部分を書きます
  3. これはとても直接的で
  4. 前の問題でJavaScriptの規則を数えて
  5. 並べたように解くことができます
  6. 早速IDEに移りましょう
  7. 問題として与えられたコードがここにあります
  8. よく見ると
  9. 構文解析の規則はどうするべきか
    すでに書いてあります
  10. ここには識別子、数字、
  11. 文字列、真偽値、
  12. notキーワードをどのように扱うか
  13. そして括弧つきの式です
  14. さらに優先順位と結合性も
    それぞれ与えられています
  15. つまり行うべきことはすべて書きました
  16. ご覧のとおり演算子の優先順位は
    すでに書かれています
  17. これはほとんど問題で与えられた
  18. 優先順位の一番低いものから
    除算までのリストを書いた
  19. コメントのとおりに書いたのです
  20. この下にDIVIDEとありますね
  21. さらにNOTも動くように加えています
  22. 規則を書いていきましょう
  23. 最初に扱う規則は括弧にします
  24. 対応する左右の括弧の式の値は
  25. 中身の式と同じで単純です
  26. ここに4つの即値についての規則を書きました
  27. 数は“number”とその中身の文字列で
  28. 文字列は“string”と書き 同じようにします
  29. TrueかFalseと一致したら
  30. それを示すタプルを構文解析木にします
  31. notが見つかったら構文解析木に
    “not”とその中身を加えます
  32. その後 10個ほどの二項演算子の規則が続きます
  33. 加算、減算、乗算、剰余、
  34. 除算、などなどです
  35. そえぞれ別に書くこともできますが
    時間の節約のために
  36. ショートカットします
  37. これらのうち どれかに一致すれば
  38. それを二項演算子“binop”と呼んで
  39. このタプルの最初の要素にそのように示し
  40. 二項演算の左辺となる始めの要素と
  41. 演算子そのままと
  42. 右辺となる最後の要素も入れます
  43. さらに 以前の問題で行った関数宣言でなく
  44. 関数呼び出しの式もあります
  45. 関数呼び出しは省略可能な引数とともに
  46. 括弧で囲まれた識別子になります
  47. そしてこの省略可能な引数を扱うためのコードは
  48. 関数宣言での省略可能な引数を扱う部分と
    ほとんど同じです
  49. おそらく完全に同じでしょう
  50. これですべて終わりました
  51. 50行ほどのコードで完成です