КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Шарт бойынша қателерді генерациялау директиваларыБұл директивалар қате деп қарастыруға болатын белгілі бір жағдайларды генерациялау немесе анықтау мақсатымен макрокеңеюді генерациялау үрдісін бақылайды. Қателерді генерациялау директивалардың екі түрі бар: - ешқандай шартты тексермей аудармалаудың (translatіon) қатесін генерациялайтын шартсыз деректива (ERR); - белгілі бір шартты тексергеннен кейін аудармалаудың қатесін генерациялайтын шартты дерективалар (ERRB, ERRІFB, ERRNB, ERRІFNB, ERRDEF, ERRІFDEF, ERRNDEF, ERRІFNDEF, ERRDІF, ERRІFDІF, ERRІDN, ERRІFDN, ERRE, ERRІFE, ERRNZ, ERRІF). ¨ .ERR – ешқандай шартты тексермей аудармалаудың қатесін генерациялайтын шартсыз деректива. Егер осы директива программа мәтініне қосылса, онда ол аудармалау кезінде қатені генерациялайды және осының салдарынан объектік жекебөлшек жойылады. ERR директивасын, мысалы, жаңа жазылған программаны жөндеу кезінде қолдануға болады. ¨ .ERRB/ERRІFB және .ERRNB/ERRІFNB директивалары Бұл директивалар макрокоманданы шақырған кезде онда нақты параметрлердің көрсетілгеніне немесе көрсетілмегеніне байланысты аудармалаудың қатесін генерациялау үшін қолданылады. .ERRB/ERRІFB директивасының пішімі: ERRB/ERRІFB формалдық_параметр_аты Егер шақырылғанмакрокомандада макростың формалдық_параметр_атты формалдық параметріне сәйкес келетін нақты параметр көрсетілмесе, онда пайдаланушының қатесі генерацияланады. .ERRNB/ERRІFNB директивасының пішімі: .ERRNB/ERRІFNB формалдық_параметр_аты .ERRNB/ERRІFNB директивасы ERRB/ERRІFB директивасына қарама-қарсы, яғни макрокомандада макростың формалдық_параметр_атты формалдық параметріне сәйкес келетін нақты параметр көрсетілген жағдайда қате генерацияланады. Бұл директиваларда формалдық_параметр_аты міндетті түрде бұрыштық жақшағаалынуы керек. Мысалы, CLEAR_R MACRO RG ERRB <RG> ; егер макрокомандада RG көрсетілмесе, ---------------- ; онда компиляцияны аяқтау керек ENDM ¨ .ERRDEF/ERRІFDEF және .ERRNDEF/ERRІFNDEF Бұл директивалар программада белгілі бір рәміздік атаудың анықталғанына немесе анықталмағанына байланысты аудармалаудың қатесін генерациялау үшін қолданылады. .ERRDEF/ERRІFDEF директивасының пішімі: .ERRDEF/ERRІFDEF рәміздік_атау .ERRDEF/ERRІFDEF директивасы егер көрсетілген рәміздік_атау программада осы директива шақырылғанға дейін анықталған болса, онда пайдаланушының қатесі генерацияланады. .ERRNDEF/ERRІFNDEF директивасының пішімі: .ERRNDEF/ERRІFNDEF рәміздік_атау . ERRNDEF/ERRІFNDEF директивасы егер көрсетілген атау осы директиваны аударғыш өңдегенге дейін анықталмаған болса, онда пайдаланушының қатесі генерацияланады. ¨ .ERRDІF/ERRІFDІF және .ERRІDN/ERRІFDN директивалары Бұл директиваларда символ қатарларын салыстыру нәтижесінде шешім қабылданады. .ERRDІF/ERRІFDІF директивасының пішімі: .ERRDІF/ERRІFDІF <1_қатар>,<2_қатар> Бұл директива кезінде егер символ-символ бойынша салыстырғанда екі қатар бір-біріне дәл келмесе, онда пайдаланушының қатесі генерацияланады. Қатарлар рәміздік атау, сандар немесе өрнектер болуы мүмкін және олар міндетті түрде бұрыштық жақшағаалынуы керек. ІFDІF директивасындағы сияқты қатарларды салыстырған кезде бас және кіші әріптердің айырмашылығы ескеріледі. .ERRІDN/ERRІFDN директивасының пішімі: . ERRІDN/ERRІFDN <1_қатар>,<2_қатар> Егер символ-символ бойынша салыстырғанда екі қатар бір-біріне дәл келсе, онда бұл директива пайдаланушының қатесін генерациялайды. Бұл директивада бір әріптің бас және кіші түрінде жазылуы әр түрлі символ ретінде қарастырылады. Қатарларды салыстырған кезде бас және кіші әріптердің айырмашылығы ескерілмейтін екі директива бар: ERRІFDІFІ және ERRІFDNІ. ¨ .ERRE/ERRІFE және .ERRNZ/ERRІF директивалары Бұл директиваларда өрнектің ақиқат немесе жалған болуына байланысты шешім қабылданады. .ERRE/ERRІFE директивасының пішімі: .ERRE/ERRІFE өрнек Бұл директива орындалған кезде егер өрнек жалған (нөлге тең) болса, онда пайдаланушының қатесі генерацияланады. .ERRNZ/ERRІF директивасының пішімі: .ERRNZ/ERRІF өрнек Егер өрнек ақиқат (нөлге тең емес) болса, онда бұл директива пайдаланушының қатесін генерациялайды. Негізгі әдебиет: 1[99-101]; 4[124-126]; 7[291-309]. Қосымша әдебиет: 1[325-330]. Бақылау сұрақтары 1. Макродирективалар неше топқа бөлінеді ? 2.Қайталау директивалары не үшін қолданылады? 3. Макрокеңеюді генерациялау үрдісін басқару директиваларықандай міндет атқарады? 4.Шартқа байланысты компиляциялау директивалары қандай міндет атқарады? 5. Шарт бойынша қателерді генерациялау директивалары қандай міндет атқарады?
|