Свинка Синтаксические конфликты - PullRequest
3 голосов
/ 14 марта 2011

Я изучаю язык Mumps, в то время как анализ кода получил сомнение, которое

в чем разница между B %% против %% B.

Но ссылка на синтаксис я видел только%Формат% B, но в коде они использовали как B %%

Bhas

Ответы [ 3 ]

4 голосов
/ 13 июня 2011
Префикс

% является соглашением.Это ничего не значит для интерпретатора M (UMPS), но имеет значение для программиста.Часто% -ные переменные подразумевают «временные» или временные переменные, которые не должны использоваться ни для чего, кроме строки или двух кода.например,

for %ln=1:1:maxNum do ImportantThing(%ln)  ; loop over lines 1 through maxNum

В обычном коде вы объявляете (новую) переменную и используете ее правильно, но такие вещи встречаются часто при введении кода "плагина", такого как "после бронирования приема у пациента"программный хук для некоторых приложений EHR.

3 голосов
/ 14 апреля 2011

Допускается добавление или окончание имени переменной с помощью «%%». Я не осознаю особой важности использования «%» в именах переменных MUMPS, но это обычное «соглашение». Рассуждая здесь, но я отмечаю, что $, ^, & all имеют особое значение, когда часть имен переменных MUMPS и "%" расположены рядом со всеми тремя как в значении ascii, так и в позиции клавиатуры.

1 голос
/ 20 августа 2013

Программы, глобальные переменные

В стандартных системах MUMPS есть MGR UCI, где находятся системные и служебные программы.Если имя программы начинается с «%», оно также доступно из других UCI, имена служебных программ начинаются с «%», например, «% STA» (статус задания), «% GE» (глобальное редактирование) и т. Д.на.Только программы в MGR UCI могут начинаться с "%".

Кроме того, глобальные переменные, начинающиеся с "%", которые находятся в MGR UCI, могут быть доступны из других UCI.

Итак, используя "% ", поскольку первый символ программы или глобала является частью системы (или может сказать, языком).

Locals

MUMPS очень старыйКроме того, исходный язык не поддерживает локальные переменные (все подпрограммы и основная программа имеют общее пространство имен).В любом случае, пользовательские программы могут вызывать и другие программы, а также утилиты: DO FUNCT ^% UTILPRG.По соглашению, служебные программы используют имена переменных, начинающиеся с «%», поэтому они не будут конфликтовать с переменными пользовательской программы.

Таким образом, использование «%» в качестве первого символа локальной переменной является всего лишь соглашением,но он используется в служебных программах.

...