, , , , lex/yacc, .
-, , , , , , python. . , , :
"OR ( AND ( maria sharapova ) tennis )"
(AND/OR) /. ( DFS ) .
(AND/OR) (, maria, tennis). / . , ).
.
, .
.
1. "OR" .
+ +
+ +
+ OR +
+ + + + + + + + +
2. (, .
3. "AND" . :
+ +
+ AND +
+ OR +
+ + + + + + + + +
4. (.
5. "maria" .
6. "" . :
+ sharapova +
+ maria +
+ AND +
+ OR +
+ + + + + + + + +
7. ). . , . , . "" "" "". , "maria" 3 doc: [1, 2, 3]. "" 5 : [2, 3, 8, 9, 10]. "" [2,3]
, . : .
+ + + +
+ + + +
+ + + +
+ OR + + [2,3] +
+ + + + + + + + + + + + + + +
8. .
+ + + +
+ + + +
+ tennis + + +
+ OR + + [2,3] +
+ + + + + + + + + + + + + + +
9. ). , , "". , "", , : [3, 5, 7]. "OR", , , doc: [2,3,5,7].
. . doc len(word) .
, (1- ), (2- ), ( ) (4- ).