почему мой макрос-степпер не имеет "следующего срока"? - PullRequest
1 голос
/ 02 мая 2020

может быть избыточным с помощью: Макропереступника в DrRacket

, но мой вопрос здесь заключается в том, «почему у меня нет кнопок« Предыдущий термин »и« Следующий термин ». Я замечаю там: http://www.ccs.neu.edu/home/ryanc/macro-stepper/macro-stepper-Z-H-1.html#node_chap_1 скажем:

Когда ваша программа состоит из нескольких определений или выражений верхнего уровня, макрос-степпер также предоставляет «Предыдущий термин» и «Следующий» В терминах вашей программы кнопки «*» обозначают go вверх и вниз.

, на мой взгляд, верхний уровень означает «в модуле», но что такое «множественные определения верхнего уровня» означает, может ли кто-нибудь дать мне пример для объяснения этого? Я попытался написать два макроса правила определения в разных и экспортировать их, и видел, как встречаются два макроса в макросе-степере, но там все еще нет «следующего термина».

есть ли еще какие-нибудь статьи о том, как его использовать? Это потому, что эта статья устарела и в текущем блокноте нет кнопки «предыдущий термин» и «следующий термин»?

Версия DrRacket: 7,6 дюйма windows10* 101 8 *

Я нахожу это:

https://github.com/racket/macro-debugger/blob/13ee731da98fbe14a0d486d614a5c46f26ccd933/macro-debugger/macro-debugger/macro-debugger.scrbl#L258

https://github.com/racket/macro-debugger/blob/master/macro-debugger/macro-debugger/view/stepper.rkt#L84

но я до сих пор не знаю что означает «несколько определений верхнего уровня» ..

Я пытаюсь создать два файла, и источник таков: https://imgur.com/qMfaI6t https://imgur.com/FbHzDUl

и когда я начинаю макрос-степпер, это выглядит так:

https://imgur.com/FuoSvlh там только четыре кнопки, а не «предыдущий термин» и «следующий термин». или я неправильно понимаю «множественные определения верхнего уровня»?

обновление: я нахожу это:

Если макрос степпер показывает несколько расширений, то он также предоставляет «Предыдущий термин» и кнопки «Следующий термин», чтобы go вверх и вниз в списке расширений. Горизонтальные линии отделяют текущее расширение от остальных.

1 Ответ

2 голосов
/ 04 мая 2020

Я не уверен, что все еще есть способ получить макро-шаговый несколько терминов, используя кнопку «Macro Stepper» в DrRacket, но вы также можете использовать macro-stepper-repl из библиотеки macro-debugger/stepper.

Примечание: в последних версиях Racket (вплоть до Racket 7.7 включительно) macro-stepper-repl часто будет отображать «термины», которые выглядят как мусор, начиная с символов #~ --- так печатает Racket » скомпилированные выражения ". Они не должны отображаться, но в коде есть ошибка, которая пытается их отфильтровать. Вы можете удалить эти термины из макроса степпера, используя «Удалить выбранный термин» из меню «Степпера».

...