私はDSLコンパイラに取り組んでおり、ユーザーによりわかりやすい情報を提供したいと考えています。したがって、GCCやGHCのような成熟したコンパイラーはすべて、どの行でどのセマンティクスエラーが発生したかを指摘でき、生成されたコードからそれらを取り除くことさえできることを覚えています。
最初のアイデアは、解析中にASTに行番号を追加することです。しかし、これが標準的な解決策であるかどうか、またはそれを行うための他のより良い方法があるかどうかはわかりませんか?このソリューションはAST内のすべてのノードに追加のデータをもたらすように要求し、それらが負担になる可能性があるため、私はそれを疑っています。