Skip to content

Compiler Toolchain & CLI

nguyenhungtran18 edited this page Sep 8, 2026 · 2 revisions

TokenVector Compiler Toolchain & CLI

Tài liệu hướng dẫn cài đặt, cấu hình môi trường và sử dụng giao diện dòng lệnh (CLI) của trình biên dịch TokenVector.


1. System Requirements & Setup

Trình biên dịch TokenVector tận dụng trực tiếp công cụ ilasm.exe có sẵn trong hệ điều hành Windows để đóng gói nhị phân:

  • Hệ điều hành: Windows 7 / 10 / 11 (x64 / x86).
  • IL Assembler: Có sẵn trong .NET Framework (không cần cài thêm runtime cồng kềnh):
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ilasm.exe
    

Môi trường: Thêm đường dẫn chứa ilasm.exe và file nhị phân tkv.exe vào biến môi trường PATH hệ thống.

2. CLI Usage & Syntax

Cú pháp lệnh cơ bản:

tkv [options] <source.tkv>

🔹 Command-Line Flags & Options

Flag / Option | Mô tả chi tiết -- | -- -o, --output | Chỉ định đường dẫn và tên file .exe đầu ra. --emit-il | Giữ lại file trung gian .il (CIL Assembly) để inspect và debug. --target | Xác định hệ con PE: cli (Console App) hoặc gui (Windows Subsystem, không bật cửa sổ đen). --optimize | Bật chế độ tối ưu hóa độ sâu stack (.maxstack) và gộp nhãn lệnh. -v, --verbose | Hiển thị chi tiết từng bước trong pipeline (Lexer, Parser, Emitter, Assembler). --help | Hiển thị trợ giúp cú pháp và danh sách cờ lệnh.

3. Practical Build Workflows

🔹 Build ứng dụng dòng lệnh (Console Executable) Biên dịch file .tkv thông thường:

tkv -o app.exe main.tkv

🔹 Build ứng dụng giao diện (GUI Standalone) Khi xây dựng GUI sử dụng Win32 P/Invoke, sử dụng cờ --target gui để hệ điều hành Windows không mở cửa sổ console màu đen:

tkv --target gui -o tv-downloader-gui.exe downloader.tkv

🔹 Kiểm tra mã CIL Assembly trung gian Để xem mã CIL được sinh ra trước khi chạy ilasm.exe:

tkv --emit-il main.tkv

Lệnh này sẽ tạo ra file main.il dạng plain text để lập trình viên audit và debug.

4. Troubleshooting & Debugging

Lỗi ilasm.exe: command not found: Kiểm tra đường dẫn .NET Framework v4.0.30319 trong PATH của hệ thống.

Lỗi Invalid IL Opcode / Verification Error: Sử dụng cờ --emit-il, mở file .il bằng text editor để kiểm tra tính toàn vẹn của stack offset và kiểu dữ liệu tại nhãn bị lỗi.