record رمز { نوع: i64, متن: string, سطر: i64, عمود: i64 } record حالة_محلل { رموز: list[رمز], مؤشر: i64 } fn رمز_الحالة(حالة: حالة_محلل) -> رمز { return حالة::رموز[حالة::مؤشر]; } fn start_main() -> i64 { let زائد: رمز = رمز { نوع: 1, متن: "+" , سطر: 2, عمود: 7 }; if (زائد::نوع != 1) { return 1; } if (زائد::متن != "+") { return 2; } if (زائد::سطر != 2) { return 3; } if (زائد::عمود != 7) { return 4; } var حالة: حالة_محلل = حالة_محلل { رموز: [زائد], مؤشر: 0 }; if (رمز_الحالة(حالة)::متن != "+") { return 5; } var منقولة: حالة_محلل = حالة; منقولة::مؤشر = 1; if (حالة::مؤشر != 0) { return 6; } if (منقولة::مؤشر != 1) { return 7; } منقولة::رموز[0]::عمود = 9; if (حالة::رموز[0]::عمود != 7) { return 8; } if (منقولة::رموز[0]::عمود != 9) { return 9; } let موجود: result[رمز] = success(زائد); if (موجود::ok) { if (موجود::value::سطر != 2) { return 10; } } else { return 11; } print("3 tokens"); return 0; }