В 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.