XmlFile:ForwardMacroDef.ant
  PsiElement(XML_DOCUMENT)
    PsiElement(XML_PROLOG)
      <empty list>
    XmlTag:project
      XmlToken:XML_START_TAG_START('<')
      XmlToken:XML_NAME('project')
      PsiWhiteSpace(' ')
      PsiElement(XML_ATTRIBUTE)
        XmlToken:XML_NAME('default')
        XmlToken:XML_EQ('=')
        PsiElement(XML_ATTRIBUTE_VALUE)
          XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
          XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('main')
          XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
      XmlToken:XML_TAG_END('>')
      XmlText
        PsiWhiteSpace('\n  ')
      XmlTag:target
        XmlToken:XML_START_TAG_START('<')
        XmlToken:XML_NAME('target')
        PsiWhiteSpace(' ')
        PsiElement(XML_ATTRIBUTE)
          XmlToken:XML_NAME('name')
          XmlToken:XML_EQ('=')
          PsiElement(XML_ATTRIBUTE_VALUE)
            XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
            XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('main')
            XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
        XmlToken:XML_EMPTY_ELEMENT_END('/>')
      XmlText
        PsiWhiteSpace('\n  ')
      XmlTag:mytask
        XmlToken:XML_START_TAG_START('<')
        XmlToken:XML_NAME('mytask')
        PsiWhiteSpace(' ')
        PsiElement(XML_ATTRIBUTE)
          XmlToken:XML_NAME('attr1')
          XmlToken:XML_EQ('=')
          PsiElement(XML_ATTRIBUTE_VALUE)
            XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
            XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
        PsiWhiteSpace(' ')
        PsiElement(XML_ATTRIBUTE)
          XmlToken:XML_NAME('attr2')
          XmlToken:XML_EQ('=')
          PsiElement(XML_ATTRIBUTE_VALUE)
            XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
            XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('t')
            XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
        XmlToken:XML_TAG_END('>')
        XmlText
          PsiWhiteSpace('\n    ')
        XmlTag:antcall
          XmlToken:XML_START_TAG_START('<')
          XmlToken:XML_NAME('antcall')
          XmlToken:XML_EMPTY_ELEMENT_END('/>')
        XmlText
          PsiWhiteSpace('\n  ')
        XmlToken:XML_END_TAG_START('</')
        XmlToken:XML_NAME('mytask')
        XmlToken:XML_TAG_END('>')
      XmlText
        PsiWhiteSpace('\n  ')
      XmlTag:macrodef
        XmlToken:XML_START_TAG_START('<')
        XmlToken:XML_NAME('macrodef')
        PsiWhiteSpace(' ')
        PsiElement(XML_ATTRIBUTE)
          XmlToken:XML_NAME('name')
          XmlToken:XML_EQ('=')
          PsiElement(XML_ATTRIBUTE_VALUE)
            XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
            XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('mytask')
            XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
        XmlToken:XML_TAG_END('>')
        XmlText
          PsiWhiteSpace('\n    ')
        XmlTag:attribute
          XmlToken:XML_START_TAG_START('<')
          XmlToken:XML_NAME('attribute')
          PsiWhiteSpace(' ')
          PsiElement(XML_ATTRIBUTE)
            XmlToken:XML_NAME('name')
            XmlToken:XML_EQ('=')
            PsiElement(XML_ATTRIBUTE_VALUE)
              XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
              XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('attr1')
              XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
          XmlToken:XML_EMPTY_ELEMENT_END('/>')
        XmlText
          PsiWhiteSpace('\n    ')
        XmlTag:attribute
          XmlToken:XML_START_TAG_START('<')
          XmlToken:XML_NAME('attribute')
          PsiWhiteSpace(' ')
          PsiElement(XML_ATTRIBUTE)
            XmlToken:XML_NAME('name')
            XmlToken:XML_EQ('=')
            PsiElement(XML_ATTRIBUTE_VALUE)
              XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
              XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('attr2')
              XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
          XmlToken:XML_EMPTY_ELEMENT_END('/>')
        XmlText
          PsiWhiteSpace('\n    ')
        XmlTag:element
          XmlToken:XML_START_TAG_START('<')
          XmlToken:XML_NAME('element')
          PsiWhiteSpace(' ')
          PsiElement(XML_ATTRIBUTE)
            XmlToken:XML_NAME('name')
            XmlToken:XML_EQ('=')
            PsiElement(XML_ATTRIBUTE_VALUE)
              XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
              XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('antcall')
              XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
          XmlToken:XML_EMPTY_ELEMENT_END('/>')
        XmlText
          PsiWhiteSpace('\n    ')
        XmlTag:sequential
          XmlToken:XML_START_TAG_START('<')
          XmlToken:XML_NAME('sequential')
          XmlToken:XML_TAG_END('>')
          XmlText
            PsiWhiteSpace('\n      ')
          XmlTag:echo
            XmlToken:XML_START_TAG_START('<')
            XmlToken:XML_NAME('echo')
            PsiWhiteSpace(' ')
            PsiElement(XML_ATTRIBUTE)
              XmlToken:XML_NAME('message')
              XmlToken:XML_EQ('=')
              PsiElement(XML_ATTRIBUTE_VALUE)
                XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
                XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('attr1=@{attr2}')
                XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
            XmlToken:XML_TAG_END('>')
            XmlText
              XmlToken:XML_DATA_CHARACTERS('attr1=@{attr1}')
            XmlToken:XML_END_TAG_START('</')
            XmlToken:XML_NAME('echo')
            XmlToken:XML_TAG_END('>')
          XmlText
            PsiWhiteSpace('\n    ')
          XmlToken:XML_END_TAG_START('</')
          XmlToken:XML_NAME('sequential')
          XmlToken:XML_TAG_END('>')
        XmlText
          PsiWhiteSpace('\n  ')
        XmlToken:XML_END_TAG_START('</')
        XmlToken:XML_NAME('macrodef')
        XmlToken:XML_TAG_END('>')
      XmlText
        PsiWhiteSpace('\n')
      XmlToken:XML_END_TAG_START('</')
      XmlToken:XML_NAME('project')
      XmlToken:XML_TAG_END('>')