diff --git a/pycparserext/ext_c_parser.py b/pycparserext/ext_c_parser.py
index b59d98e..7611ce1 100644
--- a/pycparserext/ext_c_parser.py
+++ b/pycparserext/ext_c_parser.py
@@ -169,6 +169,12 @@ class FuncDeclExt(c_ast.Node):
             nodelist.append(("asm", self.asm))
         return tuple(nodelist)
 
+    def __iter__(self):
+        if self.args is not None:
+            yield self.args
+        if self.type is not None:
+            yield self.type
+
     attr_names = ()
 
 # }}}

Cannot traverse nodes using NodeVisitor, FuncDeclExt is not iterable
Using `GnuCParser()` and subclassing `c_ast.NodeVisitor`, I cannot traverse the nodes as in the FuncDefs example in https://github.com/eliben/pycparser/blob/master/examples/func_defs.py

It results in the following error:
```
Traceback (most recent call last):
  [...]
  File "main_script.py", line 77, in verify
    FuncDefVisitor().visit(self.ast)
  File "/path/venv/lib/python3.6/site-packages/pycparser/c_ast.py", line 158, in visit
    return visitor(node)
  File "/path/venv/lib/python3.6/site-packages/pycparser/c_ast.py", line 165, in generic_visit
    self.visit(c)
  File "/path/venv/lib/python3.6/site-packages/pycparser/c_ast.py", line 158, in visit
    return visitor(node)
  File "/path/venv/lib/python3.6/site-packages/pycparser/c_ast.py", line 165, in generic_visit
    self.visit(c)
  File "/path/venv/lib/python3.6/site-packages/pycparser/c_ast.py", line 158, in visit
    return visitor(node)
  File "/path/venv/lib/python3.6/site-packages/pycparser/c_ast.py", line 164, in generic_visit
    for c in node:
TypeError: 'FuncDeclExt' object is not iterable
```
diff --git a/test/test_pycparserext.py b/test/test_pycparserext.py
index e93eb78..d6e9666 100644
--- a/test/test_pycparserext.py
+++ b/test/test_pycparserext.py
@@ -375,6 +375,24 @@ def test_double_pointer():
     assert gen.visit(ast).find("func_with_p2pp(const char *, Error **)") != -1
 
 
+def test_node_visitor():
+    from pycparser.c_ast import NodeVisitor
+
+    class FuncDeclVisitor(NodeVisitor):
+        def visit_FuncDecl(self, node):
+            node.show()
+
+    src = """
+    void func1();
+    int func2(int param1);
+    """
+    import pycparserext.ext_c_parser as ext_c_parser
+
+    parser = ext_c_parser.GnuCParser()
+    ast = parser.parse(src)
+    FuncDeclVisitor().visit(ast)
+
+
 if __name__ == "__main__":
     import sys
     if len(sys.argv) > 1:

pip install -e .
parse_log_pytest
requirements.txt
pytest
apt-get update apt-get install -y gcc
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
exceptiongroup==1.2.2
iniconfig==2.1.0
packaging==24.2
pluggy==1.5.0
ply==3.11
pycparser==2.22
-e git+https://github.com/inducer/pycparserext.git@9e66047b3d3b3c50abe212a319ba42663b796f58#egg=pycparserext
pytest==8.3.5
tomli==2.2.1

name: pycparserext
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - exceptiongroup==1.2.2
      - iniconfig==2.1.0
      - packaging==24.2
      - pluggy==1.5.0
      - ply==3.11
      - pycparser==2.22
      - pytest==8.3.5
      - tomli==2.2.1
prefix: /opt/conda/envs/pycparserext

test/test_pycparserext.py::test_node_visitor
test/test_pycparserext.py::test_lvalue_gnu_statement_expression
test/test_pycparserext.py::test_asm_volatile_1 test/test_pycparserext.py::test_asm_volatile_2 test/test_pycparserext.py::test_asm_volatile_3 test/test_pycparserext.py::test_funky_header_code test/test_pycparserext.py::test_funky_header_code_2 test/test_pycparserext.py::test_funky_header_code_3 test/test_pycparserext.py::test_funky_header_code_4 test/test_pycparserext.py::test_funky_header_code_5 test/test_pycparserext.py::test_opencl[int] test/test_pycparserext.py::test_opencl[uint] test/test_pycparserext.py::test_array_attributes test/test_pycparserext.py::test_func_decl_attribute test/test_pycparserext.py::test_func_ret_ptr_decl_attribute test/test_pycparserext.py::test_array_ptr_decl_attribute test/test_pycparserext.py::test_gnu_statement_expression test/test_pycparserext.py::test_empty_gnu_statement_expression test/test_pycparserext.py::test_empty_struct_declaration test/test_pycparserext.py::test_nesty_c_declarator test/test_pycparserext.py::test_const_ptr_func_arg test/test_pycparserext.py::test_pointer_reproduction test/test_pycparserext.py::test_no_added_attr test/test_pycparserext.py::test_double_pointer
pycparserext/ext_c_parser.py
pycparserext/ext_c_parser.py