Using the following grammar, show a parse tree and a leftmost derivation for the following sentence (make sure you do not omit parentheses in your derivation):
Grammar
<assign>
→ <id> = <expr>
<id> → A | B | C
<expr> → <expr> + <term> |
<term>
<term> → <term> * <factor> |
<factor>
<factor> → (<expr>) | <id>
Derive
C = (A+B)*(C+A)*(C+B)
IF YOU HAVE ANY DOUBTS COMMENT BELOW I WILL BE THERE TO HELP YOU
ANSWER:
EXPLANATION:
C = (A+B)*(C+A)*(C+B)
<assign>
→ <id> = <expr>
→ C = <expr>
→ C = <term> * <factor>
→ C = <term> * <factor> * <factor>
→ C = <factor> * <factor> * <factor>
→ C = (<expr>) * <factor> * <factor>
→ C = (<expr> + <term>) * <factor> *
<factor>
→ C = (<term> + <term>) * <factor> *
<factor>
→ C = (<factor> + <term>) * <factor> *
<factor>
→ C = (<id> + <term>) * <factor> *
<factor>
→ C = (A + <term>) * <factor> * <factor>
→ C = (A + <factor>) * <factor> * <factor>
→ C = (A + <id>) * <factor> * <factor>
→ C = (A + B) * <factor> * <factor>
→ C = (A + B) * (<expr>) * <factor>
→ C = (A + B) * (<expr>+<term>) * <factor>
→ C = (A + B) * (<term>+<term>) * <factor>
→ C = (A + B) * (<factor>+<term>) *
<factor>
→ C = (A + B) * (<id>+<term>) * <factor>
→ C = (A + B) * (C + <term>) * <factor>
→ C = (A + B) * (C + <factor>) * <factor>
→ C = (A + B) * (C + <id>) * <factor>
→ C = (A + B) * (C + A) * <factor>
→ C = (A + B) * (C + A) * (<expr>)
→ C = (A + B) * (C + A) * (<expr> + <term>)
→ C = (A + B) * (C + A) * (<term> + <term>)
→ C = (A + B) * (C + A) * (<factor> + <term>)
→ C = (A + B) * (C + A) * (<id> + <term>)
→ C = (A + B) * (C + A) * (C + <term>)
→ C = (A + B) * (C + A) * (C + <factor>)
→ C = (A + B) * (C + A) * (C + <id>)
→ C = (A + B) * (C + A) * (C + B)
HOPE IT HELPS
YOU
RATE THUMBSUP PLEASE
Using the following grammar, show a parse tree and a leftmost derivation for the following sentence...