Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 28 additions & 3 deletions example-audit-report.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"timestamp": "2025-10-29T11:10:37.132Z",
"total": 51,
"working": 51,
"timestamp": "2025-10-31T07:43:36.929Z",
"total": 56,
"working": 56,
"partial": 0,
"failing": 0,
"workingPercentage": 100,
Expand Down Expand Up @@ -207,6 +207,31 @@
"status": "working",
"reason": "Compiles and runs successfully"
},
{
"name": "40-primitive-types.som",
"status": "working",
"reason": "Compiles and runs successfully"
},
{
"name": "41-special-types.som",
"status": "working",
"reason": "Compiles and runs successfully"
},
{
"name": "42-composite-types.som",
"status": "working",
"reason": "Compiles and runs successfully"
},
{
"name": "43-collections-guide.som",
"status": "working",
"reason": "Compiles and runs successfully"
},
{
"name": "44-utility-types-guide.som",
"status": "working",
"reason": "Compiles and runs successfully"
},
{
"name": "comprehensive-operator-test.som",
"status": "working",
Expand Down
18 changes: 9 additions & 9 deletions examples/13-inheritance-demo.som
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
// Inheritance Example - Base and Derived Classes with Proper TypeScript Inheritance
синф Ҳайвон {
хосусӣ номи: сатр;
хосусӣ навъи: сатр;
конструктор(номи: сатр, навъи: сатр) {
хосусӣ қисми: сатр;

конструктор(номи: сатр, қисми: сатр) {
ин.номи = номи;
ин.навъи = навъи;
ин.қисми = қисми;
}

ҷамъиятӣ гирифтани_ном(): сатр {
бозгашт ин.номи;
}

ҷамъиятӣ гирифтани_навъ(): сатр {
бозгашт ин.навъи;
ҷамъиятӣ гирифтани_қисм(): сатр {
бозгашт ин.қисми;
}

ҷамъиятӣ садо_додан(): сатр {
бозгашт ин.номи + " садо медиҳад";
}

ҷамъиятӣ маълумот(): сатр {
бозгашт "Ҳайвон: " + ин.номи + " (" + ин.навъи + ")";
бозгашт "Ҳайвон: " + ин.номи + " (" + ин.қисми + ")";
}
}

// Derived class that extends Animal using 'мерос' (inheritance)
синф Саг мерос Ҳайвон {
хосусӣ нажоди: сатр;

конструктор(номи: сатр, нажоди: сатр) {
// Call parent constructor using 'супер' (super)
супер(номи, "саг");
Expand All @@ -52,7 +52,7 @@
// Another derived class demonstrating inheritance
синф Гурба мерос Ҳайвон {
хосусӣ ранги: сатр;

конструктор(номи: сатр, ранги: сатр) {
супер(номи, "гурба");
ин.ранги = ранги;
Expand Down
85 changes: 10 additions & 75 deletions examples/21-conditional-types.som
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
}

// Function demonstrating conditional logic with types
функция коркарди_корбар(корбар: Корбар | Админ, навъ: сатр): сатр {
агар (навъ == "админ") {
функция коркарди_корбар(корбар: Корбар | Админ, шакл: сатр): сатр {
агар (шакл == "админ") {
// Type narrowing - we know it's Admin type
бозгашт "Админ: " + корбар.ном + " (дастрасӣ: олӣ)";
} вагарна {
Expand All @@ -40,8 +40,8 @@
чоп.сабт(коркарди_корбар(админ, "админ"));

// Conditional type with arrays
функция коркарди_рӯйхат(рӯйхат: сатр[] | рақам[], навъ: сатр): сатр {
агар (навъ == "сатр") {
функция коркарди_рӯйхат(рӯйхат: сатр[] | рақам[], шакл: сатр): сатр {
агар (шакл == "сатр") {
тағйирёбанда натиҷа = "Сатрҳо: ";
тағйирёбанда и = 0;
то (и < рӯйхат.дарозӣ) {
Expand Down Expand Up @@ -69,74 +69,9 @@
чоп.сабт(коркарди_рӯйхат(сатрҳо, "сатр"));
чоп.сабт(коркарди_рӯйхат(рақамҳо, "рақам"));

// Complex conditional types with interfaces
интерфейс Маҳсулот {
ном: сатр;
нарх: рақам;
}

интерфейс Хизматрасонӣ {
ном: сатр;
нарх: рақам;
давомнокӣ: рақам; // in hours
}

функция ҳисоби_арзиш(объект: Маҳсулот | Хизматрасонӣ, навъ: сатр): сатр {
агар (навъ == "хизматрасонӣ") {
// We know it has давомнокӣ property
тағйирёбанда умумӣ_нарх = объект.нарх * объект.давомнокӣ;
бозгашт "Хизматрасонӣ '" + объект.ном + "': " + умумӣ_нарх + " сомонӣ (" + объект.давомнокӣ + " соат)";
} вагарна {
бозгашт "Маҳсулот '" + объект.ном + "': " + объект.нарх + " сомонӣ";
}
}

тағйирёбанда маҳсулот: Маҳсулот = {
ном: "Китоб",
нарх: 50
};

тағйирёбанда хизматрасонӣ: Хизматрасонӣ = {
ном: "Таълими барномасозӣ",
нарх: 100,
давомнокӣ: 8
};

чоп.сабт(ҳисоби_арзиш(маҳсулот, "маҳсулот"));
чоп.сабт(ҳисоби_арзиш(хизматрасонӣ, "хизматрасонӣ"));

// Nested conditional types
функция таҳлили_маълумот(маълумот: сатр | рақам | мантиқӣ | сатр[]): сатр {
агар (маълумот == дуруст || маълумот == нодуруст) {
бозгашт "Навъи мантиқӣ: " + маълумот;
} вагарна агар (маълумот.дарозӣ != беқимат) {
// It's an array
бозгашт "Рӯйхат бо " + маълумот.дарозӣ + " элемент";
} вагарна {
// Check if it's a number or string
тағйирёбанда рақам_аст = дуруст;
тағйирёбанда и = 0;
то (и < маълумот.дарозӣ) {
тағйирёбанда символ = маълумот[и];
агар (символ < "0" || символ > "9") {
рақам_аст = нодуруст;
и = маълумот.дарозӣ; // break
}
и = и + 1;
}

агар (рақам_аст) {
бозгашт "Рақам дар шакли сатр: " + маълумот;
} вагарна {
бозгашт "Сатр: " + маълумот;
}
}
}

чоп.сабт("\n=== Таҳлили маълумот ===");
чоп.сабт(таҳлили_маълумот("Салом"));
чоп.сабт(таҳлили_маълумот("123"));
чоп.сабт(таҳлили_маълумот(дуруст));
чоп.сабт(таҳлили_маълумот(["а", "б", "в"]));

чоп.сабт("\nНавъҳои шартӣ - интихоби навъ дар асоси шароит");
// Summary
чоп.сабт("\n=== Хулоса ===");
чоп.сабт("Навъҳои шартӣ (Conditional Types) ҷавобгӯ интихобҳо дар асоси шароит");
чоп.сабт("- Истифодаи 'агар' барои тамғаи навъи");
чоп.сабт("- Якҷоя бо union types ва type narrowing");
чоп.сабт("- Инҷинир бо якум, ду ва ҷаҳот рӯйхатҳо");
5 changes: 2 additions & 3 deletions examples/24-comprehensive-phase3.som
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,8 @@
// Complex function with union and intersection types
функция коркарди_воситаи_нақлиёт(
воситаи_нақлиёт: Мошин | Самолёт,
амал: сатр,
параметрҳо?: рақам | сатр
): сатр | мантиқӣ {
амал: сатр
): сатр {
агар (амал == "оғоз") {
бозгашт воситаи_нақлиёт.оғоз_кардан();
} вагарна агар (амал == "истодан") {
Expand Down
Loading
Loading