В SAS, какие хорошие методы/варианты для улавливания синтаксических ошибок?

В расширенном редакторе раскраска может дать вам подсказку. Однако на мэйнфрейме я не верю, что в редакторе есть что-то, что поможет вам.

Я использую

OPTIONS OBS=0 noreplace;

Параметр obs = 0 указывает, что из входных данных считываются 0 наблюдений Dataset и NOREPLACE указывает SAS не перегружать существующий набор данных SAS одним из то же имя. Если вы создаете новый набор данных, он будет создан со всеми атрибутами, но с 0 наблюдениями. (Обязательно reset параметры, если необходимо, в Options Obs = max replace, если больше не найдено синтаксических ошибок).

Меня интересовали бы любые другие методы. Благодаря

Объяснение о параметрах появилось из здесь.

Ответ 1

Я использую параметр cancel в представлении run. Он проверяет синтаксис шага данных, а затем завершает его, не выполняя его. Это шаг данных, аналог опции noexec в proc sql.

data something;
<stuff here>
run cancel;

Больше деталей в этом SUGI pdf

Ответ 2

Я пишу весь свой код на своем ПК с SAS на своем ПК и улучшенный редактор с цветным кодированием. Затем я использую SAS/CONNECT для его обработки на мэйнфрейме. Если наборы данных находятся на DASD, я использую SAS/CONNECT и Enterprise Guide для непосредственного запуска кода на мэйнфрейме (без JCL!). Если есть лента данных и, следовательно, должен быть пакетным запуском, я использую SAS/CONNECT и SAS ftp, чтобы отправить код в очередь партии мэйнфреймов. Я использую механизм электронной почты SAS для отправки мне по электронной почте моего вывода и моего журнала. Я положил и сэндвич ODS на мой код, чтобы мейнфрейм сгенерировал документ WORD для вывода. Я использую загрузку PROC для загрузки вывода на свой сервер, поэтому я могу открыть его в WORD.

Ответ 3

Этот совет является агностиком языка.

Я бы сказал, что предпочтительным методом для улавливания синтаксических (и логических) ошибок является выполнение тесного чтения (или проверки) вашего собственного кода (который должен улавливать большинство синтаксических ошибок), а затем модульные тесты на небольших наборах данных (который будет ловить любые оставшиеся синтаксические ошибки, а также многие логические ошибки, если ваши тесты хорошо разработаны).

Я согласен с тем, что стоит провести синтаксическую проверку в изоляции, но достаточно хорошо прочитать и понять свой код до того, как будет скомпилирован первый компилятор, чтобы вы знали, что он будет компилировать, - это хороший идеал, к которому нужно стремиться. Стив Макконнелл затрагивает эту идею в Code Complete (см. Стр. 827 второго издания).

P.S. Вы упомянули подсветку синтаксиса в своем исходном посте; есть другие редакторы (такие как VIM), которые будут выполнять подсветку синтаксиса в файлах SAS.