Интерпретатор командной строки
ИКС = В/В + разбор + выполнение
Ввод
Подмена raw_input() (<!>)
Унифицированный интерфейс (~/.inputrc)
- Возможности: история, достраивание, команды редактирования, …
иное: cmd.html, …
Разбор
«Теория»: лексический разбор + синтаксический анализ + выполнение тысячи их (и тут)
- Базовый синтаксис
- Расширенный синтаксис (слова, пробелы, переводы строк и т. п.)
- Нерегулярные выражения (пред/пост-просмотр, нежадные повторители)
Ещё немножко теории: БНФ
- Лексический + синтаксический анализатор
Правила в __doc__, компиляция на лету или порождение .pyg → .py
- Секции правил на примере
Иное: shlex.html, …
Выполнение
В момент разбора vs по окончании?
Д/З
Склонировать недокалькулятор
- Сделать нормальный выход из цикла
Отладить выполнение сценариев (я не пробовал, может, всё и так работает )
Реализовать умножение векторов и двумерных матриц (а не то, что сейчас получается )
- Сделать «красивую» выдачу двумерных матриц (это не так просто, надо вычислять ширину колонки)
Реорганизовать ввод так, чтобы можно было вводить нечто построчно (например, матрицу — по аналогии с предыдущим выводом, или функцию, см. далее)
Реализовать определение и вызов функций (работа с пространствами имён)