hclang

中文文档
0.42.0发布于 2026/11/04MIT构建来源已验证

同源的C命令行解释器和REPL

中文使用文档
文档目录17 节
  1. 介绍
  2. 快速启动
  3. 在网上试试
  4. 作为库使用
  5. 运行命令行
  6. 运行测试
  7. 用法
  8. 可用的任务
  9. BitScheme
  10. 调试模式
  11. 发展
  12. 设置
  13. 项目结构
  14. VS Code扩展
  15. 出版
  16. 链接
  17. 许可证

Homoiconic C

JSR JSR Score

一种用于代码和数据的通用语言。

介绍

Homoiconic C (HC)是用于代码和数据的单一通用语言。这个单子包含 第一个用TypeScript编写的HC解释器实现 在 Deno。

该存储库包括以下几个包:

  • @swanfactory / hclang -核心库 发布到JSR
  • CLI -交互式REPL和命令行工具
  • MAML - 多用途抽象标记语言, 一个非常简单的提议来取代web技术(HTML, CSS, JavaScript, SVG)和基于HC的单一格式
  • 网络 - Web组件和Fresh框架集成

HC还可以用于定义其他通用文件的易于解析的变体 格式(例如,HCSV, HCSON)。

快速启动

在网上试试

访问 天鹅工厂HC游乐场 直接在浏览器中尝试HC,无需安装。对于离线 使用,下载 hcweb.html 来自最新版本 然后在浏览器中打开它。

作为库使用

# Deno
deno add jsr:@swanfactory/hclang

# Node.js/npm
npx jsr add @swanfactory/hclang

然后在你的代码中:

import { execute } from "@swanfactory/hclang";

const result = execute("1 + 1");
console.log(result); // Output: '2'

看到 库文件 更多的 细节。

运行命令行

对于Node.js 24或更新版本,直接从npm运行当前的CLI。迪诺不是 要求:

# Interactive REPL
npx hclang@latest

# Evaluate a file
npx hclang@latest path/to/program.hc

# Verify executable examples in an HC document
npx hclang@latest path/to/examples.hc --testdoc

从资料来源:

git clone https://github.com/TheSwanFactory/hclang.git
cd hclang
deno task hc

这将启动交互式HC解释器。

运行测试

deno task test

用法

可用的任务

根 deno.json 提供了几个任务:

任务描述
deno task hc启动HC REPL
deno task setup安装预提交挂钩
deno task test检查格式和lint,然后运行所有测试
deno task fix格式化源代码并应用lint修复
deno task test:cli测试命令行包
deno task test:lib测试库包
deno task test:maml测试MAML包
deno task test:web测试网页包
deno task test:bs测试BitScheme文档
deno task test:doc测试HC文档示例
deno task build构建原生构件、npm构件和web构件
deno task build:npm中生成Node.js CLI包 dist/npm
deno task test:npm打包并对CLI包进行冒烟测试 npx

BitScheme

BitScheme 专门的脚本语言是什么 声明式解析、操作和生成二进制数据。它包括 可测试的可执行文档:

deno task test:bs

这将运行BitScheme解释器在它自己的文档中,执行embedded 代码示例和验证输出。

调试模式

打开详细调试输出:

export DEBUG=true
deno task hc

发展

设置

  1. 克隆的 GitHub库:

    git clone https://github.com/TheSwanFactory/hclang.git
    cd hclang
    
  2. 安装 Deno:

    # macOS
    brew install deno
    
    # Other platforms: see https://deno.land/
    
  3. (可选)安装 未雨绸缪 用于自动编码 质量检查:

    # macOS
    brew install pre-commit
    
    # Other platforms: pip install pre-commit
    

    显式地安装预提交钩子 deno task setup。

  4. 运行测试:

    deno task test
    

    这会检查格式和lint,而不固定源,然后运行测试 套件。使用 deno task fix 格式化和应用lint修复。

    deno task bundle:check 检查捆绑的HC源而不重写它们; 后编辑 hc/*.hc,用 deno task bundle:embed。

项目结构

这是一个Deno工作空间(monorepo),包含以下包:

hclang/
├── cli/          # HC command-line interface & REPL
├── lib/          # Core library (published to JSR)
├── maml/         # MAML markup language
├── web/          # Web components
├── doc/          # Documentation and papers
└── deno.json     # Workspace root configuration

VS Code扩展

针对HC的VS Code扩展现在包含在这个存储库中 vscode-extension /. 它提供了全面的语法 突出显示基于完整语法的所有HC语言功能 规范。

安装:

# Install from source
deno task vscode:install

# Or package for distribution
deno task vscode:package

# Or publish to marketplace
deno task vscode:publish

扩展可以识别 .hc 文件和提供:

  • 所有HC元素(数字、字符串、标识符、 运营商等)
  • 智能支架匹配 {}, [], ()
  • 看起来很对
  • 注释切换 #

注意: 旧的单机 language-hclang 存储库 现在已弃用,取而代之的是这个集成扩展。

出版

对于发布新版本的维护者:

  1. 确保所有测试通过:

    deno task test
    
  2. 到处更新版本:

    deno task bump
    

    这个更新 deno.json, lib/version.ts,以及所有工作空间包 版本,然后提交更改。

  3. 将PR合并到 master 分支。

    GitHub Actions比较 deno.json 使用之前的版本 合并。当版本更改时,它将库发布到 JSR,公布了 hclang Tarball锻炼到 npx,并创建一个GitHub Release标记为 v<version> 与生成的笔记。每个注册表都是独立检查的,所以 重新运行恢复部分发布,而不是重新尝试不完整的版本 已经不可改变的。没有版本冲突的合并不会发布或创建 释放;无需手动标记。

    经过测试的web版本也部署到GitHub Pages上。CI验证live 版本并在部署后在浏览器中评估HC;每日可用性 Workflow在发布之间检查公共演示。看到 Web发布设置。

    NPM发布运行在受保护的 npm-publish GitHub环境下使用的 公众信赖的出版商 hclang 包中。它的npm设置必须 授权 TheSwanFactory/hclang 库, .github/workflows/deno.js.yml, npm-publish 环境和直接 npm publish 在合并发布包之前。构建/PR作业没有OIDC 令牌的许可。

许可证

麻省理工学院

版本与发布记录

hclang 共发布 63 个版本,首次发布于 2017/03/05;过去 12 个月发布了 47 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.42.0latest2026/11/04今天
0.41.12026/11/03今天
0.41.02026/11/03今天
0.40.02026/11/03今天
0.39.02026/11/021 天前
0.38.22026/11/021 天前

关于 hclang 的常见问题

hclang 是什么?

同源的C命令行解释器和REPL

如何安装 hclang?

在项目目录运行 npm install hclang,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 hc,可以用 npx hc 直接运行。

hclang 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/hclang 是否存在。

hclang 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

hclang 可以商用吗?

hclang 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

hclang 还在维护吗?

最新版本 0.42.0 发布于 2026/11/04(今天);至今共发布 63 个版本,其中过去 12 个月发布了 47 个;首次发布于 2017/03/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。