2026-01-02 15:37:21 +08:00
2026-01-01 16:38:21 +08:00
2025-12-22 14:00:24 +08:00
2025-12-30 17:42:41 +08:00
2025-12-20 21:40:57 +08:00
2026-01-01 16:38:21 +08:00
2026-01-01 16:38:21 +08:00
2025-12-19 20:38:40 +08:00
2026-01-02 15:37:21 +08:00
2025-12-19 20:38:40 +08:00
2025-12-20 21:54:09 +08:00
2026-01-02 14:59:34 +08:00
2026-01-02 14:59:34 +08:00
2025-12-27 20:16:09 +08:00

Fig Language - A Modern Scripting Language

The repository has been migrated from github! No more updates. New repository: Fig

简体中文

Fig is a statically-typed, expression-oriented programming language designed for clarity, safety, and modern development practices. With features inspired by Go, Rust, and JavaScript, Fig aims to provide a productive development experience while maintaining strong type safety.

Features

🚀 Core Language Features

  • Static typing with type inference - Strong typing with minimal annotations
  • Modern control flow - Full for loop support with proper scoping
  • First-class functions - Lambda expressions and closures
  • Rich data structures - Structs, lists, maps, and tuples
  • Memory safety - No null pointer exceptions, automatic memory management

🔧 Technical Highlights

  • Three-level scoping for loops - Proper variable isolation in iterations
  • Smart semicolon handling - Flexible statement termination with RAII guards
  • Comprehensive error handling - Detailed error messages with source locations
  • Clean C++ implementation - Modern C++23 with RAII and smart pointers

🔧 Install

Installation

Prerequisites

Xmake version 3.0.0 or higher must be installed on your system.

Build Instructions

  1. Clone the repository:
git clone https://github.com/PuqiAR/Fig.git
  1. Navigate to the project directory:
cd Fig
  1. Build the project:
xmake build Fig
  1. Run the program:
xmake run Fig [file]

Replace [file] with the path to your input file.

📁 Project Structure

. ├── ExampleCodes # Example programs & performance tests │ └── SpeedTest # Performance benchmark samples ├── LICENSE # Project license ├── Logo # Project logo assets ├── README.md # English README ├── README_ZH-CN.md # Chinese README ├── compile_flags.txt # Compiler flags helper ├── fig-vscode # VSCode extension project │ ├── node_modules # Extension dependencies │ ├── out # Built extension output │ ├── src # Extension source code │ └── syntaxes # Syntax highlighting definition ├── src # Core Fig language source │ ├── Ast # AST definitions │ ├── Context # Runtime context │ ├── Core # Core utilities (UTF8/string/etc.) │ ├── Error # Error handling system │ ├── Evaluator # Interpreter / evaluator │ ├── Lexer # Lexical analyzer │ ├── Module # Modules and builtins │ ├── Parser # Parser │ ├── Token # Token definitions │ ├── Utils # Utilities & helper headers │ └── Value # Runtime type/value system ├── test.fig # Test script └── xmake.lua # Xmake build config

Language Philosophy

Fig is designed around several core principles:

Clarity over cleverness - Code should be readable first

Safety by default - Prevent common errors at compile time

Modern ergonomics - Developer experience matters

Gradual learning - Simple to start, powerful when needed
Description
The Fig Programming Language
Readme MIT 1.6 MiB
Languages
C++ 99.6%
Lua 0.1%
TypeScript 0.1%
JavaScript 0.1%