์ ์ฒ๋ฆฌ๊ธฐ๋ก ๊ธฐ์กด ์ธ์ด์ ๋ํ ํ์ฅ์ ๊ตฌ์ถ ์ค์ ๋๋ค. pegjs๊ฐ ์์ค ์ฝ๋๋ฅผ ์ฌ์์ฑํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด ์๋์ง ์์๋ผ ์ ์์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์ค๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ AST๋ฅผ ์์ ํ ๋ค์ ์์ค๋ฅผ ์ฌ์์ฑํ๊ณ ์ถ์ต๋๋ค. ์ด์จ๋ ์ด๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?
@mattkanwisher ์ฃ์กํฉ๋๋ค. ์์ค๋ฅผ "์ฌ์์ฑ"ํ๋ค๋ ๊ฒ์ด ๋ฌด์จ ๋ป์ธ์ง ์
์ข ๋ช
ํํ ํด ์ฃผ์๊ฒ ์ต๋๊น? AST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ ๊ฒฝ์ฐ ๋ฌธ๋ฒ์์ ์ง์ ๋๋ ๋ณ๋์ ๋ถ๋ถ์ผ๋ก ํด๋น ๋
ผ๋ฆฌ๋ฅผ ์ง์ ์์ฑํด์ผ ํฉ๋๋ค.
์, AST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ฏ๋ก ์ด๊ฒ์ ์ฌ์ฉํ์ฌ ์ ์ฒ๋ฆฌํ๋ ค๋ฉด ์ปดํ์ผ๋ฌ๋ฅผ ์๋ ์์ค๋ก ๋ค์ ์์ฑํด์ผ ํฉ๋๊น?
ํ , _original_ ์์ค๋ฅผ ์ํ์ ๋ค๋ฉด - ๋น์ ์ ์ฌ์ ํ โโ๊ทธ๊ฒ์ ์์ฑํ ํ์ ์์ด ๊ฐ์ง๊ณ ์์ ๊ฒ์
๋๋ค. ๋ง์ต๋๊น?
๊ทธ๋ฌ๋ ์์ ๋ โโ๋ฒ์ ์ ์ํ๋ฉด ์ฝ๋ ์์ฑ ๋ก์ง์ ์ง์ ์์ฑํด์ผ ํฉ๋๋ค.
( @Mingun @futagoza ๋ด๊ฐ ํ๋ ธ๋ค๋ฉด
@YemSalat ์ด ๋ง์ต๋๋ค. PEG.js๋ ํ์ ์์ฑ๊ธฐ์ผ ๋ฟ์ ๋๋ค.
๋ณด์๋ค์ํผ PEG.js๋ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์๋ง ๊ด์ฌํ๋ฏ๋ก ์์ค๋ฅผ ์ฌ์์ฑํ๋ ค๋ฉด ์ปดํ์ผ๋ฌ๋ฅผ ์ง์ ๋น๋ํด์ผ ํ๊ฑฐ๋ ํด๋น ์ธ์ด์ ๋ํ ์ปดํ์ผ๋ฌ ๋๋ ์์ฑ๊ธฐ(๋๊ตฌ ์ฒด์ธ)๊ฐ ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ ์ ์ํฉ๋๋ค. ๋๊ตฌ ์ฒด์ธ๊ณผ ํธํ๋๋ AST๋ฅผ ๋ฐํํ๊ฑฐ๋ ๋๊ตฌ ์ฒด์ธ๊ณผ ๋ ํธํ๋๋๋ก AST๋ฅผ ๋ณ๊ฒฝํ๋ ๋ณํ์ ์ถ๊ฐํฉ๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก PEG.js์ ๋ฌธ์ ๊ฐ ์๋์ง๋ง ํ ๋ก ์ ๊ณ์ํ๋ ๊ฒ์ ํ์ํฉ๋๋ค.
๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ ์์ ๋์ต๋๋ค. ์์ผ๋ก ์ด ๋ฒ๊ทธ ๊ฒ์๋ฌผ์ ๋์ฐฉํ๋ ๋ชจ๋ ์ฌ๋์ ์ํด. "์ด์ํ ์ปดํ์ผ๋ฌ"์ ๋ํ ์์ค ์ฝ๋๋ฅผ ์ฝ์ผ์ญ์์ค. ๊ทธ ํ ๋๋ pegjs๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ์๊ฐ ๋ง์ ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ๊ตฌ์ถํ ์ ์์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@YemSalat ์ด ๋ง์ต๋๋ค. PEG.js๋ ํ์ ์์ฑ๊ธฐ์ผ ๋ฟ์ ๋๋ค.
๋ณด์๋ค์ํผ PEG.js๋ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์๋ง ๊ด์ฌํ๋ฏ๋ก ์์ค๋ฅผ ์ฌ์์ฑํ๋ ค๋ฉด ์ปดํ์ผ๋ฌ๋ฅผ ์ง์ ๋น๋ํด์ผ ํ๊ฑฐ๋ ํด๋น ์ธ์ด์ ๋ํ ์ปดํ์ผ๋ฌ ๋๋ ์์ฑ๊ธฐ(๋๊ตฌ ์ฒด์ธ)๊ฐ ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ ์ ์ํฉ๋๋ค. ๋๊ตฌ ์ฒด์ธ๊ณผ ํธํ๋๋ AST๋ฅผ ๋ฐํํ๊ฑฐ๋ ๋๊ตฌ ์ฒด์ธ๊ณผ ๋ ํธํ๋๋๋ก AST๋ฅผ ๋ณ๊ฒฝํ๋ ๋ณํ์ ์ถ๊ฐํฉ๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก PEG.js์ ๋ฌธ์ ๊ฐ ์๋์ง๋ง ํ ๋ก ์ ๊ณ์ํ๋ ๊ฒ์ ํ์ํฉ๋๋ค.