# hclang 中文文档

规范地址：https://npmcn.com/package/hclang/

版本：0\.42\.0
npm 元数据更新时间：2026-11-03T18:51:07.772Z
中文译文更新时间：2026-11-03T20:16:26.718Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/hclang
原文对照：https://npmcn.com/package/hclang/?lang=original
项目主页：https://github.com/TheSwanFactory/hclang#readme
源码仓库：https://github.com/TheSwanFactory/hclang

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：802 kB，101 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=24
- 运行依赖：1 个
- 首次发布：2017-03-05T15:42:09.444Z
- 最新版本发布：2026-11-03T18:51:07.431Z
- 已发布版本数：63（近 12 个月 47 个）

## 中文简介

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

## 安装

```sh
npm install hclang
```

也可以使用：`pnpm add hclang`、`yarn add hclang`、`bun add hclang`

## README

# Homoiconic C

[![JSR](https://jsr.io/badges/@swanfactory/hclang)](https://jsr.io/@swanfactory/hclang) [![JSR Score](https://jsr.io/badges/@swanfactory/hclang/score)](https://jsr.io/@swanfactory/hclang)

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

## 介绍

[Homoiconic C](https://theswanfactory.wordpress.com/2016/12/20/homoiconic-c-a-universal-language-for-code-and-data/) （HC）是用于代码和数据的单一通用语言。这个单子包含 第一个用TypeScript编写的HC解释器实现 在 [Deno](https://deno.land/)。

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

-   **[@swanfactory / hclang](https://jsr.io/@swanfactory/hclang)** -核心库 发布到JSR
-   **CLI** -交互式REPL和命令行工具
-   **MAML** - [_多用途抽象标记语言_](https://theswanfactory.wordpress.com/2016/11/08/introducing-maml-a-draft-proposal-for-html6/)， 一个非常简单的提议来取代web技术(HTML， CSS， JavaScript， SVG)和基于HC的单一格式
-   **网络** - Web组件和Fresh框架集成

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

## 快速启动

### 在网上试试

访问 [天鹅工厂HC游乐场](https://theswanfactory.github.io/hclang/) 直接在浏览器中尝试HC，无需安装。对于离线 使用,下载 [`hcweb.html` 来自最新版本](https://github.com/TheSwanFactory/hclang/releases/latest/download/hcweb.html) 然后在浏览器中打开它。

### 作为库使用

```bash
# Deno
deno add jsr:@swanfactory/hclang

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

然后在你的代码中：

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

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

看到 [库文件](https://jsr.io/@swanfactory/hclang/doc) 更多的 细节。

### 运行命令行

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

```bash
# 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
```

从资料来源:

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

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

### 运行测试

```bash
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](https://npmcn.com/package/hclang/hc/BitScheme.hc) 专门的脚本语言是什么 声明式解析、操作和生成二进制数据。它包括 可测试的可执行文档：

```bash
deno task test:bs
```

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

### 调试模式

打开详细调试输出：

```bash
export DEBUG=true
deno task hc
```

## 发展

### 设置

1.  克隆的 [GitHub库](https://github.com/TheSwanFactory/hclang.git)：
    
    ```bash
    git clone https://github.com/TheSwanFactory/hclang.git
    cd hclang
    ```
    
2.  安装 [Deno](https://github.com/denoland/deno)：
    
    ```bash
    # macOS
    brew install deno
    
    # Other platforms: see https://deno.land/
    ```
    
3.  (可选)安装 [未雨绸缪](https://pre-commit.com/) 用于自动编码 质量检查:
    
    ```bash
    # macOS
    brew install pre-commit
    
    # Other platforms: pip install pre-commit
    ```
    
    显式地安装预提交钩子 `deno task setup`。
    
4.  运行测试:
    
    ```bash
    deno task test
    ```
    
    这会检查格式和lint，而不固定源，然后运行测试 套件。使用 `deno task fix` 格式化和应用lint修复。
    
    `deno task bundle:check` 检查捆绑的HC源而不重写它们； 后编辑 `hc/*.hc`，用 `deno task bundle:embed`。
    

### 项目结构

这是一个Deno工作空间（monorepo），包含以下包：

```text
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 /](https://npmcn.com/package/hclang/vscode-extension/)． 它提供了全面的语法 突出显示基于完整语法的所有HC语言功能 规范。

**安装:**

```bash
# 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](https://github.com/TheSwanFactory/language-hclang) 存储库 现在已弃用，取而代之的是这个集成扩展。

## 出版

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

1.  确保所有测试通过：
    
    ```bash
    deno task test
    ```
    
2.  到处更新版本：
    
    ```bash
    deno task bump
    ```
    
    这个更新 `deno.json`， `lib/version.ts`，以及所有工作空间包 版本，然后提交更改。
    
3.  将PR合并到 `master` 分支。
    
    GitHub Actions比较 `deno.json` 使用之前的版本 合并。当版本更改时，它将库发布到 [JSR](https://jsr.io/@swanfactory/hclang)，公布了 `hclang` Tarball锻炼到 `npx`，并创建一个GitHub Release标记为 `v<version>` 与生成的笔记。每个注册表都是独立检查的，所以 重新运行恢复部分发布，而不是重新尝试不完整的版本 已经不可改变的。没有版本冲突的合并不会发布或创建 释放;无需手动标记。
    
    经过测试的web版本也部署到GitHub Pages上。CI验证live 版本并在部署后在浏览器中评估HC；每日可用性 Workflow在发布之间检查公共演示。看到 [Web发布设置](https://npmcn.com/package/hclang/web/README.md#how-the-release-artifact-is-built)。
    
    NPM发布运行在受保护的 `npm-publish` GitHub环境下使用的 公众信赖的出版商 `hclang` 包中。它的npm设置必须 授权 `TheSwanFactory/hclang` 库, `.github/workflows/deno.js.yml`, `npm-publish` 环境和直接 `npm publish` 在合并发布包之前。构建/PR作业没有OIDC 令牌的许可。
    

## 链接

-   **JSR包**： [@swanfactory / hclang](https://jsr.io/@swanfactory/hclang)
-   **文档**： [JSR文档](https://jsr.io/@swanfactory/hclang/doc)
-   **GitHub**： [TheSwanFactory / hclang](https://github.com/TheSwanFactory/hclang)
-   **博客**： [同质C介绍](https://theswanfactory.wordpress.com/2016/12/20/homoiconic-c-a-universal-language-for-code-and-data/)
-   **MAML**： [HTML6提议](https://theswanfactory.wordpress.com/2016/11/08/introducing-maml-a-draft-proposal-for-html6/)

## 许可证

麻省理工学院

## 常见问题

### 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 和提交记录判断。

