Тема 10. Разбор текста

Содержание

  1. База
    1. Источники
    2. test, take и expect
    3. Генерация ошибок
    4. Тестирование
  2. Метод рекурсивного спуска
    1. Разбор вариантов
    2. Рекурсия
  3. JSON
    1. Строки
    2. Числа
    3. Массивы
    4. Объекты

Примеры

zip

Домашнее задание 13. Разбор выражений

  1. Доработайте предыдущее домашнее задание, так что бы выражение строилось по записи вида
    x * (x - 2)*x + 1
  2. В записи выражения могут встречаться:
    • бинарные операции: умножение *, деление /, сложение + и вычитание -;
    • унарный минус -;
    • переменные x, y и z;
    • целочисленные константы в десятичной системе счисления, помещающиеся в 32-битный знаковый целочисленный тип;
    • круглые скобки для явного обозначения приоритета операций;
    • произвольное число пробельных символов в любом месте, не влияющем на однозначность понимания формулы (например, между операцией и переменной, но не внутри констант).
  3. Приоритет операций, начиная с наивысшего
    1. унарный минус;
    2. умножение и деление;
    3. сложение и вычитание.
  4. Разбор выражений рекомендуется производить методом рекурсивного спуска.
    • Алгоритм должен работать за линейное время.
    • Лексический анализ (токенизация) не требуется.