From: Jochen Sprickerhof Date: Fri, 5 Nov 2021 09:13:14 +0100 Subject: Make parser not break on py_ssize_t_clean directive from SIP v6.4 --- sipgen/metasrc/lexer.l | 1 + sipgen/metasrc/parser.y | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/sipgen/metasrc/lexer.l b/sipgen/metasrc/lexer.l index a52b018..c328202 100644 --- a/sipgen/metasrc/lexer.l +++ b/sipgen/metasrc/lexer.l @@ -174,6 +174,7 @@ SIP_QOBJECT {return TK_QOBJECT;} timestamp {return TK_TIMESTAMP;} type {return TK_TYPE;} use_argument_names {return TK_USEARGNAMES;} +py_ssize_t_clean {return TK_PYSSIZETCLEAN;} use_limited_api {return TK_USELIMITEDAPI;} all_raise_py_exception {return TK_ALLRAISEPYEXC;} call_super_init {return TK_CALLSUPERINIT;} diff --git a/sipgen/metasrc/parser.y b/sipgen/metasrc/parser.y index 5623dca..2d98380 100644 --- a/sipgen/metasrc/parser.y +++ b/sipgen/metasrc/parser.y @@ -389,6 +389,7 @@ static scopedNameDef *fullyQualifiedName(scopedNameDef *snd); %token TK_TIMESTAMP %token TK_TYPE %token TK_USEARGNAMES +%token TK_PYSSIZETCLEAN %token TK_USELIMITEDAPI %token TK_ALLRAISEPYEXC %token TK_CALLSUPERINIT @@ -2012,6 +2013,18 @@ module_arg: TK_KWARGS '=' TK_STRING_VALUE { $$.call_super_init = -1; $$.def_error_handler = NULL; } + | TK_PYSSIZETCLEAN '=' bool_value { + $$.token = TK_PYSSIZETCLEAN; + + $$.c_module = FALSE; + $$.kwargs = defaultKwArgs; + $$.name = NULL; + $$.use_arg_names = FALSE; + $$.use_limited_api = FALSE; + $$.all_raise_py_exc = FALSE; + $$.call_super_init = -1; + $$.def_error_handler = NULL; + } | TK_USELIMITEDAPI '=' bool_value { $$.token = TK_USELIMITEDAPI;