В общем, победил я парсер команд... Даже двумя способами. Первый, используя пробел в качестве разделителя создаем массив со списком всех команд, которые есть в языке программирования. На и затем последовательно сравниваем первое слово введенной команды с каждым значением из списка. Если буквы не совпали - счетчик списка команд уменьшить на один, и, если команды еще есть, перейти к первому следующему разделителю и сравнить снова. Иначе команды нет. Плюс такого способа очевиден -100% гарантия нахождения нужного значения в массиве, если оно там есть. С другой стороны, имеем балласт в виде этого самого массива и не самый быстрый способ поиска нужного токена. Второй - просто присвиваем каждой букве значение от 1 до 23 (в латинице же 22 буквы?) и просто вычисляем сумму букв в первом слове (если это не число). Так как 6*23 даст 138, то для всех команд более чем хватит. Сразу получаем токен. Плюсы очевидны - нет массива со списком команд, поиск быстрее, да и считать все буквы нет необходимости - главное получить уникальный токен для конкретной команды. И еще есть возможность использовать команды длинной до 11 символов.... Есть где разгуляться. А вот потом я чуток присел. Для BASIC нужен текстовый буфер, место для переменных - благо искать по имени я уже научился, стек GOSUB, место под счетчики циклов, ух... Короче BASIC пока полежит в сторонке - редактор ассемблера будет написать проще, как мне кажется. Текстовый буфер, область трансляции, область для меток... На вскидку все. От этого и буду плясать. А там посмотрим, как пойдет. Сейчас проблема ввод команды сделать - курсор, новый символ, перемещение по строке, удаление символа ну и все в этом духе. При этом в мыслях сделать редактор а-ля Spectrum-BASIC, то есть внизу экран ввода команды, а сверху набранный листинг. Но вообще в перспективе все-таки хочется нормальный редактор с привычным меню - ассемблирование, запуск, просмотр облака меток ну и все в таком духе. Планов масса - хватило бы терпения )

