создать слово
(presently:
которое является одновременно и комментарием и отладочным словом
:
(presently: ( -- )
и работает так
открывает собою скобку как в комментариианализирует количество параметров в скобках и сопоставляет с реальным положением дел на стеке
ПРИМЕР
(presently: а в с -1 ) если на стеке лежит 4 значения, верхнее из которых -1 - ведёт себя как комментарий, который заканчивается скобкой (ничего не делает)
если же число параметров не совпадает или если правый параметр не равен -1 -
выдаёт предупреждение или останавливает исполнение (в зависимости от флага)
Также пропускает строки в кавычках, чтобы можно было
(presently: а в с " флаг = " -1 )и слово по-прежнему насчитывало в скобках 4 параметра, а программист мог читать более содержательные комментарии
если параметр задан символическим значением, то просто учитывает его в количество, если числом - сравнивает
(presently: 1 2 3 4 )должно выдать предупреждение, если реальное положение дел на стеке
( 1 2 2 4 )а вот
(presently: 1 2 ad 4 ) удовлетворится числом параметров и тем, что 1 2 и 4 совпали ( ad ни с чем сравниваться не будет)
также слово должно давать возможность отключить его, если все хорошо и нужна компиляция без засорения кода
Использование:
разумеется, к слову на стеке может приходить разное число параметров (в разных ветвлениях) , поэтому использование слова ограничено здравым смыслом, но, думаю, удобно: просто пишем комментарий, который помогает нам читать исходник, он вдруг по ходу оказывается ещё и тестирующим словом. У меня есть несколько вариантов слов с
похожим действием, но каждое для своего форта. Интересно - как достичь универсального решения.
Разумеется, идею можно развивать... (presently... 1 2 3 4 ) может значить : не менее 4, из которых последние 1 2 3 4
(presently... а а 3 а ) может значить : не менее 4, из которых предпоследняя 3 но это уже сложнее
