Skip to content

RenOpSo2/ax-language

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syntax Lengkap Ax

  1. Hello World & Basic Print
fn main() {
    println("hello, world");
    println("this is Ax language");
}
  1. Variable Declaration (let)
fn main() {
    let x = 10;
    let y = 20;
    let name = "Ax";
    let result = x + y;
}
  1. Assignment
fn main() {
    let counter = 0;
    counter = 5;
    counter = counter + 1;
}
  1. If Statement
fn main() {
    let nilai = 85;
    
    if nilai > 80 {
        println("A");
    }
    
    if nilai > 70 {
        println("B");
    }
}
  1. While Loop
fn main() {
    let i = 1;
    
    while i <= 5 {
        println(i);
        i = i + 1;
    }
}
  1. If-Else Statement
fn main() {
    let nilai = 75;
    
    if nilai >= 80 {
        println("A");
    } else {
        println("B");
    }
}
  1. For Loop
fn main() {
    // for let init; condition; increment {
    for let i = 0; i < 5; i = i + 1 {
        println(i);
    }
}
  1. Kombinasi Semua Fitur
fn main() {
    let total = 0;
    let i = 1;
    
    while i <= 10 {
        total = total + i;
        i = i + 1;
    }
    
    println("Sum 1 to 10:");
    println(total);
    
    if total > 50 {
        println("Total is greater than 50");
    }
}
  1. Operasi Aritmatika
fn main() {
    let a = 10;
    let b = 3;
    
    let tambah = a + b;
    let kurang = a - b;
    let kali = a * b;
    let bagi = a / b;
    
    println(tambah);
    println(kurang);
    println(kali);
    println(bagi);
}
  1. Print String & Variable
fn main() {
    let name = "Ax";
    let version = 1;
    
    println("Language:");
    println(name);
    println("Version:");
    println(version);
}
  1. Nested If (dalam if ada if)
fn main() {
    let x = 10;
    let y = 20;
    
    if x > 5 {
        println("x > 5");
        if y > 15 {
            println("y > 15");
        }
    }
}
  1. Loop dengan Counter
fn main() {
    let counter = 0;
    
    while counter < 3 {
        println("Iteration:");
        println(counter);
        counter = counter + 1;
    }
    
    println("Done!");
}

Contoh Program Lengkap (factorial.ax)

fn main() {
    let n = 5;
    let result = 1;
    let i = 1;
    
    while i <= n {
        result = result * i;
        i = i + 1;
    }
    
    println("Factorial of 5 is:");
    println(result);
}

Contoh Program Lain (fizzbuzz.ax)

fn main() {
    let i = 1;
    
    while i <= 15 {
        if i > 15 {
            println("done");
        }
        
        if i % 15 == 0 {
            println("FizzBuzz");
        } else {
            if i % 3 == 0 {
                println("Fizz");
            } else {
                if i % 5 == 0 {
                    println("Buzz");
                } else {
                    println(i);
                }
            }
        }
        
        i = i + 1;
    }
}

Catatan Penting

  1. Setiap statement harus diakhiri dengan ; (kecuali block { })
  2. Variable harus dideklarasi dengan let sebelum digunakan
  3. Function hanya fn main() {} untuk sekarang
  4. String pakai double quote "
  5. Comment support: // untuk single-line comment
  6. Operator yang support: +, -, *, /, %, >, <, >=, <=, ==
  7. Control flow: if, else, while, for

Test Program

# Buat file baru
cat > factorial.ax << 'EOF'
fn main() {
    let n = 5;
    let result = 1;
    let i = 1;
    
    while i <= n {
        result = result * i;
        i = i + 1;
    }
    
    println("Factorial of 5 is:");
    println(result);
}
EOF

# Jalankan
./ax.sh factorial.ax

Bahasa Ax sekarang sudah functional untuk basic programming! Fitur yang sudah diimplementasi:

✅ if-else statement ✅ for loop ✅ while loop ✅ comments (//) ✅ variable (let) ✅ arithmetic operations ✅ println

Bisa ditambah fitur lain seperti:

· else if statement · Function dengan parameter · Array · String type variables · Logical operators (&&, ||, !) · Break/continue statement · Type system

Mau nambah fitur apa?

About

Ax Language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors