mirror of
https://github.com/AeThex-Corporation/AeThex-OS.git
synced 2026-04-17 22:27:19 +00:00
418 lines
8.5 KiB
Markdown
418 lines
8.5 KiB
Markdown
# AeThex Language - Quick Start Guide
|
|
|
|
## 🎉 Your Cross-Platform Metaverse Language is Ready!
|
|
|
|
The AeThex programming language compiles to JavaScript, Lua (Roblox), and soon Verse (UEFN) and C# (Unity). It includes built-in modules for authentication, PII protection, COPPA compliance, and cross-platform data sync.
|
|
|
|
## Installation
|
|
|
|
### 1. Build the Packages
|
|
|
|
```bash
|
|
# Navigate to the workspace
|
|
cd /workspaces/AeThex-OS
|
|
|
|
# Build the standard library
|
|
cd packages/aethex-core
|
|
npm install
|
|
npm run build
|
|
|
|
# Build the CLI
|
|
cd ../aethex-cli
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
### 2. Test the Compiler
|
|
|
|
```bash
|
|
# From the CLI directory
|
|
cd packages/aethex-cli
|
|
|
|
# Compile to JavaScript
|
|
node bin/aethex.js compile ../../examples/hello.aethex
|
|
|
|
# Compile to Lua (Roblox)
|
|
node bin/aethex.js compile ../../examples/hello.aethex --target roblox
|
|
|
|
# Test the output
|
|
cd ../../examples
|
|
node -e "$(cat hello.js); Main();"
|
|
```
|
|
|
|
You should see: `Hello, World from AeThex!`
|
|
|
|
## Language Basics
|
|
|
|
### Hello World
|
|
|
|
```aethex
|
|
reality HelloWorld {
|
|
platforms: all
|
|
}
|
|
|
|
journey Greet(name) {
|
|
platform: all
|
|
notify "Hello, " + name + "!"
|
|
}
|
|
|
|
journey Main() {
|
|
platform: all
|
|
Greet("World")
|
|
}
|
|
```
|
|
|
|
### Authentication Example
|
|
|
|
```aethex
|
|
import { Passport, DataSync } from "@aethex.os/core"
|
|
|
|
reality AuthSystem {
|
|
platforms: [roblox, web]
|
|
}
|
|
|
|
journey Login(username) {
|
|
platform: all
|
|
|
|
let passport = new Passport(username, username)
|
|
|
|
when passport.verify() {
|
|
sync passport across [roblox, web]
|
|
notify "Welcome back, " + username + "!"
|
|
reveal passport
|
|
} otherwise {
|
|
notify "Login failed"
|
|
}
|
|
}
|
|
```
|
|
|
|
### COPPA Compliance Example
|
|
|
|
```aethex
|
|
import { SafeInput, Compliance } from "@aethex.os/core"
|
|
|
|
reality SecureLeaderboard {
|
|
platforms: [roblox]
|
|
type: "compliance-exam"
|
|
}
|
|
|
|
journey SubmitScore(player, playerName, score) {
|
|
platform: roblox
|
|
|
|
when !Compliance.isCOPPACompliant(player.age) {
|
|
notify "Players under 13 cannot submit scores publicly"
|
|
return
|
|
}
|
|
|
|
let nameValidation = SafeInput.validate(playerName)
|
|
|
|
when !nameValidation.valid {
|
|
notify "Invalid name: contains PII"
|
|
return
|
|
}
|
|
|
|
notify "Score submitted successfully!"
|
|
reveal { player: nameValidation.clean, score: score }
|
|
}
|
|
```
|
|
|
|
## CLI Commands
|
|
|
|
### Compile Files
|
|
|
|
```bash
|
|
# Compile to JavaScript (default)
|
|
aethex compile myfile.aethex
|
|
|
|
# Compile to Lua (Roblox)
|
|
aethex compile myfile.aethex --target roblox
|
|
|
|
# Specify output file
|
|
aethex compile myfile.aethex --output game.lua
|
|
|
|
# Watch mode (recompile on changes)
|
|
aethex compile myfile.aethex --watch
|
|
```
|
|
|
|
### Create Projects
|
|
|
|
```bash
|
|
# Create new project with default template
|
|
aethex new my-project
|
|
|
|
# Create with Passport authentication
|
|
aethex new my-project --template passport
|
|
|
|
# Create game template
|
|
aethex new my-project --template game
|
|
|
|
# Initialize in current directory
|
|
aethex init
|
|
```
|
|
|
|
## Language Features
|
|
|
|
### Keywords
|
|
|
|
- **reality** - Define a namespace/module
|
|
- **journey** - Define a function
|
|
- **when/otherwise** - Conditional statements
|
|
- **sync** - Synchronize data across platforms
|
|
- **notify** - Output/logging (adapts to platform)
|
|
- **reveal** - Return value from journey
|
|
- **let** - Variable declaration
|
|
- **import/from** - Module imports
|
|
- **new** - Create object instances
|
|
|
|
### Operators
|
|
|
|
- Arithmetic: `+`, `-`, `*`, `/`
|
|
- Comparison: `==`, `!=`, `<`, `>`, `<=`, `>=`
|
|
- Logical: `!` (NOT)
|
|
- Member: `.` (property access)
|
|
|
|
### Standard Library Modules
|
|
|
|
#### Passport - Universal Identity
|
|
|
|
```aethex
|
|
let passport = new Passport("userId", "username")
|
|
when passport.verify() {
|
|
notify "User verified!"
|
|
}
|
|
```
|
|
|
|
#### SafeInput - PII Detection
|
|
|
|
```aethex
|
|
let result = SafeInput.validate(userInput)
|
|
when result.valid {
|
|
notify "Input is safe: " + result.clean
|
|
} otherwise {
|
|
notify "Input contains PII"
|
|
}
|
|
```
|
|
|
|
#### Compliance - Age Gating
|
|
|
|
```aethex
|
|
when Compliance.isCOPPACompliant(user.age) {
|
|
notify "User is 13 or older"
|
|
} otherwise {
|
|
notify "Parental consent required"
|
|
}
|
|
```
|
|
|
|
#### DataSync - Cross-Platform Sync
|
|
|
|
```aethex
|
|
sync player.passport across [roblox, web, uefn]
|
|
```
|
|
|
|
## Example Outputs
|
|
|
|
### JavaScript Output
|
|
|
|
```javascript
|
|
// Generated by AeThex Compiler v1.0.0
|
|
// Target: JavaScript
|
|
|
|
const HelloWorld = {
|
|
platforms: ["all"],
|
|
};
|
|
|
|
function Greet(name) {
|
|
console.log((("Hello, " + name) + " from AeThex!"));
|
|
}
|
|
|
|
function Main() {
|
|
Greet("World");
|
|
}
|
|
```
|
|
|
|
### Lua Output (Roblox)
|
|
|
|
```lua
|
|
-- Generated by AeThex Compiler v1.0.0
|
|
-- Target: Roblox (Lua)
|
|
|
|
local HelloWorld = {
|
|
platforms = {"all"},
|
|
}
|
|
|
|
local function Greet(name)
|
|
print((("Hello, " .. name) .. " from AeThex!"))
|
|
end
|
|
|
|
local function Main()
|
|
Greet("World")
|
|
end
|
|
```
|
|
|
|
Note: Lua automatically converts operators:
|
|
- `+` → `..` (for string concatenation)
|
|
- `!` → `not` (logical NOT)
|
|
- `!=` → `~=` (not equals)
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
packages/
|
|
├── aethex-core/ # Standard Library
|
|
│ ├── src/
|
|
│ │ ├── Passport.ts # Universal identity
|
|
│ │ ├── SafeInput.ts # PII detection
|
|
│ │ ├── Compliance.ts # Age gating
|
|
│ │ └── DataSync.ts # Cross-platform sync
|
|
│ └── lib/ # Compiled output
|
|
│
|
|
└── aethex-cli/ # Compiler & CLI
|
|
├── src/
|
|
│ ├── compiler/
|
|
│ │ ├── Lexer.ts # Tokenizer
|
|
│ │ ├── Parser.ts # AST builder
|
|
│ │ ├── Compiler.ts # Orchestrator
|
|
│ │ ├── JavaScriptGenerator.ts
|
|
│ │ └── LuaGenerator.ts
|
|
│ └── index.ts # CLI entry
|
|
├── bin/
|
|
│ └── aethex.js # Executable
|
|
└── lib/ # Compiled output
|
|
|
|
examples/
|
|
├── hello.aethex # Hello World
|
|
├── auth.aethex # Authentication
|
|
└── leaderboard.aethex # COPPA compliance
|
|
```
|
|
|
|
## Compilation Flow
|
|
|
|
```
|
|
Source (.aethex)
|
|
↓
|
|
Lexer (Tokenization)
|
|
↓
|
|
Parser (AST Generation)
|
|
↓
|
|
Semantic Analysis
|
|
↓
|
|
Code Generator
|
|
↓
|
|
Output (.js, .lua, .verse, .cs)
|
|
```
|
|
|
|
## Supported Platforms
|
|
|
|
| Platform | Target | Status | Extension |
|
|
|----------|--------|--------|-----------|
|
|
| Web | JavaScript | ✅ Ready | `.js` |
|
|
| Roblox | Lua | ✅ Ready | `.lua` |
|
|
| UEFN | Verse | 🚧 Coming Soon | `.verse` |
|
|
| Unity | C# | 🚧 Coming Soon | `.cs` |
|
|
|
|
## Error Handling
|
|
|
|
The compiler provides clear error messages with line and column numbers:
|
|
|
|
```
|
|
❌ Compilation failed with errors:
|
|
|
|
myfile.aethex - Unexpected character: @ at line 5, column 10
|
|
myfile.aethex - Expected identifier at line 8, column 3
|
|
```
|
|
|
|
## Development Workflow
|
|
|
|
### 1. Write AeThex Code
|
|
|
|
```bash
|
|
nano myfile.aethex
|
|
```
|
|
|
|
### 2. Compile
|
|
|
|
```bash
|
|
aethex compile myfile.aethex
|
|
```
|
|
|
|
### 3. Test
|
|
|
|
```bash
|
|
# JavaScript
|
|
node myfile.js
|
|
|
|
# Roblox (copy to Studio)
|
|
aethex compile myfile.aethex --target roblox
|
|
```
|
|
|
|
### 4. Watch Mode (Auto-Recompile)
|
|
|
|
```bash
|
|
aethex compile myfile.aethex --watch
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
1. **Try the Examples**
|
|
```bash
|
|
cd packages/aethex-cli
|
|
node bin/aethex.js compile ../../examples/auth.aethex
|
|
```
|
|
|
|
2. **Create Your First Project**
|
|
```bash
|
|
aethex new my-first-game
|
|
cd my-first-game
|
|
```
|
|
|
|
3. **Read the Full Documentation**
|
|
- [AETHEX_COMPILER_SPEC.md](AETHEX_COMPILER_SPEC.md) - Technical details
|
|
- [AETHEX_LANGUAGE_PACKAGE.md](AETHEX_LANGUAGE_PACKAGE.md) - Language reference
|
|
- [AETHEX_CODE_EXAMPLES.md](AETHEX_CODE_EXAMPLES.md) - Code patterns
|
|
- [AETHEX_IMPLEMENTATION.md](AETHEX_IMPLEMENTATION.md) - Implementation guide
|
|
|
|
4. **Global Installation** (Coming Soon)
|
|
```bash
|
|
npm install -g @aethex.os/cli
|
|
aethex --version
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### "npm: command not found"
|
|
|
|
Install Node.js and npm:
|
|
```bash
|
|
sudo apk add nodejs npm
|
|
```
|
|
|
|
### "Permission denied"
|
|
|
|
Create home directory:
|
|
```bash
|
|
sudo mkdir -p /home/codespace
|
|
sudo chown -R $(whoami):$(whoami) /home/codespace
|
|
```
|
|
|
|
### Compilation Errors
|
|
|
|
Check syntax against examples and ensure proper indentation.
|
|
|
|
## Contributing
|
|
|
|
We welcome contributions! Areas to explore:
|
|
1. **Verse Generator** - Add UEFN support
|
|
2. **C# Generator** - Add Unity support
|
|
3. **Optimizations** - Improve code generation
|
|
4. **Tests** - Add comprehensive test suite
|
|
5. **Documentation** - Create tutorials and guides
|
|
|
|
## License
|
|
|
|
MIT License - Copyright © 2025-2026 AeThex Corporation
|
|
|
|
---
|
|
|
|
**Happy Coding! Build the next generation of cross-platform metaverse experiences with AeThex!** 🚀
|
|
|
|
For questions or support, refer to the documentation files or create an issue in the repository.
|