Learn MSL Programming

Master MSL (Macincode Scripting Language) concepts from basics to advanced topics with interactive .mcn examples

1 Basics
2 Data & Variables
3 Functions
4 Advanced

MSL Basics

Hello World

Your first MSL program

log "Hello, World!"

Variables

Store and use data

var name = "Alice"
var age = 25
log "Name: " + name + ", Age: " + age

Comments

Document your code

// This is a single line comment
var x = 10  // Comment at end of line

Basic Operations

Math and string operations

var sum = 10 + 5
var message = "Hello" + " " + "World"
log sum
log message

Data Types & Structures

Objects

Store related data together

var user = {
    "name": "John",
    "age": 30,
    "email": "john@example.com"
}
log user.name

Arrays

Lists of data

var numbers = [1, 2, 3, 4, 5]
var names = ["Alice", "Bob", "Charlie"]
log numbers[0]  // First item
log names.length

Conditionals

Make decisions in code

var age = 18

if age >= 18
    log "Adult"
else
    log "Minor"

Loops

Repeat actions

var items = ["apple", "banana", "orange"]

for item in items
    log "Fruit: " + item

Built-in Functions

Database Operations

Work with databases easily

use "db"

// Insert data
query("INSERT INTO users VALUES (?, ?)", ("Alice", 25))

// Select data
var users = query("SELECT * FROM users")
log users

API Calls

Trigger external services

// POST request
trigger("https://api.example.com/users", {
    "name": "Alice",
    "email": "alice@example.com"
})

// GET request
var data = fetch("https://api.example.com/users")

AI Integration

Use AI in your applications

use "ai"

var prompt = "Summarize this text: " + user_input
var summary = ai(prompt)

var sentiment = analyze_sentiment("Great product!")
log sentiment.score

File Operations

Read and write files

// Read file
var content = read_file("data.txt")

// Write file
write_file("output.txt", "Hello World")

// Append to file
append_file("log.txt", "New entry")

Advanced Concepts

Parallel Tasks

Run multiple operations simultaneously

task "email" "trigger" "https://mail.api.com/send" {"to": "user@example.com"}
task "database" "query" "INSERT INTO logs VALUES (?)" ("Email sent")
task "ai" "ai" "Generate follow-up message"

var results = await "email" "database" "ai"
log "All tasks completed"

Error Handling

Handle errors gracefully

try
    var result = query("SELECT * FROM users")
    log result
catch error
    log "Database error: " + error.message
    // Fallback logic here

Packages

Organize and reuse code

use "email"
use "database"
use "ai"

// Now you can use functions from these packages
send_email("user@example.com", "Welcome!")
save_user(user_data)
var analysis = analyze_text(content)

Environment Variables

Configure your applications

var api_key = env("API_KEY")
var database_url = env("DATABASE_URL")

if api_key == null
    log "API_KEY not set"
    exit(1)

Quick Syntax Reference

Keywords

var if else for in while try catch use task await return null true false

Built-in Functions

log(message) Print to console
query(sql, params) Database operations
trigger(url, data) HTTP POST request
fetch(url) HTTP GET request
ai(prompt) AI text generation
env(key) Environment variable

Syntax Formats

Variable Declaration

var name = value

Object

{"key": "value", "num": 42}

Array

["item1", "item2", "item3"]

Conditional

if condition
    action

Loop

for item in array
    action

Package Import

use "package_name"

Parallel Task

task "name" "function" args

Error Handling

try
    risky_code
catch error
    handle_error

Try It Yourself

Exercise 1: User Registration

Create a user registration workflow

Hint: Use variables, database query, and API trigger

Exercise 2: Data Analysis

Fetch data and analyze with AI

Hint: Use fetch, loops, and AI functions