| if expr1 expr2 else expr3 |
| ----- |
| Groovy script |
| IF statement |
| PsiElement(if)('if') |
| PsiErrorElement:'(' expected |
| <empty list> |
| PsiWhiteSpace(' ') |
| Call expression |
| Reference expression |
| PsiElement(identifier)('expr1') |
| PsiWhiteSpace(' ') |
| Command arguments |
| Reference expression |
| PsiElement(identifier)('expr2') |
| PsiErrorElement:';' or new line expected |
| <empty list> |
| PsiWhiteSpace(' ') |
| PsiErrorElement:'else' without 'if' |
| PsiElement(else)('else') |
| PsiWhiteSpace(' ') |
| Reference expression |
| PsiElement(identifier)('expr3') |