142 lines
2.8 KiB
Markdown
142 lines
2.8 KiB
Markdown
# CNNL Language Support for Visual Studio Code
|
||
|
||
CNNL (Constitutional Neural Network Language) 语言支持插件,为NAC公链宪法语言提供完整的IDE支持。
|
||
|
||
## 功能特性
|
||
|
||
### 语法高亮
|
||
- ✅ 关键字高亮(clause, level, predicate, obligation等)
|
||
- ✅ 注释支持(单行//和多行/* */)
|
||
- ✅ 字符串和数字高亮
|
||
- ✅ 常量识别(大写标识符)
|
||
- ✅ 函数名识别
|
||
|
||
### 代码编辑
|
||
- ✅ 自动括号匹配
|
||
- ✅ 自动缩进
|
||
- ✅ 代码折叠
|
||
- ✅ 注释快捷键
|
||
|
||
### 编译和验证
|
||
- ✅ 一键编译CNNL文件
|
||
- ✅ 形式化验证支持
|
||
- ✅ 编译输出显示
|
||
- ✅ 错误提示
|
||
|
||
## 安装
|
||
|
||
### 前置要求
|
||
|
||
1. Visual Studio Code 1.80.0 或更高版本
|
||
2. CNNL编译器已安装并在PATH中
|
||
|
||
### 安装步骤
|
||
|
||
1. 下载`.vsix`文件
|
||
2. 在VSCode中打开命令面板(Ctrl+Shift+P)
|
||
3. 输入"Extensions: Install from VSIX..."
|
||
4. 选择下载的`.vsix`文件
|
||
|
||
## 使用方法
|
||
|
||
### 编译CNNL文件
|
||
|
||
1. 打开`.cnnl`文件
|
||
2. 按`Ctrl+Shift+P`打开命令面板
|
||
3. 输入"CNNL: Compile File"
|
||
4. 查看输出面板中的编译结果
|
||
|
||
### 验证宪法约束
|
||
|
||
1. 打开`.cnnl`文件
|
||
2. 按`Ctrl+Shift+P`打开命令面板
|
||
3. 输入"CNNL: Verify Constitutional Constraints"
|
||
4. 查看输出面板中的验证结果
|
||
|
||
## 配置
|
||
|
||
在VSCode设置中可以配置以下选项:
|
||
|
||
### `cnnl.compilerPath`
|
||
- 类型: `string`
|
||
- 默认值: `"cnnl"`
|
||
- 描述: CNNL编译器可执行文件的路径
|
||
|
||
### `cnnl.enableVerification`
|
||
- 类型: `boolean`
|
||
- 默认值: `true`
|
||
- 描述: 是否启用形式化验证
|
||
|
||
## 语法示例
|
||
|
||
```cnnl
|
||
// XTZH黄金储备覆盖率底线
|
||
clause XTZH_GOLD_COVERAGE {
|
||
level: eternal
|
||
title: "黄金储备覆盖率底线"
|
||
|
||
// 定义参数
|
||
parameter XTZH_GOLD_COVERAGE_MIN: f64 = 1.25
|
||
|
||
// 定义谓词
|
||
predicate check_coverage(coverage: f64) -> bool {
|
||
coverage >= XTZH_GOLD_COVERAGE_MIN
|
||
}
|
||
|
||
// 定义义务
|
||
obligation verify_coverage {
|
||
type: continuous
|
||
frequency: "every block"
|
||
enforcer: ai_enforcer
|
||
}
|
||
}
|
||
```
|
||
|
||
## 支持的关键字
|
||
|
||
### 控制关键字
|
||
- `clause` - 定义宪法条款
|
||
- `level` - 条款层级
|
||
- `title` - 条款标题
|
||
- `predicate` - 谓词定义
|
||
- `parameter` - 参数定义
|
||
- `obligation` - 义务定义
|
||
- `depends_on` - 依赖关系
|
||
|
||
### 层级关键字
|
||
- `eternal` - 永恒层
|
||
- `strategic` - 战略层
|
||
- `operational` - 操作层
|
||
|
||
### 义务类型
|
||
- `continuous` - 持续义务
|
||
- `periodic` - 周期义务
|
||
- `manual` - 手动义务
|
||
- `ai_enforcer` - AI执行器
|
||
|
||
## 已知问题
|
||
|
||
- 暂不支持代码自动补全
|
||
- 暂不支持实时错误检查
|
||
|
||
## 更新日志
|
||
|
||
### 1.0.0 (2026-02-14)
|
||
- ✅ 初始版本发布
|
||
- ✅ 语法高亮支持
|
||
- ✅ 编译命令支持
|
||
- ✅ 验证命令支持
|
||
|
||
## 许可证
|
||
|
||
MIT License
|
||
|
||
## 贡献
|
||
|
||
欢迎提交Issue和Pull Request!
|
||
|
||
## 联系方式
|
||
|
||
- 项目主页: NAC公链
|
||
- 技术支持: NAC技术团队
|