@A(x = '5', 'foo', , x=, , 5)
def x
-----
Groovy script
  Variable definitions
    Modifiers
      Annotation
        PsiElement(@)('@')
        Reference element
          PsiElement(identifier)('A')
        Annotation arguments
          PsiElement(()('(')
          Annotation member value pair
            PsiElement(identifier)('x')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            Literal
              PsiElement(string)(''5'')
          PsiElement(,)(',')
          PsiWhiteSpace(' ')
          Annotation member value pair
            Literal
              PsiElement(string)(''foo'')
          PsiElement(,)(',')
          PsiWhiteSpace(' ')
          Annotation member value pair
            PsiErrorElement:Annotation attribute expected
              <empty list>
          PsiElement(,)(',')
          PsiWhiteSpace(' ')
          Annotation member value pair
            PsiElement(identifier)('x')
            PsiElement(=)('=')
            PsiErrorElement:Annotation member value initializer expected
              <empty list>
          PsiElement(,)(',')
          PsiWhiteSpace(' ')
          Annotation member value pair
            PsiErrorElement:Annotation attribute expected
              <empty list>
          PsiElement(,)(',')
          PsiWhiteSpace(' ')
          Annotation member value pair
            Literal
              PsiElement(Integer)('5')
          PsiElement())(')')
      PsiElement(new line)('\n')
      PsiElement(def)('def')
    PsiWhiteSpace(' ')
    Variable
      PsiElement(identifier)('x')