Сделайте поддержку обоих синтаксисов: 0b и ^b, это не трудно
как с круглыми скобками собираетесь разрешать конфликт определения адресаций и арифметических выражений?
(a-b)/2(R1) вот такое как распарсить? А <a-b>/2(R1) (или <<a-b>/2>(R1) - более наглядно) - обычная индексная адресация. Правда не стоит копировать MACRO-11 и всё таки сделать скобки не декоративными, а реально определяющими приоритет операций.
Да и (R1) - это получается арифметическое выражение в скобках, относительная адресация 67, где R1 - имя метки, а не регистр. Или нужно делать сильно навороченный парсер с исключениями, который в результате превратится в монстра и всё равно не все исключения будет ловить.
Ещё сделайте защиту от рекурсивных включений, простой список инклюд, и если новая добавляемая инклюда уже есть в списке - то её игнорировать.
Вот для этого нужно сделать первичный проход со сбором всех меток, синтаксический разбор операндов и определение адресаций в командах, а потом уже вторичный проход, где будут вычисляться арифметические выражения и подставляться значения меток в ветвления. Я как раз хочу сделать такую штуку в своём BKTurbo, но кажется проще переписать его с нуля, чем изменить.
Не, чтобы можно было скомпилировать макровский исходник хотя бы с чуть меньшими усилиями. Добавить макровский синтаксис задания систем счисления чисел, способ записи строк в .ascii - это необходимый минимум.





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
