FILE(0,50)
  JqlQuery((a = foo or (b > 12 and ((c < 40)))) and d ~ 'foo')(0,50)
    JqlAndClause((a = foo or (b > 12 and ((c < 40)))) and d ~ 'foo')(0,50)
      JqlSubClause((a = foo or (b > 12 and ((c < 40)))))(0,36)
        PsiElement(JQL: LPAR)('(')(0,1)
        JqlOrClause(a = foo or (b > 12 and ((c < 40))))(1,35)
          JqlSimpleClause(a = foo)(1,8)
            JqlIdentifier(a)(1,2)
              PsiElement(JQL: STRING_LITERAL)('a')(1,2)
            PsiWhiteSpace(' ')(2,3)
            PsiElement(JQL: EQ)('=')(3,4)
            PsiWhiteSpace(' ')(4,5)
            JqlLiteral(foo)(5,8)
              PsiElement(JQL: STRING_LITERAL)('foo')(5,8)
          PsiWhiteSpace(' ')(8,9)
          PsiElement(JQL: OR_KEYWORD)('or')(9,11)
          PsiWhiteSpace(' ')(11,12)
          JqlSubClause((b > 12 and ((c < 40))))(12,35)
            PsiElement(JQL: LPAR)('(')(12,13)
            JqlAndClause(b > 12 and ((c < 40)))(13,34)
              JqlSimpleClause(b > 12)(13,19)
                JqlIdentifier(b)(13,14)
                  PsiElement(JQL: STRING_LITERAL)('b')(13,14)
                PsiWhiteSpace(' ')(14,15)
                PsiElement(JQL: GT)('>')(15,16)
                PsiWhiteSpace(' ')(16,17)
                JqlLiteral(12)(17,19)
                  PsiElement(JQL: NUMBER_LITERAL)('12')(17,19)
              PsiWhiteSpace(' ')(19,20)
              PsiElement(JQL: AND_KEYWORD)('and')(20,23)
              PsiWhiteSpace(' ')(23,24)
              JqlSubClause(((c < 40)))(24,34)
                PsiElement(JQL: LPAR)('(')(24,25)
                JqlSubClause((c < 40))(25,33)
                  PsiElement(JQL: LPAR)('(')(25,26)
                  JqlSimpleClause(c < 40)(26,32)
                    JqlIdentifier(c)(26,27)
                      PsiElement(JQL: STRING_LITERAL)('c')(26,27)
                    PsiWhiteSpace(' ')(27,28)
                    PsiElement(JQL: LT)('<')(28,29)
                    PsiWhiteSpace(' ')(29,30)
                    JqlLiteral(40)(30,32)
                      PsiElement(JQL: NUMBER_LITERAL)('40')(30,32)
                  PsiElement(JQL: RPAR)(')')(32,33)
                PsiElement(JQL: RPAR)(')')(33,34)
            PsiElement(JQL: RPAR)(')')(34,35)
        PsiElement(JQL: RPAR)(')')(35,36)
      PsiWhiteSpace(' ')(36,37)
      PsiElement(JQL: AND_KEYWORD)('and')(37,40)
      PsiWhiteSpace(' ')(40,41)
      JqlSimpleClause(d ~ 'foo')(41,50)
        JqlIdentifier(d)(41,42)
          PsiElement(JQL: STRING_LITERAL)('d')(41,42)
        PsiWhiteSpace(' ')(42,43)
        PsiElement(JQL: CONTAINS)('~')(43,44)
        PsiWhiteSpace(' ')(44,45)
        JqlLiteral('foo')(45,50)
          PsiElement(JQL: STRING_LITERAL)(''foo'')(45,50)