вторник, 28 июня 2016 г.

МАКРО-URQ

Всё думал, как будет лучше делать разноцветный текст в URQ, ведь для того чтобы поменять цвет и не потерять установленный ранее надо:
  1. Сохранить цвет текста во временную переменную
  2. Установить новый цвет текста
  3. Вывести текст
  4. Вернуть сохранённый цвет
И так каждый раз. Может быть это всё можно как-то упростить средствами самого URQ, но я не знаю как. Для удобства, я прикрутил внешний макропроцессор M4 к обработке URQ-файла, теперь, вот как выглядит вывод цветного текста: 
COLTEXT(зелёный текст, 0xFF009900)
 А теперь, то что получилось на выходе, после обработки препроцессором:
t1=textcolor
textcolor=0xFF009900
pln зелёный текст
textcolor=t1
Текст макроса:
define(COLTEXT,`t1=textcolor
textcolor=$2
pln $1
textcolor=t1')
В результате получилось разворачивание одной строчки в четыре, плюс с помощью макросов устанавливаются константы цветов, цветные ссылки, мини-параграфы с описаниями и многое другое. Если заинтересовались, пишите в комментариях!

2 комментария:

  1. Можно было сделать и средствами урк, да. Просто в одной локации написать всё, что надо поменять, а потом вызывать её через proc с параметрами. Было бы тоже самое без всяких препроцессоров.

    ОтветитьУдалить
    Ответы
    1. Спасибо за ответ, Ajenta! Насколько я понял, чтобы вызвать средствами proc, надо сначала задать все параметры, например:
      p1=10
      p2=20
      proc ppp
      При следующем вызове надо будет снова указывать эти глобальные переменные, то есть писать каждый раз три-четыре строчи вместо одной.

      Удалить