أدفنت أوف كود: حل أنيق لمشكلة التحليل ذات الحالة

2025-04-09

يتضمن لغز Advent of Code الأخير تفسير تعليمات `do()` و `don't()` التي تُمكّن أو تُعطل مساهمة تعليمات `mul` في المجموع. تعاني التعبيرات العادية من هذه الحالة، لأنها تتعرف على اللغات العادية عديمة الحالة. يستخدم الكاتب حلًا قائمًا على المُحلل، ويرفعها إلى مُحوّل حالة لإنشاء مُحلل ذي حالة. يتعامل هذا المُحلل بكفاءة مع تعليمات `do()` و `don't()` و `mul`، ويعالج حوالي 1 ميجابايت من الإدخال في 0.12 ثانية - وهي تحسين كبير مقارنةً بنهج قائم على التعبيرات العادية.