[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursio
From: |
Mattias Engdegård |
Subject: |
bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit |
Date: |
Wed, 23 Nov 2022 21:01:49 +0100 |
23 nov. 2022 kl. 19.46 skrev Yuan Fu <casouri@gmail.com>:
> It shouldn’t, but tree-sitter thinks some closing brackets are erroneous and
> skips them when parsing (it skips erroneous tokens in the hope to parse the
> rest of the file despite local errors). So a 10k wide tree becomes 10k tall.
>
> We can submit a bug repot to tree-sitter-c (“maybe don’t skip closing
> brackets even there is error, or somthing”), but that’s another story.
Thanks for the explanation. In this case it seems that it's the #line directive
that throws a spanner in the works. You probably already discovered that, but
for the record, here is a cut-down example:
static hf_register_info hf[] = {
#line 1 "./asn1/rrc/packet-rrc-hfarr.c"
{ &hf_rrc_DL_DCCH_Message_PDU,
{ "DL-DCCH-Message", "rrc.DL_DCCH_Message_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_rrc_cellIdentity_c_id,
{"Cell Identifier", "rrc.cellIdentity.c_id",
FT_UINT32, BASE_DEC, NULL, 0,
"The Cell Identifier (C-Id) part of the Cell Identity", HFILL }}
};
Note how the warning colour of the curly brackets vanishes once the #line line
is removed.
Even if this snag is corrected, there will always be cases where preprocessor
use causes trouble of this or a similar kind. It seems quite convincing that we
should void C recursion in favour of explicit stacks where possible.
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, (continued)
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Eli Zaretskii, 2022/11/21
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Eli Zaretskii, 2022/11/21
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Mattias Engdegård, 2022/11/21
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Eli Zaretskii, 2022/11/21
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Mattias Engdegård, 2022/11/21
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Yuan Fu, 2022/11/21
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Mattias Engdegård, 2022/11/22
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Yuan Fu, 2022/11/22
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Mattias Engdegård, 2022/11/23
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Yuan Fu, 2022/11/23
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit,
Mattias Engdegård <=
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Yuan Fu, 2022/11/24
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Eli Zaretskii, 2022/11/24
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Mattias Engdegård, 2022/11/24
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Yuan Fu, 2022/11/24
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Eli Zaretskii, 2022/11/24
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Yuan Fu, 2022/11/26
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Mattias Engdegård, 2022/11/21
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Yuan Fu, 2022/11/21
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Eli Zaretskii, 2022/11/21
- bug#59426: 29.0.50; [tree-sitter] Some functions exceed maximum recursion limit, Stefan Kangas, 2022/11/21