SearchQueryParser
1.0.0
SearchQueryParser
est un simple analyseur (et marqueur) de requêtes de moteur de recherche de type Google pour Swift. Il prend une chaîne de recherche et construit son arbre de syntaxe abstraite. Ce package peut être utilisé avec le kit de recherche d'Apple pour mettre en évidence les résultats trouvés.
Forme Backus-Naur (BNF) :
Query = Sweeping-Mute-And-Term, ⧚’?, EOF ;
Sweeping-Mute-And-Term = Mute-And-Term, { ⧚’?, Mute-And-Term }* ;
Mute-And-Term = Or-Term, Or-Term* ;
Or-Term = And-Term, {⧚?, (‘|’ | “OR”), And-Term }* ;
And-Term = Not-Term, {⧚?, (‘&’ | “AND”), Not-Term }* ;
Not-Term = ⧚?, (’!’ | “NOT”), Not-Term | Primary-Term ;
Primary-Term = ⧚?, ’(‘ ⧚?, Mute-And-Term, ⧚? ‘)’ |
⧚?, “‘“ ⧚?, Phrase, ⧚? “‘“ |
⧚?, Prefix-Wildcard-Search-Term |
⧚?, Suffix-Wildcard-Search-Term |
⧚?, Search-Term ;
Phrase = Search-Term, { ⧚, Search-Term }* ;
Prefix-Wildcard-Search-Term = ‘*’, Search-Term ;
Suffix-Wildcard-Search-Term = Search-Term, ‘*’ ;
Search-Term = Letter | Letter, Search-Term ;
Letter = Alpha | Digit | ‘_’ ;
⧚’ = ⧚-(“*” | “!” | “&” | “(“ | “)” | “””)
⧚ = { ? any-character ?-Letter }+ ;
Alpha = ? alpha-character ? ;
Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
import SearchQueryParser
func printQueryAST ( _ query : String ) {
guard let parser = SearchQueryParser ( query ) , let ast = parser . astRoot
else {
print ( " Couldn't parse " )
return
}
print ( " AST: ( ast ) " )
}
printQueryAST ( " foo bar " )
import SearchQueryParser
func highlightSearchQueryMatches ( query : String , in text : NSMutableAttributedString ) {
guard let queryTerms = SearchQueryParser ( query )
else {
print ( " No matches found " )
return
}
let tokensProvider = SearchTextScanner ( text . string )
guard let applicator = SearchQueryApplicator ( searchQueryTerms : queryTerms ,
textTokens : tokensProvider )
else {
print ( " Nothing was marked " )
return
}
applicator . markedRanges . forEach { range in
text . addAttribute ( . backgroundColor , value : NSColor . yellow , range : range )
}
}
let text = NSMutableAttributedString ( string : " Lorem ipsum ... " )
highlightSearchQueryMatches ( query : " foo & bar " , in : text )
https://github.com/SerhiyButz/SearchQueryParser.git
Cliquez sur "Suivant"
Assurez-vous que le champ « Règles » est défini sur quelque chose comme ceci : « Version : jusqu'à la version majeure suivante : 1.3.0 »
Cliquez sur "Suivant" pour terminer
Pour plus d’informations, consultez ici.
Ajoutez ce qui suit à votre Podfile :
platform :osx , '10.12'
target 'YOUR-TARGET' do
use_frameworks!
pod 'SearchQueryParser' , :git => 'https://github.com/SerhiyButz/SearchQueryParser.git'
end
Ensuite, exécutez pod install
.
Ce projet est sous licence MIT.