text: D Language File
    DLanguageDeclarationImpl(DECLARATION)
      DLanguageAttributeImpl(ATTRIBUTE)
        DLanguageLinkageAttributeImpl(LINKAGE_ATTRIBUTE)
          PsiElement(DlangTokenType.extern)('extern')
          PsiElement(DlangTokenType.()('(')
          IDENTIFIER
            PsiElement(DlangTokenType.ID)('C')
          PsiElement(DlangTokenType.++)('++')
          PsiElement(DlangTokenType.,)(',')
          DLanguageIdentifierChainImpl(IDENTIFIER_CHAIN)
            IDENTIFIER
              PsiElement(DlangTokenType.ID)('N')
          PsiElement(DlangTokenType.))(')')
      PsiElement(DlangTokenType.{)('{')
      DLanguageDeclarationImpl(DECLARATION)
        FUNCTION_DECLARATION
          DLanguageTypeImpl(TYPE)
            DLanguageType_2Impl(TYPE_2)
              DLanguageBuiltinTypeImpl(BUILTIN_TYPE)
                PsiElement(DlangTokenType.void)('void')
          IDENTIFIER
            PsiElement(DlangTokenType.ID)('foo')
          DLanguageParametersImpl(PARAMETERS)
            PsiElement(DlangTokenType.()('(')
            PsiElement(DlangTokenType.))(')')
          PsiElement(DlangTokenType.;)(';')
      PsiElement(DlangTokenType.})('}')
    PsiComment(DlangTokenType.LINE_COMMENT)('//no longer valid d:')
    PsiComment(DlangTokenType.LINE_COMMENT)('//namespace N { void foo(); }')
    DLanguageDeclarationImpl(DECLARATION)
      UNITTEST
        UNITTEST
          PsiElement(DlangTokenType.unittest)('unittest')
          DLanguageBlockStatementImpl(BLOCK_STATEMENT)
            PsiElement(DlangTokenType.{)('{')
            DLanguageDeclarationsAndStatementsImpl(DECLARATIONS_AND_STATEMENTS)
              DLanguageDeclarationOrStatementImpl(DECLARATION_OR_STATEMENT)
                DLanguageStatementImpl(STATEMENT)
                  DLanguageStatementNoCaseNoDefaultImpl(STATEMENT_NO_CASE_NO_DEFAULT)
                    DLanguageExpressionStatementImpl(EXPRESSION_STATEMENT)
                      DLanguageExpressionImpl(EXPRESSION)
                        DLanguageAssignExpressionImpl(ASSIGN_EXPRESSION)
                          DLanguageCmpExpressionImpl(CMP_EXPRESSION)
                            DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                              DLanguageFunctionCallExpressionImpl(FUNCTION_CALL_EXPRESSION)
                                DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                                  DLanguagePrimaryExpressionImpl(PRIMARY_EXPRESSION)
                                    DLanguageIdentifierOrTemplateInstanceImpl(IDENTIFIER_OR_TEMPLATE_INSTANCE)
                                      IDENTIFIER
                                        PsiElement(DlangTokenType.ID)('foo')
                                DLanguageArgumentsImpl(ARGUMENTS)
                                  PsiElement(DlangTokenType.()('(')
                                  PsiElement(DlangTokenType.))(')')
                      PsiElement(DlangTokenType.;)(';')
              DLanguageDeclarationOrStatementImpl(DECLARATION_OR_STATEMENT)
                DLanguageStatementImpl(STATEMENT)
                  DLanguageStatementNoCaseNoDefaultImpl(STATEMENT_NO_CASE_NO_DEFAULT)
                    DLanguageExpressionStatementImpl(EXPRESSION_STATEMENT)
                      DLanguageExpressionImpl(EXPRESSION)
                        DLanguageAssignExpressionImpl(ASSIGN_EXPRESSION)
                          DLanguageCmpExpressionImpl(CMP_EXPRESSION)
                            DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                              DLanguageFunctionCallExpressionImpl(FUNCTION_CALL_EXPRESSION)
                                DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                                  DLanguagePrimaryExpressionImpl(PRIMARY_EXPRESSION)
                                    DLanguageIdentifierOrTemplateInstanceImpl(IDENTIFIER_OR_TEMPLATE_INSTANCE)
                                      IDENTIFIER
                                        PsiElement(DlangTokenType.ID)('N')
                                  PsiElement(DlangTokenType..)('.')
                                  DLanguageIdentifierOrTemplateInstanceImpl(IDENTIFIER_OR_TEMPLATE_INSTANCE)
                                    IDENTIFIER
                                      PsiElement(DlangTokenType.ID)('foo')
                                DLanguageArgumentsImpl(ARGUMENTS)
                                  PsiElement(DlangTokenType.()('(')
                                  PsiElement(DlangTokenType.))(')')
                      PsiElement(DlangTokenType.;)(';')
              DLanguageDeclarationOrStatementImpl(DECLARATION_OR_STATEMENT)
                DLanguageDeclarationImpl(DECLARATION)
                  DLanguageAttributeImpl(ATTRIBUTE)
                    DLanguageLinkageAttributeImpl(LINKAGE_ATTRIBUTE)
                      PsiElement(DlangTokenType.extern)('extern')
                      PsiElement(DlangTokenType.()('(')
                      IDENTIFIER
                        PsiElement(DlangTokenType.ID)('C')
                      PsiElement(DlangTokenType.++)('++')
                      PsiElement(DlangTokenType.,)(',')
                      DLanguageIdentifierChainImpl(IDENTIFIER_CHAIN)
                        IDENTIFIER
                          PsiElement(DlangTokenType.ID)('N')
                      PsiElement(DlangTokenType.))(')')
                  PsiElement(DlangTokenType.{)('{')
                  DLanguageDeclarationImpl(DECLARATION)
                    FUNCTION_DECLARATION
                      DLanguageTypeImpl(TYPE)
                        DLanguageType_2Impl(TYPE_2)
                          DLanguageBuiltinTypeImpl(BUILTIN_TYPE)
                            PsiElement(DlangTokenType.void)('void')
                      IDENTIFIER
                        PsiElement(DlangTokenType.ID)('foo')
                      DLanguageParametersImpl(PARAMETERS)
                        PsiElement(DlangTokenType.()('(')
                        PsiElement(DlangTokenType.))(')')
                      PsiElement(DlangTokenType.;)(';')
                  DLanguageDeclarationImpl(DECLARATION)
                    FUNCTION_DECLARATION
                      DLanguageTypeImpl(TYPE)
                        DLanguageType_2Impl(TYPE_2)
                          DLanguageBuiltinTypeImpl(BUILTIN_TYPE)
                            PsiElement(DlangTokenType.void)('void')
                      IDENTIFIER
                        PsiElement(DlangTokenType.ID)('bar')
                      DLanguageParametersImpl(PARAMETERS)
                        PsiElement(DlangTokenType.()('(')
                        PsiElement(DlangTokenType.))(')')
                      PsiElement(DlangTokenType.;)(';')
                  PsiElement(DlangTokenType.})('}')
              DLanguageDeclarationOrStatementImpl(DECLARATION_OR_STATEMENT)
                DLanguageDeclarationImpl(DECLARATION)
                  DLanguageAttributeImpl(ATTRIBUTE)
                    DLanguageLinkageAttributeImpl(LINKAGE_ATTRIBUTE)
                      PsiElement(DlangTokenType.extern)('extern')
                      PsiElement(DlangTokenType.()('(')
                      IDENTIFIER
                        PsiElement(DlangTokenType.ID)('C')
                      PsiElement(DlangTokenType.++)('++')
                      PsiElement(DlangTokenType.,)(',')
                      DLanguageIdentifierChainImpl(IDENTIFIER_CHAIN)
                        IDENTIFIER
                          PsiElement(DlangTokenType.ID)('M')
                      PsiElement(DlangTokenType.))(')')
                  PsiElement(DlangTokenType.{)('{')
                  DLanguageDeclarationImpl(DECLARATION)
                    FUNCTION_DECLARATION
                      DLanguageTypeImpl(TYPE)
                        DLanguageType_2Impl(TYPE_2)
                          DLanguageBuiltinTypeImpl(BUILTIN_TYPE)
                            PsiElement(DlangTokenType.void)('void')
                      IDENTIFIER
                        PsiElement(DlangTokenType.ID)('foo')
                      DLanguageParametersImpl(PARAMETERS)
                        PsiElement(DlangTokenType.()('(')
                        PsiElement(DlangTokenType.))(')')
                      PsiElement(DlangTokenType.;)(';')
                  PsiElement(DlangTokenType.})('}')
              DLanguageDeclarationOrStatementImpl(DECLARATION_OR_STATEMENT)
                DLanguageStatementImpl(STATEMENT)
                  DLanguageStatementNoCaseNoDefaultImpl(STATEMENT_NO_CASE_NO_DEFAULT)
                    DLanguageExpressionStatementImpl(EXPRESSION_STATEMENT)
                      DLanguageExpressionImpl(EXPRESSION)
                        DLanguageAssignExpressionImpl(ASSIGN_EXPRESSION)
                          DLanguageCmpExpressionImpl(CMP_EXPRESSION)
                            DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                              DLanguageFunctionCallExpressionImpl(FUNCTION_CALL_EXPRESSION)
                                DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                                  DLanguagePrimaryExpressionImpl(PRIMARY_EXPRESSION)
                                    DLanguageIdentifierOrTemplateInstanceImpl(IDENTIFIER_OR_TEMPLATE_INSTANCE)
                                      IDENTIFIER
                                        PsiElement(DlangTokenType.ID)('bar')
                                DLanguageArgumentsImpl(ARGUMENTS)
                                  PsiElement(DlangTokenType.()('(')
                                  PsiElement(DlangTokenType.))(')')
                      PsiElement(DlangTokenType.;)(';')
              PsiComment(DlangTokenType.LINE_COMMENT)('// ok')
              DLanguageDeclarationOrStatementImpl(DECLARATION_OR_STATEMENT)
                DLanguageStatementImpl(STATEMENT)
                  DLanguageStatementNoCaseNoDefaultImpl(STATEMENT_NO_CASE_NO_DEFAULT)
                    DLanguageExpressionStatementImpl(EXPRESSION_STATEMENT)
                      DLanguageExpressionImpl(EXPRESSION)
                        DLanguageAssignExpressionImpl(ASSIGN_EXPRESSION)
                          DLanguageCmpExpressionImpl(CMP_EXPRESSION)
                            DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                              DLanguageFunctionCallExpressionImpl(FUNCTION_CALL_EXPRESSION)
                                DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                                  DLanguagePrimaryExpressionImpl(PRIMARY_EXPRESSION)
                                    DLanguageIdentifierOrTemplateInstanceImpl(IDENTIFIER_OR_TEMPLATE_INSTANCE)
                                      IDENTIFIER
                                        PsiElement(DlangTokenType.ID)('foo')
                                DLanguageArgumentsImpl(ARGUMENTS)
                                  PsiElement(DlangTokenType.()('(')
                                  PsiElement(DlangTokenType.))(')')
                      PsiElement(DlangTokenType.;)(';')
              PsiComment(DlangTokenType.LINE_COMMENT)('// error - N.foo() or M.foo() ?')
              DLanguageDeclarationOrStatementImpl(DECLARATION_OR_STATEMENT)
                DLanguageStatementImpl(STATEMENT)
                  DLanguageStatementNoCaseNoDefaultImpl(STATEMENT_NO_CASE_NO_DEFAULT)
                    DLanguageExpressionStatementImpl(EXPRESSION_STATEMENT)
                      DLanguageExpressionImpl(EXPRESSION)
                        DLanguageAssignExpressionImpl(ASSIGN_EXPRESSION)
                          DLanguageCmpExpressionImpl(CMP_EXPRESSION)
                            DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                              DLanguageFunctionCallExpressionImpl(FUNCTION_CALL_EXPRESSION)
                                DLanguageUnaryExpressionImpl(UNARY_EXPRESSION)
                                  DLanguagePrimaryExpressionImpl(PRIMARY_EXPRESSION)
                                    DLanguageIdentifierOrTemplateInstanceImpl(IDENTIFIER_OR_TEMPLATE_INSTANCE)
                                      IDENTIFIER
                                        PsiElement(DlangTokenType.ID)('M')
                                  PsiElement(DlangTokenType..)('.')
                                  DLanguageIdentifierOrTemplateInstanceImpl(IDENTIFIER_OR_TEMPLATE_INSTANCE)
                                    IDENTIFIER
                                      PsiElement(DlangTokenType.ID)('foo')
                                DLanguageArgumentsImpl(ARGUMENTS)
                                  PsiElement(DlangTokenType.()('(')
                                  PsiElement(DlangTokenType.))(')')
                      PsiElement(DlangTokenType.;)(';')
            PsiComment(DlangTokenType.LINE_COMMENT)('// ok')
            PsiElement(DlangTokenType.})('}')