ãã¿ãŒã³ãè€æ°å衚瀺ãããå¯èœæ§ã®ãããã¡ã€ã«ã解æããããšããŠããŸãã
G04 hello world*
G04 foo bar*
察å¿ããPEG.jsææ³ã¯æ¬¡ã®ãšããã§ãã
= "G04" _ content:String* _ EOL
{
return content
}
_ "whitespace"
= [ \t\n\r]*
String
= value:[a-zA-Z0-9.(): _-]+
{
return value.join('')
}
EOL
= [*] _
äºæ³ãããè¡åïŒ
PEG.jsã¯ã G04
è¡ããšã«2é
ç®ã®é
åãçæããããšãæåŸ
ããŠããŸãã
å®éã®åäœïŒ
次ã®ãšã©ãŒãã¹ããŒãããŸãã
2è¡ç®ã1åç®ïŒå ¥åã®çµãããäºæ³ãããŸããããGããèŠã€ãããŸããã
ãã°ã®äŸã®ææ³ãèªãã§ãã ããã ããã«ãã°ã¯ãããŸããã 課é¡ãã©ãã«ãŒã¯ããã«ããªã¯ãšã¹ãã察象ãšããŠããŸããã ææ³ã®äŸã®1ã€ã¯ããŸãã«ããªããæ±ããŠãããã®ã§ãã
ãã«ããªã¯ãšã¹ãã®é©åãªå Žæã¯StackOverflowã§ãã 課é¡è¿œè·¡ã·ã¹ãã ã¯ãéçºè ãäœãå£ããŠãããã远跡ããããã«äœ¿çšãããã®ã§ãããããã±ãŒãžãªããžããªããããžã§ã¯ãã®å質ã枬å®ããããã«äœ¿çšãããã®ã§ãã
Document
= ClassRow+
ClassID
= "G04"
ClassTitle
= title:[^\n]+ { return title.join(''); }
ClassRow =
id:ClassID title:ClassTitle '\n'? { return { id, title }; }
ãããèŠããããã®åé¡ãéããŠãã ããã ããããšãã
éèŠãªã®ã¯ãPEGææ³ã®èªã¿æ¹ãåŠã¶ããšã§ãã ããã¯èšãïŒ
Document
ã¯1ã€ä»¥äžã®ClassRow
ã§ãããClassID
ã¯åºå®æåå"G04"
ã§ãããClassTitle
ã¯ã次ã®æ¹è¡ãŸã§ã®ããã¹ãã§ããã次ã®æ¹è¡ã¯å«ãŸããŸãããããããã¿ã€ãã«ããšåŒã³ãŸããã¿ã€ãã«ã¯ãæåã®é
åã§ã¯ãªããæååãšããŠè¿ããŸãããClassRow
ã¯ClassID
ã®åŸã«ClassRow
$ãç¶ããŸããClassRowã¯æ¹è¡ã§çµäºãããããæ¹è¡ã¯äºå®äžæ°ããè¡ãéå§ããŸãã
åçãšèª¬æã«æè¬ããŸããä»åŸã®è³ªåã«ã¯StackOverflowã䜿çšããŸãã
ããããç§ãè¡šçŸãããããšãããã€ããããŸãã
examples/
ãã©ã«ããŒã«4ã€ã®äŸã®ææ³ããããŸãã ãã ããç§èŠã§ã¯ããarithmetics.pegjsããé€ããŠãåå¿è
ïŒç§ã®ãããªããŸãã¯ç§ã«ãšã£ãŠïŒã«ã¯é©ããŠããŸããïŒååã«åçŽã§ãïŒã PEG.jsãïŒéãïŒïŒéçºäžã§ããããšãç解ããŠããã®ã§ãè€éãªçŸå®äžçã®åé¡/ã·ããªãªã«ãã£ãšçŠç¹ãåœãŠãŠããå¯èœæ§ãããããšã¯éåžžã«ç解ã§ããŸãã åçŽãªææ³ããè€éãªææ³ãŸã§ã段éçãªäŸãæåŸ
ããŠããŸãããæ°èŠã®ãã£ãŒãããã¯ãšããŠãããèæ ®ããŠãã ããã
ãåé¡ã®çš®é¡ïŒè³ªåïŒ[ã¯ã/ããã]ãã®éšåã¯ãããªããèšåãããã£ã¬ã¯ãã£ãã«é¢ããŠå°ã誀解ãæãå¯èœæ§ããããŸãã ç§ã¯ãã®ã»ã¯ã·ã§ã³ãã課é¡è¿œè·¡ã·ã¹ãã ã¯è³ªåãããã®ã«é©åãªå Žæã§ãããšè§£éããŸãã
åæããŸãã ãã®ããã¹ããåé€ãããã®ã§ã2017幎ã«äŸé ŒããŸããã
ããã¹ããååšããçç±ã¯ããã®ã©ã€ãã©ãªãå®è¡ããªããªã£ãDavidããåé¡ã調ã¹ããããã°ããããšæã£ãä»ã®äººãèŠã€ãããããã«ãããã¯ãã°ã§ãããšèšã人ã ã«ããããããŠããããã§ãã
ããšãã°ããã®åé¡ã«ã¯5ããŒã¹ã®ã¯ããŒã³ããããŸã
ã
ãäŸãïŒexamples /ãã©ã«ããŒã«4ã€ã®äŸã®ææ³ããããŸãã ãã ããç§èŠã§ã¯ããarithmetics.pegjsããé€ããŠãåå¿è ïŒç§ã®ãããªããŸãã¯ç§ã«ãšã£ãŠïŒã«ã¯é©ããŠããŸããïŒååã«åçŽã§ãïŒã
åæããŸãã ããããæžãããã§ãã
ã
PEG.jsãïŒéãïŒïŒéçºäžã§ããããšãç解ããŠããŸã
確ãã«ããã§ã¯ãããŸããã
å ã®äœè ã¯ããã1幎éã¢ã€ãã«ç¶æ ã«ããŠããã®ã§ã圌ã¯æ°ããã¡ã³ãããæ±ããŸããã
2017幎5æã«åŒãç¶ãã æ°ããã¡ã³ããã¯ããã¹ã¿ãŒãã©ã³ãã«1ãã€ãã®ã³ãŒãããªãªãŒã¹ããŠããŸããã
ã©ã€ãã©ãªã®äœ¿çšéãæžå°ããŠãããããã©ã€ãã©ãªã¯2014幎ããjavascriptããµããŒãããŠããŸããããŸããã»ãŒ3幎éNPMã«readme
ããããŸããã§ãããåäžæåã®ASTä¿®æ£ã¯ãåé¡ã§1幎éè¿ä¿¡ããªããæ°ããã¡ã³ããã¯ã倧éã®åé¡ãéãããšããŒã¯ãããæ©èœãã©ã³ãã®2ã5幎éãç Žæ£ããã©ã€ãã©ãªå
šäœãå¥ã®èšèªã§èªåã§æžããæ°ãããã®ã«çœ®ãæããããšã«ããŸããã
ã
ããªããè€éãªçŸå®äžçã®åé¡/ã·ããªãªã«ãã£ãšéäžãããããããªãããšã¯éåžžã«ç解ã§ããŸãã åçŽãªææ³ããè€éãªææ³ãŸã§ã段éçãªäŸãæåŸ ããŠããŸããã
ãã®ã©ã€ãã©ãªãåã³æ£åžžã«ããåŸããŠãŒã¶ãŒã®ãªã³ããŒãã£ã³ã°ãããããçŸåšæãéèŠãªçŸå®ã®åé¡ã®1ã€ã§ãããšç§ã¯ä¿¡ããŠããŸãã
æ確ã«ããããã«ãç§ã¯åäœè ã§ã¯ãããŸããã @dmajdaã¯ã§ãã
æ確ã«ããããã«ãç§ã¯ã¡ã³ãããŒã§ã¯ãããŸããã ã¡ã³ããã¯ããŸããã
ãåé¡ã®çš®é¡ïŒè³ªåïŒ[ã¯ã/ããã]ãã®éšåã¯ãããªããèšåãããã£ã¬ã¯ãã£ãã«é¢ããŠå°ã誀解ãæãå¯èœæ§ããããŸãã ç§ã¯ãã®ã»ã¯ã·ã§ã³ãã課é¡è¿œè·¡ã·ã¹ãã ã¯è³ªåãããã®ã«é©åãªå Žæã§ãããšè§£éããŸãã
@ceremcem ãããªãã¯ãã¹ãŠãæ£ããè¡ããŸããïŒãŠã£ãããã£ã¢ã§PEGã®èª¬æãèŠãŠããªãããšãšãææ³ãæåã§è§£æããããšããªãããšãé€ããŠããã®åŸã質åãIMHOã¯è§£æ±ºãããŸãïŒã ããªãã®è³ªåãåã«ã©ã€ãã©ãªã®ãã°ã®è³ªåãŸãã¯èª¬æã§ãããã©ãããç¥ãããšã¯ã§ããŸããã ããã¯éçºè ã ãã決ããããšãã§ããŸãã ãããã£ãŠããã°å°çšã®ã«ãŒã«GitHubã¯ãããŸããã åé¡ã¯ã¢ããªã«ã§ãåé¡ã§ã
äžè¬ã«ã課é¡è¿œè·¡ã·ã¹ãã ã¯è³ªåã§ã¯ãªãã課é¡ã察象ãšããŠããŸãã
ceremcemã¯stackoverflowã§æ°æéã§çããåŸãã§ãããã ããã§ã圌ã¯9æ¥éåŸ ã£ãŠããŸããããããŠç§ã話ããªãã£ããã圌ã¯çããåŸãªãã£ãã ãããšæããŸãã
ãããã®ãããªå€ãã®åæ§ã®è³ªåã¯ã1幎以äžçµã£ãŠãããã§ã¯çããããŸããã 8æ³ã®äººã¯åããŒã¹ããŸãã
ã
ããªãã®è³ªåãåã«ã©ã€ãã©ãªã®ãã°ã®è³ªåãŸãã¯èª¬æã§ãããã©ãããç¥ãããšã¯ã§ããŸããã
ã¯ãã圌ã¯ã§ããŸãã 圌ã¯ãã©ããã£ãŠãããããã®ïŒããšå°ããŠããŸããã
ããŒãµãŒããããå®è¡ã§ããªããšåœŒãä¿¡ããªãéããããã¯æ±ºããŠãã°ã§ã¯ãããŸããã
ããã¯åºæ¬çã«ããŒãµãŒã§å¯èœãªéãæãåçŽãªããšã§ããã peg
ã¯äŸç¶ãšããŠæãé »ç¹ã«äœ¿çšãããjavascriptããŒãµãŒã§ãããšç§ã¯ä¿¡ããŠããŸãããããã¯æ¥éã«çå®ã§ã¯ãªããªãã圌ã¯ã€ã³ããªãžã§ã³ãã«èŠããã®ã§ãç§ã¯æããŸãã圌ã¯ãããŒãµãžã§ãã¬ãŒã¿ãã«ãŒã«ãè€æ°å䜿çšããããšã¯ã§ããªããšä¿¡ããŠããŸãã
圌ã®æåã®å©çã®ããã«ãç¹ã«è³ªåãªãœãŒã¹ãéåžžã«ã¢ã¯ãã£ããªãã®ã§ãããå³æžé€šä¿®åŸ©ãªãœãŒã¹ã3幎éã®äœæ¥ãåæžãããšçºè¡šããå Žåã¯ç¹ã«ãå³æžé€šã®ä¿®çã§ã¯ãªãã質åçšã«èšèšããããªãœãŒã¹ã«åœŒãå°ãããšãçæ³çã§ããéåžžããã®ãããªè³ªåã¯ç¡èŠãããŸã
ãããŸã§ã«ä»ã®6ã€ã®åé¡ããã£ãããã«ãç§ã人ã ã«ã¿ã°ãä»ãå§ãããŸã§ããããçããããªãã£ãã®ã¯å¶ç¶ã§ã¯ãããŸããã
決å®ã¯ãªãããŠããŸããã ç§ã¯åœŒã«ã¢ããã€ã¹ãããŠããŸããã
ãŸããç§ã¯åœŒã®è³ªåã«çããŸããã
ç§ã¯éåžžãStackOverflowã§æ°æé以å ã«åçãåŸãã®ã§ãç§ã¯ãããå®æçã«äœ¿çšããŠããŸãã ãã ã SOã®è³ªåã«ã¯æŽ»åããªãã£ãã®ã§ãããã«æ¥ãŠèããŠã¿ãŸããã åºæ¬çã«ãå¿çæéã¯ã»ãŒåãã§ãã
課é¡è¿œè·¡ã·ã¹ãã ã®äœ¿çšæ³ã®ãã¹ãŠã®çµã¿åãããèŠãŠããŸããã
ãã®ããã®æè¯ã®éžæã¯1ã€ã§ã¯ãããŸããïŒãã¹ãŠã®ã±ãŒã¹ã«åœãŠã¯ãŸã人ã¯èª°ãããŸããïŒããç§ã¯ãã¹ãŠã«èª²é¡è¿œè·¡ã·ã¹ãã ã䜿çšããã®ã奜ãã§ãã
ããªãã®è³ªåãåã«ã©ã€ãã©ãªã®ãã°ã®è³ªåãŸãã¯èª¬æã§ãããã©ãããç¥ãããšã¯ã§ããŸããã
ããã¯FreeCAD_Assembly3ã©ã€ãã©ãªã§äœåºŠãèŠãŸããã ç§ã®åçŽã§ã°ããã質åã®å€ãã¯ã1ã€ä»¥äžã®ãã°ãæããã«ããŸããã ãããèµ·ãããç§ã¯èŠãã
åæããŸãã ããããæžãããã§ãã
ãã®ã©ã€ãã©ãªãžã®ããªãã®ã¢ãããŒãã奜ãã§ãã ããªãã¯ãšãŠãæ°ã«ãããŠããããã§ãã
ãããã£ãŠãããŒãµãžã§ãã¬ãŒã¿ãã«ãŒã«ã2å以äžäœ¿çšã§ããªããšåœŒãä¿¡ããŠãããšã¯æããŸããã
æ£ããã ç§ã®æå³ã¯ãã°ã¬ããŒãã§ã¯ãããŸããã§ããã åãã«ãŒã«ãè€æ°ã®è¡ã«åå©çšããæ¹æ³ãèŠã€ãããŸããã§ããã
ããããSOã®è³ªåã«ã¯æŽ»åããªãã£ãã®ã§ãããã«æ¥ãŠè³ªåããŸããã
ãããããã®ãã°ã³ãã¥ããã£ãæ»ãã ã®ïŒ
ããã¯ãšãŠãæ²ããã§ãâ¹ïž
ããŠãããªãããã§ã«SOæçš¿ããããªãããã®æç¹ã§ããªãã¯ããã«æ¥ãã®ã«100ïŒ æ£ããã§ã
ã
課é¡è¿œè·¡ã·ã¹ãã ã®äœ¿çšæ³ã®ãã¹ãŠã®çµã¿åãããèŠãŠããŸããã
ããã人ã ã¯åžžã«ã³ãã¥ããã£ã®èŠç¯ã«éåããŠãã
ã
åæããŸãã ããããæžãããã§ãã
ãã®ã©ã€ãã©ãªãžã®ããªãã®ã¢ãããŒãã奜ãã§ãã ããªãã¯ãšãŠãæ°ã«ãããŠããããã§ãã
ãšãŠãã ç§ã¯2017幎ã®æææš©ã®ç§»è¡ã«é¢äžãããã£ãã®ã§ããã誰ãã17ã®ã¡ãžã£ãŒãªãªãŒã¹ã§èšç»ãç«ãŠãå€ãææè ã¯ããããä¿¡ããŠããŸãã
ãã®äººã¯3幎åŸã«æåã®ãã€ããŒãªãªãŒã¹ããããããŸããã
çå®ã¯ãå ¬éãœãããŠã§ã¢ãæžãã®ã¯æ¬åœã«é£ãããšããããšã§ãã ç§ãå«ããç§ãç¥ã£ãŠããã»ãšãã©ã®äººã¯ãããã®ãªãªãŒã¹ã¯ãXãYãããã³Zãå®äºãããŸã§æºåãã§ããŠããŸããããšèšãåŸåããããŸãã
ãããŠãYãçµäºãããšãVãšWãå¿ èŠã§ããããšãããããŸãã
ãããŠãZãçµäºãããšãSãTãããã³Uãå¿ èŠã§ããããšãããããŸãã
ãããŠãVãçµäºãããš...
ãã®ããã«ããŠã 0.11.0
ã¯2017幎ã«åããŒã¹ã®æ©èœã§éå§ããã2020幎ã«ãã©ãã«ãŒã§èª€ã£ãŠã¯ããŒãºãšããŒã¯ããã100ã®ããŒãžã§çµäºããŸãã
ãããªãã¯ãœãããŠã§ã¢ã®èŠåŸã®äžéšã¯ãé »ç¹ãªå°ããªãªãªãŒã¹ã§ãã ããã¯åžžã«ãã°ã®åé¡ã§ãããããœãããŠã§ã¢ã®å質ãéåžžã«é«ãã£ãã®ã§ããšã«ããææ ¢ããŸããã
ããããdmajdaãå»ãããã¹ãŠãæ¢ãŸã£ãã
ãããŠãç§ãã¡ã¯é·ãéèŸæ±åŒ·ãåŸ ã£ãŠããŸããã
ããããæ°ããç·ã¯ä»ããã圌ã®è¶£å³ã®ãããžã§ã¯ããšåŒãã§ããã圌ãæžããæ°ããäºææ§ã®ãªããã®ãæ¯æããŠãã¹ãŠãå»æ£ãããšèšããŸãã ãŸããåãASTãšåãæ©èœã»ãããªã©ããã£ããšããŠãããã®èåŸã«ãã10幎éã®ã³ãã¥ããã£ã®ãããã°ã¯ãªããåãæ¿ããããšã¯ã§ããŸããã
ãããŠã圌ãæ°ããããã匷åãªPEGããŒãµãŒãäœæãããå Žåã¯ããã°ãããããã°ããããå ã«é²ãã§ãã ããã
ãããã圌ã¯ãä¿å®è ã®ãµããããŠã決ããŠä¿å®ããªãããšããããŠãã®å³æžé€šã®ã³ãã¥ããã£ãšå°äœãåŒãç¶ãããšããããŠåœŒèªèº«ã®æ±ºããŠãªãªãŒã¹ãããªããœãããŠã§ã¢ããã®å Žæã«çœ®ãããšã«ãã£ãŠãããã殺ãããšã¯ã§ããŸããã
å¥å šãªããã»ã¹ãåŒãç¶ãæãæ¥ãŸããã æ°ããã¡ã³ããã¯ããžã¥ãã¢éçºè ã®ãã€ã¯ãã³ãã¥ããã£ãæ§ç¯ããŸããã圌ãã¯å®éã«ãã©ã€ãã©ãªãä¿åããã®ã§ã¯ãªããæ»ãã§ããããšãæå±ããŠããŸãã
å€æŽãã²ã©ãå¿ èŠã§ããããšã¯æããã§ã
ã
åãã«ãŒã«ãè€æ°ã®è¡ã«åå©çšããæ¹æ³ãèŠã€ãããŸããã§ããã
ããäžåºŠçããèŠã€ããã®ã«åé¡ãããå Žåã¯ãç§ã«å人çã«ã¿ã°ãä»ããŠãã ãã
ãšã¯èšããã®ã®ãäžè¬çã«ç§ã¯äŸãã°ãŒã°ã«ã§æ€çŽ¢ããŸãããã®ã©ã€ãã©ãªã¯ãã€ãŠéåžžã«äººæ°ããããé »ç¹ã«äœ¿çšãããŠããããïŒçŸåšã®ã©ã€ãã©ãªã®æ®ºäººè ãä»ã®äººãå©ããããã«ãã³ãã«ã¹ããŒã¹ã空ããå ŽåããããŸãïŒãååãªäŸããããŸããããªããèŠã€ããå¿ èŠããããã®ãã«ããŒããããã«ããã«
ããããäžè¬çã«ãç§ãæ°ãããšãã«èª°ãã«èšããããããã®ã¯ããéèŠãªã®ã¯PEGææ³ã®èªã¿æ¹ãåŠã¶ããšã§ãããšããã³ã¡ã³ãã®äžã§ç§ãèšã£ãããšã§ãã
ãã®ãã£ã¹ã«ãã·ã§ã³ãã©ãŒã ã§PEGææ³ãèªãããšãåŠã¶ãšããããã«ã€ããŠèããããšãéåžžã«ç°¡åã«ãªãããã®æç¹ã§çªç¶ç°¡åã«æžãããšãã§ããŸãã
ããã¯ã©ã€ãã¹ã€ããã®ãããªãã®ã§ãã ã©ã³ãã¯ãããŸããã äžå¯èœããç°¡åãž
ããã¯ã©ã€ãã¹ã€ããã®ãããªãã®ã§ãã ã©ã³ãã¯ãããŸããã äžå¯èœããç°¡åãž
ããªãã¯ç§ãå±ãŸããŸããïŒ :)ã ãããç§ãããã€ãã®ãããã¡ãªããã«ãŒã«ã»ããããèŠãããšãã§ããªãã£ããšããç§ã¯ããã»ã©æãã§ãããšæããã¹ãã§ã¯ãããŸãã:)
ããäžåºŠçããèŠã€ããã®ã«åé¡ãããå Žåã¯ãç§ã«å人çã«ã¿ã°ãä»ããŠãã ãã
ç§ã¯ãããæªçšããããªãã®ã§ãå°ãã䟡å€ããããã©ããããŸãã¯ããããããå°ãæ€çŽ¢ããå¿ èŠããããã©ãããæ¯åé»è©±ããã®ã¯é£ããã§ãããã ããã¯å¯å€§ãªç³ãåºã§ãããããããšãã
å€æŽãã²ã©ãå¿ èŠã§ããããšã¯æããã§ã
ãã©ãŒã¯ã§ãåé¡ãã»ã¯ã·ã§ã³ãæå¹ã«ããããã§ãã ããã¯ãããªãããã ã®ä¹å®¢ã§ãã£ããšãã«ã³ãã¯ãããã«çªå ¥ããŠæ 客æ©ãé£ã°ãããšããããšã®è¯ãå åã§ãã ããã£ãã§ãã
çããŠããæ°Žæºãããå Žåãããªãããã®éã«äœã眮ããŠããããã¯åžžã«ãã®æµãã®éãèŠã€ããã§ãããã ãœãŒã¹ãæåºãããŠããããã«ãããŒããªãå Žåã¯ãäœãããå¿ èŠã¯ãããŸããã ãœãŒã¹ã¯éèŠã§ãã ããªãã®æ 床ã¯ãæ°Žã®æºãéåžžã«çããŠããããšã瀺ããŠããŸãã
ã ããç§ã¯èå³ããããŸãããªãããªãã¯ãã åŒãç¶ãã§ã¿ãŸãããïŒ ããã¯ç§ãããŒãã£ã³ã°ããŒã©ã€ãã©ãªã®ããã«ããããšã§ãã éçºãåæ»ããŠããããšã«æ°ã¥ããã®ã§ãèªåã®åé¡ããå§ããŠããã©ã³ãããšã«ãã«ãªã¯ãšã¹ããäœæããããšã§ãåŒãç¶ããŸããã ãã°ããããŠãåäœè ã¯ä»äºãç¶ããããšã決å¿ããç§ãã¡ã¯è¡ã£ãŠè¯ãã£ãã§ãã ããã¯å®è¡å¯èœãªè§£æ±ºçã ãšæããŸããïŒ
ããªãã¯ç§ãå±ãŸããŸããïŒ :)
ç§ã¯å¬ããã
ã
ããã¯ã©ã€ãã¹ã€ããã®ãããªãã®ã§ãã ã©ã³ãã¯ãããŸããã äžå¯èœããç°¡åãž
ã ãããããã€ãã®ãããã¡ãªããã«ãŒã«ã»ããããèŠãããšãã§ããªãã£ããšããç§ã¯ããã»ã©æãã§ãããšæããã¹ãã§ã¯ãããŸãã:)
ããã ããŒãµãŒã¯ããã°ãããŠããã ãã§ãçªç¶ç°¡åã«ãªãããšãã極端ãªã±ãŒã¹ã§ãã
ãããããã«ãŒã§ã-æ¯èŒçèšãã°ããã°ã¯ããªãç°¡åã§ãã ä»ã®ãã®ã¯ãã°ãã°ãã æ®å¿ã§ãã
ç§ã®æèŠã§ã¯ããã°ã®åŠç¿ã«ã¯4ã€ã®å€§ããªåé¡ããããŸãã
ç§ã¯ããã€ãã®ãããªãã¥ãŒããªã¢ã«ãäœãããšãèããŠããŸãã 圌ãã¯ããã_ã¯ããã«_ç解ããããããã ãããšç§ã¯ä¿¡ããŠããŸãã
ã
ç§ã¯ãããä¹±çšããããªãã®ã§ãå°ãã䟡å€ããããã©ããã¯æ¯åé£ããã§ããã
é±ã«äžåºŠã¯å€§äžå€«ã§ãã ç§ã¯æã å¿çãé ãããšãç解ããŠãã ãã
ã
ãã©ãŒã¯ã§ãåé¡ãã»ã¯ã·ã§ã³ãæå¹ã«ããããã§ãã ããã¯ãããªãããã ã®ä¹å®¢ã§ãã£ããšãã«ã³ãã¯ãããã«çªå ¥ããŠæ 客æ©ãé£ã°ãããšããããšã®è¯ãå åã§ãã ããã£ãã§ãã
ç§ã¯ã»ãšãã©å§ããŠããŸããã ãŸããå®éã®ã¬ããææžã§ãããã©ããã確èªããã
ãã©ãŒã¯ãããããè¡ãããšã¯ãåå£ã«ãã£ãšé£ããã§ãããã ç§ã¯ãã¹ãŠã®PRãšãã¹ãŠã®çžäºåç §ãããã³ãã¹ãŠã®éããããéããŒãžãŸãã¯éããããåé€ãããè³æã倱ããŸãããã®ãã¡ã®ããã€ãã¯éåžžã«äŸ¡å€ããããŸãã
ã
ã ããç§ã¯èå³ããããŸãããªãããªãã¯ãã åŒãç¶ãã§ã¿ãŸãããïŒ
ç§ã¯ããããšæããŸãã
çŸæç¹ã§ã¯ãé¢é£ãããã¹ã¯ãŒããšèªèšŒã¯1人ã®æã«æž¡ã£ãŠããããŸã å¿çããŠããŸããã
ããããŸãã
ã
éçºãåæ»ããŠããããšã«æ°ã¥ããã®ã§ãèªåã®åé¡ããå§ããŠããã©ã³ãããšã«ãã«ãªã¯ãšã¹ããäœæããããšã§åŒãç¶ããŸããã
ããã¯ç¹æ®ãªã±ãŒã¹ã§ã
å
¬éãããŠããã®ã¯0.10.0
ã§ã
æ°ããã¡ã³ããã¯ã 0.11.0
ãã©ã³ãã3幎éç¡å¶éã«æé·ããããšãèš±å¯ãããã®åŸã圌ãåç¬ã§ãŒãããæžããŠãã0.12.0
ãæ¯æããŠããã£ã³ã»ã«ããããšã決å®ããŸããã
PRã眮ããã®ã¯äœããããŸããã npm
ã®å
容ã¯2017幎ã®ãã®ã§ãããæ°ããã¡ã³ããã®äžã®github
ã®å
容ã¯ãå
¬éããã«3幎åŸã«ãã£ã³ã»ã«ãããŸãã
ã
ãã°ããããŠãåäœè ã¯ä»äºãç¶ããããšã決å¿ããç§ãã¡ã¯è¡ã£ãŠè¯ãã£ãã§ãã ããã¯å®è¡å¯èœãªè§£æ±ºçã ãšæããŸããïŒ
亀æã®ã¡ã³ããããããèš±å¯ããããšãããšããªãã®ã§ããã°ãããã¯ã»ãŒæ£ç¢ºã«ç§ãæãã§ããããšã§ãã
ãããããæ»ã£ãŠããã®ã§ã¯ãªãããšæããŸããããã圌ãæ»ã£ãŠããããããã¯çŽ æŽãããããšã§ã
ãã®ããããããåã³æšæºã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«å€ããããšæããŸã
ããªãã«ãããšãããã§æãéèŠãª3ã€ã®åé¡ã¯äœã§ããïŒ
ç§ã«ãšã£ãŠæãéèŠãªåé¡ãäœã§ããããèšãã®ã¯å°ãå±éºã ãšæãpeg
ããªããªããããã«ã¯ç§ãããçµéšè±å¯ãªäººãããªãã®æ°ããããã§ãã ãç§ã¯èãå¯èœæ§ãé«ãã§ãã
ãã®ããã«ãããã§éçºããããšã¯åã°ããããšã§ãããããã§ã®ç§ã®é¢å¿ã¯ã¡ã³ãããšããŠã§ããããšã«æ³šæããããšæããŸãã
ããã¯ãå€ãã®äººãç解ã§ããªãããšã ãšæããŸããéçºãšä¿å®ã®ã³ãŒãã£ã³ã°ã¯ãå®éã«ã¯æ¬åœã«ç°ãªããŸãã
Development coding
ã¯ã倧ããªæ°ããã¢ã€ãã¢ãæ°ããæ©èœãæ°ãã掟æãªã¢ã€ãã¢ãæ±ããŠããŸããMaintenance coding
ã¯ãå°ããªåé¡ãéçŽãããŠäœ¿çšã§ããªããªãåã«ä¿®æ£ããããšèããŠããŸããç§ã¯ããã€ãã®éçºã³ãŒãã£ã³ã°ãè¡ãããšãã§ããŠããããã§ã-ããããããã€ãã楜ãã¿ã«ããŠããŸã-ããããããã«ã¯ããã«é©ããä»ã®äººã ãããŸãã ãããŠãã¯ã£ãããããŠããããã®ã§ãããç§ã®å®éã®ç®æšã¯ããããäœæããŠã以åãšåãããã«PRã«åã³è²¢ç®ã§ããããã«ããããšã§ãã
ããã¯èšã£ãŠããç§ã®å人çãªèŠç¹ãäœã§ãããã瀺ãããã«ïŒ
peg.js
ã¯äºåºŠãšéæ³ã®æãæã€ã¹ãã§ã¯ãããŸããã ããã¯ã¯ãœã®äžã€ã®æ茪ã®ãããªãã®ã§ãã ããã¯çŽ æŽããããŠãã¯ãã«ã«èãããŸãããããã¯ç¥ã®å¿ãŸãããä»äºã§ã¯ãããŸããããããŠæåŸã«ãããªãã¯ãŽã©ã ã§ãã ããã¯svn
ã§ã¯ãããŸããã ã¹ãã£ãŒããã«ããŒã®å£°ã§ã¯ã feature branches
ã feature branches
ã feature branches
ã feature branches
ã
ããŒãžã§ã³ã¯ãæ©èœã®èšç»ã®åéãã€ã³ãã§ã¯ãªããæ©èœã®çµæã§ããå¿ èŠããããŸãã ç§ãã¡ã¯1980幎代ã®äŒç€Ÿã§ã¯ãªãã®ã§ããã®ãããªèšç»ãç«ãŠãã¹ãã§ã¯ãããŸããã
è€æ°ã®æ©èœãåæã«äœ¿çšããå¿
èŠãããã®ã¯ãå€éšã¢ããã°ã¬ãŒãã«å¯Ÿå¿ããããã«æ©èœã«ããããé©çšããçµæããŸãã¯æ¬åœã«åé¢ã§ããªãããšãªã©ããããåŸãªãå Žåã®ã¿ã§ãã ãããããã¯å¥ã®æ©èœã«é¢é£ããŠãããšæããŸããïŒ ããã 2.31.0
2.29.0
ãåºãå¿
èŠããããŸãããããã«ããä»ã®ãã®ã¯ã 30
ã«ãªãå¯èœæ§ããããŸãã
人ã ã¯æªæ幎è ãå°æ»ã®ããã«æ±ã£ãŠããŸããã ãã€ããŒãåºãŠããªãã£ãã®ã¯ãã®ããã§ããã¡ãžã£ãŒãã¶ãäžããŠããã®ãšåãè¡åã®çœ ã«ãããããŠããŸããã DoThatâ¢ãã¯ãœããªãã§ãã ããã
å ·äœçã«ã¯ã
0.12.0
ã ãã§ãªãã 0.13.0
ãåºããŠããªãå Žåã¯ãäœãå
¥ã£ãŠããã®ããèšã£ãŠããªãããšã«æ°ã¥ããŸããããã¯åé¡ã§ã¯ãªããšæããŸãã 1.0.0
ã§å®éã®ã·ã§ãããæã£ãŠããŸãpeg
ãçãè¿ãã ãã§ãªããéè±ããã®ã«åœ¹ç«ã¡ãŸã誰ããããã«ã€ããŠè©±ããŸãããç§ã®è¶£å³ã®æéç¶æ ãã·ã³ã¯çŸåš3500ã®ãŠããããã¹ããš100ïŒ ã®ããã¥ã¡ã³ãã«ãã¬ããžãæã£ãŠããã®ã§ããã£ãšçå£ã«åãæ¢ããŠãã ããã
ç§ã¯ãã¹ããæ¬åœã«æ·±ãä¿¡ããŠããŸãã
ç§ãæžããå¥ã®ã©ã€ãã©ãªã¯ãã¹ããŒããã·ã³ãããååã®ãµã€ãºã§ãè€éããå€§å¹ ã«äœããªã£ãŠããŸãã ãããã¯ãŒã¯ãã³ãã©ãŒã®ãã¹ããäžååã§ãããäœããæ£ããããšã確èªããããã«çå£ã«åãçµãå¿ èŠãããããããããã¯ãŒã¯ãã³ãã©ãŒã«å°ããªå€æŽãå ããããããã¹ããŒããã·ã³ã«èšèªãå€§å¹ ã«å€æŽããæ¹ãã¯ããã«ç°¡åã§ãã
FSMïŒ ããããã¹ãã¯çŽ æŽãããã§ãã圌ãã¯ããªããæãŸããã§ããã
ãã®ç¹å®ã®ã³ã³ãã©ã¹ãã¯ãç§ããããã®ããããã«è§Šãããã³ã«ãå°ãªããšãç§ã«ãšã£ãŠä¿¡é Œã§ãããã®ã«ãšã£ãŠããã¹ããå®éã«ã©ãã»ã©éèŠã§ãããããæ®å¿ãªæå¿«ãã§æãåºãããŸãã
peg.js
ã§ã®äœæ¥ã«äŒŽãåé¡ã®éåžžã«å€§ããªéšåã¯ããã¹ããšããã¥ã¡ã³ããæ··ä¹±ããŠããããšã ãšæããŸãã ãããå€ããæãæ¥ããšæããŸãã
peg
ã¯ãã®ç¹ã§4ã€ã®åé¡ã«çŽé¢ããŠããŸãpeg
ã¯éåžžã«åæã®javascript
ã©ã€ãã©ãªã§ãããã³ãã¥ããã£ã®èŠç¯ãååšããåã«ãå€ãã®åºæ¬çãªéžæãè¡ããŸããã å®éãããã€ãã®ã³ãã¥ããã£ã®èŠç¯ã¯ããããã«ãããã®ã§ãã ãã°ã®åã¯å€ãã®äººããã«ãããã±ãŒãžã³ã°ã¯ââé£ãããšæã£ãŠããã®ã§ããã®ç¹ã§å
é§è
ã®1人ãåãç¹ã§åé¡ãæ±ããŠé
ããŠããã®ã§ãããã¯ã¡ãã£ãšæ²çã§ãã ãšã¯èšããã®ã®ããããããåãã£ãŠåŸãçŽ æŽããããã®ã«å ããŠã圌ãééã£ãŠãããã®ãããã°ãåœæã¯ãããªãã£ããã®ããããŸãã å°ããªå€æŽããããããããšãéçºè
ã®ãšã¯ã¹ããªãšã³ã¹ãæ ¹æ¬çã«å€ãããŸããnode
ãããžã§ã¯ããæ©èœããããšã«ãªã£ãŠããç¹å®ã®æ¹æ³ããããŸãã ããã«ã¯ããã©ãŠã¶ãŒã察象ãšããåºåã®çæãå«ãŸãããããããŒããããžã§ã¯ãã¯æããã«ææ°ã®äœæ¥æ¹æ³ã§ããREADME
ãæ£ããç·šéã§ããããã«ãªãããšã¯ãéèŠãªåŠç¿èª²é¡ã§ãã 3幎çµã£ãŠããçŸåšã®ã¡ã³ããã¯ãŸã ããããã£ãŠã®ããŠããŸããïŒïŒïŒããŸããæåŸã®2ã€ã®ããŒãžã§ã³ã§ã¯å
ã®éçºè
ãããŸããã§ãããpeg
ã¯ã極端ãªèªååã®æ©æµãšç ç²è
ã®äž¡æ¹ã§ããdmajda
ã¯ããããªãã§ã¯åŸãããªãã£ãå¯èœæ§ããããŸãã ç§ã¯ç¢ºãã«èªåã®ããšãããããšã¯ã§ããŸãããrepl
ã¯ãçŸåšã»ãŒ10幎ã®èä¹
æ§ããããŸãã ããªãŒã·ã£ã€ããŒããèµ€æãšããŠæ±ãããå Žåãä»ã®ãã¹ãŠãåæ§ã§ããå¯èœæ§ããããŸããgh pages
ãšgh actions
ã«ç§»åããæ°žä¹
ã«ãã®ãŸãŸã«ããŠããå¿
èŠããããŸãnpm
ã®readme
ïŒ$ã®ä¿®æ£ã es6 modules
ã®ããŒãžãªã©ã®åºæ¬äºé
ãäžåºŠã«3幎éåŸ
ã¡ãŸãã0.12.0
ã®ãªããŒã¯ã§ã¯ãã¢ãžã¥ãŒã«ã€ãŒã³ã®ãã®ã®ã¢ãžã¥ãŒã«ã®ãããªãã®ãã¡ããã©åºãŠããã§ãããã ããããã®ãã«ãã¯2011幎ããæ©èœããŠããŸãã2018幎ã®æ°ãããã®ã¯2020幎ã«ãã§ã«å£ããŠããŸãããã以äžã®ãã£ã¬ã¿ã³ããã¯ãããžãŒã¯ãããŸããããããããããã®ã©ããå®éã«ã¯ãœãããŠã§ã¢èªäœã«é¢ãããã®ã§ã¯ãªãããšã«æ°ä»ãã§ãããã
ããã®ãœãããŠã§ã¢ãåé¡ã ãšã¯æããªã
ããã»ã¹ã¯ãçšåºŠã¯äœããã®ã®ããããžã§ã¯ãã ãšæããŸã
@futagozaãèš±å¯ããå Žåããããã¯ç§ãä¿®æ£ãããã®ã§ã
ç§ãã¡ããã©ã€ãã飲ã¿èŸŒã¿ã趣å³ã®ãããžã§ã¯ãã®å©çãããå³æžé€šã®å€§èŠæš¡ãªã³ãã¥ããã£ã®ããŒãºãéžæããã°ããã®å³æžé€šã¯30æ¥ã§çãè¿ãããšãã§ããŸã
趣å³ã®æžãçŽãããã©ãŒã¯ã«ããŸããã
ã¡ã³ããã«ã¡ã³ããã³ã¹ãéå§ãããŸã
@StoneCypherç§ã¯ããªãã®ãšãã«ã®ãŒã奜ãã§ã:-)ç§ã¯éå»ïŒdmajdaã®æ代ïŒã«pegjsã䜿çšããŠããŸãããããšãŠãæ°ã«å ¥ããŸããã
ãã ããããã©ãŒã¯ããŠãæŠããªãã§ãã ããã ç©äºã¯åŸã§èœã¡çãããšãã§ãããããŠèœã¡çãã§ãããã ã³ãã¥ããã£ãããªãããã©ããŒããŠããå Žåã¯ãæ¢åã®ãããŒãã«ããŒããªã©ãæ°ã«ããå¿ èŠã¯ãããŸããã è©å€ã®æ§ç¯ã«ã¯æéãããããŸãããå¿ èŠã§ãã ããè°è«ã«æéãç¡é§ã«ããªãã§ãã ããã
ããªãã®ãã©ãŒã¯ã®8ã€ã¯ãå°æ¥ã®ããæç¹ã§ãåç¹ã«æ»ããããç¬èªã®å¯¿åœãæã¡ãŸãã ã©ã¡ãã®ãªãã·ã§ã³ãæå¹ã§ãåªããIMOã§ãã
ããã©ãŒã¯ãäœããã§ãããã§æ¢ããŠãã ããã ãããã¯4ã€ãããããªãã¯ããããäœã§ããããç¥ããŸããã ãã©ãŒã¯ã¯ãæ¢åã®ããŠã³ã¹ããªãŒã ã³ã³ã·ã¥ãŒããŒãä¿åãããPRãä¿åãããåé¡ãä¿åãããã³ãã¥ããã£ãéã³ãŸããããŸãã衚瀺ãããŸããã
人ã ã¯ããã3幎éè©Šã¿ãŠããŸããã ããã¯åäœããŸããã
ãã®ã¢ããã€ã¹ãæäŸãç¶ããªãã§ãã ããã
@ futagoza-誰ããããªããæ£ããããšãããã®ããããããŸããã 5人ã®äººãç§ã«å³æžé€šããã©ãŒã¯ããããã«èšããŸããã圌ãã¯ããªããä¿®çãèš±å¯ããããšãæåŠããããªãã殺ããŠããå³æžé€šã®ç®¡çãç¶æããããšãæåŸ ããŠããããã§ãã
圌ãããããæåŸ ããŠããçç±ã¯ãããªããçŽæããããšãšæ±ºããŠããªãã£ãããšãããªãã«å©ããŠããã人ãåæ°äººèŠã€ããããã ãšæããŸãã ãã
2018幎ã«ãã¹ãããšãå®è¡ããå®éã«ãããžã§ã¯ããä¿å®ãã人ã«ä¿å®ãæäŸããŸãã ãã®ã©ã€ãã©ãªã殺ãã®ãããããã®ã³ãã¥ããã£ã殺ãã®ããããéªéã«ãªããªãããã«ããŸãããã
@StoneCypher Johnããã©ãŒã¯ãäœæããããšãææ¡ãããšããç§ã¯æ¬åœã«ãããæå³ããŸããã ãããžã§ã¯ãããã©ãŒã¯ããããšã¯ãç¹ã«å€æŽãå¿ èŠã ãšæãããããããžã§ã¯ããæ»ã«ãããŠãããšæããå Žåã«ããªãŒãã³ãœãŒã¹ãæäŸããåªãããªãã·ã§ã³ã§ãã ããããåé¡ãããŸããããã®è³ªåãããããã ãã«DMãæžãå¿ èŠã¯ãããŸããã
ãäºåºŠãšãã®ã¢ããã€ã¹ãããªãã§ãã ããããšèšã£ããšããç§ããããæå³ããŸããã
ç§ã¯ãã®äŒè©±ã倧奜ãã§ãã
@StoneCypherç§ã¯æ£å察ãèŠãã®ã§ãããã§ããªãã«å察ããªããã°ãªããŸããïŒ
realthunder
ã¯ãã®åé¡ã解決ããããšã«ããŸããã 圌ã¯ç®æšãéæããããã«ããã€ãã®ã³ã¢ããããã£ãå€æŽããå¿
èŠãããããã®çµæã圌ã®ãã©ãŒã¯ã¯äž»æµã®ãã©ã³ããšäºææ§ããªããªããŸããã 圌ã¯ãã¹ãŠã®ãŠãŒã¶ãŒãã»ãŒãã¹ãŠã®ã³ãã¥ããã£ã倱ããŸããã æ°äººãé€ããŠã圌ã«ã¯æ¯æè
ãããŸããã§ããïŒãããç§ãèŠããã®ã§ããïŒã ç§ãç解ããŠããéãã圌ã«ã¯ã¢ã¯ãã£ããªãŠãŒã¶ãŒãããŸããã§ãããæè¿ã圌ã®PRã¯èŠçŽããå§ããŠããŸããã å€å€§ãªäœæ¥ãè¡ãããã€ãã«åœŒã®æ¯éšãšäž»æµã¯äºææ§ãæã€ããã«ãªããŸããã 次ã®ãªãªãŒã¹ã§ã¯ã圌ã®ãã©ã³ããã¡ã€ã³ã¹ããªãŒã ã«çµ±åããããšæããŸãã
ãã®éãæ·±å»ãªè²¡æ¿åé¡ããããŸããã 圌ã¯å¯äžã®ã¡ã³ããã§ãããå°æ°ã®ãŠãŒã¶ãŒããã®å¯ä»ã¯åœŒãçãæ®ãããããšãã§ããŸããã§ããã ç§ã¯ãããã«ã³ã§FreeCAD / Assembly3ãæãã財æ¿ãæ¯æŽããããã«æ¯æŽã販売ããããšã«ããŸããã ç§ã¯åœŒãææ¡ããŸããããããŠããã¯åãå ¥ããããŸãã æè¿åãå ¥ããããŠããè©å€ã®é«ã財å£ã®ãã¬ãŒããŒã«ãªãããã«å¿ èŠãªãã¹ãŠã®ç³è«ãããŸããã
æã 1人ã§ç«ãèµ·ããã®ã«ååã§ãã
éªéã«ãªããªã
åæããªãã 圌ããéäžã«ãšã©ãŸãããªããã è¯ãã¢ãããŒã·ã§ã³ã¯åžžã«ãã®éãèŠã€ããã§ãããã ãããã§ããªãã®ãªããããã¯ããã»ã©è¯ããªãã£ãããã§ãã
ç§ã¯ãã®ãããã¯ã«é¢ããã¢ããã€ã¹ãæ瀺çãã€æ確ã«åéããŠããŸããã
ãã®ã©ã€ãã©ãªã埩掻ãããå¿ èŠããããŸãã ååã«èª¬æããŠããªããšç³ãèš³ãããŸããããç§ãåãåã£ãåçã¯ãæèµ·ãããå®éçãªæžå¿µã®ãããã«ã察åŠã§ããŠããŸããã
人ã ã®ç掻ãšä»äºã¯ããã«ä¹ã£ãŠããŸãã