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 文本编辑器

Download history 308/week @ 2024-05-07 297/week @ 2024-05-14 128/week @ 2024-05-21 158/week @ 2024-05-28 6/week @ 2024-06-04 236/week @ 2024-06-18 385/week @ 2024-06-25 450/week @ 2024-07-02 591/week @ 2024-07-09 809/week @ 2024-07-16 420/week @ 2024-07-23 166/week @ 2024-07-30 874/week @ 2024-08-06

每月下载量 2,271

Apache-2.0

2MB
88K SLoC

C 87K SLoC Scheme 301 SLoC JavaScript 147 SLoC Rust 31 SLoC // 0.2% comments

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