> алгоритм разбора строки вида
> (a AND b) OR (c AND (NOT d OR e))
Для архиву (прислал один умный коллега):
Само сложное - это распознавать сами tokens - т.е. что это
такое - константа, переменная или оператор или скобка.
1. Считываешь tokenы и помещаешь их в стэк. так читаешь пока
не дойдешь либо до закрытой скобки или до конца.
2. на закрытой скобке снимаешь 3 элемента из стэка и
интерпретируешь их как второй операнд, оператор, первый
операнд. вычисляешь результат.
3. снимаешь из стэка еще один элемент. если это скобка -
пишешь в стэк вычисленный элемент. если это оператор -
снимаешь еще один элемент, интерпретируешь ... (см. 2)
4. если в 1. наткнулся на конец строки - снимаешь из стэка
остаток и вычисляешь.
С уважением, Андрей Новиков
------------------------------------------------------------
Всероссийский Клуб Вебмастеров http://www.webclub.ru/
По официальным вопросам пишите mailto:webclub@xxxxxxxxxx
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.