파서 스캐너 관련 질문드립니다..

danojib의 이미지

안녕하세요. 전역 후 칼복학한 학부 2년생 입니다.
이번 학기에 finite automata, context-free-grammar등과 관련된 부분을 배우는 중인데 막히는 부분이 있어서 질문 드립니다.
지금 해야 하는게 이미 존재하는 자바 컴파일러(파서, 스캐너등이 코드로 주어집니다.) 를 수정하여 계산기를 만들어야하는데 감이 잘 안오네요.
일단은 파서를 위한 문법을 세우는 중인데 중간에 주어지는 인풋 형식이 바뀐 이후로 어떻게 해야할지 막막합니다.
원래 세웠던 문법은 다음과 같습니다.

E -> TE'
E' -> AddTE' | ; | Epsilon // 모든 인풋 끝에 마침 문자로 ; 가 주어집니다.
T -> FT'
T' -> MulFT' | Epsilon
F -> (F') | num // num 은 숫자를 뜻하는 터미널입니다.
F' -> E | Inum
I -> ++ | --
Add -> + | -
Mul -> * | / | %

여기서 원래라면 (++3);
이런식으로 인풋이 주어 지기로 했었다면 이제는 모든 (pre/post - increment, decrement), unary expression 을 괄호로 감싸기로 했다네요.
예를들면 (++)3; 이런 식입니다.
문법을 어떤식으로 고쳐야 할지, 위의 세가지중 어떤 부분을 스캐너에서 처리해야 할지 잘 모르겠네요. 선배님들 도움이 필요합니다..

shint의 이미지

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com