السلطان
  1. الرئيسية
  2. الأمثلة
  3. الويب

الإصدارات الدلالية

التحليل والأسبقية (الإصدار التمهيدي يأتي أولا).

web/versions.sn
// الإصدارات الدلالية: التحليل والأسبقية (الإصدار التمهيدي يأتي أولا).
استورد std.io.println;
استورد std.version.semver;

عرف صف(اليسار: نص, اليمين: نص): فراغ {
    طابق حلل_إصدارا_دلاليا(&اليسار) مع
    | نتيجة.خطأ(_) -> { اطبع_سطر("إصدار غير صالح"); }
    | نتيجة.نجح(أ) -> {
        طابق حلل_إصدارا_دلاليا(&اليمين) مع
        | نتيجة.خطأ(_) -> { اطبع_سطر("إصدار غير صالح"); }
        | نتيجة.نجح(ب) -> {
            دع الترتيب: عدد = قارن_إصدارين_دلاليين(&أ, &ب);
            إذا (الترتيب < 0) { اطبع_سطر("أقدم"); } وإلا { إذا (الترتيب > 0) { اطبع_سطر("أحدث"); } وإلا { اطبع_سطر("متساويان"); }; };
        };
    };
}

عرف الرئيسية(): عدد {
    صف("1.2.3", "1.10.0");
    صف("2.0.0", "2.0.0-beta.1");
    صف("1.0.0", "1.0.0");
    أرجع 0;
}

التشغيل

بالمفسر، دون ترجمة:

./build/sultanc run examples/ar/web/versions.sn

أو ترجمه إلى ملف تنفيذي:

./build/sultanc examples/ar/web/versions.sn -o build/example && ./build/example

المصدر على GitHub   كل الأمثلة