/CrazzzyBasic

simple basic interpriter

Primary LanguagePascalGNU General Public License v3.0GPL-3.0

CrazzzyBasic

Simple BASIC interpriter

screen

Введение

Простейший интерпритатор языка BASIC.
Данный поект являеться "чистым" интерпритатором бейсика с нумерованными строками, без какого-либо промежуточного представления.

Поскольку на стримах по его написанию не было особой активности интерпритатор был заброшен на какое-то время, однако, в конечном итоге в один из дней я решил довести проект до MVP. Именно в состоянии вполне рабочего прототипа я выложил этот проект на github.

Как работать с бейсиком?

В классическом бейсике из 80-х каждая строка программы имеет логический номер, обычно программисты нумеровали строки в числе кратные 10, для удобства вставки строк.

По умолчанию бейсик находиться в непосредственном режиме, что позволяет делать какие-то базовые вещи без написания программы, например посчитать выражение "PRINT 10*2".

Для добавления строки в программу надо перед кодом указать номер строки, например так: "10 PRINT "HELLO WORLD"".

Для запуска программы используеться комманда RUN.

Для изменеения строки программы достаточно ввсети ее снова под тем же номером.

Для удаления строки достаточно ввести номер удаляемой строки.

Чтобы понять как с этим работать смотрите хайлайт стрима: https://www.youtube.com/watch?v=Vwb4RhI1Qrw

Интерпритатор написан на языке ObjectPascal в среде Delphi.
В папке "BASIC" лежит скомпилированная версия для Windows(лучшей ОС).
Для любителей Linux можно, немного изменив код, получить версию для кросплатформенной IDE Lazarus/FreePascal. Да, придеться постараться, если вы любитель данной ОС. С другой стороны - если вы истинный любитель GNU и т.д. вы должны переписать это на C + GCC, дабы не ныть о begin/end в паскале.

Поддержанные фичи:

В непосредственном режиме

LOAD "<name>" - загружает программу по имени "<name>.bas"

SAVE "<name>" - сохраняет программу с именем "<name>.bas"

NEW - создать новую программу

LIST - вывести программу на экран. LIST n1-n2 - вывести программу со строчки по номеу n1 по строчку по номер n2

RUN - запустить программу

Команды BASIC

PRINT - печатает на экране. "строка" - вывод строки, 123 - вывод числа. var1 - вывод значения переменной var1. Можно разделять ";" - нет перехода к следующему столбцу. "," - переход к следующему столбцу при выводе.

INPUT - вводит зачения. INPUT "вопрос"; a,b - ввод значений в переменные a и b, через запятую, с кастомным сообщением пользователю. Если не указать строку ссобщения будет выведено " ?"

Ля, лень дальше писать, смотрите примеры. Ну или для желающих - создайте пулл-реквест с дополнением документации в этом файле.