Skip to content

doqin/NEN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

N.Ề.N.

Repository này được dùng để nghiên cứu CIL (Common Intermediate Language) của .NET và mong muốn tạo một compiler frontend để biên dịch thành các assembly cho dotnet chạy và nạp vào chương trình khác.

Ví dụ về cú pháp ngôn ngữ

sử_dụng System;
lớp Chương_Trình
@Chính @Tĩnh
phương_thức Chính() -> Void
Phụ::Test("Foo");
Phụ::Kiểm_Tra_Khởi_Tạo_Đối_Tượng();
Phụ::Kiểm_Tra_Gọi_Hàm();
Phụ::Kiểm_Tra_Kiểu_Luận_Lý();
Phụ::Kiểm_Tra_Nếu();
kết_thúc
kết_thúc
lớp Phụ
@Tĩnh @Công_Khai
phương_thức Test(a thuộc String) -> Void
Console::WriteLine("{0} Bar!", a);
biến bro thuộc String gán "mọi người";
biến str2 thuộc String gán "OK";
biến int32 thuộc Int32 gán 3;
biến int64 thuộc Int64 gán 5L;
biến b thuộc Int32 gán 1 * 3 * (10 + 3) * 4 / 5;
biến c thuộc Int64 gán 2L *32L / 4L;
biến d thuộc Int64 gán c * (25L + 62L);
c gán 10L;
biến mảng1 thuộc String[] gán tạo String[3] { "mảng", "của", "mảng" };
biến mảng2 thuộc Int32[] gán tạo Int32[] { 0, b, 2, 3, 4 };
biến mảng_của_mảng thuộc String[][] gán tạo String[][] {
tạo String[] { "Đây", "là" },
mảng1
};
Console::WriteLine(mảng1[0]);
mảng1[0] gán "array";
Console::WriteLine(mảng1[0]);
Console::WriteLine(bro);
Console::WriteLine(c);
biến là_sai thuộc Boolean gán str2.Contains("H");
biến là_đúng thuộc Boolean gán str2.Contains("K");
System::Console::WriteLine(là_đúng);
Console::WriteLine("Hellu {0}", "everyone");
Console::WriteLine("Yo chào {0}", bro);
Console::WriteLine(d);
Console::WriteLine("1 + 1 = {0}", 1 + 1);
kết_thúc
@Tĩnh @Công_Khai
phương_thức Kiểm_Tra_Khởi_Tạo_Đối_Tượng() -> Void
biến người thuộc Người gán tạo Người {
Tên gán "Nguyễn Văn A",
Tuổi gán 25
};
người.Tên gán "Nguyễn Thị B";
người.Tuổi gán 63;
Người::Số_Người gán 1;
Console::WriteLine(người.Tên);
người.Chào();
người.Chào(".NET 9");
biến mảng_người thuộc Người[] gán tạo Người[] {
tạo Người {
Tên gán "A",
},
tạo Người {
Tuổi gán 0,
},
tạo Người {
Tên gán "C",
Tuổi gán 34
}
};
Console::WriteLine(mảng_người[0].Tên);
kết_thúc
@Tĩnh @Công_Khai
phương_thức Cộng(a thuộc Int32, b thuộc Int32) -> Int32
trả_về a + b;
kết_thúc
@Tĩnh @Công_Khai
phương_thức Kiểm_Tra_Gọi_Hàm() -> Void
biến m thuộc String[] gán tạo String[] { "Đây", "là", "một", "test" };
Console::WriteLine(String::Join(" ", m));
Console::WriteLine("5 + 10 = {0}", Phụ::Cộng(5, 10));
kết_thúc
@Tĩnh @Công_Khai
phương_thức Kiểm_Tra_Kiểu_Luận_Lý() -> Void
biến a thuộc Int32 gán 12;
biến là_đúng thuộc Boolean gán đúng;
biến là_sai thuộc Boolean gán sai;
biến là_đúng_hay_sai thuộc Boolean gán 5 = 1 hoặc a = 12;
Console::WriteLine(là_đúng);
Console::WriteLine(là_sai);
Console::WriteLine(là_đúng_hay_sai);
Console::WriteLine(a = 4 hoặc 5 >= 3 + 1);
kết_thúc
@Tĩnh @Công_Khai
phương_thức Kiểm_Tra_Nếu() -> Void
nếu 1 + 1 = 2 thì
Console::WriteLine("1 + 1 = 2");
không_thì
Console::WriteLine("Ủa sao vậy");
kết_thúc;
nếu đúng thì
Console::WriteLine("OK");
kết_thúc;
nếu sai thì
không_thì nếu đúng thì
nếu đúng thì
Console::WriteLine(đúng);
kết_thúc;
nếu đúng thì
Console::WriteLine(đúng);
nếu đúng thì
Console::WriteLine(đúng);
kết_thúc;
kết_thúc;
nếu đúng thì
Console::WriteLine(đúng);
kết_thúc;
kết_thúc;
kết_thúc
kết_thúc
lớp Người
@Công_Khai
phương_thức Chào() -> Void
Console::WriteLine("Chào bạn, tôi là {0}", Tên);
Console::WriteLine("Tôi có một thuộc tính giấu! Giá trị của nó là {0}", giấu);
Test1();
Test2();
kết_thúc
@Công_Khai
phương_thức Chào(tên thuộc String) -> Void
Console::WriteLine("Chào bạn {0}!", tên);
kết_thúc
@Tĩnh @Công_Khai thuộc_tính Số_Người thuộc Int32 gán 10;
@Công_Khai thuộc_tính Tên thuộc String;
@Công_Khai thuộc_tính Tuổi thuộc Int32;
thuộc_tính giấu thuộc Int32 gán 15;
phương_thức Test1() -> Void
Console::WriteLine("Test1");
kết_thúc
@Tĩnh
phương_thức Test2() -> Void
Console::WriteLine("Test2");
kết_thúc
kết_thúc

About

N.Ề.N. | Native Engineer's Notation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages