2012-03-10 6 views
1

"(example + another) * other"문자열이 특정 문법에 속하는지 결정해야하는 프로그램에서 작업하고 있습니다.대표 CFG 제작

Start = Expr endline 
    Expr = Term Expr2 
    Expr2 = + Term Expr2 | - Term Expr2 | e 
    Term = Factor Term2 
    Term2 = * Factor Term2 |/Factor Term2 | e 
    Factor= id | (Expr) | num 

예를 들어 위의 문법과 비슷한 것을 Java에서 구현하려고합니다. 지금까지 필자는 재귀를 통해 문장을 전환했지만이 방법은 그렇게 할 수 없다고 생각합니다. 제작을보다 간단하게 표현할 수있는 방법이 있습니까? 팁을 주시면 감사하겠습니다. 감사합니다.

+0

파서를 읽는 것이 좋습니다. 몇 가지 키워드가 있습니다. LR 파싱, LL 파싱, 첫 세트, 재귀 적 파생 :-) – aioobe

답변