Skip to content

Xzdes/asg

Repository files navigation

ASG

ASG (Abstract Syntax Graph) — современный язык программирования, построенный на основе абстрактного синтаксического графа.

Crates.io License: MIT Rust

Особенности

  • ASG-based — код представляется как граф, а не дерево
  • S-Expression синтаксис — простой и единообразный
  • Функциональное программирование — первоклассные функции, замыкания
  • Множественные бэкенды — интерпретатор, LLVM, WASM
  • LSP поддержка — полноценная IDE интеграция
  • Менеджер пакетов — asg-pkg для управления зависимостями

Быстрый старт

# Установка
cargo install asg-lang

# Запуск REPL
asg

# Выполнение файла
asg examples/demo.asg

# LSP сервер для IDE
cargo install asg-lsp

# Пакетный менеджер
cargo install asg-pkg

Пример кода

; Привет, мир!
(print "Hello, World!")

; Функция
(fn factorial (n)
  (if (<= n 1)
    1
    (* n (factorial (- n 1)))))

(print (factorial 5))  ; => 120

; Массивы и функциональный стиль
(let numbers (array 1 2 3 4 5))
(let doubled (map (lambda (x) (* x 2)) numbers))
(print doubled)  ; => [2, 4, 6, 8, 10]

Компоненты

Компонент Описание
asg Интерпретатор и компилятор
asg-lsp Language Server Protocol
asg-pkg Менеджер пакетов
VSCode Extension Расширение для VSCode

Сборка из исходников

git clone https://github.com/Xzdes/asg.git
cd asg
cargo build --release

Документация

Лицензия

MIT License — см. LICENSE

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages