каков эффект от опции dsource of ocamlc? - PullRequest
0 голосов
/ 14 ноября 2018

Я не знаю, как влияет опция dsource на ocamlc. опция -h говорит мне, что она недокументирована

Я знаю использование dparsetree и dtypedtree, она может показать мне ast

Я пытаюсь использовать опцию dsource для файла test.ml. Кажется, он возвращает мне исходный код без нулевой строки и комментария, а в нижней части говорит мне об обработке исходного кода.

Это эффект опции dsource? Спасибо!

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

-dsource Pretty-печатает AST с использованием синтаксиса OCaml после удаления синтаксических расширений, таких как camlp4 и ppx.

В основном используется для отладки ppxs. Содержимое точно такое же, как -dparsetree (за исключением исходного кода вместо AST).

0 голосов
/ 14 ноября 2018

Я потратил несколько минут на поиск источников компилятора OCaml, и вот что я нашел.

Флаг командной строки -dsource устанавливает для поля dump_source значение true в модуле Clflags.

Этот параметр в свою очередь заставляет компилятор делать что-то подобное в driver/compile.ml при компиляции файла реализации (.ml).

if !Clflags.dump_source then
    fprintf ppf "%a@." Pprintast.structure ast

Другими словами, он красиво печатает часть кодаAST в форме, которая выглядит как исходный код.

Вещи похожи на файл интерфейса (.mli), за исключением того, что он печатает подпись, а не код.

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

Я предлагаю вам начать смотреть на код в driver/compile.ml, если вы хотите узнать больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...