42 个版本 (稳定)
新 3.9.2 | 2024 年 8 月 16 日 |
---|---|
3.1.2 | 2024 年 7 月 26 日 |
2.6.1 | 2024 年 7 月 22 日 |
1.2.1 | 2024 年 7 月 10 日 |
0.1.0 | 2024 年 7 月 3 日 |
#61 in 文本编辑器
每月下载量 2,271
2MB
88K SLoC
tree-sitter-idl
OMG IDL 4.2(带 XTypes 扩展)语法为 tree-sitter.
当前状态
IDL v4.2
- 7.3 预处理(部分)
- 7.4.1 构造块核心数据类型
- 7.4.2 构造块 Any
- 7.4.3 构造块接口 – 基础
- 7.4.4 构造块接口 – 完整
- 7.4.5 构造块值类型
- 7.4.6 构造块 CORBA 特定 – 接口
- 7.4.7 构造块 CORBA 特定 – 值类型
- 7.4.8 构造块组件 – 基础
- 7.4.9 构造块组件 – 家
- 7.4.10 构造块 CCM 特定
- 7.4.11 构造块组件 – 端口和连接器
- 7.4.12 构造块模板模块
- 7.4.13 构造块扩展数据类型
- 7.4.14 构造块匿名类型
- 7.4.15 构造块注解
- 构造块之间的关系
- 8 标准化注解
DDS-XTypes v1.3
- 7.3.1.2.3 替代注解语法
- 7.3.1.2.1 内置注解
DDS-RPC v1.0
- 7.3.1 在 IDL 中定义服务
- 7.5.1.2.1 增强服务映射的注解
- 7.4.2.2 使用注解指定主题名称
extends
允许合并案例
union A switch(long) {
case 1:
case 2: //< allow
case 3:
u8 a;
};
允许在模板参数中使用简单类型规范
module MyTemplate <typename T, struct S, long m> {
// ^ allow
};
允许 custom
属性出现在 value_box_def 中
custom valuetype A a; // value_box_def
// ^ extend grammar
允许省略 param_attribute
interface A {
void f(uint8 b);
};
允许 Rust 风格的八进制数
const u8 A = 0o3;
允许二进制数
const u8 A = 0b010101;
允许在 typedef_spec 中使用八进制
union A switch(octet) {};
// ^ allow
允许在枚举器最后使用逗号
enum A {
A,
// ^ allow
};
bitmask A {
@position(0) a,
// ^ allow
};
允许忽略 'name='
@DDSRequestTopic("RobotRequestTopic")
// ^ allow ignore `name=`
interface RobotControl {
void command(Command com);
};
依赖关系
~2.7–4MB
~71K SLoC