Groovy script
  PsiElement(new line)('\n')
  Method
    Modifiers
      PsiElement(def)('def')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('foo')
    PsiElement(()('(')
    Parameter list
      <empty list>
    PsiElement())(')')
    Throw clause
      <empty list>
    PsiWhiteSpace(' ')
    Open block
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      Variable definitions
        Modifiers
          <empty list>
        Type element
          Reference element
            PsiElement(identifier)('String')
        PsiWhiteSpace(' ')
        Variable
          PsiElement(identifier)('home')
      PsiElement(new line)('\n    ')
      Method call
        Reference expression
          Reference expression
            PsiElement(identifier)('simplePlugins')
          PsiElement(.)('.')
          PsiElement(identifier)('each')
        PsiWhiteSpace(' ')
        Arguments
          <empty list>
        Closable block
          PsiElement({)('{')
          PsiWhiteSpace('\n        ')
          Parameter list
            <empty list>
          Call expression
            Reference expression
              PsiElement(identifier)('layoutPlugin')
            PsiWhiteSpace(' ')
            Command arguments
              Reference expression
                PsiElement(identifier)('it')
          PsiElement(new line)('\n    ')
          PsiElement(})('}')
      PsiElement(new line)('\n\n')
      PsiElement(})('}')
  PsiElement(new line)('\n')
  PsiErrorElement:Unexpected symbol
    PsiElement(})('}')
---
Groovy script
  PsiElement(new line)('\n')
  Method
    Modifiers
      PsiElement(def)('def')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('foo')
    PsiElement(()('(')
    Parameter list
      <empty list>
    PsiElement())(')')
    Throw clause
      <empty list>
    PsiWhiteSpace(' ')
    Open block
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      Reference expression
        Call expression
          Parenthesized expression
            PsiElement(()('(')
            Reference expression
              PsiElement(identifier)('String')
            PsiErrorElement:')' expected
              <empty list>
          PsiWhiteSpace(' ')
          Command arguments
            Reference expression
              PsiElement(identifier)('home')
        PsiWhiteSpace('\n    ')
        PsiElement(identifier)('simplePlugins')
      PsiErrorElement:';', '}' or new line expected
        <empty list>
      PsiElement(.)('.')
      Method call
        Reference expression
          PsiElement(identifier)('each')
        PsiWhiteSpace(' ')
        Arguments
          <empty list>
        Closable block
          PsiElement({)('{')
          PsiWhiteSpace('\n        ')
          Parameter list
            <empty list>
          Call expression
            Reference expression
              PsiElement(identifier)('layoutPlugin')
            PsiWhiteSpace(' ')
            Command arguments
              Reference expression
                PsiElement(identifier)('it')
          PsiElement(new line)('\n    ')
          PsiElement(})('}')
      PsiWhiteSpace('\n\n')
      PsiElement(})('}')
  PsiElement(new line)('\n')
  PsiErrorElement:Unexpected symbol
    PsiElement(})('}')