Что нового

Обработка булевых выражений

Microteam

Осваивающий
Сообщения
74
Репутация
34
Здравствуйте :smile:. Вот встал перед проблемой, не знаю как реализовать алгоритм обработки булевых выражений. Допустим, есть код:
Код:
If $a > b AND ($c < b OR $c = 0) Then
...
EndIf

После токена If, у нас идёт булево выражение, каким образом его надо обработать, чтобы в конце концов получилось либо true, либо false.

В принципе, если на словах, то понятно. А вот как работает, таковой алгоритм? Может кто нибудь объяснить? Заранее спасибо. ;D
 

ildar

Осваивающий
Сообщения
252
Репутация
29
Что именно не понятно?
Код:
If $a > b AND ($c < b OR $c = 0) Then
$var = True
Else
$var = False
EndIf
 
Автор
Microteam

Microteam

Осваивающий
Сообщения
74
Репутация
34
Мне не понятен алгоритм разбора логического выражения, того что идёт после If. А именно:
Код:
$a > b AND ($c < b OR $c = 0)
Я пишу свой интерпретатор. Чтобы, всё заработало мне нужна одна часть. Это парсинг булевых выражений.
 

ildar

Осваивающий
Сообщения
252
Репутация
29
Опираясь на схемотехнику я бы сделал последовательность такую
Код:
($c < b) OR ($c = 0) AND ($a > b)
Если условие в скобке соблюдается, то оно дает 1.
 
Верх