Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вычисление выражений с упором на битовые операции 
:(
    Опции темы
AndryG
Дата 30.9.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 10.9.2009

Репутация: нет
Всего: нет



Доброго.
На сегодняшний день в калькуляторе реализован классический набор функций: арифметика, битовые операции, сравнения.
Арифметика целочисленная (два деления mod и div)
Логические операции возвращают (1|0)
Промежуточная форма записи - Обратная Польская Нотация.

БНФ на текущий момент:
Код

<expr>    ::= <expr_3>

<expr_3>  ::= <expr_4> { <oper_3> <expr_4>}
<oper_3>  :=  "=="| "!="| "<" | "<=" | ">" | ">="

<expr_4>  ::= <expr_5> { <oper_4> <expr_5>}
<oper_4>  ::= "+" | "-" | "||" | "|" | "xor" |"^"

<expr_5>  ::= <expr_6> { <oper_5> <expr_6>} 
<oper_5>  ::= "*" | "/" | "%" | "&&"| "&" | ">>" | "<<"

<expr_6>  ::= <operand>   

<operand> ::= <oper_u> <operand> | "(" <expr> ")" | <number>
<oper_u>  ::= "+" | "-" | "!" | "~"
<number>  ::= <digit> { <digit> }
<digit>   ::= "0" | .. | "9"



Теперь хочу добавить лаконичности для проверки бит.
Запись "{1,3..5}" -- эквивалент для "(1<<1 | 1<<3 | 1<<4 | 1<<5)"

Вопрос: куда и как этот синтаксис впихнуть в существующую грамматику?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0360 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.