Разбор строки запроса для построения дерева выражений C ++ - PullRequest
1 голос
/ 17 апреля 2011

Мне удалось найти человека, который задал похожий вопрос, но ответ был для меня недостаточно полным.Я пытаюсь разобрать команду, такую ​​как

QUERY ((((огонь) & (лес)) | ((океан) & (лодка))) & (вода))

проблема заключается в результате в RPN, который я получаю, если использую алгоритм Shunting-Yard.Например, если я наберу:

QUERY (яблоко) & (соус)

результат, который я получу:

яблочное пюре &

Я хочу иметь возможностьсравнить строки, содержащие слово «яблоко», с линиями, в которых есть соус.

хорошо, я хочу иметь возможность искать в моем BST слова для яблока, затем снова для соуса и затем находить все строки текста, где они встречаются вместе.У меня есть настроенные функции, которые возвращают набор с каждой строкой, так что это не проблема.Проблема в том, что RPN немного лучше, чем я начал.Я не могу найти хороший способ разобрать новую «строку», которую я получаю.

Я надеюсь, что проясняю себя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...