2012-05-01 2 views

ответ

1

просто увидеть этот пост благодаря Pingback от @ powerlljf3

Я хотел бы предложить подход 3-х фаз.

1- написать небольшой парсер, который разделяет строку в значащих токенах (числа и операнды). Так как Операнды - все литеры, а цифры - комбинация 0/1, синтаксический анализатор довольно прост (грамматик LL1), поэтому регулярные выражения могут действительно работать здесь.

2- после создания последовательности токенов и то, что texnically вызывают дерево синтаксического разбора (последовательность токенов и операндов), просто реализует любой операнд с определенной функцией (ссылка на мой блог, работает для нескольких общие операнды булевой алгебры)

3- Наконец, просто начните читать маркеры слева направо и примените функцию, в которой найдены операнды.

Смежные вопросы