Requirements File(0,860)
  NameReqImpl(NAME_REQ)(0,7)
    SimpleNameImpl(SIMPLE_NAME)(0,7)
      PsiElement(RequirementsTokenType.IDENTIFIER)('A.B-C_D')(0,7)
  PsiComment(RequirementsTokenType.COMMENT)(' # comment')(7,17)
  PsiElement(RequirementsTokenType.EOL)('\n')(17,18)
  NameReqImpl(NAME_REQ)(18,22)
    SimpleNameImpl(SIMPLE_NAME)(18,22)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name')(18,22)
  PsiComment(RequirementsTokenType.COMMENT)(' # comment')(22,32)
  PsiElement(RequirementsTokenType.EOL)('\n')(32,33)
  NameReqImpl(NAME_REQ)(33,48)
    SimpleNameImpl(SIMPLE_NAME)(33,38)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name1')(33,38)
    ExtrasImpl(EXTRAS)(38,48)
      PsiElement(RequirementsTokenType.LSBRACE)('[')(38,39)
      ExtrasListImpl(EXTRAS_LIST)(39,47)
        PsiElement(RequirementsTokenType.IDENTIFIER)('fred')(39,43)
        PsiElement(RequirementsTokenType.COMMA)(',')(43,44)
        PsiElement(RequirementsTokenType.IDENTIFIER)('bar')(44,47)
      PsiElement(RequirementsTokenType.RSBRACE)(']')(47,48)
  PsiComment(RequirementsTokenType.COMMENT)(' # comment')(48,58)
  PsiElement(RequirementsTokenType.EOL)('\n')(58,59)
  NameReqImpl(NAME_REQ)(59,67)
    SimpleNameImpl(SIMPLE_NAME)(59,64)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name2')(59,64)
    VersionspecImpl(VERSIONSPEC)(64,67)
      VersionOneImpl(VERSION_ONE)(64,67)
        VersionCmpStmtImpl(VERSION_CMP_STMT)(64,66)
          PsiElement(RequirementsTokenType.VERSION_CMP)('<=')(64,66)
        VersionStmtImpl(VERSION_STMT)(66,67)
          PsiElement(RequirementsTokenType.VERSION)('1')(66,67)
  PsiComment(RequirementsTokenType.COMMENT)(' # comment')(67,77)
  PsiElement(RequirementsTokenType.EOL)('\n')(77,78)
  NameReqImpl(NAME_REQ)(78,86)
    SimpleNameImpl(SIMPLE_NAME)(78,83)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name3')(78,83)
    VersionspecImpl(VERSIONSPEC)(83,86)
      VersionOneImpl(VERSION_ONE)(83,86)
        VersionCmpStmtImpl(VERSION_CMP_STMT)(83,85)
          PsiElement(RequirementsTokenType.VERSION_CMP)('>=')(83,85)
        VersionStmtImpl(VERSION_STMT)(85,86)
          PsiElement(RequirementsTokenType.VERSION)('3')(85,86)
  PsiComment(RequirementsTokenType.COMMENT)(' # comment')(86,96)
  PsiElement(RequirementsTokenType.EOL)('\n')(96,97)
  NameReqImpl(NAME_REQ)(97,109)
    SimpleNameImpl(SIMPLE_NAME)(97,102)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name4')(97,102)
    VersionspecImpl(VERSIONSPEC)(102,109)
      VersionOneImpl(VERSION_ONE)(102,105)
        VersionCmpStmtImpl(VERSION_CMP_STMT)(102,104)
          PsiElement(RequirementsTokenType.VERSION_CMP)('>=')(102,104)
        VersionStmtImpl(VERSION_STMT)(104,105)
          PsiElement(RequirementsTokenType.VERSION)('3')(104,105)
      PsiElement(RequirementsTokenType.COMMA)(',')(105,106)
      PsiWhiteSpace(' ')(106,107)
      VersionOneImpl(VERSION_ONE)(107,109)
        VersionCmpStmtImpl(VERSION_CMP_STMT)(107,108)
          PsiElement(RequirementsTokenType.VERSION_CMP)('<')(107,108)
        VersionStmtImpl(VERSION_STMT)(108,109)
          PsiElement(RequirementsTokenType.VERSION)('2')(108,109)
  PsiComment(RequirementsTokenType.COMMENT)(' # comment')(109,119)
  PsiElement(RequirementsTokenType.EOL)('\n')(119,120)
  UrlReqImpl(URL_REQ)(120,151)
    SimpleNameImpl(SIMPLE_NAME)(120,126)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name44')(120,126)
    UrlspecImpl(URLSPEC)(126,151)
      PsiElement(RequirementsTokenType.AT)('@')(126,127)
      UriReferenceImpl(URI_REFERENCE)(127,151)
        UriImpl(URI)(127,151)
          SchemeImpl(SCHEME)(127,131)
            PsiElement(RequirementsTokenType.LETTER)('h')(127,128)
            PsiElement(RequirementsTokenType.LETTER)('t')(128,129)
            PsiElement(RequirementsTokenType.LETTER)('t')(129,130)
            PsiElement(RequirementsTokenType.LETTER)('p')(130,131)
          PsiElement(RequirementsTokenType.COLON)(':')(131,132)
          HierPartImpl(HIER_PART)(132,151)
            PsiElement(RequirementsTokenType.SLASH)('/')(132,133)
            PsiElement(RequirementsTokenType.SLASH)('/')(133,134)
            AuthorityImpl(AUTHORITY)(134,141)
              HostImpl(HOST)(134,141)
                RegNameImpl(REG_NAME)(134,141)
                  UnreservedImpl(UNRESERVED)(134,135)
                    PsiElement(RequirementsTokenType.LETTER)('f')(134,135)
                  UnreservedImpl(UNRESERVED)(135,136)
                    PsiElement(RequirementsTokenType.LETTER)('o')(135,136)
                  UnreservedImpl(UNRESERVED)(136,137)
                    PsiElement(RequirementsTokenType.LETTER)('o')(136,137)
                  UnreservedImpl(UNRESERVED)(137,138)
                    PsiElement(RequirementsTokenType.DOT)('.')(137,138)
                  UnreservedImpl(UNRESERVED)(138,139)
                    PsiElement(RequirementsTokenType.LETTER)('c')(138,139)
                  UnreservedImpl(UNRESERVED)(139,140)
                    PsiElement(RequirementsTokenType.LETTER)('o')(139,140)
                  UnreservedImpl(UNRESERVED)(140,141)
                    PsiElement(RequirementsTokenType.LETTER)('m')(140,141)
            PsiComment(RequirementsTokenType.COMMENT)(' # comment')(141,151)
            PathAbemptyImpl(PATH_ABEMPTY)(151,151)
              <empty list>
  PsiElement(RequirementsTokenType.EOL)('\n')(151,152)
  NameReqImpl(NAME_REQ)(152,177)
    SimpleNameImpl(SIMPLE_NAME)(152,154)
      PsiElement(RequirementsTokenType.IDENTIFIER)('aa')(152,154)
    QuotedMarkerImpl(QUOTED_MARKER)(154,177)
      PsiElement(RequirementsTokenType.SEMICOLON)(';')(154,155)
      PsiWhiteSpace(' ')(155,156)
      MarkerOrImpl(MARKER_OR)(156,177)
        MarkerAndImpl(MARKER_AND)(156,177)
          MarkerExprImpl(MARKER_EXPR)(156,177)
            MarkerVarImpl(MARKER_VAR)(156,170)
              PsiElement(RequirementsTokenType.ENV_VAR)('python_version')(156,170)
            MarkerOpImpl(MARKER_OP)(170,172)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(170,172)
            MarkerVarImpl(MARKER_VAR)(172,177)
              PythonStrImpl(PYTHON_STR)(172,177)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(172,173)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('2.7')(173,176)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(176,177)
  PsiComment(RequirementsTokenType.COMMENT)('# comment')(177,186)
  PsiElement(RequirementsTokenType.EOL)('\n')(186,187)
  UrlReqImpl(URL_REQ)(187,243)
    SimpleNameImpl(SIMPLE_NAME)(187,192)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name5')(187,192)
    ExtrasImpl(EXTRAS)(192,202)
      PsiElement(RequirementsTokenType.LSBRACE)('[')(192,193)
      ExtrasListImpl(EXTRAS_LIST)(193,201)
        PsiElement(RequirementsTokenType.IDENTIFIER)('fred')(193,197)
        PsiElement(RequirementsTokenType.COMMA)(',')(197,198)
        PsiElement(RequirementsTokenType.IDENTIFIER)('bar')(198,201)
      PsiElement(RequirementsTokenType.RSBRACE)(']')(201,202)
    PsiWhiteSpace(' ')(202,203)
    UrlspecImpl(URLSPEC)(203,219)
      PsiElement(RequirementsTokenType.AT)('@')(203,204)
      PsiWhiteSpace(' ')(204,205)
      UriReferenceImpl(URI_REFERENCE)(205,219)
        UriImpl(URI)(205,219)
          SchemeImpl(SCHEME)(205,209)
            PsiElement(RequirementsTokenType.LETTER)('h')(205,206)
            PsiElement(RequirementsTokenType.LETTER)('t')(206,207)
            PsiElement(RequirementsTokenType.LETTER)('t')(207,208)
            PsiElement(RequirementsTokenType.LETTER)('p')(208,209)
          PsiElement(RequirementsTokenType.COLON)(':')(209,210)
          HierPartImpl(HIER_PART)(210,219)
            PsiElement(RequirementsTokenType.SLASH)('/')(210,211)
            PsiElement(RequirementsTokenType.SLASH)('/')(211,212)
            AuthorityImpl(AUTHORITY)(212,219)
              HostImpl(HOST)(212,219)
                RegNameImpl(REG_NAME)(212,219)
                  UnreservedImpl(UNRESERVED)(212,213)
                    PsiElement(RequirementsTokenType.LETTER)('f')(212,213)
                  UnreservedImpl(UNRESERVED)(213,214)
                    PsiElement(RequirementsTokenType.LETTER)('o')(213,214)
                  UnreservedImpl(UNRESERVED)(214,215)
                    PsiElement(RequirementsTokenType.LETTER)('o')(214,215)
                  UnreservedImpl(UNRESERVED)(215,216)
                    PsiElement(RequirementsTokenType.DOT)('.')(215,216)
                  UnreservedImpl(UNRESERVED)(216,217)
                    PsiElement(RequirementsTokenType.LETTER)('c')(216,217)
                  UnreservedImpl(UNRESERVED)(217,218)
                    PsiElement(RequirementsTokenType.LETTER)('o')(217,218)
                  UnreservedImpl(UNRESERVED)(218,219)
                    PsiElement(RequirementsTokenType.LETTER)('m')(218,219)
            PathAbemptyImpl(PATH_ABEMPTY)(219,219)
              <empty list>
    QuotedMarkerImpl(QUOTED_MARKER)(219,243)
      PsiElement(RequirementsTokenType.SEMICOLON)(' ;')(219,221)
      PsiWhiteSpace(' ')(221,222)
      MarkerOrImpl(MARKER_OR)(222,243)
        MarkerAndImpl(MARKER_AND)(222,243)
          MarkerExprImpl(MARKER_EXPR)(222,243)
            MarkerVarImpl(MARKER_VAR)(222,236)
              PsiElement(RequirementsTokenType.ENV_VAR)('python_version')(222,236)
            MarkerOpImpl(MARKER_OP)(236,238)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(236,238)
            MarkerVarImpl(MARKER_VAR)(238,243)
              PythonStrImpl(PYTHON_STR)(238,243)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(238,239)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('2.7')(239,242)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(242,243)
  PsiComment(RequirementsTokenType.COMMENT)('# comment')(243,252)
  PsiElement(RequirementsTokenType.EOL)('\n')(252,253)
  NameReqImpl(NAME_REQ)(253,319)
    SimpleNameImpl(SIMPLE_NAME)(253,258)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name6')(253,258)
    ExtrasImpl(EXTRAS)(258,272)
      PsiElement(RequirementsTokenType.LSBRACE)('[')(258,259)
      ExtrasListImpl(EXTRAS_LIST)(259,271)
        PsiElement(RequirementsTokenType.IDENTIFIER)('quux')(259,263)
        PsiElement(RequirementsTokenType.COMMA)(',')(263,264)
        PsiElement(RequirementsTokenType.IDENTIFIER)('strange')(264,271)
      PsiElement(RequirementsTokenType.RSBRACE)(']')(271,272)
    QuotedMarkerImpl(QUOTED_MARKER)(272,319)
      PsiElement(RequirementsTokenType.SEMICOLON)(';')(272,273)
      MarkerOrImpl(MARKER_OR)(273,319)
        MarkerAndImpl(MARKER_AND)(273,319)
          MarkerExprImpl(MARKER_EXPR)(273,293)
            MarkerVarImpl(MARKER_VAR)(273,287)
              PsiElement(RequirementsTokenType.ENV_VAR)('python_version')(273,287)
            MarkerOpImpl(MARKER_OP)(287,288)
              PsiElement(RequirementsTokenType.VERSION_CMP)('<')(287,288)
            MarkerVarImpl(MARKER_VAR)(288,293)
              PythonStrImpl(PYTHON_STR)(288,293)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(288,289)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('2.7')(289,292)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(292,293)
          PsiWhiteSpace(' ')(293,294)
          PsiElement(RequirementsTokenType.AND)('and')(294,297)
          PsiWhiteSpace(' ')(297,298)
          MarkerExprImpl(MARKER_EXPR)(298,319)
            MarkerVarImpl(MARKER_VAR)(298,314)
              PsiElement(RequirementsTokenType.ENV_VAR)('platform_version')(298,314)
            MarkerOpImpl(MARKER_OP)(314,316)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(314,316)
            MarkerVarImpl(MARKER_VAR)(316,319)
              PythonStrImpl(PYTHON_STR)(316,319)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(316,317)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('2')(317,318)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(318,319)
  PsiComment(RequirementsTokenType.COMMENT)('# comment')(319,328)
  PsiElement(RequirementsTokenType.EOL)('\n')(328,329)
  NameReqImpl(NAME_REQ)(329,364)
    SimpleNameImpl(SIMPLE_NAME)(329,334)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name7')(329,334)
    QuotedMarkerImpl(QUOTED_MARKER)(334,364)
      PsiElement(RequirementsTokenType.SEMICOLON)(';')(334,335)
      PsiWhiteSpace(' ')(335,336)
      MarkerOrImpl(MARKER_OR)(336,364)
        MarkerAndImpl(MARKER_AND)(336,348)
          MarkerExprImpl(MARKER_EXPR)(336,348)
            MarkerVarImpl(MARKER_VAR)(336,343)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(336,343)
            MarkerOpImpl(MARKER_OP)(343,345)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(343,345)
            MarkerVarImpl(MARKER_VAR)(345,348)
              PythonStrImpl(PYTHON_STR)(345,348)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(345,346)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('a')(346,347)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(347,348)
        PsiWhiteSpace(' ')(348,349)
        PsiElement(RequirementsTokenType.OR)('or')(349,351)
        PsiWhiteSpace(' ')(351,352)
        MarkerAndImpl(MARKER_AND)(352,364)
          MarkerExprImpl(MARKER_EXPR)(352,364)
            MarkerVarImpl(MARKER_VAR)(352,359)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(352,359)
            MarkerOpImpl(MARKER_OP)(359,361)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(359,361)
            MarkerVarImpl(MARKER_VAR)(361,364)
              PythonStrImpl(PYTHON_STR)(361,364)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(361,362)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('b')(362,363)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(363,364)
  PsiComment(RequirementsTokenType.COMMENT)('# comment')(364,373)
  PsiElement(RequirementsTokenType.EOL)('\n')(373,374)
  NameReqImpl(NAME_REQ)(374,414)
    SimpleNameImpl(SIMPLE_NAME)(374,385)
      PsiElement(RequirementsTokenType.IDENTIFIER)('SomeProject')(374,385)
    VersionspecImpl(VERSIONSPEC)(385,390)
      VersionOneImpl(VERSION_ONE)(385,390)
        VersionCmpStmtImpl(VERSION_CMP_STMT)(385,387)
          PsiElement(RequirementsTokenType.VERSION_CMP)('==')(385,387)
        VersionStmtImpl(VERSION_STMT)(387,390)
          PsiElement(RequirementsTokenType.VERSION)('5.4')(387,390)
    QuotedMarkerImpl(QUOTED_MARKER)(390,414)
      PsiElement(RequirementsTokenType.SEMICOLON)(';')(390,391)
      PsiWhiteSpace(' ')(391,392)
      MarkerOrImpl(MARKER_OR)(392,414)
        MarkerAndImpl(MARKER_AND)(392,414)
          MarkerExprImpl(MARKER_EXPR)(392,414)
            MarkerVarImpl(MARKER_VAR)(392,406)
              PsiElement(RequirementsTokenType.ENV_VAR)('python_version')(392,406)
            PsiWhiteSpace(' ')(406,407)
            MarkerOpImpl(MARKER_OP)(407,408)
              PsiElement(RequirementsTokenType.VERSION_CMP)('<')(407,408)
            PsiWhiteSpace(' ')(408,409)
            MarkerVarImpl(MARKER_VAR)(409,414)
              PythonStrImpl(PYTHON_STR)(409,414)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(409,410)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('2.7')(410,413)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(413,414)
  PsiComment(RequirementsTokenType.COMMENT)('# comment')(414,423)
  PsiElement(RequirementsTokenType.EOL)('\n')(423,424)
  NameReqImpl(NAME_REQ)(424,461)
    SimpleNameImpl(SIMPLE_NAME)(424,436)
      PsiElement(RequirementsTokenType.IDENTIFIER)('SomeProject2')(424,436)
    QuotedMarkerImpl(QUOTED_MARKER)(436,461)
      PsiElement(RequirementsTokenType.SEMICOLON)(';')(436,437)
      PsiWhiteSpace(' ')(437,438)
      MarkerOrImpl(MARKER_OR)(438,461)
        MarkerAndImpl(MARKER_AND)(438,461)
          MarkerExprImpl(MARKER_EXPR)(438,461)
            MarkerVarImpl(MARKER_VAR)(438,450)
              PsiElement(RequirementsTokenType.ENV_VAR)('sys_platform')(438,450)
            PsiWhiteSpace(' ')(450,451)
            MarkerOpImpl(MARKER_OP)(451,453)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(451,453)
            PsiWhiteSpace(' ')(453,454)
            MarkerVarImpl(MARKER_VAR)(454,461)
              PythonStrImpl(PYTHON_STR)(454,461)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(454,455)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('win32')(455,460)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(460,461)
  PsiComment(RequirementsTokenType.COMMENT)('# comment')(461,470)
  PsiElement(RequirementsTokenType.EOL)('\n')(470,471)
  PsiComment(RequirementsTokenType.COMMENT)('# Should parse as (a and b) or c')(471,503)
  PsiElement(RequirementsTokenType.EOL)('\n')(503,504)
  NameReqImpl(NAME_REQ)(504,556)
    SimpleNameImpl(SIMPLE_NAME)(504,509)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name8')(504,509)
    QuotedMarkerImpl(QUOTED_MARKER)(509,556)
      PsiElement(RequirementsTokenType.SEMICOLON)(';')(509,510)
      PsiWhiteSpace(' ')(510,511)
      MarkerOrImpl(MARKER_OR)(511,556)
        MarkerAndImpl(MARKER_AND)(511,540)
          MarkerExprImpl(MARKER_EXPR)(511,523)
            MarkerVarImpl(MARKER_VAR)(511,518)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(511,518)
            MarkerOpImpl(MARKER_OP)(518,520)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(518,520)
            MarkerVarImpl(MARKER_VAR)(520,523)
              PythonStrImpl(PYTHON_STR)(520,523)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(520,521)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('a')(521,522)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(522,523)
          PsiWhiteSpace(' ')(523,524)
          PsiElement(RequirementsTokenType.AND)('and')(524,527)
          PsiWhiteSpace(' ')(527,528)
          MarkerExprImpl(MARKER_EXPR)(528,540)
            MarkerVarImpl(MARKER_VAR)(528,535)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(528,535)
            MarkerOpImpl(MARKER_OP)(535,537)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(535,537)
            MarkerVarImpl(MARKER_VAR)(537,540)
              PythonStrImpl(PYTHON_STR)(537,540)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(537,538)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('b')(538,539)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(539,540)
        PsiWhiteSpace(' ')(540,541)
        PsiElement(RequirementsTokenType.OR)('or')(541,543)
        PsiWhiteSpace(' ')(543,544)
        MarkerAndImpl(MARKER_AND)(544,556)
          MarkerExprImpl(MARKER_EXPR)(544,556)
            MarkerVarImpl(MARKER_VAR)(544,551)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(544,551)
            MarkerOpImpl(MARKER_OP)(551,553)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(551,553)
            MarkerVarImpl(MARKER_VAR)(553,556)
              PythonStrImpl(PYTHON_STR)(553,556)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(553,554)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('c')(554,555)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(555,556)
  PsiElement(RequirementsTokenType.EOL)('\n')(556,557)
  PsiComment(RequirementsTokenType.COMMENT)('# Overriding precedence -> a and (b or c)')(557,598)
  PsiElement(RequirementsTokenType.EOL)('\n')(598,599)
  NameReqImpl(NAME_REQ)(599,653)
    SimpleNameImpl(SIMPLE_NAME)(599,604)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name9')(599,604)
    QuotedMarkerImpl(QUOTED_MARKER)(604,653)
      PsiElement(RequirementsTokenType.SEMICOLON)(';')(604,605)
      PsiWhiteSpace(' ')(605,606)
      MarkerOrImpl(MARKER_OR)(606,653)
        MarkerAndImpl(MARKER_AND)(606,653)
          MarkerExprImpl(MARKER_EXPR)(606,618)
            MarkerVarImpl(MARKER_VAR)(606,613)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(606,613)
            MarkerOpImpl(MARKER_OP)(613,615)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(613,615)
            MarkerVarImpl(MARKER_VAR)(615,618)
              PythonStrImpl(PYTHON_STR)(615,618)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(615,616)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('a')(616,617)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(617,618)
          PsiWhiteSpace(' ')(618,619)
          PsiElement(RequirementsTokenType.AND)('and')(619,622)
          PsiWhiteSpace(' ')(622,623)
          MarkerExprImpl(MARKER_EXPR)(623,653)
            PsiElement(RequirementsTokenType.LPARENTHESIS)('(')(623,624)
            MarkerOrImpl(MARKER_OR)(624,652)
              MarkerAndImpl(MARKER_AND)(624,636)
                MarkerExprImpl(MARKER_EXPR)(624,636)
                  MarkerVarImpl(MARKER_VAR)(624,631)
                    PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(624,631)
                  MarkerOpImpl(MARKER_OP)(631,633)
                    PsiElement(RequirementsTokenType.VERSION_CMP)('==')(631,633)
                  MarkerVarImpl(MARKER_VAR)(633,636)
                    PythonStrImpl(PYTHON_STR)(633,636)
                      PsiElement(RequirementsTokenType.SQUOTE)(''')(633,634)
                      PsiElement(RequirementsTokenType.PYTHON_STR_C)('b')(634,635)
                      PsiElement(RequirementsTokenType.SQUOTE)(''')(635,636)
              PsiWhiteSpace(' ')(636,637)
              PsiElement(RequirementsTokenType.OR)('or')(637,639)
              PsiWhiteSpace(' ')(639,640)
              MarkerAndImpl(MARKER_AND)(640,652)
                MarkerExprImpl(MARKER_EXPR)(640,652)
                  MarkerVarImpl(MARKER_VAR)(640,647)
                    PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(640,647)
                  MarkerOpImpl(MARKER_OP)(647,649)
                    PsiElement(RequirementsTokenType.VERSION_CMP)('==')(647,649)
                  MarkerVarImpl(MARKER_VAR)(649,652)
                    PythonStrImpl(PYTHON_STR)(649,652)
                      PsiElement(RequirementsTokenType.SQUOTE)(''')(649,650)
                      PsiElement(RequirementsTokenType.PYTHON_STR_C)('c')(650,651)
                      PsiElement(RequirementsTokenType.SQUOTE)(''')(651,652)
            PsiElement(RequirementsTokenType.RPARENTHESIS)(')')(652,653)
  PsiElement(RequirementsTokenType.EOL)('\n')(653,654)
  PsiComment(RequirementsTokenType.COMMENT)('# should parse as a or (b and c)')(654,686)
  PsiElement(RequirementsTokenType.EOL)('\n')(686,687)
  NameReqImpl(NAME_REQ)(687,740)
    SimpleNameImpl(SIMPLE_NAME)(687,693)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name10')(687,693)
    QuotedMarkerImpl(QUOTED_MARKER)(693,740)
      PsiElement(RequirementsTokenType.SEMICOLON)(';')(693,694)
      PsiWhiteSpace(' ')(694,695)
      MarkerOrImpl(MARKER_OR)(695,740)
        MarkerAndImpl(MARKER_AND)(695,707)
          MarkerExprImpl(MARKER_EXPR)(695,707)
            MarkerVarImpl(MARKER_VAR)(695,702)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(695,702)
            MarkerOpImpl(MARKER_OP)(702,704)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(702,704)
            MarkerVarImpl(MARKER_VAR)(704,707)
              PythonStrImpl(PYTHON_STR)(704,707)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(704,705)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('a')(705,706)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(706,707)
        PsiWhiteSpace(' ')(707,708)
        PsiElement(RequirementsTokenType.OR)('or')(708,710)
        PsiWhiteSpace(' ')(710,711)
        MarkerAndImpl(MARKER_AND)(711,740)
          MarkerExprImpl(MARKER_EXPR)(711,723)
            MarkerVarImpl(MARKER_VAR)(711,718)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(711,718)
            MarkerOpImpl(MARKER_OP)(718,720)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(718,720)
            MarkerVarImpl(MARKER_VAR)(720,723)
              PythonStrImpl(PYTHON_STR)(720,723)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(720,721)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('b')(721,722)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(722,723)
          PsiWhiteSpace(' ')(723,724)
          PsiElement(RequirementsTokenType.AND)('and')(724,727)
          PsiWhiteSpace(' ')(727,728)
          MarkerExprImpl(MARKER_EXPR)(728,740)
            MarkerVarImpl(MARKER_VAR)(728,735)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(728,735)
            MarkerOpImpl(MARKER_OP)(735,737)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(735,737)
            MarkerVarImpl(MARKER_VAR)(737,740)
              PythonStrImpl(PYTHON_STR)(737,740)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(737,738)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('c')(738,739)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(739,740)
  PsiElement(RequirementsTokenType.EOL)('\n')(740,741)
  PsiComment(RequirementsTokenType.COMMENT)('# Overriding precedence -> (a or b) and c')(741,782)
  PsiElement(RequirementsTokenType.EOL)('\n')(782,783)
  NameReqImpl(NAME_REQ)(783,838)
    SimpleNameImpl(SIMPLE_NAME)(783,789)
      PsiElement(RequirementsTokenType.IDENTIFIER)('name11')(783,789)
    QuotedMarkerImpl(QUOTED_MARKER)(789,838)
      PsiElement(RequirementsTokenType.SEMICOLON)(';')(789,790)
      PsiWhiteSpace(' ')(790,791)
      MarkerOrImpl(MARKER_OR)(791,838)
        MarkerAndImpl(MARKER_AND)(791,838)
          MarkerExprImpl(MARKER_EXPR)(791,821)
            PsiElement(RequirementsTokenType.LPARENTHESIS)('(')(791,792)
            MarkerOrImpl(MARKER_OR)(792,820)
              MarkerAndImpl(MARKER_AND)(792,804)
                MarkerExprImpl(MARKER_EXPR)(792,804)
                  MarkerVarImpl(MARKER_VAR)(792,799)
                    PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(792,799)
                  MarkerOpImpl(MARKER_OP)(799,801)
                    PsiElement(RequirementsTokenType.VERSION_CMP)('==')(799,801)
                  MarkerVarImpl(MARKER_VAR)(801,804)
                    PythonStrImpl(PYTHON_STR)(801,804)
                      PsiElement(RequirementsTokenType.SQUOTE)(''')(801,802)
                      PsiElement(RequirementsTokenType.PYTHON_STR_C)('a')(802,803)
                      PsiElement(RequirementsTokenType.SQUOTE)(''')(803,804)
              PsiWhiteSpace(' ')(804,805)
              PsiElement(RequirementsTokenType.OR)('or')(805,807)
              PsiWhiteSpace(' ')(807,808)
              MarkerAndImpl(MARKER_AND)(808,820)
                MarkerExprImpl(MARKER_EXPR)(808,820)
                  MarkerVarImpl(MARKER_VAR)(808,815)
                    PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(808,815)
                  MarkerOpImpl(MARKER_OP)(815,817)
                    PsiElement(RequirementsTokenType.VERSION_CMP)('==')(815,817)
                  MarkerVarImpl(MARKER_VAR)(817,820)
                    PythonStrImpl(PYTHON_STR)(817,820)
                      PsiElement(RequirementsTokenType.SQUOTE)(''')(817,818)
                      PsiElement(RequirementsTokenType.PYTHON_STR_C)('b')(818,819)
                      PsiElement(RequirementsTokenType.SQUOTE)(''')(819,820)
            PsiElement(RequirementsTokenType.RPARENTHESIS)(')')(820,821)
          PsiWhiteSpace(' ')(821,822)
          PsiElement(RequirementsTokenType.AND)('and')(822,825)
          PsiWhiteSpace(' ')(825,826)
          MarkerExprImpl(MARKER_EXPR)(826,838)
            MarkerVarImpl(MARKER_VAR)(826,833)
              PsiElement(RequirementsTokenType.ENV_VAR)('os_name')(826,833)
            MarkerOpImpl(MARKER_OP)(833,835)
              PsiElement(RequirementsTokenType.VERSION_CMP)('==')(833,835)
            MarkerVarImpl(MARKER_VAR)(835,838)
              PythonStrImpl(PYTHON_STR)(835,838)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(835,836)
                PsiElement(RequirementsTokenType.PYTHON_STR_C)('c')(836,837)
                PsiElement(RequirementsTokenType.SQUOTE)(''')(837,838)
  PsiComment(RequirementsTokenType.COMMENT)('# comment')(838,847)
  PsiElement(RequirementsTokenType.EOL)('\n')(847,848)
  PsiElement(RequirementsTokenType.EOL)('\n')(848,849)
  NameReqImpl(NAME_REQ)(849,850)
    SimpleNameImpl(SIMPLE_NAME)(849,850)
      PsiElement(RequirementsTokenType.IDENTIFIER)('A')(849,850)
  PsiComment(RequirementsTokenType.COMMENT)(' # comment')(850,860)