تشخيص الأخطاء
يعرض مترجم Wave الأخطاء مع الكود الخاص بها (E####)، بالإضافة إلى موضع المصدر/السياق/نصائح الحل دفعة واحدة.
صيغة الإخراج
الصيغة الافتراضية هي كما يلي.
error[E3001]: semantic validation failed: use of undeclared identifier `x`
--> file.wave:2:18
1 | fun main() {
2 | println("{}", x);
| ^ not found in this scope
= context: semantic validation
= help: fix mutability, scope, and expression validity issues
عناصر الإخراج:
--> file:line:column: كود الخطأ والملخص^: موضع المشكلة- إبراز بلوك المصدر + المؤشر (
^) السياق،المتوقع،الموجود،ملاحظة،مساعدة،اقتراح
أكواد الأخطاء التمثيلية
E1002حرف غير متوقعE1003تعليق كتلة غير مغلقE1004سلسلة غير مغلقةE1005تهرب سلسلة غير صحيحE1006حرف ليترالي غير صحيحE2001صيغة رقم ليترالي غير صحيحةE3001خطأ صياغة في المحلل اللغويE3001خطأ التحقق الدلالي (تحليل دلالي)E3102تمريرnullكمعامل مقارنةE9001منع تقليص الأعداد السالبةE9001خطأ داخلي في إنشاء كود الخلفية
أيضًا تُظهر أخطاء الخلفية موضع المصدر
حتى إذا حدث هلع داخلي أثناء مرحلة إنشاء التعليمات البرمجية (LLVM)، فإنه يحاول استنتاج موضع الاستدعاء / الإعلان الفعلي إذا كان ذلك ممكناً.
error[E9001]: compiler internal error during code generation (llvm-ir-generation)
--> test.wave:12:9
= found: Function 'foo' not found
= note: source position inferred from unresolved function name in backend panic
عندما يكون استنتاج الموضع غير ممكن، يتم استخدام موضع الاسترجاع، ويتم ذكر هذه الحقيقة مع 'note'.
