Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LintオタクによるLint解説 / Introduction to Lints
Search
Kuniwak
PRO
November 18, 2022
Programming
28
12k
LintオタクによるLint解説 / Introduction to Lints
https://lintnight.connpass.com/event/263931/
Kuniwak
PRO
November 18, 2022
Tweet
Share
More Decks by Kuniwak
See All by Kuniwak
テストケースの名前はどうつけるべきか?
orgachem
PRO
1
310
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
4k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
88
HOME VR
orgachem
PRO
1
790
uGUI の自動操作の考え方と操作方法
orgachem
PRO
1
1.4k
Swift Macro に備えて構文木を 10min で学ぶ / Learn Syntax Tree for Swift Macro in 10 minutes
orgachem
PRO
1
1.2k
SoftWare Engineer in Test のおしごと / What is SWET
orgachem
PRO
1
1k
私と Nature Remo E / Nature Remo E
orgachem
PRO
0
26k
存在しないアセットへの参照と 未公開アセットでのネタバレに どう立ち向かうか / How to prevent missing assets and spoilers by assets
orgachem
PRO
1
1.1k
Other Decks in Programming
See All in Programming
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
1.9k
Package Traits
ikesyo
1
210
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
Androidアプリの One Experience リリース
nein37
0
1.2k
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
2.7k
良いユニットテストを書こう
mototakatsu
11
3.6k
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
1.9k
Flatt Security XSS Challenge 解答・解説
flatt_security
0
730
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
7.7k
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
1
440
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Bash Introduction
62gerente
610
210k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Typedesign – Prime Four
hannesfritz
40
2.5k
Fireside Chat
paigeccino
34
3.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Done Done
chrislema
182
16k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Transcript
-JOUΦλΫʹ ΑΔ-JOUղઆ -JOU/JHIU,VOJXBL
,VOJXBL 7JNTDSJQUͷ-JOUͰ͋Δ7JOUͷ࡞ऀɻ -JOU͕͖͗ͯ͢Φʔϓϯιʔεͷ -JOUͷίʔυΛಡΈړ͍ͬͯΔɻ Ͱ-JOUͷ։ൃ͍ͯ͠Δɻ 2
͜ͷൃදͰ͍͑ͨ͜ͱ 3
4 -JOUͷڭཆ -JOUͱ -JOUͷݕग़͢Δ -JOUͷߏ -JOUͷޮՌతͳ͍ํ
5 -JOUͷڭཆ -JOUͱ -JOUͷݕग़͢Δ -JOUͷߏ -JOUͷޮՌతͳ͍ํ
ίʔυͱઃఆΛೖྗͱͯ͠ϓϩάϥϜͷΛ੩తʹ ݕग़͢Δπʔϧͷ͜ͱ ࣗવݴޠͰॻ͔ΕͨจॻͱઃఆΛೖྗͱͯ͠ จॻͷΛݕग़͢Δπʔϧͷ͜ͱ 6 -JOUͱʢ߹ҙ͞Εͨఆٛͳ͍ͷͰҙʣ 1 2
ίʔυͱઃఆΛೖྗͱͯ͠ϓϩάϥϜͷΛ੩తʹ ݕग़͢Δπʔϧͷ͜ͱ ࣗવݴޠͰॻ͔ΕͨจॻͱઃఆΛೖྗͱͯ͠ จॻͷΛݕग़͢Δπʔϧͷ͜ͱ 7 -JOUͱʢ߹ҙ͞Εͨఆٛͳ͍ͷͰҙʣ 2 ੩తʹݕग़͢ΔͱɺϓϩάϥϜΛ ࣮ࡍʹ࣮ߦ͢Δ͜ͱͳ͘Λ ݕग़͢Δͱ͍͏ҙຯ
1
:BDDͰ༗໊ͳ4$+PIOTPO͕ʹ։ൃͨ͠$ݴޠͷ ੩తݕࠪثͷ໊લ͕-JOUͩͬͨ͜ͱʹ༝དྷ͢Δɻ ࠓͰ͜ͷ-JOUʹࣅͨ੩తݕࠪثશൠ͕-JOUͱݺΕ͍ͯΔɻ ͱͱ-JOUͱࢳͣ͘ͷҙຯͰɺࢳͣ͘औΓΛΠϝʔδͯ͠ -JOUͱ໊͚ΒΕͨΒ͍͠ɻ UFYUMJOUͷొ͔Β-JOUͷࢦ͢੩తݕࠪثࣗવݴޠͷจॻΛ ରͱ͢Δͷʹ·Ͱ͕͍ͬͯΔɻ 8 -JOUͷ໊લͷ༝དྷ
9 -JOUͷڭཆ -JOUͱ -JOUͷݕग़͢Δ -JOUͷߏ -JOUͷޮՌతͳ͍ํ
-JOU͕ ݕग़͢Δ ॲཧܥ͕੩తʹ ݕग़͢Δ ୯७ͳઃఆΛͱʹ੩తʹݕग़Ͱ͖Δ ϓϩάϥϜͷͷ͏ͪɺॲཧܥ ʢίϯύΠϥΠϯλϓϦλʣ͕ ݕग़͠ͳ͍ͷɻ ࣗવݴޠͷʹ͍ͭͯಈ੩ͷ
֓೦͕ͳ͍ͷͰ͍͍ͩͨશ෦ɻ -JOUͷݕग़͢Δ 10
11 -JOU͕ ݕग़͢Δ ॲཧܥ͕੩తʹ ݕग़͢Δ ॲཧܥͱ-JOUͷݕग़ରݴޠ͝ͱʹҟͳΔ -JOU͕ ݕग़͢Δ
ॲཧܥ͕੩తʹ ݕग़͢Δ 5ZQF4DSJQU $ (P 1FSM 3VCZ +BWB4DSJQU
12 -JOUͷݕग़͢Δͷྫ ఆٛʹ߹ҙͷऔΕͳ͍ ಈతʹ͔͠ݕग़͞Ε͍ͯͳ͍ 1 2
13 ͷఆٛʹ߹ҙͷऔΕͳ͍ͷ ݹདྷΑΓਓྨίʔσΟϯάελΠϧͰ૪͖ͬͯͨɻ ͍·૪͍ͷܾண͍͍ͭͯͳ͍ͨΊॲཧܥ͕ ίʔσΟϯάελΠϧΛݕࠪ͢Δ͜ͱ ΄ͱΜͲͳ͘ɺ-JOUͷׂʹͳ͍ͬͯΔɻ ͨͩ͠Ұ෦ͷॲཧܥΠϯσϯτΛ ݕࠪ͢Δ͜ͱ͕͋ΔʢΦϑαΠυϧʔϧͱ͍͏ʣɻ 1
14 ͷఆٛʹ߹ҙͷऔΕͳ͍ͷ ͲͷϑϨʔϜϫʔΫΛ͏͔ɺ͋Δ͍Θͳ͍͔ ࣗ༝Ͱ͋ΔͷͰɺϑϨʔϜϫʔΫݻ༗ͷ͍ํͷ ॲཧܥ͕ݕग़͢Δ͜ͱͳ͍ɻ-JOUͷग़൪ɻ 1
15 ಈతʹ͔͠ݕग़͞Ε͍ͯͳ͍ ಈతʹݕग़͞ΕΔΛ੩తʹݕग़͢Δͷ-JOUͷ ׂͷ̍ͭɻ࠷ۙͰ͞·͟·ͳಈతܕݕ͖ࠪͭ ϓϩάϥϛϯάݴޠʹ੩తܕݕࠪΛ͢Δ-JOU͕ ొ͍ͯ͠ΔʢNZQZ 'MPX 4PSCFU 1)14UBO ʣɻ
2
16 -JOUͷڭཆ -JOUͱ -JOUͷݕग़͢Δ -JOUͷߏ -JOUͷޮՌతͳ͍ํ
ςετɾϨϏϡʔҎ߱Ͱݕग़͞Ε͍ͯͨ Λ-JOUͰݕग़͢Δ 17 -JOUͷޮՌతͳ͍ํ
18 ͳͥޮՌతͱओு͍ͯ͠Δͷ͔
19 ߏจղੳ -JOUίϯύΠϧ࣌ݕࠪ ୯ମɾ݁߹ςετϨϏϡʔ γεςϜςετ ຊ൪ڥͰͷΤϥʔऩू Ϣʔβʔ͔Βͷ͓͍߹Θͤ Λ
ݕ ग़ ͢ Δ ͨ Ί ͷ ख ஈ
20 ߏจղੳ -JOUίϯύΠϧ࣌ݕࠪ ୯ମɾ݁߹ςετϨϏϡʔ γεςϜςετ ຊ൪ڥͰͷΤϥʔऩू Ϣʔβʔ͔Βͷ͓͍߹Θͤ ্͔Βॱʹݕࠪ͞ΕΔ 9
Λ ݕ ग़ ͢ Δ ͨ Ί ͷ ख ஈ
21 ߏจղੳ -JOUίϯύΠϧ࣌ݕࠪ ୯ମɾ݁߹ςετϨϏϡʔ γεςϜςετ ຊ൪ڥͰͷΤϥʔऩू Ϣʔβʔ͔Βͷ͓͍߹Θͤ Λݕग़͢Δͱࢭ·Δ 9
Λ ݕ ग़ ͢ Δ ͨ Ί ͷ ख ஈ
22 ߏจղੳ -JOUίϯύΠϧ࣌ݕࠪ ୯ମɾ݁߹ςετϨϏϡʔ γεςϜςετ ຊ൪ڥͰͷΤϥʔऩू Ϣʔβʔ͔Βͷ͓͍߹Θͤ 9 : ্ͷํͷखஈͰࢭ·Δͱ
ίετͰΛݕग़Ͱ͖Δ ಛघͳԼͷํͷ खஈͰ͔͠ݕग़Ͱ͖ͳ͍ Λ ݕ ग़ ͢ Δ ͨ Ί ͷ ख ஈ
23 ߏจղੳ -JOUίϯύΠϧ࣌ݕࠪ ୯ମɾ݁߹ςετϨϏϡʔ γεςϜςετ ຊ൪ڥͰͷΤϥʔऩू Ϣʔβʔ͔Βͷ͓͍߹Θͤ -JOU͜ͷҐஔ
Λ ݕ ग़ ͢ Δ ͨ Ί ͷ ख ஈ
24 ߏจղੳ -JOUίϯύΠϧ࣌ݕࠪ ୯ମɾ݁߹ςετϨϏϡʔ γεςϜςετ ຊ൪ڥͰͷΤϥʔऩू Ϣʔβʔ͔Βͷ͓͍߹Θͤ ͠-JOUΛ͍ͬͯͳ͍ͱɺ -JOUͰݕग़Ͱ͖ΔΛΑΓ ߴίετͳςετϨϏϡʔͰ
ݕग़͠ͳ͍ͱ͍͚ͳ͘ͳΔ ܕΤϥʔ ػೳͷޡ༻ Λ ݕ ग़ ͢ Δ ͨ Ί ͷ ख ஈ
25 ߏจղੳ -JOUίϯύΠϧ࣌ݕࠪ ୯ମɾ݁߹ςετϨϏϡʔ γεςϜςετ ຊ൪ڥͰͷΤϥʔऩू Ϣʔβʔ͔Βͷ͓͍߹Θͤ -JOUΛ͏͜ͱͰɺΑΓ ίετͰΛݕग़Ͱ͖Δ ܕΤϥʔ
ػೳͷޡ༻ Λ ݕ ग़ ͢ Δ ͨ Ί ͷ ख ஈ
26 Ͳ͏࣮ͬͯݱ͢Δͷ͔
27 -JOUΛ࣮ͬͨݱํ๏ͷྫ w ܕΤϥʔͷݕग़ ੩తܕݕࠪͷͰ͖Δ-JOUΛಋೖ͢Δ w ίʔσΟϯάελΠϧҧͷݕग़ -JOUͷઃఆΛڞ༗͢Δ͜ͱͰ࣮ݱͰ͖Δ
w ϓϩδΣΫτͰ࣮͞Εͨػೳͷޡ༻ͷݕग़ -JOUͷϧʔϧΛ࣮࣮ͯ͠ݱͰ͖Δ
28 -JOUΛ࣮ͬͨݱํ๏ͷྫ w ܕΤϥʔͷݕग़ ੩తܕݕࠪͷͰ͖Δ-JOUΛಋೖ͢Δ w ίʔσΟϯάελΠϧҧͷݕग़ -JOUͷઃఆΛڞ༗͢Δ͜ͱͰ࣮ݱͰ͖Δ
w ϓϩδΣΫτͰ࣮͞Εͨػೳͷޡ༻ͷݕग़ -JOUͷϧʔϧΛ࣮࣮ͯ͠ݱͰ͖Δ ͜ͷͨΊʹ-JOUͷ ߏΛΔඞཁ͕͋Δ
29 -JOUͷڭཆ -JOUͱ -JOUͷݕग़͢Δ -JOUͷߏ -JOUͷޮՌతͳ͍ํ
30 -JOUͷߏ w -JOUͷߏͲΕࣅ௨͍ͬͯΔͷͰɺͭΛ ಡΊΔΑ͏ʹͳΔͱଞͷಡΊΔΑ͏ʹͳΔ w ॲཧͷྲྀΕதؒσʔλ͕ҟͳΔ͚ͩͰ΄ͱΜͲಉ͡ w ѻ͏ओͳதؒσʔλɿ w
τʔΫϯྻ w நߏจ w ੍ޚϑϩʔάϥϑʢࠓճׂѪʣ
31 -JOUͷදతͳߏ ݕࠪϧʔϧΛԣஅ͢Δॲཧ ʢ$-*ͷఏڙɺݕࠪ༰қͳσʔλͷมɺݕࠪϧʔϧͷ࣮ߦʣ ݕࠪ ϧʔϧ ݕࠪ ϧʔϧ ݕࠪ ϧʔϧ
ݕࠪ ϧʔϧ ݕࠪϧʔϧ͝ͱʹݸผͷ ίϯϙʔωϯτͱ࣮ͯ͠͠ɺ ԣஅॲཧΛݕࠪϧʔϧʹ ґଘͤ͞ͳ͍ߏ͕΄ͱΜͲɻ ͳ͓-JOUͷίʔυΛಡΉ ࡍʹɺίʔυྔͷগͳ͍ ݕࠪϧʔϧ͔Β͕͓͢͢Ίɻ ґ ଘ ݩ ґ ଘ ઌ
32 -JOU ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ -JOUͷॲཧͷྲྀΕ
33 -JOU ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ ίʔσΟϯάελΠϧΛݕࠪ͢Δ-JOUͷྫ ࣈ۟
ղੳ τʔΫϯྻ ʢޙड़ʣ ݕࠪ
34 ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ ΑΓߴͳݕࠪΛ͢Δ-JOUͷྫ ߏจ ղੳ
ݕࠪ நߏจ ʢޙड़ʣ -JOU
35 ݕ͍ࠪͨ͠ ιʔείʔυ ݕग़ͨ͠ ͷҰཡ ॲཧͷྲྀΕͷൺֱ ࣈ۟ ղੳ ݕࠪ τʔΫϯྻ
ʢޙड़ʣ ݕ͍ࠪͨ͠ ιʔείʔυ ݕग़ͨ͠ ͷҰཡ ݕࠪ நߏจ ʢޙड़ʣ ߏจ ղੳ ͜ͷ෦͕ҟͳΔ͚ͩ
36 -JOU ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ ίʔσΟϯάελΠϧΛݕࠪ͢Δ-JOUͷྫ ࣈ۟
ղੳ τʔΫϯྻ ʢޙड़ʣ ݕࠪ
37 τʔΫϯྻ τʔΫϯྻ function helloWorld ( ) { console .
log τʔΫϯͱɺιʔείʔυͷ จࣈྻʹग़ݱ͢ΔҙຯΛ࣋ͬͨ ࠷খ୯Ґͷ͜ͱ
38 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
τʔΫϯྻ τʔΫϯྻ function helloWorld ( ) { console . log ؆୯ͳ+BWB4DSJQUͷιʔείʔυ ͷτʔΫϯΛݟͯΈΑ͏ ͜ͷίʔυͷઌ಄͔ΒॱʹԿ͕ τʔΫϯʹͳΔͷ͔Λݟ͍ͯ͘
39 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
τʔΫϯྻ τʔΫϯྻ function helloWorld ( ) { console . log τʔΫϯ
40 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
τʔΫϯྻ τʔΫϯྻ function helloWorld ( ) { console . log τʔΫϯ
41 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
τʔΫϯྻ τʔΫϯྻ function helloWorld ( ) { console . log τʔΫϯ
42 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
τʔΫϯྻ τʔΫϯྻ function helloWorld ( ) { console . log τʔΫϯ
43 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
τʔΫϯྻ τʔΫϯྻ function helloWorld ( ) { console . log τʔΫϯ
44 τʔΫϯྻ τʔΫϯྻ τʔΫϯͱɺιʔείʔυͷ จࣈྻʹग़ݱ͢ΔҙຯΛ࣋ͬͨ ࠷খ୯Ґͷ͜ͱ function helloWorld ( )
{ console . log
45 τʔΫϯྻ τʔΫϯྻ τʔΫϯྻͱɺιʔείʔυͷ จࣈྻʹग़ݱ͢ΔॱʹτʔΫϯΛ ฒͨͷ function helloWorld ( )
{ console . log
46 -JOU ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ ίʔσΟϯάελΠϧΛݕࠪ͢Δ-JOUͷྫ ࣈ۟
ղੳ τʔΫϯྻ ʢޙड़ʣ ݕࠪ
47 -JOU ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ ίʔσΟϯάελΠϧΛݕࠪ͢Δ-JOUͷྫ ࣈ۟
ղੳ τʔΫϯྻ ʢޙड़ʣ ݕࠪ
48 τʔΫϯྻ τʔΫϯྻ with ( obj ) { console .
log XJUIจͷར༻Λݕग़͢Δ-JOUͷ ॲཧͷྲྀΕΛΈͯΈΑ͏
49 τʔΫϯྻ τʔΫϯྻ with ( obj ) { console .
log // ېࢭ͞Ε͍ͯΔ with จΛ͍ͬͯΔ with (obj) { console.log(obj); }
50 τʔΫϯྻ τʔΫϯྻ with ( obj ) { console .
log // ېࢭ͞Ε͍ͯΔ with จΛ͍ͬͯΔ with (obj) { console.log(obj); }
51 τʔΫϯྻ τʔΫϯྻ with ( obj ) { console .
log // ېࢭ͞Ε͍ͯΔ with จΛ͍ͬͯΔ with (obj) { console.log(obj); } τʔΫϯྻͷઌ಄͔Βॱʹɺ τʔΫϯ͕XJUIΩʔϫʔυ͔ Ͳ͏͔ௐΔ͜ͱͰɺXJUIจͷ ༻Λݕग़Ͱ͖Δ
52 τʔΫϯྻ τʔΫϯྻ with ( obj ) { console .
log // ېࢭ͞Ε͍ͯΔ with จΛ͍ͬͯΔ with (obj) { console.log(obj); } XJUIΩʔϫʔυͷൃݟʹΑΓ XJUIจͷ༻Λݕग़Ͱ͖ͨ
53 ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ ΑΓߴͳݕࠪΛ͢Δ-JOUͷྫ ߏจ ղੳ
ݕࠪ நߏจ ʢޙड़ʣ -JOU
54 ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ ΑΓߴͳݕࠪΛ͢Δ-JOUͷྫ ߏจ ղੳ
ݕࠪ நߏจ ʢޙड़ʣ -JOU
55 நߏจͱɺݴޠ͝ͱͷنଇʹ ͕ͨͬͯ͠ιʔείʔυΛ ߏͰ͋ΒΘͨ͠ͷͷ͜ͱ நߏจ Program FuncDecl BlockStmt ExprStmt Identifier
CallExpr Identifier Identifier MemExpr Literal
56 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
؆୯ͳ+BWB4DSJQUͷιʔείʔυ ͷநߏจΛݟͯΈΑ͏ நߏจ Program FuncDecl BlockStmt ExprStmt Identifier CallExpr Identifier Identifier MemExpr Literal நߏจΛཧղ͢Δʹɺ༿͔Β ରԠ͢Δ෦ΛΈ͍ͯ͘ͱΑ͍
57 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
நߏจ Program FuncDecl BlockStmt ExprStmt Identifier CallExpr Identifier MemExpr Literal Identifier
58 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
நߏจ Program FuncDecl BlockStmt ExprStmt Identifier CallExpr MemExpr Identifier Literal Identifier
59 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
நߏจ Program FuncDecl BlockStmt ExprStmt Identifier CallExpr Literal MemExpr Identifier Identifier
60 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
நߏจ Program FuncDecl BlockStmt ExprStmt Identifier CallExpr Identifier MemExpr Identifier Literal
61 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
நߏจ Program FuncDecl BlockStmt ExprStmt Identifier CallExpr Literal MemExpr Identifier Identifier
62 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
நߏจ Program FuncDecl BlockStmt ExprStmt Identifier CallExpr Literal MemExpr Identifier Identifier
63 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
நߏจ Program FuncDecl BlockStmt Identifier CallExpr ExprStmt Literal MemExpr Identifier Identifier
64 /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); }
நߏจ Program FuncDecl BlockStmt Identifier CallExpr ExprStmt Literal MemExpr Identifier Identifier
65 ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ ΑΓߴͳݕࠪΛ͢Δ-JOUͷྫ ߏจ ղੳ
ݕࠪ நߏจ ʢޙड़ʣ -JOU
66 ݕ͍ࠪͨ͠ ιʔείʔυ ݕࠪϧʔϧ ͝ͱͷઃఆ ݕग़ͨ͠ ͷҰཡ ΑΓߴͳݕࠪΛ͢Δ-JOUͷྫ ߏจ ղੳ
ݕࠪ நߏจ ʢޙड़ʣ -JOU
67 DPOTPMFMPHݺͼग़͠Λݕग़͢Δ -JOUͷॲཧͷྲྀΕΛΈͯΈΑ͏ நߏจ Program FuncDecl BlockStmt ExprStmt Identifier CallExpr
Identifier Identifier MemExpr Literal
68 நߏจΛਂ͞༏ઌͰ୳ࡧ͠ɺ ͍ͨ͠෦ͷࠜΛݟ͚ͭΔ ࠓճؔݺͼग़͠ʹ͍ͨ͠ ͷͰɺ$BMM&YQSཁૉΛ୳͢ நߏจ Program FuncDecl BlockStmt ExprStmt
Identifier CallExpr Identifier Identifier MemExpr Literal
69 நߏจ FuncDecl BlockStmt ExprStmt Identifier CallExpr Identifier Identifier MemExpr
Literal Program $BMM&YQSͰͳ͍ͷͰແࢹ
70 நߏจ BlockStmt ExprStmt Identifier CallExpr Identifier Identifier MemExpr Literal
Program FuncDecl $BMM&YQSͰͳ͍ͷͰແࢹ
71 நߏจ BlockStmt ExprStmt CallExpr Identifier Identifier MemExpr Literal Program
FuncDecl Identifier $BMM&YQSͰͳ͍ͷͰແࢹ
72 நߏจ ExprStmt CallExpr Identifier Identifier MemExpr Literal Program FuncDecl
Identifier BlockStmt $BMM&YQSͰͳ͍ͷͰແࢹ
73 நߏจ CallExpr Identifier Identifier MemExpr Literal Program FuncDecl Identifier
BlockStmt ExprStmt $BMM&YQSͰͳ͍ͷͰແࢹ
74 நߏจ Identifier Identifier MemExpr Literal Program FuncDecl Identifier BlockStmt
ExprStmt CallExpr $BMM&YQSΛൃݟͨ͠
75 நߏจ Identifier Identifier MemExpr Literal Program FuncDecl Identifier BlockStmt
ExprStmt CallExpr $BMM&YQSΛൃݟͨ͠Βɺ͜ͷ ؔݺͼग़͕͠DPOTPMFMPHͷ ݺͼग़͠Ͱ͋Δ͜ͱΛ֬ೝ͢Δ ۩ମతʹɺݺͼग़͠ର͕ DPOTPMF͔ΒMPHϓϩύςΟΛ ࢀর͢Δ.FN&YQSͰ͋Δ͜ͱΛ ֬ೝ͢Εྑ͍
76 நߏจ Literal Program FuncDecl Identifier BlockStmt ExprStmt CallExpr Identifier
Identifier MemExpr /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); } ݺͼग़͠ର͕DPOTPMFMPHͰ͋Δ͜ͱΛ֬ೝ
77 நߏจ Literal Program FuncDecl Identifier BlockStmt ExprStmt CallExpr Identifier
Identifier MemExpr /** ϋϩʔϫʔϧυΛදࣔ͢Δ */ function helloWorld() { console.log("Hello, World!"); } DPOTPMFMPHͷؔݺͼग़͠Λݕग़Ͱ͖ͨ
78 -JOUͷߏͷ͓͞Β͍ w -JOUͷߏͲΕࣅ௨͍ͬͯΔͷͰɺͭΛ ಡΊΔΑ͏ʹͳΔͱଞͷಡΊΔΑ͏ʹͳΔ w ॲཧͷྲྀΕதؒσʔλ͕ҟͳΔ͚ͩͰ΄ͱΜͲಉ͡ w ѻ͏ओͳதؒσʔλɿ w
τʔΫϯྻ w நߏจ w ੍ޚϑϩʔάϥϑʢࠓճׂѪʣ
·ͱΊ 79
80 -JOUͷڭཆ -JOUͱ -JOUͷݕग़͢Δ -JOUͷߏ -JOUͷޮՌతͳ͍ํ