smali.FILE
  SmaliClass(CLASS)
    SmaliExtendsList(EXTENDS_LIST)
      <empty list>
    SmaliImplementsList(IMPLEMENTS_LIST)
      <empty list>
    SmaliClassStatement(CLASS_STATEMENT)
      PsiElement(CLASS_DIRECTIVE)('.class')
      PsiWhiteSpace(' ')
      SmaliModifierList(MODIFIER_LIST)
        <empty list>
      PsiElement(CLASS_TYPE)
        PsiElement(CLASS_DESCRIPTOR)('Ltest;')
    PsiWhiteSpace('\n')
    PsiElement(SUPER_STATEMENT)
      PsiElement(SUPER_DIRECTIVE)('.super')
      PsiWhiteSpace(' ')
      PsiElement(CLASS_TYPE)
        PsiElement(CLASS_DESCRIPTOR)('Ljava/lang/Object;')
    PsiWhiteSpace('\n\n')
    SmaliMethod(METHOD)
      SmaliThrowsList(THROWS_LIST)
        <empty list>
      PsiElement(METHOD_DIRECTIVE)('.method')
      PsiWhiteSpace(' ')
      SmaliModifierList(MODIFIER_LIST)
        <empty list>
      PsiElement(MEMBER_NAME)
        PsiElement(SIMPLE_NAME)('blah')
      PsiWhiteSpace('\n\n')
      SmaliMethodPrototype(METHOD_PROTOTYPE)
        PsiErrorElement:mismatched input '.method' expecting OPEN_PAREN
          <empty list>
        SmaliMethodParamList(METHOD_PARAM_LIST)
          <empty list>
      PsiErrorElement:missing END_METHOD_DIRECTIVE at '.method'
        <empty list>
    SmaliMethod(METHOD)
      SmaliThrowsList(THROWS_LIST)
        <empty list>
      PsiElement(METHOD_DIRECTIVE)('.method')
      SmaliModifierList(MODIFIER_LIST)
        <empty list>
      PsiElement(MEMBER_NAME)
        PsiErrorElement:no viable alternative at input '<EOF>'
          <empty list>
      SmaliMethodPrototype(METHOD_PROTOTYPE)
        SmaliMethodParamList(METHOD_PARAM_LIST)
          <empty list>