Часть полного текста документа:Комментарии в Cache Евгений Каратаев Комментарии в Cache есть. Это специальным образом отмеченная программистом последовательность символов, которая не используется компилятором. В них можно писать разные полезные слова, которые останутся и которые потом можно будет прочитать, например ругательства. В комментариях можно писать на любом языке. Это общеизвестные факты. Теперь посмотрим какие именно комментарии поддерживает Cache и какие у них есть особенности. Стандартный однострочный комментарий. Это однострочный комментарий, часть стандарта MUMPS, начинается с символа ; (точка с запятой) и продолжается до конца строки. Может начинаться с любого места за исключением строковой константы, с первого символа строки, и если перед ним стоит команда которая может иметь аргументы но по тексту они опущены, то между командой и комментарием должно быть два или больше пробелов. При компиляции кода в объектный код эти комментарии не попадают. Из несколько необычного можно отметить: Текст комментария в объектный код не попадает. При трансляции MAC Cache вставляет в первую строку INT кода отметку о дате трансляции. Если перед комментарием есть команда, то в байт-код от комментария ничего не попадает, если нет команды или метки, то попадает внутренняя команда байт-кода "пустая операция" В практическом применении комментария не рекомендуется писать комментарий занимающий всю строку, так чтобы перед ним не было команды или метки - при выполнении кода тратится время на выполнение пустой операции. Если комментарий начинается с первого символа строки в макрокоде, то в int коде перед ним будет добавлена втяжка. Так поступает, например, Cache3. Стандартный двойной комментарий Прописывается также как стандартный, но начинается с двух символов точка с запятой (;;). Ведет себя точно так же как стандартный, но строка с комментарием включая команды которые ему предшествуют включается в объектный код. Более того, это включение выполняется наиболее оптимальным для выполнения функции $text образом. В случае если функция запрашивала эту строку, то рантайм обращается именно к объектному коду, и лишь потом ищет строку в исходном коде int. Всю строку кода можно разместить в теле объектного кода если в конце строки ставить два символа ;;. Этот комментарий также входит в стандарт MUMPS. При вставке строки кода в объектный код будет произведено нормирование имен команд в некое внутреннее представление: имена команд например могут оказаться в верхнем регистре. Поэтому не следует ожидать, что в объектном коде будет точное соответствие тому что написал программист. Макрокомментарий Макрокомментарий начинается с символов #; и продолжается до конца строки. Он может начинаться только с начала строки, перед ним не должно быть ни команд и меток, он занимает всю строку. Макрокомментарий удаляется препроцессором, и в int код вообще не попадает. Это очень хорошая замена стандартному комментарию, если его нужно расположить целиком на одной строке. Этим макрокомментарий удобен. В силу отсутствия в стандарте MUMPS препроцессора этот комментарий не входит в стандарт. К особенности макрокомментариев относится то, что транслятор int кода их не видит, поскольку они удаляются препроцессором. ............ |