package Ġcom . github . o ow ek y ala . ij cc . ide . ins pe ctions Ċ Ċ import Ġcom . github . o ow ek y ala . ij cc . ide . ins pe ctions . B nf String Can Never Be Matched Inspection . Companion . problem Description Ċ Ċ /** Ċ Ġ* Ġ@ author ĠCl Ã©ment ĠF o urn ier Ċ Ġ* Ġ@ since Ġ 1 . 1 Ċ Ġ*/ Ċ class ĠB nf String Can Never Be Matched Inspection Test Ġ: ĠJ cc Inspection TestBase ( B nf String Can Never Be Matched Inspection ()) Ġ{ ĊĊĊĠĠĠ Ġprivate Ġfun ĠString . warning ( missed Match Name : ĠString ?, Ġreal Match Name : ĠString ?, Ġliteral Text : ĠString Ġ= Ġthis ) Ġ= ĊĠĠĠĠĠĠĠ Ġwarning Annot ( this , Ġproblem Description ( literal Text , Ġmissed Match Name , Ġreal Match Name )) ĊĊĠĠĠ Ġfun Ġ` test Ġneg `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊĠĠĠĠĠĠĠĠĠĠ ĠTOKEN : Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< FOO : Ġ" foo "> ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ< BAR : Ġ" bar " Ġ| Ġ" foo "> ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠ Ġvoid ĠFoo (): ĊĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġ` test Ġsynthetic Ġneg `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊĠĠĠĠĠĠĠĠĠĠ Ġvoid ĠFoo (): ĊĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" foo " Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġ` test Ġpos `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊĠĠĠĠĠĠĠĠĠĠ ĠTOKEN : Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< BAR : Ġ" bar " Ġ| Ġ" foo "> ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ< FOO : Ġ" foo "> ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠ Ġvoid ĠFoo (): ĊĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ " \" foo \"" . warning (" FOO ", Ġ" BAR ")} ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĊĠĠĠ Ġfun Ġ` test Ġnon - literal Ġoverride Ġneg `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊĠĠĠĠĠĠĠĠĠĠ ĠTOKEN : Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< Ġ" foo " Ġ> Ġ// Ġhas Ġhigher Ġprecedence ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ< ĠNC NAME : Ġ( [" a " -" z "]) + Ġ> ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠ Ġvoid ĠFoo (): ĊĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġ` test Ġnon - literal Ġoverride Ġpos `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊĠĠĠĠĠĠĠĠĠĠ ĠTOKEN : Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< ĠNC NAME : Ġ( [" a " -" z "]) + Ġ> ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠ Ġvoid ĠFoo (): ĊĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ " \" foo \"" . warning ( null , Ġ" NC NAME ")} ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĊĠĠĠ Ġfun Ġ` test Ġin Ġdifferent Ġstate Ġneg `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊĠĠĠĠĠĠĠĠĠĠ Ġ< A > ĠTOKEN : Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< NC NAME : Ġ( [" a " -" z "]) + Ġ> ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠ Ġvoid ĠFoo (): ĊĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĊĠĠĠ Ġfun Ġ` test Ġin Ġexplicit Ġdefault Ġstate Ġpos `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊĠĠĠĠĠĠĠĠĠĠ Ġ< DEFAULT > ĠTOKEN : Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< NC NAME : Ġ( [" a " -" z "]) + Ġ> ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠ Ġvoid ĠFoo (): ĊĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ " \" foo \"" . warning ( null , Ġ" NC NAME ")} ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġ` test Ġsynthetic Ġhas Ġprecedence Ġneg `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊ ĊĠĠĠĠĠĠĠĠĠĠ Ġvoid ĠFoo (): ĊĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠ ĠTOKEN : Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< ĠNC NAME : Ġ( [" a " -" z "]) + Ġ> ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġ` test Ġreference Ġcount Ġas Ġstring Ġtokens Ġpos `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠTOKEN : Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< foo :< b oo >> ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġvoid ĠFoo (): ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ "< b oo Ġ: Ġ\" foo \"> ". warning ( literal Text Ġ= Ġ"\" foo \"", Ġmissed Match Name Ġ= Ġ" b oo ", Ġreal Match Name Ġ= Ġ" foo ")} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< foo > Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġ` test ĠFP Ġwith Ġprivate Ġregexp , Ġissue Ġ# 1 7 `() Ġ= Ġcheck By Text ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠ Ġ$ Dummy Header ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< DEFAULT > ĠTOKEN Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< #_ FRAGMENT : ĠĠ Ġ[" 0 " -" 9 "] Ġ> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ< QUOT ED : ĠĠĠĠĠĠĠ Ġ"\"" Ġ( Ġ< _ FRAGMENT > Ġ)* Ġ"\" "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ< ZERO : Ġ" 0 " Ġ> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġvoid ĠRule () Ġ: Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< QUOT ED > Ġ| Ġ< ZERO > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĊĠĠĠ Ġ/* Ċ TODO ĊĠĠĠ ĠPARSER _ END ( Foo ) ĊĠĠĠĠĠ ĠTOKEN : Ġ{ ĊĠĠĠĠĠĠĠ Ġ< foo :< b oo >> ĊĠĠĠĠĠ Ġ| Ġ< b oo :" str "> ĊĠĠĠĠĠ Ġ// ĠJava CC Ġsays Ġ" str " Ġcannot Ġbe Ġmatched Ġas Ġ< b oo >, ĊĠĠĠĠĠ Ġ// Ġwill Ġalways Ġbe Ġmatched Ġas Ġ< foo >, Ġthis Ġis Ġa Ġwarning Ġthough ĊĠĠ Ġ} ĊĊĠĠĠĠ Ġ*/ Ċ Ċ } Ċ