与 TransPyV/includes 侧(c27ebc1)逐点对齐:`struct X:` / `struct X(Base):` 脱糖为 `@t.NoVTable class X(t.CStruct):`,禁止 virtual/novirtual 修饰、禁止类体内 def。 - lib/vast/Parser.py:软关键字分派(语句起始 + 后随标识符;`struct = 5` 不受影响)、 _ParseStructDef(复用 _ParseClassDef 全路径 + 合成 @t.NoVTable + 追加 t.CStruct 标记基类 + 类体禁 def 校验)、_StructSyntaxError 报文、_ParseVirtualModified 显式拦截 `virtual/novirtual struct`;@deco 前缀同样支持。 - lib/vast_c/vast_c.c:同构实现(ParseStatement / ParseDecorated 分派、 ParseStructDef、ParseVirtualModified 拦截)。 - lib/vast_c/_parser.pyd:按 README §4.3 的命令重建(gcc 15.2.0)。 验证(两条路径逐一对照):bases=[t.CStruct] / [Base, t.CStruct]、 decos=[t.NoVTable];`virtual struct` 与 `struct 内 def` 均 fail-fast; `struct = 5` 仍解析为普通赋值。
212 KiB
212 KiB