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