<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Greetings,</div>
<div><br>
</div>
<div>I’m interested in learning how DrRacket’s “Check Syntax” feature works.</div>
<div><br>
</div>
<div>As I understand it, the process is (1) perform full macro-expansion on the source code; (2) map elements of the expanded code back to the source code; (3) use that mapping to apply annotations/markup to the source code. The documentation at
<a href="http://docs.racket-lang.org/tools/Check_Syntax.html">http://docs.racket-lang.org/tools/Check_Syntax.html</a> seems to cover step (3), but I’m struggling to understand how (2) works.</div>
<div><br>
</div>
<div>In other words, I’m trying to learn how the lexical information in the expanded syntax objects is mapped back to the appropriate parts of the original syntax objects. I’m reading the code to try to figure out the algorithm but hoping that there’s a paper
 that describes it more directly.</div>
<div><br>
</div>
<div>Thanks in advance for any pointers,</div>
<div><br>
</div>
<div>--Todd</div>
<br>
</body>
</html>