# πͺπΉ APL β α ααα Programming Language
A beginner-friendly programming language that uses **Amharic keywords** and translates source code into **Python**.
This project was developed for a **Programming Language Design** course under the theme:
> **Local Language Programming for Beginners**
The language is designed to make programming easier for Ethiopian beginners by replacing English programming keywords with understandable Amharic words.
---
# Features
## β
Variables
```am
αα₯α x = 10
```
Generated Python:
```python
x = 10
```
---
## β
Variable Assignment
```am
x = x + 1
```
Generated Python:
```python
x = x + 1
```
---
## β
Arithmetic Expressions
Supported operators:
```text
+
-
*
/
```
Example:
```am
αα₯α z = x + y
```
---
## β
Comparison Operators
Supported comparisons:
```text
==
```
Example:
```am
α¨αα x > 5:
```
---
## β
Output (Print)
```am
αα("α°αα")
```
Generated Python:
```python
print("α°αα")
```
---
## β
If Statement
```am
α¨αα x > 5:
ααα
αα("α΅αα
")
α¨αα΅
```
Generated Python:
```python
if x > 5:
print("α΅αα
")
```
---
## β
If / Else Statement
```am
α¨αα x > 5:
ααα
αα("α΅αα
")
α¨αα΅
α«ααα:
ααα
αα("α΅αα½")
α¨αα΅
```
Generated Python:
```python
if x > 5:
print("α΅αα
")
else:
print("α΅αα½")
```
---
## β
While Loop
```am
αα₯α x = 1
α²αα x 5:
ααα
αα("OK")
α¨αα΅
```
---
# Source File Extension
APL source files use the extension:
```text
.α α
```
Example:
```text
program.α α
```
Generated output:
```text
program.py
```
---
# Project Structure
```text
APL/
β
βββ lexer.py
βββ parser.py
βββ nodes.py
βββ codegen.py
βββ translator.py
β
βββ README.md
β
βββ examples/
βββ basic.α α
βββ control.α α
βββ function.α α
```
---
# Compiler Architecture
The translator consists of three major stages:
## 1. Lexer
The lexer:
- Reads source code
- Handles Unicode Amharic text
- Recognizes keywords
- Produces tokens
Example:
```am
αα₯α x = 10
```
Tokens:
```python
[
('VAR','αα₯α'),
('ID','x'),
('ASSIGN','='),
('NUMBER','10')
]
```
---
## 2. Pars β¦