ํ๊ธ๋ก ์์ฑํ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ์ ์ด์ ๋ธ๋ฆฌ์ด ํ์ผ๋ก ๋ง๋๋ ์ปดํ์ผ๋ฌ ์ ๋๋ค.
23.09.01 ~ 23.11.14
- ์กฐ์ฑ๋ฏผ
- ์ด๋ฏผํ
- ๊น์์ง
ํ๊ธ ์ปดํ์ผ๋ฌ์ ๋ชจ๋ ๋ฌธ๋ฒ์ C์ธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค.
- '+' : "๋ํ๊ธฐ"
- '-' : "๋นผ๊ธฐ"
- '/' : "๋๋๊ธฐ"
- '*' : "๊ณฑํ๊ธฐ"
- '=' : "๋" ๋๋ "์"
- if : "๋ง์ฝ"
- else : "์๋๋ฉด"
- else if : "์๋๋ฉด๋ง์ฝ"
- while : "๋ฐ๋ณต๋ฌธ"
์์
a ๋ 3 ์ด๋ค
b ๋ 3 ์ด๋ค
๋ฐ๋ณต๋ฌธ ( a ๋ค๋ฅด๋ค 1 ){
a ๋ a ๋นผ๊ธฐ 1 ์ด๋ค
b ๋ b ๋ํ๊ธฐ 1 ์ด๋ค
}
๋
flex์ bison์ ์ฌ์ฉํ์์ต๋๋ค.
flex, bison ์ฐธ๊ณ [https://heaeat.github.io/flex-bison/]
>>> bison -d min.y
>>> flex min.l //
>>> gcc lex.yy.c min.tab.c -o [์ง์ ํ ์ด๋ฆ].exe
gcc ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด warning ๋ฉ์์ง๊ฐ ๋จ๋๋ฐ ๊ทธ๋๋ก ์งํํ์ ๋ ๋ฉ๋๋ค.
>>> [์ง์ ํ ์ด๋ฆ].exe ์์ ์ฝ๋.min
์ปดํ์ผ์ ํ๋ฉด a.s ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
- Stacksim์ด๋ผ๋ ์์ฒด์ ์ธ tool์ ์ฐธ๊ณ ํ์ต๋๋ค.
- ์๋ ๊ฐ์๋ฅผ ์ฐธ๊ณ ํ์์ต๋๋ค.
์ปดํ์ผ๋ฌ ๊ตฌ์ฑ๋ก [http://www.kocw.net/home/cview.do?cid=b0728df5b04aee67]