Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] OFFTOPIC: logical string parsing



> алгоритм разбора строки вида
> (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 ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"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.