yacc 계산기에서요..

condor2의 이미지

lex yacc로 계산기 만들고 있습니다..

근데 변수명을 포트란처럼 i j k l m n 은 정수형으로

나머지 변수명은 실수형으로 만들려고 하는데 어떻게 할지

도저히 모르겠네요ㅠㅠ 도움좀 부탁드립니다..ㅠㅠ

변수명은 한자리입니당...

lacovnk의 이미지

VAR '=' INT_NUM {if VAR.name not in{i,j,k,l,m,n) then error else VAR.value=INT_NUM.value}
VAR '=' FLOAT_NUM {if VAR.name in {i,j,k,l,m,n) then error else VAR.value=FLOAT_NUM.value}

이런식으로 하면 될 것 같은데요~

자세한 문법은 lex와 yacc 매뉴얼을 보셔요~

http://www.gnu.org/software/flex/manual/
http://www.gnu.org/software/bison/manual/

여기에 아주 자세히 나와있습니다~ (아마 flex와 bison을 사용하시겠죠? )