با این ابزار کار نکردم ولی مشابهش ابزارهای دیگه ای مثل Antlr بر پایه جاوا وجود داره
به هر حال. مشکل از گرامر شماست که گرامر مبهمه.
مثلا bool OR bool OR bool میشه به دو طریق براش درخت اشتقاق رسم کرد.
دو مسئله ابهام و چپ گردی در گرامرها رو حتما مطالعه کن.
خب بعضی از ابزارها چپ گردی رو خودشون اتوماتیک حل میکنند و فقط ابهام نباید داشته باشه. برای چنین ابزاری گرامر به صورت زیر ابهام نداره ولی چپ گردی داره که مشکلی ایجاد نمیکنه:A ::= A or B | B
B ::= B and C | C
C ::= true | false
اگر ابزار مورد استفادت چپ گردی رو اتوماتیک حل نمیکنه، پس میشه:
A ::= B AX
AX ::= or B AX | λ
B ::= C BX
BX ::= and C BX | λ
C ::= true | false
منظور از λ رشته بدون طول هست. ببینید تو ابزارتون به جاش چی مینویسن.
اگر به جز استفادش لازمه بدونید چطور بدست میاد، left-recursion و ambiguity (از مباحث نظریه زبان های برنامه سازی) رو در اینترنت سرچ کنید.