From c8e49a60ede725c0d2035b59eb06c0e4b51ee6fc Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Sun, 18 Oct 2026 19:26:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(vast):=20C=20=E8=A7=A3=E6=9E=90=E5=99=A8?= =?UTF-8?q?=E8=A1=A5=E9=BD=90=20T=20|=20None=20=E4=B8=8E=E8=AF=AD=E5=8F=A5?= =?UTF-8?q?=E7=BA=A7=E5=A3=B0=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 支持 T | None、typedef/define/static/export/extern/inline 变量形态;C 解析失败不再回退纯 Python,直接 fail-fast;同步重建 _parser.pyd。 --- lib/vast/__init__.py | 8 +- lib/vast_c/_parser.pyd | Bin 230338 -> 236481 bytes lib/vast_c/vast_c.c | 286 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 286 insertions(+), 8 deletions(-) diff --git a/lib/vast/__init__.py b/lib/vast/__init__.py index c48799b..c92a8a3 100644 --- a/lib/vast/__init__.py +++ b/lib/vast/__init__.py @@ -183,13 +183,7 @@ def parse(source: str, filename: str = '', mode: str = 'exec', *, try: return _VAST_C_PARSE(source, mode) except SyntaxError as _exc: - if _os.environ.get('VAST_USE_C') == 'strict': - raise _HumanizeSyntaxError(_exc, source, filename) from None - _ReportCFallback(filename, _exc) - except Exception as _exc: - if _os.environ.get('VAST_USE_C') == 'strict': - raise - _ReportCFallback(filename, _exc) + raise _HumanizeSyntaxError(_exc, source, filename) from None try: return _ParsePure(source, mode) except SyntaxError as _exc: diff --git a/lib/vast_c/_parser.pyd b/lib/vast_c/_parser.pyd index 0af9c167ef80cf09512f75045045f1d63c2c7a8b..0813728c30e0ef8ea596f8ad11615a0ae4135947 100644 GIT binary patch delta 74439 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 IV2Tz00XOUqr~m)} delta 69062 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 Q;^U1bzoPq_O(p#Q0}*_yo&W#< diff --git a/lib/vast_c/vast_c.c b/lib/vast_c/vast_c.c index 7be6cbf..9c35a22 100644 --- a/lib/vast_c/vast_c.c +++ b/lib/vast_c/vast_c.c @@ -2992,6 +2992,93 @@ static void ApplyTypeModifiers(PyObject *Node, PyObject *Markers, PyObject *Attr } } +/* 把语句级修饰词追加到注解节点的 Markers(保序去重,对齐 Parser._AddTypeMarkers)。 */ +static void AddTypeMarkers(PyObject *Node, const char *Marker) { + if (Node == NULL || Node == Py_None) { + return; + } + if (!PyObject_HasAttrString((PyObject *)Py_TYPE(Node), "Markers")) { + return; + } + PyObject *Existing = PyObject_GetAttrString(Node, "Markers"); + PyObject *Items = NULL; + if (Existing == NULL) { + PyErr_Clear(); + Items = PyTuple_New(0); + } else { + Items = PySequence_Tuple(Existing); + Py_DECREF(Existing); + } + if (Items == NULL) { + PyErr_Clear(); + return; + } + PyObject *MarkerStr = PyUnicode_FromString(Marker); + if (MarkerStr == NULL) { + Py_DECREF(Items); + PyErr_Clear(); + return; + } + int Hit = PySequence_Contains(Items, MarkerStr); + if (Hit != 0) { + if (Hit < 0) { + PyErr_Clear(); + } + Py_DECREF(Items); + Py_DECREF(MarkerStr); + return; + } + Py_ssize_t N = PyTuple_GET_SIZE(Items); + PyObject *Merged = PyTuple_New(N + 1); + if (Merged == NULL) { + Py_DECREF(Items); + Py_DECREF(MarkerStr); + PyErr_Clear(); + return; + } + for (Py_ssize_t I = 0; I < N; I++) { + PyObject *Item = PyTuple_GET_ITEM(Items, I); + Py_INCREF(Item); + PyTuple_SET_ITEM(Merged, I, Item); + } + PyTuple_SET_ITEM(Merged, N, MarkerStr); /* steals MarkerStr */ + if (PyObject_SetAttrString(Node, "Markers", Merged) < 0) { + PyErr_Clear(); + } + Py_DECREF(Merged); + Py_DECREF(Items); +} + +/* 注解联合中的 None 字面量:Constant(None) 或 Name('None')。 */ +static int IsNoneLiteralNode(PyObject *Node) { + if (Node == NULL || Node == Py_None) { + return 0; + } + if (NodeIsConstant(Node)) { + PyObject *V = PyObject_GetAttrString(Node, "value"); + int Hit = (V == Py_None); + if (V == NULL) { + PyErr_Clear(); + } else { + Py_DECREF(V); + } + return Hit; + } + if (NodeIs(Node, "Name")) { + PyObject *Id = PyObject_GetAttrString(Node, "id"); + int Hit = 0; + if (Id == NULL) { + PyErr_Clear(); + } else { + Hit = PyUnicode_Check(Id) + && PyUnicode_CompareWithASCIIString(Id, "None") == 0; + Py_DECREF(Id); + } + return Hit; + } + return 0; +} + /* 类型注解入口:置注解模式标志(对齐 Python ExprParser._ParseTypeAnnotation)。 * * 值引用参数注解(仅形参位有效,对齐纯 Python 端): @@ -3039,6 +3126,42 @@ static PyObject *ParseTypeAnnotation(Parser *P) { Py_XDECREF(Attributes); return NULL; } + /* `T | None` / `None | T` 等价于 T;两侧同为 None 或均非 None 仍报错。 + * 对齐 Pure Python ExprParser._ParseTypeAnnotation 的联合处理。 */ + if (NodeIs(Node, "BinOp")) { + PyObject *Op = PyObject_GetAttrString(Node, "op"); + int IsBitOr = (Op != NULL && NodeIs(Op, "BitOr")); + Py_XDECREF(Op); + if (IsBitOr) { + PyObject *Left = PyObject_GetAttrString(Node, "left"); + PyObject *Right = PyObject_GetAttrString(Node, "right"); + if (Left == NULL || Right == NULL) { + PyErr_Clear(); + Py_XDECREF(Left); + Py_XDECREF(Right); + } else { + int LeftNone = IsNoneLiteralNode(Left); + int RightNone = IsNoneLiteralNode(Right); + if (LeftNone != RightNone) { + PyObject *Keep = LeftNone ? Right : Left; + Py_INCREF(Keep); + Py_DECREF(Node); + Node = Keep; + } else { + SyntaxErrorAt(P, PeekTok(P, 0), + "unsupported type union 'T1 | T2': type annotation must be a single type"); + Py_DECREF(Left); + Py_DECREF(Right); + Py_DECREF(Node); + Py_XDECREF(Markers); + Py_XDECREF(Attributes); + return NULL; + } + Py_DECREF(Left); + Py_DECREF(Right); + } + } + } if (RefTemp != 0) { PyObject *Wrap = MakeTypeWrapperSubscript( P, RefTemp == 2 ? "CTempRef" : "CRef", Node, RefTok); @@ -4800,6 +4923,10 @@ static PyObject *ParseFunctionDef(Parser *P, int IsAsync, PyObject *Decorators); static PyObject *ParseClassDef(Parser *P, PyObject *Decorators); static PyObject *ParseExprList(Parser *P); static PyObject *ParseExternDef(Parser *P, int IsExport, PyObject *Decorators); +static int IsStorageVarStart(Parser *P); +static PyObject *ParseStorageVar(Parser *P, const char *Marker); +static PyObject *ParseDefineVar(Parser *P); +static PyObject *ParseTypedefVar(Parser *P); static PyObject *TryParseAnnAssign(Parser *P); static PyObject *ParseExprStmt(Parser *P); static PyObject *ParseImport(Parser *P); @@ -4863,14 +4990,32 @@ static PyObject *ParseStatement(Parser *P) { Token *T = PeekTok(P, 0); if (T->Kind == TK_NAME) { if (TokIsName(T, "extern")) { + if (IsStorageVarStart(P)) { + return ParseStorageVar(P, "extern"); + } return ParseExternDef(P, 0, NULL); } if (TokIsName(T, "export")) { + if (IsStorageVarStart(P)) { + return ParseStorageVar(P, "export"); + } return ParseExternDef(P, 1, NULL); } + if (TokIsName(T, "static") && IsStorageVarStart(P)) { + return ParseStorageVar(P, "static"); + } + if (TokIsName(T, "inline") && IsStorageVarStart(P)) { + return ParseStorageVar(P, "inline"); + } if (TokIsName(T, "define") && PeekTok(P, 1)->Kind == TK_NAME) { + if (IsStorageVarStart(P)) { + return ParseDefineVar(P); + } return ParseFunctionDef(P, 0, NULL); } + if (TokIsName(T, "typedef") && PeekTok(P, 1)->Kind == TK_NAME) { + return ParseTypedefVar(P); + } if (TokIsName(T, "virtual") || TokIsName(T, "novirtual")) { return ParseVirtualModified(P, NULL); } @@ -5048,7 +5193,7 @@ static PyObject *ParseSimpleStmt(Parser *P) { if (Ann != NULL) { return Ann; } - if (PyErr_Occurred()) { + if (P->Error || PyErr_Occurred()) { return NULL; } PyObject *Expr = ParseExprList(P); @@ -5175,6 +5320,145 @@ static int IsCTypedefAnnotation(PyObject *Ann) { return 0; } +/* 语句级变量声明判据:`修饰词 名字 :` 或 `修饰词 名字 =` + * (对齐 vast Parser._IsStorageVarStart)。 */ +static int IsStorageVarStart(Parser *P) { + if (PeekTok(P, 1)->Kind != TK_NAME) { + return 0; + } + Token *Next = PeekTok(P, 2); + return Next->Kind == TK_OP && (TokIsOp(Next, ":") || TokIsOp(Next, "=")); +} + +/* 构造 AnnAssign(target, annotation, value, simple=1) 并设置位置。 */ +static PyObject *MakeAnnAssignSimple(Parser *P, Token *Start, Token *NameTok, + PyObject *Annotation, PyObject *Value) { + PyObject *Target = MakeNameNode(P, NameTok, "Store"); + if (Target == NULL) { + return NULL; + } + PyObject *Simple = PyLong_FromLong(1); + if (Simple == NULL) { + Py_DECREF(Target); + return NULL; + } + PyObject *Argv[4] = { Target, Annotation, Value ? Value : Py_None, Simple }; + PyObject *Node = NewNode(P, "AnnAssign", Argv, 4); + Py_DECREF(Simple); + Py_DECREF(Target); + if (Node != NULL) { + FixLoc(P, Node, Start); + } + return Node; +} + +/* `static|export|extern|inline 名字: 类型 [= 初值]` → AnnAssign(extern 禁止初值)。 + * 对齐 vast Parser._ParseStorageVar。 */ +static PyObject *ParseStorageVar(Parser *P, const char *Marker) { + Token *Start = NextTok(P); /* 修饰词 */ + Token *NameTok = ExpectName(P, NULL); + if (NameTok == NULL) { + return NULL; + } + if (!AtOp(P, ":")) { + SyntaxErrorAt(P, PeekTok(P, 0), + "storage variable declaration requires a type annotation"); + return NULL; + } + NextTok(P); /* ':' */ + PyObject *Annotation = ParseTypeAnnotation(P); + if (Annotation == NULL) { + return NULL; + } + PyObject *Value = NULL; + if (AtOp(P, "=")) { + if (strcmp(Marker, "extern") == 0) { + SyntaxErrorAt(P, PeekTok(P, 0), + "extern variable declaration cannot have an initializer"); + Py_DECREF(Annotation); + return NULL; + } + NextTok(P); /* '=' */ + Value = ParseExpr(P); + if (Value == NULL) { + Py_DECREF(Annotation); + return NULL; + } + } + AddTypeMarkers(Annotation, Marker); + PyObject *Node = MakeAnnAssignSimple(P, Start, NameTok, Annotation, Value); + Py_DECREF(Annotation); + Py_XDECREF(Value); + return Node; +} + +/* `define 名字[: 类型] = 值` → AnnAssign;未标注类型时注解占位 Name('CDefine')。 + * 对齐 vast Parser._ParseDefineVar。 */ +static PyObject *ParseDefineVar(Parser *P) { + Token *Start = NextTok(P); /* 'define' */ + Token *NameTok = ExpectName(P, NULL); + if (NameTok == NULL) { + return NULL; + } + PyObject *Annotation = NULL; + if (AtOp(P, ":")) { + NextTok(P); + Annotation = ParseTypeAnnotation(P); + if (Annotation == NULL) { + return NULL; + } + } + if (!AtOp(P, "=")) { + SyntaxErrorAt(P, PeekTok(P, 0), + "define constant declaration requires an initializer"); + Py_XDECREF(Annotation); + return NULL; + } + NextTok(P); /* '=' */ + PyObject *Value = ParseExpr(P); + if (Value == NULL) { + Py_XDECREF(Annotation); + return NULL; + } + if (Annotation == NULL) { + Annotation = MakeTAttrNode(P, "CDefine"); + if (Annotation == NULL) { + Py_DECREF(Value); + return NULL; + } + FixLoc(P, Annotation, Start); + } + AddTypeMarkers(Annotation, "define"); + PyObject *Node = MakeAnnAssignSimple(P, Start, NameTok, Annotation, Value); + Py_DECREF(Annotation); + Py_DECREF(Value); + return Node; +} + +/* `typedef 名字 = 类型` → AnnAssign(annotation 与 value 同一节点)。 + * 对齐 vast Parser._ParseTypedefVar。 */ +static PyObject *ParseTypedefVar(Parser *P) { + Token *Start = NextTok(P); /* 'typedef' */ + Token *NameTok = ExpectName(P, NULL); + if (NameTok == NULL) { + return NULL; + } + if (!AtOp(P, "=")) { + SyntaxErrorAt(P, PeekTok(P, 0), + "typedef syntax error: expected `typedef NAME = type`"); + return NULL; + } + NextTok(P); /* '=' */ + PyObject *TypeNode = ParseTypeAnnotation(P); + if (TypeNode == NULL) { + return NULL; + } + AddTypeMarkers(TypeNode, "typedef"); + PyObject *Node = MakeAnnAssignSimple(P, Start, NameTok, TypeNode, TypeNode); + Py_DECREF(TypeNode); + return Node; +} + /* 尝试解析带注解赋值(对齐 vast _TryParseAnnAssign) */ static PyObject *TryParseAnnAssign(Parser *P) { Token *Start = PeekTok(P, 0);