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
26
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
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
16
1.9k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
48
HOME VR
orgachem
PRO
1
760
uGUI の自動操作の考え方と操作方法
orgachem
PRO
0
1.1k
Swift Macro に備えて構文木を 10min で学ぶ / Learn Syntax Tree for Swift Macro in 10 minutes
orgachem
PRO
1
950
SoftWare Engineer in Test のおしごと / What is SWET
orgachem
PRO
1
880
私と Nature Remo E / Nature Remo E
orgachem
PRO
0
24k
存在しないアセットへの参照と 未公開アセットでのネタバレに どう立ち向かうか / How to prevent missing assets and spoilers by assets
orgachem
PRO
1
910
睡眠する技術 / Technology to Sleep
orgachem
PRO
15
14k
Other Decks in Programming
See All in Programming
WinActorの勉強を継続する方法
tamai_63
0
120
CQRS meets modern Java
simas
PRO
2
460
“Seeing Like a Programmer”—Resiliency, Limits, and Moral Hazards in Software Engineering (LambdaConf 2024)
chriskrycho
0
410
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
1.1k
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・デプロイを自動化する
hacarus
0
590
ts-morphを使ってコードリプレイスとASTへのハードルを下げる!
nyawach
5
320
Runtime Objects in Rust
mitsuhiko
0
170
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
3
410
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
110
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.3k
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
690
AppRouter Panel Talk
yosuke_furukawa
PRO
1
520
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
36
2.1k
Facilitating Awesome Meetings
lara
43
5.6k
KATA
mclloyd
16
12k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Visualization
eitanlees
137
14k
Practical Orchestrator
shlominoach
183
9.8k
Designing for Performance
lara
601
67k
Designing the Hi-DPI Web
ddemaree
276
33k
4 Signs Your Business is Dying
shpigford
176
21k
Adopting Sorbet at Scale
ufuk
69
8.6k
Docker and Python
trallard
35
2.7k
How STYLIGHT went responsive
nonsquared
92
4.8k
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ͷޮՌతͳ͍ํ