GAMEEEEEEEEEE
This commit is contained in:
parent
859e7d7560
commit
e0a42d0262
45 changed files with 2771 additions and 782 deletions
136
tests/codegen/INDEX.md
Normal file
136
tests/codegen/INDEX.md
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
# Codegen Tests Index
|
||||
|
||||
Quick reference guide for all codegen tests.
|
||||
|
||||
## 📋 Test Overview
|
||||
|
||||
| Test | Type | Features | Lines |
|
||||
|------|------|----------|-------|
|
||||
| `test_executable` | Basic | Integer math, functions | 4 |
|
||||
| `test_array_simple` | Arrays | Literals, indexing, pointers | 4 |
|
||||
| `test_enum_simple` | Enums | Variants, discriminant | 2 |
|
||||
| `test_comprehensive` | Mixed | All basic types, structs | 18 |
|
||||
| `test_all_types` | Coverage | Complete type test | 16 |
|
||||
|
||||
## 🚀 Quick Commands
|
||||
|
||||
### Generate C from all tests
|
||||
```bash
|
||||
for f in tests/codegen/*.sui; do
|
||||
./target/debug/suicmez "$f"
|
||||
done
|
||||
```
|
||||
|
||||
### Compile all tests
|
||||
```bash
|
||||
for f in tests/codegen/*.c; do
|
||||
gcc "$f" -o "/tmp/$(basename ${f%.c})"
|
||||
done
|
||||
```
|
||||
|
||||
### Run all tests
|
||||
```bash
|
||||
for exe in /tmp/test_*; do
|
||||
echo "=== $(basename $exe) ==="
|
||||
"$exe" 2>&1
|
||||
done
|
||||
```
|
||||
|
||||
### Run single test
|
||||
```bash
|
||||
./target/debug/suicmez tests/codegen/test_comprehensive.sui
|
||||
gcc tests/codegen/test_comprehensive.c -o /tmp/test
|
||||
/tmp/test
|
||||
```
|
||||
|
||||
## 📖 Documentation Files
|
||||
|
||||
- **README.md** - Full documentation of all tests
|
||||
- **TESTING.md** - How to run and debug tests
|
||||
- **SUMMARY.md** - Organization and cleanup summary
|
||||
- **INDEX.md** - This file
|
||||
|
||||
## 🎯 Test Selection Guide
|
||||
|
||||
**I want to test:**
|
||||
|
||||
- **Simple execution** → Use `test_executable`
|
||||
- **Arrays** → Use `test_array_simple`
|
||||
- **Enums** → Use `test_enum_simple`
|
||||
- **Everything together** → Use `test_comprehensive`
|
||||
- **All types** → Use `test_all_types`
|
||||
|
||||
## ✅ Verification Checklist
|
||||
|
||||
Before pushing:
|
||||
- [ ] All `.sui` files transpile: `for f in tests/codegen/*.sui; do suicmez "$f" > /dev/null; done`
|
||||
- [ ] All `.c` files compile: `for f in tests/codegen/*.c; do gcc "$f" -c; done`
|
||||
- [ ] All tests execute: `for f in tests/codegen/*.c; do gcc "$f" -o /tmp/t && /tmp/t > /dev/null; done`
|
||||
- [ ] Debug output works: `gcc tests/codegen/test_comprehensive.c -o /tmp/t && /tmp/t | head -3`
|
||||
|
||||
## 🔧 Debug Features
|
||||
|
||||
Each test includes debug output:
|
||||
```
|
||||
| <statement> |
|
||||
<value>
|
||||
```
|
||||
|
||||
Example:
|
||||
```
|
||||
| int x = 10 |
|
||||
10
|
||||
```
|
||||
|
||||
Format specifiers are automatic:
|
||||
- `%d` - integers
|
||||
- `%f` - floats
|
||||
- `%s` - strings
|
||||
- `%p` - pointers
|
||||
|
||||
## 📦 File Organization
|
||||
|
||||
```
|
||||
tests/codegen/
|
||||
├── test_executable.sui ← Source
|
||||
├── test_executable.c ← Generated
|
||||
├── test_array_simple.sui
|
||||
├── test_array_simple.c
|
||||
├── test_enum_simple.sui
|
||||
├── test_enum_simple.c
|
||||
├── test_comprehensive.sui
|
||||
├── test_comprehensive.c
|
||||
├── test_all_types.sui
|
||||
├── test_all_types.c
|
||||
├── README.md ← Documentation
|
||||
├── TESTING.md
|
||||
├── SUMMARY.md
|
||||
└── INDEX.md ← This file
|
||||
```
|
||||
|
||||
Each `.sui` file has a corresponding `.c` file containing the generated C code with debug output.
|
||||
|
||||
## 🎓 Learning Path
|
||||
|
||||
1. Start with `test_executable` - understand basic code generation
|
||||
2. Move to `test_array_simple` - learn array handling
|
||||
3. Check `test_enum_simple` - understand enum codegen
|
||||
4. Study `test_comprehensive` - see everything together
|
||||
5. Review `test_all_types` - verify complete coverage
|
||||
|
||||
## 💡 Tips
|
||||
|
||||
- Look at generated `.c` files to understand transpilation
|
||||
- Run tests with output redirection: `./test 2>&1 | less`
|
||||
- Compare `.sui` and `.c` files side by side
|
||||
- Check debug output for execution trace
|
||||
- Modify `.sui` files to experiment with codegen
|
||||
|
||||
## 📞 Getting Help
|
||||
|
||||
See **TESTING.md** for:
|
||||
- Common issues and solutions
|
||||
- Compilation troubleshooting
|
||||
- Debug output interpretation
|
||||
- Verification procedures
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue