mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-27 20:07:25 +00:00
b82388509c
* The patch is generated by diffing the last release with the sip Hg repo tip. Also have to run the build script to update configure.py. Signed-off-by: Philip Balister <philip@balister.org>
31332 lines
1023 KiB
Diff
31332 lines
1023 KiB
Diff
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/build.py sip/build.py
|
|
--- ./sip-4.19.12.orig/build.py 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/build.py 2018-09-18 17:52:23.269544132 -0400
|
|
@@ -0,0 +1,131 @@
|
|
+#!/usr/bin/python
|
|
+
|
|
+# Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com>
|
|
+#
|
|
+# This file is part of SIP.
|
|
+#
|
|
+# This copy of SIP is licensed for use under the terms of the SIP License
|
|
+# Agreement. See the file LICENSE for more details.
|
|
+#
|
|
+# This copy of SIP may also used under the terms of the GNU General Public
|
|
+# License v2 or v3 as published by the Free Software Foundation which can be
|
|
+# found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package.
|
|
+#
|
|
+# SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
+
|
|
+
|
|
+"""This script prepares a repository copy of SIP for building. It should be
|
|
+run from a Mercurial repository. It is not part of a packaged release.
|
|
+"""
|
|
+
|
|
+
|
|
+import os
|
|
+import sys
|
|
+
|
|
+
|
|
+# Dummy version numbers.
|
|
+RM_HEXVERSION = '04ffff'
|
|
+RM_RELEASE = '4.255.255'
|
|
+
|
|
+
|
|
+def _progress(message, quiet):
|
|
+ """ Show a progress message to the user. """
|
|
+
|
|
+ if not quiet:
|
|
+ sys.stdout.write(message)
|
|
+ sys.stdout.write("\n")
|
|
+
|
|
+
|
|
+def _patch(name, quiet):
|
|
+ """ Patch a file with version information. """
|
|
+
|
|
+ _progress("Creating %s" % name, quiet)
|
|
+
|
|
+ patched_f = open(name + '.in')
|
|
+ patched = patched_f.read()
|
|
+ patched_f.close()
|
|
+
|
|
+ patched = patched.replace('@RM_HEXVERSION@', RM_HEXVERSION)
|
|
+ patched = patched.replace('@RM_RELEASE@', RM_RELEASE)
|
|
+
|
|
+ patched_f = open(name, 'w')
|
|
+ patched_f.write(patched)
|
|
+ patched_f.close()
|
|
+
|
|
+
|
|
+def prepare(quiet):
|
|
+ """ Prepare for configuration and building by creating all the required
|
|
+ additional files.
|
|
+ """
|
|
+
|
|
+ sipgen = 'sipgen'
|
|
+ metasrc = os.path.join(sipgen, 'metasrc')
|
|
+
|
|
+ lexer_l = os.path.join(metasrc, 'lexer.l')
|
|
+ lexer_c = os.path.join(sipgen, 'lexer.c')
|
|
+ _progress("Running flex to create %s" % lexer_c, quiet)
|
|
+ os.system('flex -o%s %s' % (lexer_c, lexer_l))
|
|
+
|
|
+ parser_y = os.path.join(metasrc, 'parser.y')
|
|
+ parser_c = os.path.join(sipgen, 'parser.c')
|
|
+ _progress("Running bison to create %s" % parser_c, quiet)
|
|
+ os.system('bison -y -d -o %s %s' % (parser_c, parser_y))
|
|
+
|
|
+ _patch(os.path.join('sipgen', 'sip.h'), quiet)
|
|
+ _patch(os.path.join('siplib', 'sip.h'), quiet)
|
|
+ _patch('configure.py', quiet)
|
|
+
|
|
+
|
|
+if __name__ == '__main__':
|
|
+
|
|
+ def _prepare(options):
|
|
+ """prepare for configuration and building"""
|
|
+
|
|
+ prepare(options.quiet)
|
|
+
|
|
+
|
|
+ actions = (_prepare, )
|
|
+
|
|
+ import optparse
|
|
+
|
|
+ class MyParser(optparse.OptionParser):
|
|
+
|
|
+ def get_usage(self):
|
|
+ """ Reimplemented to add the description of the actions. We don't
|
|
+ use the description because the default formatter strips newlines.
|
|
+ """
|
|
+
|
|
+ usage = optparse.OptionParser.get_usage(self)
|
|
+
|
|
+ usage += "\n" + __doc__ + "\nActions:\n"
|
|
+
|
|
+ for action in actions:
|
|
+ usage += " %-9s %s\n" % (action.__name__[1:], action.__doc__)
|
|
+
|
|
+ return usage
|
|
+
|
|
+
|
|
+ action_names = [action.__name__[1:] for action in actions]
|
|
+
|
|
+ parser = MyParser(
|
|
+ usage="%%prog [options] %s" % '|'.join(action_names))
|
|
+
|
|
+ parser.add_option("-q", "--quiet", action='store_true', default=False,
|
|
+ dest='quiet', help="suppress progress messages")
|
|
+
|
|
+ options, args = parser.parse_args()
|
|
+
|
|
+ if len(args) != 1:
|
|
+ parser.print_help()
|
|
+ sys.exit(1)
|
|
+
|
|
+ for action in actions:
|
|
+ if action.__name__[1:] == args[0]:
|
|
+ action(options)
|
|
+ break
|
|
+ else:
|
|
+ parser.print_help()
|
|
+ sys.exit(1)
|
|
+
|
|
+ sys.exit()
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/ChangeLog sip/ChangeLog
|
|
--- ./sip-4.19.12.orig/ChangeLog 2018-07-05 05:55:19.000000000 -0400
|
|
+++ sip/ChangeLog 1969-12-31 19:00:00.000000000 -0500
|
|
@@ -1,9785 +0,0 @@
|
|
-2018-07-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.12.
|
|
- [290a78d4a00d] [4.19.12] <4.19-maint>
|
|
-
|
|
- * sphinx/installation.rst, sphinx/using.rst:
|
|
- Updated the docs regarding private copies of the sip module.
|
|
- [e30b9d2668c4] <4.19-maint>
|
|
-
|
|
- * NEWS, configure.py.in, sphinx/installation.rst:
|
|
- Added the --no-module option to configure.py.
|
|
- [02ab8cfda064] <4.19-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- The --no-tools option does not install the sip.h. Fixed .dist-info
|
|
- for the code generator when --no-tools is specified.
|
|
- [b3633241320b] <4.19-maint>
|
|
-
|
|
-2018-07-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [f4799b368aa1] <4.19-maint>
|
|
-
|
|
- * sipgen/main.c:
|
|
- Fixed the default sip module name.
|
|
- [30b34699ad64] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/array.c, siplib/sip.h.in, siplib/sipint.h,
|
|
- siplib/siplib.c, siplib/voidptr.c:
|
|
- Fixed the implementation of sipConvertFromSliceObject() so that
|
|
- generated modules still support the limited API.
|
|
- [5baed8e71fdb] <4.19-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- Include the build system for all builds (not just legacy ones).
|
|
- [5443d32d2928] <4.19-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- The mk_distinfo.py script now takes a temporary installation
|
|
- directory as an additional argument.
|
|
- [048f7a6100c8] <4.19-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixes for invoking mk_distinfo.py for out-of-tree builds.
|
|
- [ded7362cc94a] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a bug exposing traditional enum members in a class that also
|
|
- contains a C++11 scoped enum.
|
|
- [ccc4eda868de] <4.19-maint>
|
|
-
|
|
-2018-07-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Fix for installing sip.h with out-of-tree builds.
|
|
- [935f8cdab1b7] <4.19-maint>
|
|
-
|
|
-2018-06-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.11 for changeset a7d0f8459788
|
|
- [77add4c87760] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.11.
|
|
- [a7d0f8459788] [4.19.11] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [373c872333a4] <4.19-maint>
|
|
-
|
|
- * sphinx/using.rst:
|
|
- Documented the need for the enum34 package for versions of Python
|
|
- earlier than v3.4.
|
|
- [379da5a152c4] <4.19-maint>
|
|
-
|
|
-2018-06-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed the exception when a keyword argument overflows.
|
|
- [659e30e2c490] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a couple of Python v2 exception messages.
|
|
- [8b2f14850fcd] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a compilation issue with Python v2.
|
|
- [fea0057d2c29] <4.19-maint>
|
|
-
|
|
-2018-06-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Handle const signal arguments (that are not pointers or references).
|
|
- [a7a3d5f49c09] <4.19-maint>
|
|
-
|
|
-2018-06-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sphinx/annotations.rst:
|
|
- Added the /ScopesStripped/ argument annotation.
|
|
- [ab62eae89111] <4.19-maint>
|
|
-
|
|
-2018-06-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- The .dist-info directory now takes account of $(DESTDIR).
|
|
- [d6a17b9e8f21] <4.19-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixed out-of-tree builds.
|
|
- [81516a4441db] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Further fixes for the stripping of scopes from signal arguments.
|
|
- [44dd1db98cf7] <4.19-maint>
|
|
-
|
|
-2018-06-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.10 for changeset abf14ded1760
|
|
- [8597a94e4d25] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.10.
|
|
- [abf14ded1760] [4.19.10] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the stripping of scopes from signal arguments.
|
|
- [ce55e3219bc5] <4.19-maint>
|
|
-
|
|
-2018-06-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.9 for changeset 21bc9fb06802
|
|
- [8331b47585f6] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as 4.19.9.
|
|
- [21bc9fb06802] [4.19.9] <4.19-maint>
|
|
-
|
|
- * build.py, configure.py.in:
|
|
- Fixes for building in situ.
|
|
- [500aa97cf889] <4.19-maint>
|
|
-
|
|
-2018-06-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [0339dce88c21] <4.19-maint>
|
|
-
|
|
-2018-06-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * METADATA.in:
|
|
- Updated the METADATA.in file to account for the private copy for
|
|
- PyQt5.
|
|
- [970b0223221f] <4.19-maint>
|
|
-
|
|
-2018-06-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/main.c, sipgen/sip.h.in,
|
|
- siplib/sip.h.in, siplib/siplib.c:
|
|
- The sip.h file no longer needs to be configured by the compiler
|
|
- invocation for the sip module name. Added the -n option to the code
|
|
- generator to configure the sip module name.
|
|
- [d2b3b20484bd] <4.19-maint>
|
|
-
|
|
- * sphinx/command_line.rst, sphinx/installation.rst,
|
|
- sphinx/introduction.rst.in, sphinx/python_api.rst, sphinx/using.rst:
|
|
- Updated the docs regarding private copies of the sip module.
|
|
- [76e24a5bc0c3] <4.19-maint>
|
|
-
|
|
- * sphinx/build_system.rst, sphinx/directives.rst,
|
|
- sphinx/installation.rst, sphinx/introduction.rst.in:
|
|
- Fixed all external links in the documentation.
|
|
- [31a654cb4d5a] <4.19-maint>
|
|
-
|
|
- * configure.py.in, siplib/sip.h.in, siplib/sip.h.in.in,
|
|
- siplib/siplib.c, siplib/siplib.c.in, siplib/siplib.sbf,
|
|
- siplib/siplib.sbf.in:
|
|
- Fixed issues when using the --sip-module option to build the sip
|
|
- module.
|
|
- [fc3023a254ce] <4.19-maint>
|
|
-
|
|
-2018-06-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- More fixes for the /Transfer/ function annotation when applied to
|
|
- static methods.
|
|
- [69938bd3654c] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the implemenation of the /Transfer/ method annotation for
|
|
- static methods.
|
|
- [e61b036cb050] <4.19-maint>
|
|
-
|
|
-2018-06-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Clarified the docs for sipSetUserObject().
|
|
- [8077330e3c1b] <4.19-maint>
|
|
-
|
|
-2018-06-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Refactored the new enum visibility support so that normal attribute
|
|
- lookup in an enum works again (specifically for pickling).
|
|
- [6d59f2a57159] <4.19-maint>
|
|
-
|
|
- * NEWS, siplib/siplib.c.in, sphinx/using.rst:
|
|
- The members of traditional C/C++ enums are now visible within the
|
|
- scope of the enum.
|
|
- [79b93109033f] <4.19-maint>
|
|
-
|
|
-2018-06-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * mk_distinfo.py:
|
|
- Removed the mk_distinfo.py script as it is now added during
|
|
- preparation.
|
|
- [b8400f2e1b7b] <4.19-maint>
|
|
-
|
|
- * mk_distinfo.py:
|
|
- Updated the copy of mk_distinfo.py.
|
|
- [3dd68ef638eb] <4.19-maint>
|
|
-
|
|
-2018-06-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * mk_distinfo.py:
|
|
- Fixed a typo.
|
|
- [e687d71b4cc9] <4.19-maint>
|
|
-
|
|
-2018-05-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed building for Python versions prior to v3.3.
|
|
- [91088a13f975] <4.19-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixes for the .dist-info support on Windows.
|
|
- [4773b53d98f0] <4.19-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- Handle spaces in path names when building with qmake.
|
|
- [1757ff19b578] <4.19-maint>
|
|
-
|
|
-2018-05-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, configure.py.in, mk_distinfo.py, siputils.py,
|
|
- sphinx/build_system.rst, sphinx/installation.rst:
|
|
- A PEP 376 .dist-info directory will be created on installation. The
|
|
- --no-dist-info option was added to configure.py.
|
|
- [4dea64c9e1a8] <4.19-maint>
|
|
-
|
|
-2018-05-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed __qualname__ for generated types.
|
|
- [7cf6d49bb422] <4.19-maint>
|
|
-
|
|
-2018-05-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixed the sip module's .pro file when building with qmake.
|
|
- [43635cc7012b] <4.19-maint>
|
|
-
|
|
-2018-04-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * METADATA.in:
|
|
- Fixed a link in the PyPI documentation.
|
|
- [e343bf878ebc] <4.19-maint>
|
|
-
|
|
- * Roadmap.rst:
|
|
- Updated the roadmap so that it will age more gracefully.
|
|
- [1f3cbd657f14] <4.19-maint>
|
|
-
|
|
-2018-04-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/riverbank/static/riverbank.css:
|
|
- More CSS fixes.
|
|
- [e413581ca661] <4.19-maint>
|
|
-
|
|
-2018-04-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/riverbank/static/riverbank.css:
|
|
- Fixed the CSS for links in headers.
|
|
- [f125f51ceffb] <4.19-maint>
|
|
-
|
|
-2018-03-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Removed all calls to the deprecated buffer protocol.
|
|
- [d9c9937f820a] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the calling of handwritten garbage collection code for classes
|
|
- that do not directly sub-class the class that is providing the code.
|
|
- [f968cccc9b77] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Signal signatures now have a full version appended if a namespace
|
|
- has been stripped.
|
|
- [7683ca65278f] <4.19-maint>
|
|
-
|
|
-2018-03-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Signal docstrings can now automatically include the signature.
|
|
- [34a94ca0260d] <4.19-maint>
|
|
-
|
|
-2018-03-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in:
|
|
- Implemented sipConvertFromSliceObject() for Python v3.7 to avoid
|
|
- using the deprecated PySlize_GetIndicesEx().
|
|
- [ae83f4e7993f] <4.19-maint>
|
|
-
|
|
-2018-02-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.8 for changeset 09748626765f
|
|
- [6462a294376f] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.8.
|
|
- [09748626765f] [4.19.8] <4.19-maint>
|
|
-
|
|
-2018-02-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * README:
|
|
- Fixed the README.
|
|
- [f07d0788eef0] <4.19-maint>
|
|
-
|
|
-2018-01-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Make sure the C API is documented in alphabetical order.
|
|
- [e930a3c90dc0] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Make sure that the pointer to the Python object held by the C++
|
|
- instance of the generated derived type is reset by the derived
|
|
- type's dtor. Also make sure it is tested and reset while the GIL is
|
|
- held in order to avoid race conditions.
|
|
- [71bfa703c4ee] <4.19-maint>
|
|
-
|
|
-2018-01-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.7 for changeset 7e9dbd15c866
|
|
- [9a8622f989f9] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.7.
|
|
- [7e9dbd15c866] [4.19.7] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [3d0a9ebb536c] <4.19-maint>
|
|
-
|
|
-2018-01-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- A significant update to a comment.
|
|
- [f947546822c3] <4.19-maint>
|
|
-
|
|
-2018-01-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/lexer.l:
|
|
- Fixed the failed attempt to fix %Docstring argument parsing.
|
|
- [6054b3268f6f] <4.19-maint>
|
|
-
|
|
-2018-01-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y,
|
|
- sphinx/directives.rst:
|
|
- In the context of a class's docstring the signature argument refers
|
|
- to the concatanated ctor docstrings.
|
|
- [34ddf9638287] <4.19-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/directives.rst:
|
|
- Typedefs can now have docstrings. These are only used by those that
|
|
- instantiate class templates.
|
|
- [327ad560d853] <4.19-maint>
|
|
-
|
|
-2018-01-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the generated of a default value that is a global unscoped
|
|
- enum.
|
|
- [8f9c478295d3] <4.19-maint>
|
|
-
|
|
-2018-01-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a missing quote in the docstring support.
|
|
- [e37301b91a57] <4.19-maint>
|
|
-
|
|
-2018-01-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the handling of signal docstrings.
|
|
- [5d4d28286e02] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the docstring handling for private ctors and method.
|
|
- [8186b65687f1] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the formats of class docstrings.
|
|
- [3af2dab08ed3] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the formatting of function/method docstrings.
|
|
- [8e1829fdaf04] <4.19-maint>
|
|
-
|
|
-2018-01-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y,
|
|
- sipgen/sip.h.in, sphinx/directives.rst:
|
|
- Initial commit to support embeded signatures in explicit docstrings.
|
|
- [b3d42a546701] <4.19-maint>
|
|
-
|
|
-2018-01-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/conf.py.in, sphinx/riverbank/layout.html,
|
|
- sphinx/riverbank/static/logo.png,
|
|
- sphinx/riverbank/static/logo_tn.ico,
|
|
- sphinx/riverbank/static/riverbank.css, sphinx/riverbank/theme.conf,
|
|
- sphinx/static/classic.css, sphinx/static/logo.png,
|
|
- sphinx/static/logo_tn.ico:
|
|
- Switched to the revised Sphinx standards.
|
|
- [b68eecb348b9] <4.19-maint>
|
|
-
|
|
-2017-12-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Fixed the handling of wchar_t constants.
|
|
- [c0436cb89959] <4.19-maint>
|
|
-
|
|
-2017-12-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Readability improvement.
|
|
- [6a635db426ea] <4.19-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixed the location to install the code generator in a Windows venv.
|
|
- [d0f37d83df6f] <4.19-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixed the location of the pythonMN.lib file on Windows when building
|
|
- in a venv.
|
|
- [a098e2be83c2] <4.19-maint>
|
|
-
|
|
-2017-11-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.6 for changeset 3f131525d4d5
|
|
- [3f3a98f6a67a] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.6.
|
|
- [3f131525d4d5] [4.19.6] <4.19-maint>
|
|
-
|
|
-2017-11-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Updated the docs for /NewThread/.
|
|
- [30c7476904af] <4.19-maint>
|
|
-
|
|
-2017-11-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the handling of the default value of unscoped enums when using
|
|
- old compilers.
|
|
- [dd017d3e1454] <4.19-maint>
|
|
-
|
|
-2017-11-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.5 for changeset a572b9daf87f
|
|
- [e0419013252c] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.5.
|
|
- [a572b9daf87f] [4.19.5] <4.19-maint>
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Fixed a regression in the conversion of enums which meant that an
|
|
- object with an __int__ method was accepted as a valid value.
|
|
- [273b01861a11] <4.19-maint>
|
|
-
|
|
-2017-11-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * test/int_convertors/mk.sh, test/int_convertors/run_test.py,
|
|
- test/int_convertors/test.h, test/int_convertors/test.sip:
|
|
- Added the test for an overloaded function where the argument of each
|
|
- overload is a different named enum.
|
|
- [cac9082bdbd8] <4.19-maint>
|
|
-
|
|
-2017-11-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Ensure that when building on macOS using qmake the sip module is a
|
|
- bundle.
|
|
- [f945942bc896] <4.19-maint>
|
|
-
|
|
-2017-11-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.4 for changeset ed56fb689db8
|
|
- [c56a33a3ef0c] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.4.
|
|
- [ed56fb689db8] [4.19.4] <4.19-maint>
|
|
-
|
|
-2017-10-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Build fixes for Python v2.
|
|
- [5b2adad49340] <4.19-maint>
|
|
-
|
|
-2017-09-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a regression that meant that namespaces were included in the
|
|
- types of arguments to signals. Probably only affects
|
|
- PyQtDataVisualization.
|
|
- [5c94d14871a3] <4.19-maint>
|
|
-
|
|
-2017-09-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Appy a cast to const class pointers to static instances.
|
|
- [3db4b02ea152] <4.19-maint>
|
|
-
|
|
- * sphinx/incompatibilities.rst, sphinx/using.rst:
|
|
- Added a section on overflow checking to the documentation.
|
|
- [39409c0a5282] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Make sure the default value of scoped enums is valid.
|
|
- [5024429c9126] <4.19-maint>
|
|
-
|
|
-2017-09-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst,
|
|
- test/int_convertors/run_test.py, test/int_convertors/test.h,
|
|
- test/int_convertors/test.sip:
|
|
- Deprecated sipCanConvertToEnum(). sipConvertToEnum() now has single-
|
|
- pass behaviour like the integer convertors.
|
|
- [2065bdd284cc] <4.19-maint>
|
|
-
|
|
-2017-09-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/int_convertors.c, siplib/siplib.c.in:
|
|
- Improved the exception text when a virtual should return an enum or
|
|
- a bool.
|
|
- [7636b12a0789] <4.19-maint>
|
|
-
|
|
- * test/int_convertors/run_test.py, test/int_convertors/test.h,
|
|
- test/int_convertors/test.sip:
|
|
- Added the tests for converting names enums.
|
|
- [8b5be80fda82] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a regression where sipBadCatcherResult() is called without an
|
|
- exception.
|
|
- [894b51685d51] <4.19-maint>
|
|
-
|
|
- * test/int_convertors/run_test.py:
|
|
- Added the remaining bool tests.
|
|
- [1afb586f55db] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/int_convertors.c, siplib/sip.h.in.in,
|
|
- siplib/sipint.h, siplib/siplib.c.in, sphinx/c_api.rst,
|
|
- test/int_convertors/run_test.py, test/int_convertors/test.h,
|
|
- test/int_convertors/test.sip:
|
|
- Added sipConvertToBool() to the public API. Implemented the tests
|
|
- for invalid bool values.
|
|
- [3e8faabe48a1] <4.19-maint>
|
|
-
|
|
- * test/int_convertors/run_test.py, test/int_convertors/test.h,
|
|
- test/int_convertors/test.sip:
|
|
- Added the tests for converting char.
|
|
- [fb34c9009048] <4.19-maint>
|
|
-
|
|
- * test/int_convertors/run_test.py:
|
|
- Completed the unit tests for unsigned values.
|
|
- [cbb776ab54f9] <4.19-maint>
|
|
-
|
|
-2017-09-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * test/int_convertors/run_test.py:
|
|
- Added the tests for valid values of unsigned types.
|
|
- [895e5218b2a2] <4.19-maint>
|
|
-
|
|
- * test/int_convertors/run_test.py, test/int_convertors/test.h,
|
|
- test/int_convertors/test.sip:
|
|
- Added tests for virtuals returning invalid values. Added the C++ and
|
|
- wrappers for the unsigned types tests.
|
|
- [b42f7afd33bc] <4.19-maint>
|
|
-
|
|
- * test/int_convertors/run_test.py:
|
|
- Fixed the tests for long and long long to account for the legacy
|
|
- behaviour of the convertors.
|
|
- [06c124a19f3c] <4.19-maint>
|
|
-
|
|
- * test/int_convertors/run_test.py, test/int_convertors/test.h,
|
|
- test/int_convertors/test.sip:
|
|
- Implemented the unit tests for int, long and long long integer
|
|
- conversions.
|
|
- [55a8a713a6fc] <4.19-maint>
|
|
-
|
|
- * test/int_convertors/mk.sh, test/int_convertors/run_test.py,
|
|
- test/int_convertors/test.h, test/int_convertors/test.sip:
|
|
- Added the unit tests for signed char and short integer convertors.
|
|
- [1109afd9d851] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- The type of the exception raised when a Python re-implementation of
|
|
- a C++ virtual raises an exception is now the same as that original
|
|
- exception and not fixed to be TypeError.
|
|
- [61885f427681] <4.19-maint>
|
|
-
|
|
-2017-08-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c.in:
|
|
- Fixed a regression in the generation of slots code.
|
|
- [9e09f205e404] <4.19-maint>
|
|
-
|
|
-2017-08-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Backed out the documentation change for sipConvertToEnum().
|
|
- [fec7c90f35a2] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Removed the last call to SIPLong_AsLong().
|
|
- [b70f7ccc3069] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/int_convertors.c, siplib/sip.h.in.in,
|
|
- siplib/sipint.h, siplib/siplib.c.in, siplib/siplib.sbf.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipLong_AsSignedChar() ot the public API. The generated
|
|
- variable setters now use the new convertors.
|
|
- [85bfd5c33ae0] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Completed the sip module changes for overflow checking.
|
|
- [c8029d4cc754] <4.19-maint>
|
|
-
|
|
-2017-08-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Migration of more module code to the new convertors.
|
|
- [b035786f41e8] <4.19-maint>
|
|
-
|
|
-2017-08-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/array.c, siplib/voidptr.c:
|
|
- The array and voidptr types now use the new convertors.
|
|
- [037839910d09] <4.19-maint>
|
|
-
|
|
- * siplib/int_convertors.c:
|
|
- Completed the implementation of the new integer convertors.
|
|
- [cae1cf5dfa79] <4.19-maint>
|
|
-
|
|
-2017-08-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/int_convertors.c, siplib/sip.h.in.in,
|
|
- siplib/sipint.h, siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Implemented the int convertor stubs and documented them.
|
|
- [3c4d82a590ac] <4.19-maint>
|
|
-
|
|
- * siplib/int_convertors.c, siplib/sipint.h, siplib/siplib.c.in:
|
|
- Refactored the support for int convertors.
|
|
- [2b1714de0e3f] <4.19-maint>
|
|
-
|
|
-2017-08-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst, sphinx/python_api.rst:
|
|
- Implemented sipEnableOverflowChecking() and
|
|
- sip.enableoverflowchecking() stubs.
|
|
- [56266006c18f] <4.19-maint>
|
|
-
|
|
-2017-08-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sphinx/c_api.rst, sphinx/incompatibilities.rst:
|
|
- Updated the docs regarding support for scoped enums.
|
|
- [0cf1c85b12bd] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Completed the implementation of scoped enums.
|
|
- [d0b2e8967294] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Scoped enums are now created as Python enums.
|
|
- [ae7df49152e3] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- More work on scoped enums.
|
|
- [9a196aece94e] <4.19-maint>
|
|
-
|
|
-2017-08-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, siplib/sip.h.in.in,
|
|
- siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Created the stub of the scoped enums implementation.
|
|
- [674f800ed250] <4.19-maint>
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Removed some unused variables.
|
|
- [90360e454f86] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in:
|
|
- Remove the const from the source object declaration in assignment
|
|
- helpers.
|
|
- [2b53ba180983] <4.19-maint>
|
|
-
|
|
-2017-08-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Completed the parser support for scoped enums.
|
|
- [11b383822a47] <4.19-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sphinx/specification_files.rst:
|
|
- Added parser support for scoped enums.
|
|
- [f5b7d5bf0624] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Use static_cast<int>() when passing values to sipConvertFromEnum().
|
|
- [091cfd53e597] <4.19-maint>
|
|
-
|
|
-2017-08-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Disallow (rather than ignore) invalid types in Python signatures if
|
|
- %MethodCode and a C/C++ signature is provided.
|
|
- [a975983c39c1] <4.19-maint>
|
|
-
|
|
-2017-08-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug in the handling of signals in scoped
|
|
- classes.
|
|
- [7c82958d6327] <4.19-maint>
|
|
-
|
|
-2017-07-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/sip.h.in, sipgen/transform.c:
|
|
- Fixes for the detection of recursive imports.
|
|
- [6a7ab03d4efa] <4.19-maint>
|
|
-
|
|
-2017-07-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Detect recursive imports as an error.
|
|
- [ba19c3f5fb29] <4.19-maint>
|
|
-
|
|
-2017-07-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.3 for changeset 14685a6e736e
|
|
- [2a9f342b7f39] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.3.
|
|
- [14685a6e736e] [4.19.3] <4.19-maint>
|
|
-
|
|
-2017-07-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/export.c, sipgen/type_hints.c:
|
|
- Fixes for hidden namespaces in generated XML.
|
|
- [489321fd2475] <4.19-maint>
|
|
-
|
|
-2017-06-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/specification_files.rst:
|
|
- Fixed an out of date statement in the docs.
|
|
- [21539b0e74c6] <4.19-maint>
|
|
-
|
|
-2017-06-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in:
|
|
- Don't report template arguments of uninstantiated templates as
|
|
- undefined classes.
|
|
- [a69025738247] <4.19-maint>
|
|
-
|
|
-2017-06-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Allow empty class bodies.
|
|
- [265b531cb6e4] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a bug handling double quotes as the default value of a char
|
|
- argument.
|
|
- [d86c23976619] <4.19-maint>
|
|
-
|
|
-2017-06-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/main.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c:
|
|
- Completed the implementation of non-strict parsing.
|
|
- [8b5e498d13dd] <4.19-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in:
|
|
- The relevant data structures now retain the platform information.
|
|
- [15b6c00166a7] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/main.c, sipgen/metasrc/parser.y,
|
|
- sipgen/sip.h.in:
|
|
- Added the stub of non-strict parsing that saves (but otherwise
|
|
- ignores) the platform information.
|
|
- [b05b36a086c2] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/lexer.l:
|
|
- Improve the handling of string constants to properly support escape
|
|
- characters.
|
|
- [495a7635a52d] <4.19-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Make sure any expanded template ctor call is a deep copy.
|
|
- [141c98e741b6] <4.19-maint>
|
|
-
|
|
-2017-06-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Expand template ctor calls when they are the default values of an
|
|
- argument.
|
|
- [5df8870c61a7] <4.19-maint>
|
|
-
|
|
-2017-06-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a regression in the invocation of the dtor of shadow classes.
|
|
- [e833dc3f9a2f] <4.19-maint>
|
|
-
|
|
-2017-06-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgignore:
|
|
- Updated .hgignore for the changed build directory.
|
|
- [b2fb251d3500] <4.19-maint>
|
|
-
|
|
-2017-05-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Documented the event handler mechanism.
|
|
- [aee09bdf1206] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Implemented sipEventType and sipRegisterEventHandler().
|
|
- [2a4bcf305afa] <4.19-maint>
|
|
-
|
|
-2017-05-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/objmap.c, siplib/sip.h.in.in,
|
|
- siplib/sipint.h, siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Renamed sipCommonDtor() to sipInstanceDestroyed() and added it to
|
|
- the public API.
|
|
- [e7d4e6661fa0] <4.19-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- The parser will now accept class template definitions within a
|
|
- class. The generated code is untested.
|
|
- [ec57a6e03eb3] <4.19-maint>
|
|
-
|
|
-2017-05-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Added support for type hints for properties from Scott Maxwell.
|
|
- [c861fe0ef6ca] <4.19-maint>
|
|
-
|
|
-2017-05-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixes for 'char *&' argument types.
|
|
- [684e23c995a3] <4.19-maint>
|
|
-
|
|
-2017-05-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Removed a duplicate call.
|
|
- [afe3d3efc82d] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Don't try and initialise the result of a virtual when the type is a
|
|
- template.
|
|
- [cce4fe835faf] <4.19-maint>
|
|
-
|
|
-2017-04-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Added sipPrintObject() to the public C API.
|
|
- [10e10b1a2d68] <4.19-maint>
|
|
-
|
|
-2017-04-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c.in:
|
|
- Fixed regressions in the handling of exceptions.
|
|
- [974a4d77314b] <4.19-maint>
|
|
-
|
|
- * sipgen/transform.c, sphinx/conf.py.in:
|
|
- Minor cosmetic fixes.
|
|
- [4ea35fd2187d] <4.19-maint>
|
|
-
|
|
-2017-04-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Effectively re-applied changeset dc06058c99dd. If there is a real
|
|
- problem here then we don't yet fully understand it.
|
|
- [95a493a417e8] <4.19-maint>
|
|
-
|
|
-2017-04-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fix a regression so that a shadow class is not generated if there is
|
|
- a private dtor.
|
|
- [6b09a6d578e8] <4.19-maint>
|
|
-
|
|
-2017-03-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.2 for changeset 1df924860f57
|
|
- [6209a625ac87] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.2.
|
|
- [1df924860f57] [4.19.2] <4.19-maint>
|
|
-
|
|
-2017-03-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Remove an unnecessary comment.
|
|
- [1f31effbc614] <4.19-maint>
|
|
-
|
|
-2017-03-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a crash when a user defined class uses sip.wrappertype as it's
|
|
- meta-type but is not derived from sip.simplewrapper.
|
|
- [f5bab1986fbb] <4.19-maint>
|
|
-
|
|
-2017-02-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19.1 for changeset ee5ea590d186
|
|
- [f45eb310f129] <4.19-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.1.
|
|
- [ee5ea590d186] [4.19.1] <4.19-maint>
|
|
-
|
|
-2017-02-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed another regression in deprecated code.
|
|
- [556ca44cc535] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed some deprecated macros.
|
|
- [23a8ef68306d] <4.19-maint>
|
|
-
|
|
-2017-02-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a typo in the implementation of sipEnableGC().
|
|
- [c15936fc6007] <4.19-maint>
|
|
-
|
|
-2017-02-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a doesn't-work-with-old-c-compilers bug.
|
|
- [5775566848d1] <4.19-maint>
|
|
-
|
|
-2017-02-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a regression in the generation of names of protected methods
|
|
- in classes imported from other modules.
|
|
- [948e06cb1921] <4.19-maint>
|
|
-
|
|
-2017-02-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Fixed a regression in determining when a shadow class should be
|
|
- generated.
|
|
- [71a8ee38b2c6] <4.19-maint>
|
|
-
|
|
-2017-01-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in:
|
|
- Updated the ABI version number.
|
|
- [6b23496bd532] <4.19-maint>
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Added a clarification to the /Abstract/ class annotation.
|
|
- [adb03184b044] <4.19-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipEnableGC() to the public API.
|
|
- [03b120e8fe2f] <4.19-maint>
|
|
-
|
|
-2017-01-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Fixed a couple of missing types.
|
|
- [9737461081da] <4.19-maint>
|
|
-
|
|
-2017-01-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- More fixes for /NoTypeName/ applied to class templates.
|
|
- [8a45855e0d70] <4.19-maint>
|
|
-
|
|
-2017-01-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in:
|
|
- The /NoTypeName/ typedef annotation now affects classes
|
|
- instantiation from class templates.
|
|
- [30d9a5a61ed2] <4.19-maint>
|
|
-
|
|
-2017-01-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/metasrc/lexer.l,
|
|
- sipgen/metasrc/parser.y, sipgen/sip.h.in, sphinx/directives.rst:
|
|
- Added the %PreMethodCode implementation from Robin Dunn.
|
|
- [08d77fb135a2] <4.19-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Properly fix the template super-class regression.
|
|
- [3b674fc274d5] <4.19-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Backed out changeset b94757bc5637 It fixes the bug but breaks
|
|
- everything else.
|
|
- [f39e23bcd25b] <4.19-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Fixed a regression in the handling of template arguments specifying
|
|
- super-classes.
|
|
- [b94757bc5637] <4.19-maint>
|
|
-
|
|
-2017-01-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * README, build.py:
|
|
- Fixed the build.py script so that it does a complete preparation.
|
|
- [85539feb92ea] <4.19-maint>
|
|
-
|
|
-2017-01-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed sipGetBufferInfo().
|
|
- [1de5c188f98d] <4.19-maint>
|
|
-
|
|
-2017-01-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/main.c, sipgen/transform.c,
|
|
- siplib/siplib.c.in, sphinx/command_line.rst:
|
|
- Added the -D command line option so that the generated code is aware
|
|
- of Python debug builds.
|
|
- [2a21ceefdf2a] <4.19-maint>
|
|
-
|
|
-2017-01-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Hopefully a better implementation of changeset dc06058c99dd.
|
|
- [4c135d33a5cf] <4.19-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Backed out changeset dc06058c99dd The change is too drastic.
|
|
- [d9e95528015e] <4.19-maint>
|
|
-
|
|
-2017-01-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a regression in the ordering of the generated types table for
|
|
- a module.
|
|
- [06237437b446] <4.19-maint>
|
|
-
|
|
-2016-12-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.19 for changeset 0a4ee5a5511f
|
|
- [245c1ac3c34e]
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.19.
|
|
- [0a4ee5a5511f] [4.19]
|
|
-
|
|
-2016-12-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a problem importing the required types for protected methods
|
|
- without the public/protected hack.
|
|
- [ccf3d8f3cc59]
|
|
-
|
|
-2016-12-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/python_api.rst:
|
|
- Implemented sip.assign() to invoke the C++ assignment operator.
|
|
- [4324a0bc03a4]
|
|
-
|
|
-2016-11-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in, sphinx/installation.rst:
|
|
- Added the --no-stubs and --stubsdir options to configure.py to be
|
|
- consistent with other configuration scripts.
|
|
- [70e0d9d09265]
|
|
-
|
|
-2016-11-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed the incomplete tidy-up.
|
|
- [69aaa13a1883]
|
|
-
|
|
-2016-11-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fix a warning message.
|
|
- [5d7b73925360]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Reverted to pre-4.18 handling of the generated cast function. There
|
|
- are cases where a C++ derived class does not have the same address
|
|
- as its single base class.
|
|
- [8e9e02f1bea0]
|
|
-
|
|
-2016-11-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Fixed a regression (related to scoped names) that meant that header
|
|
- code for template arguments wasn't being included.
|
|
- [04796a24e981]
|
|
-
|
|
-2016-10-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- iHandwritten code to be included in the sipAPI*.h file is now placed
|
|
- at the end so that it can make use of the generated macros and
|
|
- types.
|
|
- [ed446493da18]
|
|
-
|
|
-2016-10-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed some compiler warnings when building for Python v2.
|
|
- [264793ee3fb0]
|
|
-
|
|
-2016-10-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a regression in the handling of abstratc classes.
|
|
- [ce1042e83d1a]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/transform.c:
|
|
- More namespace related fixes.
|
|
- [73d456c2f5cc]
|
|
-
|
|
-2016-10-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, siplib/siplib.c.in:
|
|
- Implemented 'final' support. More fixes for the handling of scopes.
|
|
- [1d0d5c659b92]
|
|
-
|
|
-2016-10-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sphinx/specification_files.rst:
|
|
- Added parser support for the 'final' keyword.
|
|
- [373d57302d56]
|
|
-
|
|
-2016-10-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/transform.c:
|
|
- Refactored the support for scopes so that types hav a leading '::'.
|
|
- [1f498dfe2888]
|
|
-
|
|
-2016-10-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c:
|
|
- Fixed the generation of the scope of an operator moved from a
|
|
- namespace to a class.
|
|
- [f697ee13a3aa]
|
|
-
|
|
-2016-10-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Documented the %HideNamespace directive.
|
|
- [b45a86055567]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y,
|
|
- sipgen/sip.h.in, sipgen/transform.c:
|
|
- Implemented the %HideNamespace directive.
|
|
- [6b1f471385df]
|
|
-
|
|
-2016-10-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Make sure the underlying types are generated in tuple builders.
|
|
- [0507dfae0588]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Virtual handlers use typedef names like all the rest of the
|
|
- generated code.
|
|
- [c732f0460bc3]
|
|
-
|
|
-2016-10-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Refactored the name lookup code.
|
|
- [8bd669cf535f]
|
|
-
|
|
-2016-09-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Variable getters/setters now only keep a hidden reference for C
|
|
- character strings.
|
|
- [6ec87337d5e2]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a bad indentation in the generated code.
|
|
- [cb1d8e948a2b]
|
|
-
|
|
-2016-09-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, siplib/qtlib.c, siplib/sip.h.in.in,
|
|
- siplib/siplib.c.in, sphinx/using.rst:
|
|
- Removed anll code generator support for PyQt3.
|
|
- [a9cc0cc567aa]
|
|
-
|
|
-2016-09-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- A class that sub-classes an abstract class and doesn't provide an
|
|
- implementation of an abstract method is itself abstract.
|
|
- [472469f1d7ad]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c:
|
|
- Fixes for imported types that have multiple implementations.
|
|
- [dc02dc4430ec]
|
|
-
|
|
- * sipgen/transform.c, siplib/sip.h.in.in:
|
|
- Fixed the selection of a virtual handler.
|
|
- [d6c07e82a3d2]
|
|
-
|
|
-2016-09-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/sipint.h:
|
|
- Fixed some regressions when building with the limited API disabled.
|
|
- [8118a2156d11]
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/sipint.h:
|
|
- Exposed some missing macros.
|
|
- [d12bb44a9d7d]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipGetUserObject() and sipSetUserObject() to the public API.
|
|
- [e0352cc51b67]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/sipint.h,
|
|
- siplib/siplib.c.in:
|
|
- Added sipIsOwnedByPython() and sipIsDerivedClass() to the private
|
|
- API to remove more binary dependencies.
|
|
- [17ed5300e0dc]
|
|
-
|
|
- * sipgen/metasrc/parser.y, siplib/objmap.c, siplib/sip.h.in.in,
|
|
- siplib/siplib.c.in:
|
|
- Fix some warnings.
|
|
- [d0dcc6cd73b9]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in:
|
|
- Refactored how the plugin-specific generated tables are handled.
|
|
- [a0fcb2bc14ca]
|
|
-
|
|
-2016-09-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed the auto-generation of default copy ctors.
|
|
- [508f9dd396f9]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Implemented the sipCallProcedureMethod() optimisation.
|
|
- [948be90a3f5e]
|
|
-
|
|
- * sipgen/transform.c, siplib/sip.h.in.in:
|
|
- Class based exceptions should now have their type structure
|
|
- included.
|
|
- [64ac366b669f]
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Reorganised the C API structure.
|
|
- [a08c7533a799]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Completed the refactoring to eliminate binary dependencies.
|
|
- [fb3b72523947]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Refactored the implementation of exceptions to eliminate the binary
|
|
- dependencies.
|
|
- [aeb733f23126]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Refactored the handling of virtual error handlers to reduce binary
|
|
- dependencies.
|
|
- [b08f6f3325e8]
|
|
-
|
|
-2016-09-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Genearte the needed types table at the right time.
|
|
- [26331d156a87]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Refactoring of the code that inspects a class for its visible
|
|
- virtuals.
|
|
- [082c756c263d]
|
|
-
|
|
-2016-09-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixes for regressions using the type header files in the right
|
|
- place.
|
|
- [0b1a09bbde7a]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, siplib/sip.h.in.in:
|
|
- Initial refactoring of virtual handlers.
|
|
- [d454a9b02d26]
|
|
-
|
|
-2016-09-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c.in:
|
|
- Generate the correct type names for template based types.
|
|
- [1f17d1688231]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst, sphinx/incompatibilities.rst:
|
|
- Refactored the handling of generated type structures so that they
|
|
- are only referenced by name by an importing module rather than by an
|
|
- index into a table. This reduces the binary dependencies between
|
|
- modules.
|
|
- [667720dbc42d]
|
|
-
|
|
-2016-09-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/directives.rst:
|
|
- Removed the support for module version numbers.
|
|
- [685029cadb52]
|
|
-
|
|
-2016-09-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed silly bugs in the previous change.
|
|
- [7df5236aa50f]
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Improved the implementation of sipGetBufferInfo().
|
|
- [7a606d0daf37]
|
|
-
|
|
-2016-09-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/export.c, sipgen/type_hints.c:
|
|
- Fixed the type hint for unsigned const char *.
|
|
- [19f9b9eea667]
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Updated sipGetBufferInfo() to optionally check the type.
|
|
- sipGetBufferInfo() only supports 1-dimensional arrays.
|
|
- [985d7877b3a1]
|
|
-
|
|
-2016-09-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Further fixes for invoking the new type handler.
|
|
- [ecdcfc0f0558]
|
|
-
|
|
- * siplib/objmap.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Fixes for the invocation of the new user type handler.
|
|
- [a95c68d37f6e]
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the invocation of the new user type handler.
|
|
- [d484574b76e9]
|
|
-
|
|
-2016-09-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipGetBufferInfo() and sipReleaseBufferInfo() to the public
|
|
- API.
|
|
- [c23d7cb8b06e]
|
|
-
|
|
-2016-09-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Documented the new Unicode-related functions.
|
|
- [c8408349d43c]
|
|
-
|
|
-2016-09-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Added sipUnicodeNew(), sipUnicodeWrite() and sipUnicodeData() to the
|
|
- public API.
|
|
- [e05849602bef]
|
|
-
|
|
-2016-08-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipGetMethod(), sipFromMethod() and sipGetCFunction() ot the
|
|
- public API.
|
|
- [28f7daaa7542]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, siplib/sip.h.in.in,
|
|
- siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Added sipCheckPluginForType() ot the public API.
|
|
- sipSetNewUserTypeHandler() now returns the old handler to allow
|
|
- chaining.
|
|
- [7e8e4447431b]
|
|
-
|
|
-2016-08-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/descriptors.c, siplib/objmap.c, siplib/sip.h.in.in,
|
|
- siplib/siplib.c.in:
|
|
- Renamed some structure fields.
|
|
- [cb8478e5895d]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipPyTypeDict() to the public API.
|
|
- [7f25c1fe8296]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipGetFrame() to the public API.
|
|
- [a34c213208b2]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipIsUserType() to the public API.
|
|
- [d2477eb9265e]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added the data and time functions to the public API.
|
|
- [7739c16f94c9]
|
|
-
|
|
-2016-08-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Documented sipPyTypeName().
|
|
- [c7098cf08c3a]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Added sipPyTypeName() to the public API.
|
|
- [319512a38c50]
|
|
-
|
|
- * siplib/sip.h.in.in:
|
|
- Fixed the new macros.
|
|
- [c361a6924e82]
|
|
-
|
|
- * siplib/sip.h.in.in:
|
|
- Implemented additional portablity macros for the limited API.
|
|
- [120e916e8608]
|
|
-
|
|
- * .hgignore, sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst, sphinx/using.rst:
|
|
- Implemented sipSetNewUserTypeFunc() sipSetTypeUserData() and
|
|
- sipGetTypeUserData().
|
|
- [1f180cf4a42a]
|
|
-
|
|
-2016-08-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/apiversions.c, siplib/array.c, siplib/array.h,
|
|
- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c,
|
|
- siplib/sip.h.in.in, siplib/sipint.h, siplib/threads.c,
|
|
- siplib/voidptr.c, sphinx/c_api.rst, sphinx/directives.rst:
|
|
- Added the user field to the sipWrapperType structure as an
|
|
- alternative to defining a super-type of sipWrapperType (which isn't
|
|
- possible with the limited API). Bumped the major ABI version number.
|
|
- [5e9de8cde212]
|
|
-
|
|
-2016-08-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y,
|
|
- sipgen/sip.h.in, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/directives.rst:
|
|
- Added the use_limited_api argument to the %Module directive. Changed
|
|
- the API of %BIGetBufferCode when using the limited API.
|
|
- [10d7121c07e3]
|
|
-
|
|
-2016-08-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rbproduct.py:
|
|
- Merged the 4.18-maint branch into the trunk.
|
|
- [d92384aa5baf]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the handling of global unsigned constants.
|
|
- [a45bec408ec2] <4.18-maint>
|
|
-
|
|
- * sphinx/conf.py.in:
|
|
- Fixed the copyright notice in the docs.
|
|
- [17475357a153] <4.18-maint>
|
|
-
|
|
-2016-08-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * README, build.py:
|
|
- Removed the old internal build system leaving the minimum needed to
|
|
- build from hg without the new build system.
|
|
- [dbbced5689a8] <4.18-maint>
|
|
-
|
|
-2016-07-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.18.1 for changeset 81021a5690ce
|
|
- [8f5b6c8fe5f1] <4.18-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.18.1.
|
|
- [81021a5690ce] [4.18.1] <4.18-maint>
|
|
-
|
|
-2016-07-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * Roadmap.rst:
|
|
- Updated the Roadmap.
|
|
- [1226013f2516] <4.18-maint>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [26a4fd92bf59] <4.18-maint>
|
|
-
|
|
-2016-07-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/objmap.c:
|
|
- Fixed a problem with stale aliases for objects created by C/C++.
|
|
- [b493c6f3e015] <4.18-maint>
|
|
-
|
|
-2016-06-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rb-product, rbproduct.py:
|
|
- Replaced the product plugin with a product file.
|
|
- [a10b0caa91a8] <4.18-maint>
|
|
-
|
|
-2016-06-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rbproduct.py:
|
|
- Product plugin changes for rb-tools API changes.
|
|
- [86f51ad3ac30] <4.18-maint>
|
|
-
|
|
- * rbproduct.py:
|
|
- Debugged the product plugin.
|
|
- [67a81861273c] <4.18-maint>
|
|
-
|
|
- * rbproduct.py:
|
|
- Added support for a minimal build and release build types.
|
|
- [8cc794662db5] <4.18-maint>
|
|
-
|
|
-2016-06-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rbproduct.py:
|
|
- Tewaks to the product plugin.
|
|
- [b2fd658f11cf] <4.18-maint>
|
|
-
|
|
-2016-06-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rbproduct.py:
|
|
- Debugged the support for rb-release.
|
|
- [38cdb78872f4] <4.18-maint>
|
|
-
|
|
-2016-06-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rbproduct.py:
|
|
- Updated the product plugin to support rb-release.
|
|
- [ecb166af3ad3] <4.18-maint>
|
|
-
|
|
-2016-06-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a regression in the handling of a cast with a diamond
|
|
- hierachy.
|
|
- [91206af66161] <4.18-maint>
|
|
-
|
|
-2016-06-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rbproduct.py:
|
|
- Implemented the different build types.
|
|
- [15184d86e394] <4.18-maint>
|
|
-
|
|
- * rbproduct.py:
|
|
- Updates to the product plugin.
|
|
- [23ca59449373] <4.18-maint>
|
|
-
|
|
-2016-06-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rbproduct.py:
|
|
- Updated the product plugin to simplify the class hierachy.
|
|
- [a977c7f870f7] <4.18-maint>
|
|
-
|
|
- * .hgignore, rbproduct.py:
|
|
- The product plugin will now do a default build.
|
|
- [8c433398f573] <4.18-maint>
|
|
-
|
|
-2016-05-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rbproduct.py:
|
|
- Updated the product plugin for the latest rbtools changes.
|
|
- [a4a0a84984dc] <4.18-maint>
|
|
-
|
|
-2016-05-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixed a bug in out-of-source builds.
|
|
- [f9602fd24f17] <4.18-maint>
|
|
-
|
|
-2016-04-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * METADATA.in:
|
|
- Updated the meta-data to say that 64-bit Linux wheels are available
|
|
- at PyPI.
|
|
- [5602445cb458] <4.18-maint>
|
|
-
|
|
-2016-04-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.18 for changeset b51768a1749e
|
|
- [1da474e6ccc1]
|
|
-
|
|
- * NEWS, sphinx/specification_files.rst:
|
|
- Released as v4.18.
|
|
- [b51768a1749e] [4.18]
|
|
-
|
|
- * METADATA.in, sipgen/export.c, sipgen/type_hints.c:
|
|
- Fixed the type hints for arrays.
|
|
- [02a712634ce1]
|
|
-
|
|
-2016-04-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * METADATA.in:
|
|
- Updated the description in the meta-data.
|
|
- [d9eb656132f3]
|
|
-
|
|
-2016-04-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * METADATA.in:
|
|
- Further tweak to METADATA.in.
|
|
- [9acfb4baa44c]
|
|
-
|
|
- * METADATA.in:
|
|
- Use v1.1 meta-data rather than v2.0.
|
|
- [8d9645471343]
|
|
-
|
|
- * METADATA.in:
|
|
- Fixed a typo.
|
|
- [4a9ee34e65c3]
|
|
-
|
|
- * METADATA.in, rbproduct.py:
|
|
- Added the METADATA.in file.
|
|
- [39106871989b]
|
|
-
|
|
-2016-04-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * rbproduct.py:
|
|
- Updated the product plugin.
|
|
- [e42e999389f9]
|
|
-
|
|
- * rbproduct.py:
|
|
- Added the rbtools product plugin.
|
|
- [b9ba57967915]
|
|
-
|
|
-2016-03-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/incompatibilities.rst:
|
|
- Fixed a Sphinx warning message.
|
|
- [ae966103325c]
|
|
-
|
|
- * sipgen/main.c, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Fixed the use of SIP_NORETURN.
|
|
- [b3a916e0bc78]
|
|
-
|
|
-2016-03-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/export.c:
|
|
- Fixed a regression in the exporting of the XML API files.
|
|
- [c7714bbbdae7]
|
|
-
|
|
- * build.py, sphinx/build_system.rst, sphinx/c_api.rst,
|
|
- sphinx/python_api.rst:
|
|
- Adopt the new standards for naming development versions.
|
|
- [72140f544ef1]
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Fixed a bug in the documentation.
|
|
- [9e4ee12928cd]
|
|
-
|
|
- * .hgignore:
|
|
- Added the .hgignore file.
|
|
- [e1d2556ce4a2]
|
|
-
|
|
-2016-03-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- __long__ gets translated to __int__ for Python v3.
|
|
- [a4f8a7810cc3]
|
|
-
|
|
-2016-03-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/type_hints.c, sphinx/annotations.rst:
|
|
- Type hints are ignored if an argument is constrained.
|
|
- [f041cf891a29]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Implement the flattening of Unions in type hints.
|
|
- [ff5f0d0251e0]
|
|
-
|
|
-2016-02-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/sip.h.in, sipgen/type_hints.c:
|
|
- Reimplemented the type hint parser so it can handle recursive
|
|
- definitions properly.
|
|
- [506e30d92b51]
|
|
-
|
|
-2016-02-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Fixed type hints for enums in mapped types.
|
|
- [efb04ab24462]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Fixed type hints for the return values of functions.
|
|
- [b5c392c71f78]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Added Iterable to the list of known typing module objects.
|
|
- [a1d1a573a304]
|
|
-
|
|
-2016-02-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/sip.h.in, sipgen/type_hints.c:
|
|
- Fixed the handling of recursively defined type hints.
|
|
- [b5abe12b4968]
|
|
-
|
|
-2016-02-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/sip.h.in, sipgen/type_hints.c:
|
|
- The typing module is now imported as a whole rather than individual
|
|
- objects.
|
|
- [ac67b3f0bd95]
|
|
-
|
|
-2016-02-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sip.pyi:
|
|
- Fixed the Buffer type hint.
|
|
- [78a799aec114]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Don't generate type hints for the sequence concat and repeat slots
|
|
- (and the inplace versions).
|
|
- [a5ae3982ff5f]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/directives.rst:
|
|
- Exported type hint code is no longer included in the module that
|
|
- defines it.
|
|
- [442b3ed07ae6]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Exclude external classes when looking up a class.
|
|
- [61fe4c76a394]
|
|
-
|
|
- * sipgen/transform.c, sipgen/type_hints.c:
|
|
- Fixed type hints and docstrings for const template arguments.
|
|
- [679c13adda6a]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c,
|
|
- sphinx/directives.rst:
|
|
- %TypeHintCode can now be used in a class.
|
|
- [053c7351dba2]
|
|
-
|
|
-2016-02-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Don't generate type hints for slots that can return
|
|
- Py_NotImplemented. Make sure callables generate a valid (but vague)
|
|
- type hint.
|
|
- [883918a8dc36]
|
|
-
|
|
-2016-02-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sip.pyi, sipgen/type_hints.c:
|
|
- Tweaks to the type hint support.
|
|
- [785978d8f7e3]
|
|
-
|
|
-2016-02-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c,
|
|
- sipgen/type_hints.c, sphinx/annotations.rst:
|
|
- Added the /TypeHint/, /TypeHintOut/ and /TypeHintValue/ class
|
|
- annotations.
|
|
- [4f5dc2c51d06]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Moved the old-style signal/slot type hints to PyQt4.
|
|
- [4689a40f7e7d]
|
|
-
|
|
-2016-02-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c,
|
|
- sphinx/annotations.rst:
|
|
- Implemented /TypeHintValue/ as a mapped type annotation.
|
|
- [2418e7f7760d]
|
|
-
|
|
- * build.py:
|
|
- Make sure sip.pyi is included in the source package.
|
|
- [1eabde271e53]
|
|
-
|
|
-2016-02-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y,
|
|
- sipgen/transform.c, siplib/siplib.c.in:
|
|
- Eliminate a few compiler warnings.
|
|
- [e864a0451a4a]
|
|
-
|
|
-2016-02-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- More fixes for Optional handling.
|
|
- [365d31de81fd]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Use Optional properly.
|
|
- [ab7d66d1ea0d]
|
|
-
|
|
-2016-02-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- PY_TYPE and PY_SLICE aren't actually needed.
|
|
- [9778770c65a5]
|
|
-
|
|
-2016-02-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Fixed the translation of Any to object in docstrings.
|
|
- [7571d96c1f79]
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in,
|
|
- sipgen/type_hints.c:
|
|
- Docstrings now use a format based on type hints.
|
|
- [9de9b0470aa6]
|
|
-
|
|
-2016-02-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Don't complain about a lack of %SetCode when /NoSetter/ is
|
|
- specified.
|
|
- [cf4db5eb171a]
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Fixed some typos in error messages.
|
|
- [82a34911686f]
|
|
-
|
|
- * sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y,
|
|
- sphinx/directives.rst:
|
|
- Renamed %ModuleTypeHintCode to %TypeHintCode.
|
|
- [73b214c14dde]
|
|
-
|
|
- * sipgen/type_hints.c, sphinx/annotations.rst:
|
|
- Documented the /NoTypeHint/ annotations.
|
|
- [26e59a86ca45]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c,
|
|
- sipgen/type_hints.c:
|
|
- Implemented the /NoTypeHint/ annotation. Fixed a bug to make sure
|
|
- type header code is included before enum slot code needs it.
|
|
- [1943d4866c73]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/type_hints.c:
|
|
- More flexible handling of ellipsis when /NoArgParser/ is specified.
|
|
- [7097a0008042]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c:
|
|
- Protect against (possible) recursion when handling type hints for
|
|
- mapped types.
|
|
- [9402857f5eb6]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c,
|
|
- sipgen/type_hints.c:
|
|
- Fixed class /TypeHintIn/ when used with a template.
|
|
- [3a914d9789e0]
|
|
-
|
|
-2016-02-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c,
|
|
- sphinx/annotations.rst:
|
|
- Added /TypeHintIn/ as a class annotation.
|
|
- [92d3d32ebf64]
|
|
-
|
|
-2016-02-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/export.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, sipgen/type_hints.c:
|
|
- Completed the implementation of /TypeHintIn/ and /TypeHintOut/.
|
|
- [70e9172c61b7]
|
|
-
|
|
- * sipgen/export.c, sipgen/metasrc/parser.y, sipgen/sip.h.in:
|
|
- Implement /TypeHintValue/ as a synonym for /DocValue/ for the
|
|
- moment.
|
|
- [df8230d91f9f]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/annotations.rst:
|
|
- Adde the stubs of the /TypeHintIn/, /TypeHintOut/ and
|
|
- /TypeHintValue/ annotations.
|
|
- [aeb5d848b98a]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/annotations.rst:
|
|
- Deprecated /DocType/ and /DocValue/.
|
|
- [ec369060cd94]
|
|
-
|
|
- * sipgen/main.c, sipgen/metasrc/parser.y, sipgen/type_hints.c,
|
|
- sphinx/command_line.rst:
|
|
- Added the -f command line option to treat warnings as errors.
|
|
- [fc945a2d732f]
|
|
-
|
|
-2016-02-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Added Iterator and Mapping to the objecys imported from typing.
|
|
- [6d439bc77538]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Fixed references to mapped types imported from other modules.
|
|
- [b579781f2a2a]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Don't try and create type hints for global slots.
|
|
- [11562a825b7c]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Bug fix when looking up enums.
|
|
- [a4b89fac02d3]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Added PEP 484 support for composite modules.
|
|
- [99e626f4fd23]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Fixed PEP 484 support for all callables with a non-default API
|
|
- version.
|
|
- [b2f8e2fed83d]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- Completed the PEP 484 support for mapped types.
|
|
- [b06408ae2397]
|
|
-
|
|
- * sipgen/export.c, sipgen/sip.h.in, sipgen/type_hints.c:
|
|
- More PEP 484 bug fixes.
|
|
- [3e4df4d97ba5]
|
|
-
|
|
-2016-01-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sphinx/directives.rst, sphinx/specification_files.rst:
|
|
- Documented the %ExportedTypeHintCode and %ModuleTypeHintCode
|
|
- directives.
|
|
- [cc7f789360b8]
|
|
-
|
|
- * NEWS, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y,
|
|
- sipgen/sip.h.in, sipgen/type_hints.c, sphinx/directives.rst:
|
|
- Added the %ExportedTypeHintCode and %ModuleTypeHintCode directives.
|
|
- [aef93197b065]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/type_hints.c,
|
|
- sphinx/annotations.rst:
|
|
- Renamed /HintType/ to /TypeHint/.
|
|
- [70c8915f680a]
|
|
-
|
|
-2016-01-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c:
|
|
- More PEP 484 support.
|
|
- [ea6e7a7ae51f]
|
|
-
|
|
-2016-01-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c,
|
|
- sipgen/type_hints.c:
|
|
- More PEP 484 support.
|
|
- [aa1228396424]
|
|
-
|
|
-2016-01-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c,
|
|
- sipgen/type_hints.c:
|
|
- Added the stubs for parsing /HintType/ annotations.
|
|
- [7c0fac66f27c]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, sipgen/type_hints.c:
|
|
- Improved the lookup of QObject.
|
|
- [a2d8330df89d]
|
|
-
|
|
-2016-01-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- More PEP 484 support.
|
|
- [336749ea71c5]
|
|
-
|
|
- * sipgen/type_hints.c, sphinx/annotations.rst:
|
|
- HintType will now fallback to DocType if the latter is specified.
|
|
- [4423da336fbb]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c,
|
|
- sipgen/type_hints.c, sphinx/annotations.rst:
|
|
- Added the /HintType/ annotation.
|
|
- [2985d2d641d4]
|
|
-
|
|
- * sipgen/type_hints.c:
|
|
- More PEP 484 support.
|
|
- [21e70ef4b15f]
|
|
-
|
|
-2016-01-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/sip.h.in, sipgen/type_hints.c:
|
|
- More PEP 484 support.
|
|
- [dd04be5e4e4f]
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in,
|
|
- sipgen/type_hints.c:
|
|
- More support for PEP 484.
|
|
- [353fe29217fb]
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Reverted the use of simplewrapper for mapped types.
|
|
- [14ba1e5b1e5b]
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Namespaces and mapped types now default to simplewrapper as their
|
|
- super-type.
|
|
- [f7fd77d1cd4e]
|
|
-
|
|
-2016-01-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/main.c, sipgen/sip.h.in,
|
|
- sipgen/sipgen.sbf, sipgen/type_hints.c, sphinx/command_line.rst,
|
|
- sphinx/introduction.rst.in:
|
|
- Initial support for generating PEP484 type hints.
|
|
- [4191467f125a]
|
|
-
|
|
- * sip.pyi:
|
|
- Added None return types to the stub file.
|
|
- [314ef3cd76ed]
|
|
-
|
|
-2016-01-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Hard-code the name of the stub file (rather than handle bespoke
|
|
- module names).
|
|
- [e1e4b29eb1a6]
|
|
-
|
|
- * configure.py.in, sip.pyi, sphinx/installation.rst:
|
|
- Added the sip.pyi type hints stub file.
|
|
- [30e58feee19f]
|
|
-
|
|
-2016-01-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Minor docs change.
|
|
- [dd03f114259c]
|
|
-
|
|
-2016-01-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/specification_files.rst:
|
|
- Deprecated SIP_SLOT.
|
|
- [2b821ae5e9f1]
|
|
-
|
|
- * Roadmap.rst:
|
|
- Updated the roadmap.
|
|
- [495ebc034f99]
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Deprecated the SingleShot annotation.
|
|
- [aa46307e00b4]
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Deprecated SIP_RXOBJ_CON and SIP_SLOT_CON.
|
|
- [affb0c5b465c]
|
|
-
|
|
-2016-01-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/specification_files.rst:
|
|
- Deprecated SIP_SIGNAL.
|
|
- [865e00b6ffa0]
|
|
-
|
|
-2016-01-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/specification_files.rst:
|
|
- Deprecated SIP_ANYSLOT.
|
|
- [8199aa8980e8]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/specification_files.rst:
|
|
- Deprecated SIP_QOBJECT.
|
|
- [fb9c94746255]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/specification_files.rst:
|
|
- Deprecated SIP_RXOBJ_DIS.
|
|
- [0f26db165557]
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/specification_files.rst:
|
|
- Deprecated SIP_SLOT_DIS.
|
|
- [051775601278]
|
|
-
|
|
-2016-01-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * Merged the current maintenance branch.
|
|
- [b7bd085548b6]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/transform.c:
|
|
- Fixes to the handling of fatal errors.
|
|
- [f35ebfa4c27f] <4.17-maint>
|
|
-
|
|
- * Merged the current maintenance branch with the default.
|
|
- [d244ec3a2dec]
|
|
-
|
|
-2016-01-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in, sipgen/export.c, sipgen/gencode.c, sipgen/main.c,
|
|
- sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, siplib/siplib.c.in:
|
|
- Fixed all compiler warnings.
|
|
- [9dbdf30558aa] <4.17-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in, siplib/siplib.c.in,
|
|
- sphinx/specification_files.rst:
|
|
- Some minor tidy-ups.
|
|
- [b4edb1990e23] <4.17-maint>
|
|
-
|
|
- * Merged the current maintenance branch with the default.
|
|
- [782cf5e8441e]
|
|
-
|
|
-2015-12-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Another attempt and preventing accesses to SIP data structures after
|
|
- the interpreter has gone.
|
|
- [138eb1eded99] <4.17-maint>
|
|
-
|
|
-2015-12-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipGetInterpreter() to the public API. Avoid the Python
|
|
- interpreter if it has gone when getting a QMetaObject.
|
|
- [61d8f0f6f5c0] <4.17-maint>
|
|
-
|
|
-2015-12-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Cleared a benign exception in the handling of mixins.
|
|
- [602884540b54] <4.17-maint>
|
|
-
|
|
-2015-12-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the previous fix.
|
|
- [17876e15c41d] <4.17-maint>
|
|
-
|
|
-2015-11-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Restrict the invocation of sub-class convertors to those that handle
|
|
- direct sub-classes.
|
|
- [57cbe5142d57] <4.17-maint>
|
|
-
|
|
-2015-10-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Invoking sub-class convertor code turns out to be quite expensive so
|
|
- check the object map first. Check the object map again if the
|
|
- convertor code needed to be invoked. This change is absolutely
|
|
- fundamental to the inner workings so may have some unexpected
|
|
- consequences.
|
|
- [77fde6c0ee2d] <4.17-maint>
|
|
-
|
|
-2015-10-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c,
|
|
- siplib/siplib.c.in:
|
|
- Refactored the handling of casts so that cast functions are only
|
|
- generated for classes that multiply inherit somewhere in their class
|
|
- hierarchy.
|
|
- [14bfbaf7431a] <4.17-maint>
|
|
-
|
|
-2015-10-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.17 for changeset 0cbb680b4f69
|
|
- [36d16e74cf7f]
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.17.
|
|
- [0cbb680b4f69] [4.17]
|
|
-
|
|
-2015-09-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in:
|
|
- Fix extensions that use Python v3.5 slots but are being built with
|
|
- an earlier version.
|
|
- [9102d6c3daf0]
|
|
-
|
|
-2015-09-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * specs/win32-msvc2015:
|
|
- Tweak win32-msvc2015 to suppress a warning message.
|
|
- [74754ca3e59f]
|
|
-
|
|
- * configure.py.in, specs/win32-msvc2010, specs/win32-msvc2015:
|
|
- Added win32-msvc2015 to the build system.
|
|
- [fca4f2fcbb39]
|
|
-
|
|
-2015-09-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in:
|
|
- Added a comment about adding new slot types and its effect on the
|
|
- ABI.
|
|
- [50af972e1652]
|
|
-
|
|
-2015-09-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/specification_files.rst:
|
|
- Added support for PEP 492, ie. the __await__, __aiter__ and
|
|
- __anext__ special methods.
|
|
- [f5d07b919355]
|
|
-
|
|
- * sipgen/metasrc/parser.y, siplib/siplib.c.in:
|
|
- Add __aenter__ and __aexit__ and non-lazy methods.
|
|
- [979e23401d1d]
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Fixed a regression in the handling of the __len__ annotation.
|
|
- [cad3bdaecf3e]
|
|
-
|
|
- * sphinx/static/default.css:
|
|
- Merged the 4.16-main branch into the trunk.
|
|
- [b4f30681b90f]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in, siplib/voidptr.c,
|
|
- sphinx/annotations.rst, sphinx/specification_files.rst:
|
|
- Implemented support for PEP465 (array infix operator) ie. the
|
|
- __matmul__ and __imatmul__ special methods and function annotations
|
|
- of the same name.
|
|
- [ff867feb8f90] <4.16-maint>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Tweaked an exception message to follow the style adopted in Python
|
|
- v3.5.
|
|
- [e98693bf17d7] <4.16-maint>
|
|
-
|
|
-2015-08-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the error handling of sipCallMethod() when a re-implementation
|
|
- raises an exception.
|
|
- [27c61f660fba] <4.16-maint>
|
|
-
|
|
-2015-07-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16.9 for changeset 87de938efba2
|
|
- [90aaa31768c9] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.16.9.
|
|
- [87de938efba2] [4.16.9] <4.16-maint>
|
|
-
|
|
- * sipgen/export.c:
|
|
- Added the "virtual" attribute to the exported XML.
|
|
- [e37fcc2e29e2] <4.16-maint>
|
|
-
|
|
-2015-07-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Improved the detail of the text of the exception
|
|
- sipBadCatcherResult() raises.
|
|
- [4f7ad0a4e353] <4.16-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Allow for an /External/ class being referenced when the module
|
|
- containing its implementation hasn't been imported.
|
|
- [1574043cc948] <4.16-maint>
|
|
-
|
|
-2015-07-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fix a problem caused by PyQt4 wrapping the QApplication C++ instance
|
|
- as multiple Python objects.
|
|
- [42a056fbf006] <4.16-maint>
|
|
-
|
|
-2015-06-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Remove an object from the map whenever the pointer ot the C/C++
|
|
- instance is cleared.
|
|
- [8dd533ab6ce9] <4.16-maint>
|
|
-
|
|
-2015-06-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a missing reference in the previous fix.
|
|
- [1a2704282933] <4.16-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a regression in the handling of static non-pointer object
|
|
- variables.
|
|
- [dafbaadea76b] <4.16-maint>
|
|
-
|
|
-2015-06-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16.8 for changeset f87e232098eb
|
|
- [95abaccb67d6] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.16.8.
|
|
- [f87e232098eb] [4.16.8] <4.16-maint>
|
|
-
|
|
-2015-06-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in:
|
|
- Bump the internal API version number.
|
|
- [6069463e8937] <4.16-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, siplib/sip.h.in.in,
|
|
- siplib/siplib.c.in:
|
|
- Fixed the handling of non-pointer object variables so that they are
|
|
- only wrapped once and the Python object cached.
|
|
- [11a92ebd4840] <4.16-maint>
|
|
-
|
|
-2015-06-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/using.rst:
|
|
- Fixed a type in the docs.
|
|
- [7d0d2cede024] <4.16-maint>
|
|
-
|
|
-2015-06-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [92c83f02758f] <4.16-maint>
|
|
-
|
|
-2015-05-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sphinx/specification_files.rst:
|
|
- Added support for the current Python3 exceptions.
|
|
- [79afcf752c2a] <4.16-maint>
|
|
-
|
|
-2015-05-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed bugs maintaining the deleted state of wrapped instances.
|
|
- [e5674f034e48] <4.16-maint>
|
|
-
|
|
-2015-03-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Fixed a regression in v4.16.7 that affects methods with %MethodCode
|
|
- and the __len__ annotation.
|
|
- [765b6874363f] <4.16-maint>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16.7 for changeset 9076f70a012c
|
|
- [dffe9ad569c9] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.16.7.
|
|
- [9076f70a012c] [4.16.7] <4.16-maint>
|
|
-
|
|
- * sphinx/static/classic.css, sphinx/static/default.css:
|
|
- Fixed the stylesheet.
|
|
- [af2e27024d33] <4.16-maint>
|
|
-
|
|
-2015-03-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fix the declaration of sipRes in the %VirtualCallCode support.
|
|
- [bd92aad3cf7d] <4.16-maint>
|
|
-
|
|
-2015-03-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/specification_files.rst:
|
|
- Added %VirtualCallCode to the BNF.
|
|
- [cf1ad8f7be68] <4.16-maint>
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Documented %VirtualCallCode.
|
|
- [752beb1cd641] <4.16-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y,
|
|
- sipgen/sip.h.in:
|
|
- Renamed %InvokeCode to %VirtualCallCode and only use it in a
|
|
- generated virtual reimplementation.
|
|
- [82c8303a8041] <4.16-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y,
|
|
- sipgen/sip.h.in:
|
|
- Implemented the %InvokeCode directive.
|
|
- [d85f3584b06f] <4.16-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the handling of keyword argument when keywords can be used for
|
|
- all arguments.
|
|
- [2ae037bbfa23] <4.16-maint>
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Fixed a documentation typo.
|
|
- [fb4c980c92cc] <4.16-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Backed out changeset 9e11298be101 A more correct solution is
|
|
- required.
|
|
- [e212465fed26] <4.16-maint>
|
|
-
|
|
-2015-03-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Reverted to the pre-v4.15 behavour when generating the scope of a
|
|
- call to a virtual implementation where the scope may be ambiguous.
|
|
- This may not be the right call, but at least the code compiles.
|
|
- [9e11298be101] <4.16-maint>
|
|
-
|
|
-2015-03-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/transform.c:
|
|
- Fixed a bug where the original typedef of an argument of a mapped
|
|
- template type was being corrupted.
|
|
- [f652446e2462] <4.16-maint>
|
|
-
|
|
- * sphinx/conf.py.in:
|
|
- Updated for sphinx v1.3.
|
|
- [569a9695bc2f] <4.16-maint>
|
|
-
|
|
- * sipgen/sip.h.in:
|
|
- Fixed a regression in the handling of module flags.
|
|
- [3f8c05ac8e47] <4.16-maint>
|
|
-
|
|
-2015-02-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16.6 for changeset 1c5f5c8c7416
|
|
- [6c73a1f41add] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released v4.16.6.
|
|
- [1c5f5c8c7416] [4.16.6] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [bf261aa4b322] <4.16-maint>
|
|
-
|
|
-2015-02-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Added support for module-level PyObjects.
|
|
- [136913548818] <4.16-maint>
|
|
-
|
|
-2015-02-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Installing into a virtual env should now work.
|
|
- [5e133f99d74e] <4.16-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the handling of an empty dict of keyword arguments.
|
|
- [5f5542824235] <4.16-maint>
|
|
-
|
|
-2015-02-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/main.c, sphinx/command_line.rst:
|
|
- The -T command line option is now ignored and deprecated. Timestamps
|
|
- in generated files are always disabled.
|
|
- [9b1a195afe04] <4.16-maint>
|
|
-
|
|
- * sipgen/main.c, sphinx/command_line.rst:
|
|
- Added support for the '@file' format for passing additional command
|
|
- line options in a file.
|
|
- [6c270132db87] <4.16-maint>
|
|
-
|
|
-2015-02-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/main.c, sphinx/command_line.rst:
|
|
- Deprecated the -z option to the code generator.
|
|
- [b1dff38b9766] <4.16-maint>
|
|
-
|
|
-2015-02-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a couple of compiler warnings.
|
|
- [d653de687fd4] <4.16-maint>
|
|
-
|
|
-2015-02-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * Merged the current 4.16-maint branch into the trunk.
|
|
- [f207b8886557]
|
|
-
|
|
-2015-01-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the lookup of slots.
|
|
- [56c254273cd8] <4.16-maint>
|
|
-
|
|
-2015-01-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y:
|
|
- Fixed an invalid deprecation warning.
|
|
- [3c5425fa3c80] <4.16-maint>
|
|
-
|
|
-2015-01-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sphinx/annotations.rst:
|
|
- Added the /FileExtension/ class annotation.
|
|
- [51f7769fe32f] <4.16-maint>
|
|
-
|
|
- * LICENSE, Roadmap.rst, build.py, configure.py.in, sipgen/export.c,
|
|
- sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/main.c,
|
|
- sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/sipgen.sbf, sipgen/transform.c, siplib/apiversions.c,
|
|
- siplib/array.c, siplib/array.h, siplib/bool.cpp,
|
|
- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c,
|
|
- siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in,
|
|
- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c,
|
|
- siputils.py, sphinx/conf.py.in, sphinx/directives.rst:
|
|
- Updated the copyright notices.
|
|
- [ccd0bdd9b21c] <4.16-maint>
|
|
-
|
|
- * siputils.py, sphinx/build_system.rst, sphinx/c_api.rst,
|
|
- sphinx/python_api.rst:
|
|
- Updated the docs in preparation for snapshots being called previews.
|
|
- [c42e02f71e27] <4.16-maint>
|
|
-
|
|
-2014-12-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug when a C/C++ argument was a pointer to a
|
|
- struct/class and the Python argument was a void*.
|
|
- [51b0b1f31cea] <4.16-maint>
|
|
-
|
|
-2014-12-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in, siputils.py:
|
|
- Fixed the --target-py-version flag to configure.py.
|
|
- [0e9e078d2d18] <4.16-maint>
|
|
-
|
|
-2014-12-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16.5 for changeset 9c27ed5e0d77
|
|
- [6aa131ac48e8] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.16.5.
|
|
- [9c27ed5e0d77] [4.16.5] <4.16-maint>
|
|
-
|
|
-2014-12-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed SIP_SLOT_CON and SIP_SLOT_DIS so that they generate const
|
|
- char*.
|
|
- [7f4c922a779f] <4.16-maint>
|
|
-
|
|
-2014-12-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/array.c, siplib/voidptr.c, sphinx/c_api.rst,
|
|
- sphinx/python_api.rst:
|
|
- Added sip.voidptr.asarray().
|
|
- [d3b5a974ac69] <4.16-maint>
|
|
-
|
|
-2014-12-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Updated a deprecated definition of method arguments.
|
|
- [529b8cd2ab89] <4.16-maint>
|
|
-
|
|
-2014-11-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed a regression when adding the VPATH support for moc.
|
|
- [c2c285a80412] <4.16-maint>
|
|
-
|
|
-2014-11-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * build.py:
|
|
- A source package now includes a full ChangeLog.
|
|
- [c005a6d2e53e] <4.16-maint>
|
|
-
|
|
-2014-11-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Build system fix so that generated Makefiles support VPATH with moc.
|
|
- [3f9301ccb08a] <4.16-maint>
|
|
-
|
|
-2014-11-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in, siputils.py, sphinx/build_system.rst:
|
|
- Fixed bugs with out-of-tree builds.
|
|
- [4579c80da1be] <4.16-maint>
|
|
-
|
|
- * sphinx/build_system.rst, sphinx/distutils.rst:
|
|
- Updated the docs regarding the build system and SIP v5.
|
|
- [2828a3bb25af] <4.16-maint>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Updated the docs for sip.SIP_VERSION_STR.
|
|
- [04e7630e6a41] <4.16-maint>
|
|
-
|
|
-2014-11-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * build.py:
|
|
- Removed the reference to MacHg in the internal build script.
|
|
- [b1668849c472] <4.16-maint>
|
|
-
|
|
-2014-10-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16.4 for changeset c5d0da367a1e
|
|
- [cb045f5e074a] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.16.4.
|
|
- [c5d0da367a1e] [4.16.4] <4.16-maint>
|
|
-
|
|
-2014-10-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug related to encoded C string arguments to
|
|
- virtuals.
|
|
- [f230cfcebc36] <4.16-maint>
|
|
-
|
|
-2014-10-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/descriptors.c:
|
|
- Minor fix for Python v2.5 and earlier.
|
|
- [3b7f6957ae4b] <4.16-maint>
|
|
-
|
|
-2014-10-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Reimplemented the __qualname__ support for enums so that it is
|
|
- always non_NULL (because Python accesses the value directly
|
|
- internally and doesn't go through the attribute interface).
|
|
- [c2cfa151229a] <4.16-maint>
|
|
-
|
|
-2014-10-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in, sphinx/c_api.rst:
|
|
- Removed SIP_REACQUIRE_GIL as we no longer need it.
|
|
- [7e026c2613ec] <4.16-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a recent regression in the de-duplication of virtual catchers.
|
|
- [65abadff114d] <4.16-maint>
|
|
-
|
|
-2014-10-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in, sphinx/c_api.rst:
|
|
- Added SIP_REACQUIRE_GIL.
|
|
- [9ff042abc188] <4.16-maint>
|
|
-
|
|
-2014-10-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c, sphinx/annotations.rst:
|
|
- Added the /AbortOnException/ function annotation.
|
|
- [835f4d6bcb99] <4.16-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/transform.c,
|
|
- sphinx/annotations.rst:
|
|
- Added the /DisallowNone/ function annotation.
|
|
- [8b2f4c02e106] <4.16-maint>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/metasrc/parser.y,
|
|
- sipgen/sip.h.in, sphinx/annotations.rst:
|
|
- Implemented the /DisallowNone/ argument annotation.
|
|
- [d3a7fd6b1344] <4.16-maint>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/transform.c, sphinx/annotations.rst,
|
|
- sphinx/c_api.rst:
|
|
- Added the AllowNone function annotation.
|
|
- [9d52162606b5] <4.16-maint>
|
|
-
|
|
-2014-09-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Virtual handlers with handwritten code can no longer be considered
|
|
- to be the same.
|
|
- [a4c712b72828] <4.16-maint>
|
|
-
|
|
-2014-09-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16.3 for changeset 8ead57151bd1
|
|
- [de0c3c076ab3] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.16.3.
|
|
- [8ead57151bd1] [4.16.3] <4.16-maint>
|
|
-
|
|
-2014-09-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [b5de96615389] <4.16-maint>
|
|
-
|
|
-2014-09-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/array.c, siplib/bool.cpp, siplib/siplib.c.in:
|
|
- Eliminated all compiler warnings when building on Windows with
|
|
- qmake.
|
|
- [1a321ad68223] <4.16-maint>
|
|
-
|
|
-2014-09-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Enums now support PEP 3155 fro Python v3.3 and later.
|
|
- [a3f8a9b56659] <4.16-maint>
|
|
-
|
|
-2014-07-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * build.py, configure.py.in:
|
|
- Added fixes for QTBUG-39300.
|
|
- [53f490fe8f52] <4.16-maint>
|
|
-
|
|
-2014-07-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16.2 for changeset 4eb546b2c208
|
|
- [21412c346e75] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.16.2.
|
|
- [4eb546b2c208] [4.16.2] <4.16-maint>
|
|
-
|
|
-2014-06-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a regression that introduced some "modern" C code.
|
|
- [449e2866018a] <4.16-maint>
|
|
-
|
|
-2014-06-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/metasrc/parser.y, sphinx/directives.rst:
|
|
- Deprecated the %ConsolidatedModule directive as it won't be
|
|
- supported in SIP v5.
|
|
- [e4dc9d633742] <4.16-maint>
|
|
-
|
|
-2014-06-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a bug with /Out/ class pointer arguments in virtual methods.
|
|
- [8abafd34bfab] <4.16-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Work around what looks like a Python2 bug in the handling of
|
|
- composite modules.
|
|
- [f113aea18630] <4.16-maint>
|
|
-
|
|
-2014-06-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16.1 for changeset efd5e09a4024
|
|
- [787e2ce426f7] <4.16-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.16.1.
|
|
- [efd5e09a4024] [4.16.1] <4.16-maint>
|
|
-
|
|
-2014-06-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixes for Python v2.6.
|
|
- [3974dcb54776] <4.16-maint>
|
|
-
|
|
-2014-06-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a regression in the creating of the build file when generating
|
|
- individual source files.
|
|
- [d9229cce7220] <4.16-maint>
|
|
-
|
|
-2014-05-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.16 for changeset d3a907d2acd1
|
|
- [2a310fa9719a]
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.16.
|
|
- [d3a907d2acd1] [4.16]
|
|
-
|
|
-2014-05-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/descriptors.c:
|
|
- Fixed a regression introduced when getting rid of warning messages.
|
|
- [9472e2f08313]
|
|
-
|
|
-2014-05-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixed a regression in the handling of the --platform configure.py
|
|
- option.
|
|
- [1cc4bd967882]
|
|
-
|
|
-2014-05-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Eliminated a couple of (benign) warning messages.
|
|
- [f6acb8ed7b65]
|
|
-
|
|
-2014-05-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [d3c64f5117e0]
|
|
-
|
|
- * sipgen/main.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sphinx/command_line.rst, sphinx/directives.rst,
|
|
- sphinx/incompatibilities.rst:
|
|
- Changed the handling of timelines so that the latest version is
|
|
- enabled if no known version is explicitly enabled. Added the -B
|
|
- option to sip to allow timeline backstops to be defined.
|
|
- [8a3fb94329aa]
|
|
-
|
|
-2014-05-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixed a bug in the handling of configuration files.
|
|
- [61da788f455f]
|
|
-
|
|
-2014-05-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Don't generate an interface file if it will be empty.
|
|
- [3f7d0afde4ce]
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Ignore overflows when converting Python ints to C/C++.
|
|
- [8065fb1cb418]
|
|
-
|
|
-2014-05-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sphinx/annotations.rst:
|
|
- Added the /NoSetter/ variable annotation.
|
|
- [422cc3b4ee5b]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug for variables with multi-const types.
|
|
- [dd6840986c03]
|
|
-
|
|
-2014-05-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/array.c, siplib/descriptors.c, siplib/siplib.c.in,
|
|
- siplib/voidptr.c:
|
|
- Fixed building against Python v2.5 and earlier.
|
|
- [be46b0f3b785]
|
|
-
|
|
- * NEWS, configure.py.in, sphinx/installation.rst:
|
|
- Added the --no-tools option to configure.py.
|
|
- [fcc0fc5d24c4]
|
|
-
|
|
-2014-05-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/installation.rst:
|
|
- Some documentation fixes.
|
|
- [210151d0ba6a]
|
|
-
|
|
- * build.py, configurations/rpi_py3.cfg, sphinx/installation.rst:
|
|
- Removed the configurations directory.
|
|
- [4b482124587b]
|
|
-
|
|
- * siplib/apiversions.c, siplib/array.c, siplib/descriptors.c,
|
|
- siplib/siplib.c.in, siplib/voidptr.c:
|
|
- Eliminated most warning messages. Fixed a memory leak in the
|
|
- handling of sip.array.
|
|
- [63626dea7508]
|
|
-
|
|
- * configure.py.in, sphinx/installation.rst:
|
|
- Removed the unneeded support for continuation lines in configuration
|
|
- files.
|
|
- [95f40f9a8967]
|
|
-
|
|
- * NEWS, build.py, configurations/rpi_py3.cfg, configure.py.in,
|
|
- siputils.py, sphinx/installation.rst:
|
|
- Removed the --static-root option. Added the --configuration,
|
|
- --sysroot and --target-py-version options. Added the Raspberry Pi
|
|
- configuration file.
|
|
- [e57308c0ef92]
|
|
-
|
|
-2014-05-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, build.py, configure.py.in, sphinx/installation.rst:
|
|
- Added the --use-qmake option to configure.py so that it can be
|
|
- cross-compiled.
|
|
- [163331dc90b0]
|
|
-
|
|
-2014-05-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * build.py, custom/custom.c, custom/customw.c, custom/mkcustom.py,
|
|
- sphinx/build_system.rst, sphinx/builtin.rst, sphinx/index.rst:
|
|
- Removed the (way out of date and superceded by pyqtdeploy) custom
|
|
- directory.
|
|
- [4e4a1cbe2f7e]
|
|
-
|
|
- * NEWS, configure.py.in, sphinx/installation.rst:
|
|
- Added the --static-root option to configure.py.
|
|
- [c90befbc77d2]
|
|
-
|
|
-2014-04-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Handle in-line comments in spec files.
|
|
- [044852da62d4]
|
|
-
|
|
-2014-04-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Fixed the previous fix. (This is C not C++.)
|
|
- [a67e996e00d3]
|
|
-
|
|
-2014-04-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/voidptr.c:
|
|
- Implemented nb_bool for sip.voidptr.
|
|
- [7ca5aa6bde10]
|
|
-
|
|
-2014-04-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/qtlib.c, siplib/sipint.h:
|
|
- Reversed the sense of the argument to check for signal receivers.
|
|
- [e14829596147]
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h.in.in,
|
|
- siplib/sipint.h, siplib/siplib.c.in:
|
|
- Added sipInvokeSlotEx() as support for the upcoming 'check_receiver'
|
|
- flag in PyQt's connect().
|
|
- [d7ef32db3967]
|
|
-
|
|
-2014-04-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y:
|
|
- Merged the v4.15 maintenance branch into the trunk.
|
|
- [8e55c9f2ba87]
|
|
-
|
|
-2014-04-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/conf.py.in:
|
|
- Fixed the missing logo thumbnail.
|
|
- [f53a9094e52e] <4.15-maint>
|
|
-
|
|
-2014-04-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in, sphinx/build_system.rst, sphinx/using.rst:
|
|
- Updated the docs so that pyqtconfig is only mentioned in the context
|
|
- of PyQt4. Fixed some typos.
|
|
- [efa359fde2a4] <4.15-maint>
|
|
-
|
|
-2014-03-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the generation of Qt signal signatures so that they are
|
|
- correct for Qt5.
|
|
- [3f9633204687] <4.15-maint>
|
|
-
|
|
-2014-03-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/metasrc/parser.y, sipgen/sip.h.in:
|
|
- Fixed the handling of platforms and features that are disabled by
|
|
- other platforms or features.
|
|
- [0c1b13e45887] <4.15-maint>
|
|
-
|
|
-2014-03-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the handling of enums for C++11.
|
|
- [85e544458789] <4.15-maint>
|
|
-
|
|
-2014-03-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.15.5 for changeset 13906834d910
|
|
- [411bbc879ae6] <4.15-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.15.5.
|
|
- [13906834d910] [4.15.5] <4.15-maint>
|
|
-
|
|
-2014-03-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Make sure an object doesn't already have a parent when adding it in
|
|
- __init__() (ie. avoid an infinite loop if __init__() is called twice
|
|
- for an object).
|
|
- [05c32deeaeed] <4.15-maint>
|
|
-
|
|
-2014-03-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [8d7c37ddc55d] <4.15-maint>
|
|
-
|
|
-2014-02-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in:
|
|
- Added the PyQt signal hack #3. All versions of signals with optional
|
|
- arguments are now generated for PyQt4 when built against Qt5.
|
|
- [22c03a345d4e] <4.15-maint>
|
|
-
|
|
-2014-02-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed the creation of wrapper scripts for Python v3.4 on OS/X.
|
|
- [93e30c84cbf9] <4.15-maint>
|
|
-
|
|
-2014-02-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- siplib/sip.h.in.in:
|
|
- Support for the PyQt4 signal hacks when building against Qt5.
|
|
- [8bff7edb3c80] <4.15-maint>
|
|
-
|
|
-2014-02-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in:
|
|
- Implemented the PyQt5 signal emitters.
|
|
- [4fc63f9adb44] <4.15-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Bumped the internal API to v11.0. The PyQt4 and PyQt5 specific data
|
|
- structures are now completely separate in preparation for the signal
|
|
- changes needed by PyQt5. Renamed the PyQt4Flags and
|
|
- PyQt4NoQMetaObject annotations so that they are not PyQt4 specific.
|
|
- [b96a5e69adb6] <4.15-maint>
|
|
-
|
|
-2014-02-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a name clash for a type in a module that has the same name as
|
|
- the module when building against Python v2.
|
|
- [d45411f2a001] <4.15-maint>
|
|
-
|
|
-2014-02-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Relax a test in the build system for PyQt v4.10.3 and earlier so
|
|
- that we don't have to synch releases.
|
|
- [e6e10c9f08b5] <4.15-maint>
|
|
-
|
|
-2014-02-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- sip.wrapinstance() will now handle addresses >32 bits on Windows64.
|
|
- [5a95f257ccca] <4.15-maint>
|
|
-
|
|
-2014-02-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sphinx/annotations.rst:
|
|
- Fixed the /KeepReference/ function annotation when applied to static
|
|
- functions.
|
|
- [2737c3074f4d] <4.15-maint>
|
|
-
|
|
- * siputils.py:
|
|
- Removed the requirement that Python must be built as a framework on
|
|
- OS/X.
|
|
- [fb6dbd80297b] <4.15-maint>
|
|
-
|
|
-2014-01-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in:
|
|
- Removed the unnecessary (and broken) support for __unicode__().
|
|
- [0b19f77489ce] <4.15-maint>
|
|
-
|
|
-2014-01-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siputils.py, sphinx/build_system.rst:
|
|
- The use_arch argument of sipconfig.create_wrapper() will now accept
|
|
- a space separated set of architectures.
|
|
- [6fe353128007] <4.15-maint>
|
|
-
|
|
-2014-01-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixed a bug building on OSX when passing a value of LIBDIR to
|
|
- configure.py on the command line.
|
|
- [577bff05ca6d] <4.15-maint>
|
|
-
|
|
-2014-01-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.15.4 for changeset 4d629a0d7510
|
|
- [79a5b5e82ca3] <4.15-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.15.4.
|
|
- [4d629a0d7510] [4.15.4] <4.15-maint>
|
|
-
|
|
-2014-01-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * LICENSE, Roadmap.rst, build.py, configure.py.in, sipgen/export.c,
|
|
- sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/main.c,
|
|
- sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in,
|
|
- sipgen/sipgen.sbf, sipgen/transform.c, siplib/apiversions.c,
|
|
- siplib/array.c, siplib/array.h, siplib/bool.cpp,
|
|
- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c,
|
|
- siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in,
|
|
- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c,
|
|
- siputils.py, sphinx/conf.py.in, sphinx/directives.rst:
|
|
- Updated the copyright notices.
|
|
- [b4a30e5b9970] <4.15-maint>
|
|
-
|
|
-2013-12-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Allow the pointers used to store the parsed results from Python
|
|
- reimplementations to be NULL.
|
|
- [7b83d16f7d28] <4.15-maint>
|
|
-
|
|
- * build.py, sipgen/lexer.l, sipgen/metasrc/README,
|
|
- sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/parser.y:
|
|
- Moved the lexer and parser meta-source files to a separate directory
|
|
- to avoid problems with make accidentaly regenerating them.
|
|
- [c8d48c22ebf7] <4.15-maint>
|
|
-
|
|
- * build.py:
|
|
- Remove the __pycache__ directory when cleaning.
|
|
- [a0682feb1e94] <4.15-maint>
|
|
-
|
|
-2013-12-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/array.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added SIP_SSIZE_T_FORMAT to the C API.
|
|
- [e74243fcc265] <4.15-maint>
|
|
-
|
|
-2013-12-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y:
|
|
- Fixed the parsing of C++ types involving multiple const and
|
|
- pointers.
|
|
- [7a74623b6967] <4.15-maint>
|
|
-
|
|
-2013-10-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/array.c, siplib/objmap.c, siplib/sipint.h,
|
|
- siplib/siplib.c.in, siplib/voidptr.c:
|
|
- Fixed all the compiler warning messages when building the sip
|
|
- module.
|
|
- [5e5fdf4cc35c] <4.15-maint>
|
|
-
|
|
-2013-10-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.15.3 for changeset a751e48db99a
|
|
- [dffbff1c0664] <4.15-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.15.3.
|
|
- [a751e48db99a] [4.15.3] <4.15-maint>
|
|
-
|
|
-2013-10-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed virtual re-implementations so that the number of generated
|
|
- Python methods slots is correct and that re-implementations
|
|
- explicitly marked as virtual are handled correctly.
|
|
- [aa7806ed2405] <4.15-maint>
|
|
-
|
|
-2013-10-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the format of an exception with Python v2.
|
|
- [5dc8c370157e] <4.15-maint>
|
|
-
|
|
-2013-09-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.15.2 for changeset f8fdf4d1eb87
|
|
- [82b599f547b1] <4.15-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.15.2.
|
|
- [f8fdf4d1eb87] [4.15.2] <4.15-maint>
|
|
-
|
|
-2013-09-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/array.c, siplib/array.h, siplib/sip.h.in.in,
|
|
- sphinx/c_api.rst:
|
|
- sipConvertToArray() will now optionally take ownership of the array
|
|
- memory. Changed the signatures of sipConvertToArray() and
|
|
- sipConvertToTypedArray(), but in a source and binary compatible way.
|
|
- [908d49322dcf] <4.15-maint>
|
|
-
|
|
- * siplib/array.c, sphinx/c_api.rst:
|
|
- Added support for char, unsigned char, short, int, float and double
|
|
- as array types.
|
|
- [fc41755d6481] <4.15-maint>
|
|
-
|
|
-2013-08-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Further fixes for the handling of virtual methods.
|
|
- [14732b487dda] <4.15-maint>
|
|
-
|
|
-2013-08-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.15.1 for changeset 148b813a559c
|
|
- [5ef6f2e04687] <4.15-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.15.1.
|
|
- [148b813a559c] [4.15.1] <4.15-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a regression in the handling of hidden virtuals.
|
|
- [15657c502e42] <4.15-maint>
|
|
-
|
|
-2013-08-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.15 for changeset 2f84fb045098
|
|
- [1f9737376184]
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.15.
|
|
- [2f84fb045098] [4.15]
|
|
-
|
|
-2013-08-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Fixed a mistake in the documentation for /Factory/.
|
|
- [4c2fe2e7397e]
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a C++ism that crept into the sip module code.
|
|
- [764f7fc80f1f]
|
|
-
|
|
-2013-08-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [69897cf50dea]
|
|
-
|
|
-2013-08-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipRegisterProxyResolver() to the public API.
|
|
- [66235bf9625f]
|
|
-
|
|
-2013-08-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Documented sipConvertToArray() and sipConvertToTypedArray().
|
|
- [bf49a3ad5612]
|
|
-
|
|
-2013-08-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/array.c, siplib/sipint.h, siplib/siplib.c.in:
|
|
- Fixed the array support.
|
|
- [e2d05fb54872]
|
|
-
|
|
- * sipgen/gencode.c, siplib/array.c, siplib/array.h,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Added sipConvertToArray().
|
|
- [660fdd5cb10e]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Eliminated unused arguments in the setters of constant variables.
|
|
- [e43b7d64c488]
|
|
-
|
|
-2013-08-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in,
|
|
- sphinx/annotations.rst:
|
|
- Added the /NoScope/ enum annotation.
|
|
- [aa4646c186d2]
|
|
-
|
|
- * siplib/array.c, siplib/array.h, siplib/siplib.c.in:
|
|
- Properly initialise the sip.array type.
|
|
- [a7e4f6c62b8f]
|
|
-
|
|
- * siplib/array.c, siplib/array.h, siplib/sip.h.in.in, siplib/sipint.h,
|
|
- siplib/siplib.c.in:
|
|
- Completed the array implementation for wrapped types.
|
|
- [9e5b63022e19]
|
|
-
|
|
-2013-08-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/array.c, siplib/array.h,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in, siplib/siplib.sbf.in:
|
|
- Added the stub of the array support.
|
|
- [ffb87d2e0fc5]
|
|
-
|
|
-2013-07-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Documented sipConvertFromNewPyType().
|
|
- [ba59d434b206]
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Changed the signature of sipConvertFromNewPyType() to handle
|
|
- ownership and hide the internals of generated derived classes.
|
|
- [5a9ba502593c]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the PyQt5 generation of qt_metaobject() so that it supports
|
|
- QML.
|
|
- [2f18c4617542]
|
|
-
|
|
-2013-07-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/sipint.h,
|
|
- siplib/siplib.c.in, siplib/threads.c:
|
|
- Added the (as yet undocumented) sipConvertFromNewPyType().
|
|
- [5a65f5bad461]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in,
|
|
- sphinx/annotations.rst:
|
|
- Added the /ExportDerived/ class annotation.
|
|
- [e3c78dfd30b8]
|
|
-
|
|
-2013-07-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Clear any exceptions before trying to parse a reimplementation
|
|
- result.
|
|
- [7bebd55f50b2]
|
|
-
|
|
-2013-07-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a mixin bug where C++ was using the mixin (rather than Python)
|
|
- wasn't being detected properly.
|
|
- [52d3b8035dca]
|
|
-
|
|
-2013-07-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a bug in the dereferencing of mixins.
|
|
- [fc3df3e99932]
|
|
-
|
|
-2013-07-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Implemented the PyQt5 plugin, including support for Qt interfaces.
|
|
- Added sipGetMixinAddress() to the public API. Python
|
|
- reimplementations of abstract mixins are now handled correctly.
|
|
- [972540270afa]
|
|
-
|
|
-2013-07-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c:
|
|
- The parser now handles multiple consts in type declarations.
|
|
- [e7b6e4b5b1de]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Properly implement /TransferBack/ even for return values that appear
|
|
- to be always new because the type may be a mapped collection type
|
|
- with elements that might not be new (e. QList<QTreeWidgetItem *>).
|
|
- [9c073a101fb6]
|
|
-
|
|
-2013-07-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l:
|
|
- Make sure that source locations are always valid (if not always
|
|
- absolutely correct).
|
|
- [e5a66c9174a6]
|
|
-
|
|
-2013-07-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in:
|
|
- The parser can now handle expressions with casts.
|
|
- [54ec565cf24e]
|
|
-
|
|
- * sipgen/lexer.l:
|
|
- Added support for numbers having trailing lLuU.
|
|
- [88cc29113b02]
|
|
-
|
|
-2013-07-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Backed out changeset bd5b9927361b The problem is real (but currently
|
|
- not triggered), but the fix breaks PyQt.
|
|
- [3529b7c08228]
|
|
-
|
|
-2013-07-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a bug where a method with %VirtualCatcherCode was being used
|
|
- by a method without if they had the same signature.
|
|
- [bd5b9927361b]
|
|
-
|
|
- * configure.py.in:
|
|
- Invalidate the import caches before trying to import the newly
|
|
- created sipconfig.py.
|
|
- [1e3ae0d5e790]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the mixin support when the generated class definition may be a
|
|
- sub-type.
|
|
- [aec935209f0d]
|
|
-
|
|
-2013-07-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c:
|
|
- A virtual catcher now calls the super-class implementation by via
|
|
- the super-class rather than needing to know exactly where the
|
|
- nearest implementation is.
|
|
- [58987948b9fd]
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in,
|
|
- siplib/descriptors.c, siplib/sip.h.in.in, siplib/sipint.h,
|
|
- siplib/siplib.c.in, sphinx/annotations.rst:
|
|
- Implemented the /Mixin/ class annotation.
|
|
- [8b1702ce3226]
|
|
-
|
|
-2013-07-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h.in, siplib/siplib.c.in, sphinx/directives.rst:
|
|
- Added the call_super_init argument to the %Module directive. Updated
|
|
- the documentation.
|
|
- [42950b118753]
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Support for cooperative multi-inheritance must now be explicitly
|
|
- enabled because it affects compatibility. Added a shortcut so that
|
|
- the cooperative multi-inheritance support is skipped when it isn't
|
|
- needed.
|
|
- [07984388686f]
|
|
-
|
|
-2013-06-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/siplib.c.in:
|
|
- Fixed the %Finalisation support so that QObject sub-classes work.
|
|
- [17fc8e27b7e9]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Completed the support for cooperative multi-inheritance.
|
|
- [ddd13ea38870]
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Changed the API of td_final to minimise the creation of new dicts.
|
|
- Fixed the calling of the super-class's __init__.
|
|
- [195f0d1ab91c]
|
|
-
|
|
-2013-06-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Instead of calling super() to implement the cooperative multi-
|
|
- inheritance, just call the __init__ of the next type in the MRO.
|
|
- [da9edad8f7b1]
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Wrapped classes now support cooperative multi-inheritance with non-
|
|
- sip classes. Implemented %FinalisationCode.
|
|
- [aaedcb26099e]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in,
|
|
- siplib/sip.h.in.in:
|
|
- Added the code generator support for %FinalisationCode.
|
|
- [e8b4b1ab730d]
|
|
-
|
|
-2013-06-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * Merged the v4.14 maintenance branch.
|
|
- [97beee973f94]
|
|
-
|
|
-2013-06-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Fixed a reference count bug when a sip.voidptr is created from a
|
|
- buffer object.
|
|
- [02bdf6cc32c1] <4.14-maint>
|
|
-
|
|
-2013-06-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.14.7 for changeset ee771b441704
|
|
- [6e6cc6c60a36] <4.14-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.14.7.
|
|
- [ee771b441704] [4.14.7] <4.14-maint>
|
|
-
|
|
-2013-06-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, build.py, sip.nsi.in, sphinx/installation.rst:
|
|
- Removed the Windows installer as we can't have co-existant PyQt4 and
|
|
- PyQt5 installers for other reasons.
|
|
- [74e1df1d9940] <4.14-maint>
|
|
-
|
|
-2013-06-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sip.nsi.in, sphinx/installation.rst:
|
|
- Debugged the installer.
|
|
- [00678082f72e] <4.14-maint>
|
|
-
|
|
- * build.py, sip.nsi.in:
|
|
- Added the initial (not debugged) installer.
|
|
- [d22b19884c62] <4.14-maint>
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Fixed a broken reference to the Python documentation.
|
|
- [38ed755c797d] <4.14-maint>
|
|
-
|
|
-2013-06-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the last fix.
|
|
- [67258ffe885a] <4.14-maint>
|
|
-
|
|
-2013-06-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/parser.y, sipgen/sip.h.in, siplib/siplib.c.in,
|
|
- sphinx/annotations.rst:
|
|
- Added the /Sequence/ function annotation. Added a work around for
|
|
- the Python bug whereby nb_inplace_add is wrongly copied to
|
|
- sq_inplace_concat if either are missing.
|
|
- [029828cabb4d] <4.14-maint>
|
|
-
|
|
- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/sip.h.in, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst, sphinx/directives.rst, sphinx/python_api.rst:
|
|
- Added support for classes to have %ConvertFromTypeCode. Added
|
|
- sipEnableAutoconversion() to the C API. Added
|
|
- sip.enableautoconversion() to the Python API.
|
|
- [4dbbc8c6c054] <4.14-maint>
|
|
-
|
|
-2013-06-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h.in.in,
|
|
- siplib/sipint.h, siplib/siplib.c.in, siplib/threads.c:
|
|
- Bumped the internal API to 10.0. Removed deprecated parts of the
|
|
- private API. Added the stub for the optional convert from class
|
|
- code.
|
|
- [50319794231a] <4.14-maint>
|
|
-
|
|
-2013-06-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/qtlib.c, siplib/siplib.c.in:
|
|
- Add more checks to make sure that PyQt5 isn't accidentally using
|
|
- features that will be deprecated in SIP5.
|
|
- [c80745f8ee0b] <4.14-maint>
|
|
-
|
|
-2013-06-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/qtlib.c:
|
|
- Added assertions for Qt support for all API functions that provide
|
|
- Qt support.
|
|
- [aa60efc50608] <4.14-maint>
|
|
-
|
|
-2013-05-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Fixed a bug in converting an int to a voidptr.
|
|
- [dd473964ac33] <4.14-maint>
|
|
-
|
|
-2013-05-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst:
|
|
- Added sipSetDestroyOnExit() to the public C API.
|
|
- [40660935c75b] <4.14-maint>
|
|
-
|
|
-2013-04-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug that affected QObject sub-classes with
|
|
- dtor %MethodCode and with the GIL not released by default (ie.
|
|
- PyQt5).
|
|
- [bd9eccac4407] <4.14-maint>
|
|
-
|
|
-2013-04-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.14.6 for changeset 32dcb22f994c
|
|
- [23da2e18916b] <4.14-maint>
|
|
-
|
|
- * NEWS, Roadmap.rst:
|
|
- Released as v4.14.6.
|
|
- [32dcb22f994c] [4.14.6] <4.14-maint>
|
|
-
|
|
-2013-04-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y, sphinx/annotations.rst:
|
|
- Documented that sub-classing from classes with different
|
|
- implementations is not supported.
|
|
- [1773f2100851] <4.14-maint>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed a grammar bug in the parsing of %Module with no parenthesis.
|
|
- [2d5256eda850] <4.14-maint>
|
|
-
|
|
-2013-04-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a bug in the parsing of SIP_ANYSLOT arguments.
|
|
- [a9f7473ba9c7] <4.14-maint>
|
|
-
|
|
-2013-04-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Removed some redundant code generated for a component module.
|
|
- [395bf9f00aa6] <4.14-maint>
|
|
-
|
|
-2013-03-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.14.5 for changeset e528e634d4db
|
|
- [6a2bda53d2c0] <4.14-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.14.5.
|
|
- [e528e634d4db] [4.14.5] <4.14-maint>
|
|
-
|
|
-2013-03-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug when using /Array, Transfer/.
|
|
- [054f1676c300] <4.14-maint>
|
|
-
|
|
-2013-03-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed a build system bug for QtWebKit on Linux against Qt v5.
|
|
- [c65a525a0a17] <4.14-maint>
|
|
-
|
|
-2013-03-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.14.4 for changeset 4c818299f57a
|
|
- [72b69b39a7a8] <4.14-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.14.4.
|
|
- [4c818299f57a] [4.14.4] <4.14-maint>
|
|
-
|
|
-2013-02-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in, sphinx/installation.rst:
|
|
- The --sdk flag to configure.py will now default to the directory
|
|
- used by current versions of Xcode.
|
|
- [312a27229b3f] <4.14-maint>
|
|
-
|
|
-2013-02-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sipint.h, siplib/siplib.c.in,
|
|
- siplib/threads.c:
|
|
- The thread support now only creates TLS when it is actually needed.
|
|
- This makes sipStartThread() redundant and it is now deprecated.
|
|
- Failing to allocate TLS will now raise an exception.
|
|
- [34f6f0d52c1e] <4.14-maint>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst, sphinx/directives.rst,
|
|
- sphinx/incompatibilities.rst:
|
|
- VirtualErrorHandler code is now called with the GIL and from the
|
|
- thread that raised the exception. This ensures that the details of
|
|
- the exception can be obtained. It also means that the default
|
|
- handler (ie. PyErr_Print()) can also get the details.
|
|
- VirtualErrorHandler code is now also provided sipGILState so that it
|
|
- can call SIP_RELEASE_GIL() prior to changing the execution path.
|
|
- [45a50c6d82fe] <4.14-maint>
|
|
-
|
|
-2013-02-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/introduction.rst.in:
|
|
- Documentation updates regarding SIP v5.
|
|
- [03f33e7fdfb1] <4.14-maint>
|
|
-
|
|
-2013-02-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c:
|
|
- Fixed the generation of an unnecessary variable for array arguments.
|
|
- [fb45cf6e775b] <4.14-maint>
|
|
-
|
|
-2013-02-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- The problem of the moc pathname is more widespread.
|
|
- [bf2062f2318f] <4.14-maint>
|
|
-
|
|
- * siputils.py:
|
|
- Fix the build of QtWebKit on Windows. Workaround the foward slash
|
|
- characters in the moc pathname on Windows/Qt5.
|
|
- [13ee5a9fc8bd] <4.14-maint>
|
|
-
|
|
-2013-02-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed the QAxContainer dependencies for Qt5.
|
|
- [793be65e22b9] <4.14-maint>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed the renaming of QAxContainer for Qt5.
|
|
- [7e67f0559595] <4.14-maint>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed the QAxContainer dependency for Qt5.
|
|
- [d33f9eaa4394] <4.14-maint>
|
|
-
|
|
- * siputils.py:
|
|
- Build system changes for Qt5 on Windows.
|
|
- [9abd1d0f5d3f] <4.14-maint>
|
|
-
|
|
-2013-01-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.14.3 for changeset 6e004d396299
|
|
- [c9a29107c8ef] <4.14-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.14.3.
|
|
- [6e004d396299] [4.14.3] <4.14-maint>
|
|
-
|
|
-2013-01-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- When a Python object is garbage collected SIP no longer creates an
|
|
- additional reference to any child Python objects so that those
|
|
- children can now be handled by the garbage collector if appropriate.
|
|
- We used to keep the extra reference to make sure any additional
|
|
- attributes set in the child were preserved, however if the parent is
|
|
- being deleted then the C++ object it wraps must have been (or is
|
|
- about to be) destroyed, and therefore (if the parent/child
|
|
- relationships between the Python objects are correct) the child
|
|
- Python object is about to be deleted anyway. Before we relied on the
|
|
- C++ child telling us when to garbage collect the Python child via
|
|
- its virtual dtor - but this won't work if it was the C++ library
|
|
- (rather than the Python application) that created the child.
|
|
- [dc06058c99dd] <4.14-maint>
|
|
-
|
|
-2013-01-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Backed out changeset 4ec79ea69263 Realised that the (slight) change
|
|
- in behaviour could break legitimate use cases.
|
|
- [597c864debcc] <4.14-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- When a Python object is garbage collected its child Python objects
|
|
- are now garbage collected unless they have an instance dict.
|
|
- [4ec79ea69263] <4.14-maint>
|
|
-
|
|
-2013-01-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * LICENSE, build.py, configure.py.in, sipgen/export.c,
|
|
- sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l,
|
|
- sipgen/main.c, sipgen/parser.y, sipgen/sip.h.in, sipgen/sipgen.sbf,
|
|
- sipgen/transform.c, siplib/apiversions.c, siplib/bool.cpp,
|
|
- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c,
|
|
- siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in,
|
|
- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c,
|
|
- siputils.py, sphinx/conf.py.in, sphinx/directives.rst:
|
|
- Updated the copyright notices.
|
|
- [ee3b1348996c] <4.14-maint>
|
|
-
|
|
-2013-01-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sphinx/annotations.rst:
|
|
- The /KeepReference/ argument annotation, when applied to factories,
|
|
- will now keep the reference with the object created by the factory.
|
|
- [0ad6099f31fa] <4.14-maint>
|
|
-
|
|
-2013-01-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Properly implemented the support for passing objects that implement
|
|
- the buffer protocol where a voidptr is expected.
|
|
- [171bd8e1e037] <4.14-maint>
|
|
-
|
|
- * siputils.py:
|
|
- Changed the test for a Python framework build so that it works with
|
|
- pyvenv.
|
|
- [a612391f667c] <4.14-maint>
|
|
-
|
|
-2012-12-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Further build system fixes for Linux/Qt5.
|
|
- [04dec290a15e] <4.14-maint>
|
|
-
|
|
- * siputils.py:
|
|
- Fix the build system for the Linux specific naming conventions of
|
|
- the Qt5 libraries.
|
|
- [05cb90880c2b] <4.14-maint>
|
|
-
|
|
-2012-12-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed the build system for QtTest in Qt5.
|
|
- [55188026fe6d] <4.14-maint>
|
|
-
|
|
-2012-12-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.14.2 for changeset e9180a8d374f
|
|
- [ed864cf2277f] <4.14-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.14.2.
|
|
- [e9180a8d374f] [4.14.2] <4.14-maint>
|
|
-
|
|
-2012-12-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed the build system for Qt v5-rc1.
|
|
- [44586b952072] <4.14-maint>
|
|
-
|
|
-2012-11-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- The build system now knows that QtWebKit is QtWebKitWidgets in Qt5.
|
|
- [b8261071d302] <4.14-maint>
|
|
-
|
|
-2012-11-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/siplib.c.in, sphinx/python_api.rst:
|
|
- Added sip.setdestroyonexit().
|
|
- [b063e90b6c20] <4.14-maint>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Backed out to keep the behaviour the same as memoryview.
|
|
- [e8f21b0950c8] <4.14-maint>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Backed out to keep the behaviour the same as memoryview.
|
|
- [26717fbefb61] <4.14-maint>
|
|
-
|
|
-2012-11-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Patch from Matt Newell to fix /HoldGIL/ when exceptions are enabled.
|
|
- [669ecadaaae1] <4.14-maint>
|
|
-
|
|
-2012-11-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- A simple index of a sip.voidptr now returns an int rather than a
|
|
- string/bytes of length 1.
|
|
- [80ee79901dc9] <4.14-maint>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Fixed simple index item assignment for voidptr.
|
|
- [3cb217678514] <4.14-maint>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- The new buffer interface was backported to v2.6.3.
|
|
- [47f4f489055e] <4.14-maint>
|
|
-
|
|
- * NEWS, siplib/voidptr.c, sphinx/python_api.rst:
|
|
- sip.voidptr() will now accept any object that implements the (old or
|
|
- new) buffer protocols.
|
|
- [cb7799eb557b] <4.14-maint>
|
|
-
|
|
- * sphinx/python_api.rst:
|
|
- Clarified the docs for __getitem__ and __setitem__ for sip.voidptr.
|
|
- [32fb8513b196] <4.14-maint>
|
|
-
|
|
-2012-10-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.14.1 for changeset d0431cee7920
|
|
- [6b278a98323b] <4.14-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.14.1.
|
|
- [d0431cee7920] [4.14.1] <4.14-maint>
|
|
-
|
|
-2012-10-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- More buffer support fixes.
|
|
- [1fe9c59f0f06] <4.14-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Both the old and new buffer protocols are now checked.
|
|
- [7227f121bac9] <4.14-maint>
|
|
-
|
|
-2012-10-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h.in, sipgen/transform.c,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/annotations.rst,
|
|
- sphinx/c_api.rst, sphinx/specification_files.rst:
|
|
- Added support for types that implement the buffer protocol.
|
|
- [4ec285852cba] <4.14-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- None may be provided whenever a capsule is expected.
|
|
- [b90e3475bdfc] <4.14-maint>
|
|
-
|
|
-2012-10-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in:
|
|
- Renamed the sipCapsule_* macros to be consistent with other similar
|
|
- ones.
|
|
- [1913168e0c8d] <4.14-maint>
|
|
-
|
|
- * sipgen/export.c:
|
|
- The type name of a capsule is now used in docstrings.
|
|
- [1c8ce8a61324] <4.14-maint>
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Fixed a documentation typo.
|
|
- [94362407c872] <4.14-maint>
|
|
-
|
|
-2012-10-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Eliminated a C compiler warning message from the generated code.
|
|
- [e60f63cfe0d1] <4.14-maint>
|
|
-
|
|
- * NEWS, sipgen/parser.y, sipgen/sip.h.in:
|
|
- The C prototype foo(void) is now accepted.
|
|
- [54aca3c0b75e] <4.14-maint>
|
|
-
|
|
- * sipgen/lexer.l, sipgen/transform.c:
|
|
- Fixed a bug in the saving of line numbers for error messages when
|
|
- the error is on the last significant line.
|
|
- [7c77e368814f] <4.14-maint>
|
|
-
|
|
- * NEWS, sipdistutils.py, sphinx/distutils.rst:
|
|
- If no sip-opts are defined sipdistutils.py will now use any
|
|
- swig_opts passed to the Extension ctor.
|
|
- [6fcc431a81bf] <4.14-maint>
|
|
-
|
|
-2012-10-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in,
|
|
- siplib/siplib.c.in, sphinx/annotations.rst, sphinx/c_api.rst:
|
|
- Increased the API version number to 9.1. Added the /Capsule/ typedef
|
|
- annotation. Added the 'z' format character to sipBuildResult().
|
|
- Added the 'z' format character to sipParseResult().
|
|
- [f4bc254f96d8] <4.14-maint>
|
|
-
|
|
-2012-10-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed regressions in the handling of types when generating code for
|
|
- C modules.
|
|
- [3eba5b9842f0] <4.14-maint>
|
|
-
|
|
-2012-10-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Explicity close files in siputils.py to avoid resource warning
|
|
- messages.
|
|
- [fdc332e116b2] <4.14-maint>
|
|
-
|
|
-2012-10-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in:
|
|
- Backed out the changes to the signal table generation (and revert
|
|
- the API version to 9.0) because they are no longer needed.
|
|
- [38235401ffbc] <4.14-maint>
|
|
-
|
|
-2012-10-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in:
|
|
- Renamed PYQT4_SIGNAL_EXPLICIT to PYQT4_SIGNAL_FIXED_ARGS. Renamed
|
|
- PYQT4_SIGNAL_MASK to PYQT4_SIGNAL_ARGS_MASK.
|
|
- [cfbd55297dcd] <4.14-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in:
|
|
- Added the flags member to the pyqt4QtSignal structure so that PyQT
|
|
- can distinguish between explicitly defined signals and those added
|
|
- to support optional arguments.
|
|
- [81617aa9e051] <4.14-maint>
|
|
-
|
|
-2012-10-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in:
|
|
- Revised the previous change to keep the brackets unless the signal
|
|
- has no arguments. (PyQt relies on the format for some of its
|
|
- exceptions.)
|
|
- [dd884ddcb239] <4.14-maint>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in:
|
|
- Changed the docstrings for signals to use parenthesis rather than
|
|
- brackets as it is less confusing.
|
|
- [3f6128385aa2] <4.14-maint>
|
|
-
|
|
-2012-09-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.14 for changeset 90ea220ecc4b
|
|
- [76a18a32f759]
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.14.
|
|
- [90ea220ecc4b] [4.14]
|
|
-
|
|
-2012-09-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [214dd6433474]
|
|
-
|
|
-2012-09-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/directives.rst, sphinx/embedding.rst,
|
|
- sphinx/incompatibilities.rst, sphinx/python_api.rst,
|
|
- sphinx/using.rst:
|
|
- Got rid of all Sphinx warning messages.
|
|
- [cbf911605931]
|
|
-
|
|
-2012-09-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in, specs/win32-msvc2008, specs/win32-msvc2010:
|
|
- Updated the win32-msvc2008 spec file. Taught the build system about
|
|
- MSVC 2010.
|
|
- [5d3c5164342a]
|
|
-
|
|
-2012-09-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in, siputils.py:
|
|
- Taught the build system about Qt5's CXXFLAGS_APP macro.
|
|
- [4e2fddd95c07]
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Another correction to the /Factory/ documentation.
|
|
- [f030580a19f6]
|
|
-
|
|
-2012-09-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Fixed the incorrect /Factory/ documentation.
|
|
- [3b76a41a1f4a]
|
|
-
|
|
-2012-09-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the signature for generated virtual error handler functions.
|
|
- [caa74f25dff8]
|
|
-
|
|
-2012-09-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed an initialisation bug in the parser by making it resiliant to
|
|
- future changes.
|
|
- [fd2e76ea8e16]
|
|
-
|
|
-2012-09-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in:
|
|
- Fixed a few compiler warning messages.
|
|
- [a8aaecad7327]
|
|
-
|
|
-2012-09-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y,
|
|
- sipgen/sip.h.in, sphinx/directives.rst:
|
|
- Added support for the SIP_PLATFORM_* and SIP_TIMELINE_* preprocessor
|
|
- symbols.
|
|
- [664ec65acb33]
|
|
-
|
|
-2012-09-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- A build system fix for Qt v5-beta1.
|
|
- [6d704a7ab6c5]
|
|
-
|
|
- * siplib/sip.h.in.in:
|
|
- Removed the ANY SIP v3 compatibility macro as it causes problems
|
|
- with Qt v5.
|
|
- [40aeb5a8f98e]
|
|
-
|
|
-2012-09-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y, sipgen/transform.c:
|
|
- The AllowNone and NoRelease mapped type annotations can now be
|
|
- applied to mapped type templates.
|
|
- [3da91337f333]
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Documented the PyName mapped type annotation.
|
|
- [b1a5b8cab2ab]
|
|
-
|
|
- * sipgen/lexer.l:
|
|
- Improved the parsing of floating point literals thanks to Andrea
|
|
- Griffini.
|
|
- [be35aa0bb4b5]
|
|
-
|
|
-2012-09-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/c_api.rst, sphinx/directives.rst:
|
|
- Added sipCallErrorHandler() to the private API. A virtual error
|
|
- handler is now called with the GIL released. The sipGILState
|
|
- variable is no longer passed to an error handler.
|
|
- [be42df79035d]
|
|
-
|
|
-2012-08-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sphinx/annotations.rst, sphinx/directives.rst:
|
|
- Updated the docs regarding the latest virtual error changes.
|
|
- [86a4f33db172]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Changed the virtual error handler support yet again so that error
|
|
- handlers are automatically exported to sub-classes and sub-modules.
|
|
- [118500886fa7]
|
|
-
|
|
-2012-08-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Completed the refactoring of virtual handlers to use
|
|
- sipParseResultEx().
|
|
- [397b4ade7900]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Added sipParseResultEx() to the private API as a stub for future
|
|
- changes.
|
|
- [659fcb20bbc9]
|
|
-
|
|
- * specs/macx-xcode:
|
|
- Merged the 4.13 branch into the trunk.
|
|
- [96ef5f43f010]
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in,
|
|
- sphinx/annotations.rst, sphinx/c_api.rst, sphinx/directives.rst:
|
|
- Replaced the virtual error support (again) with the
|
|
- %DefaultVirtualErrorHandler directive, the /NoVirtualErrorHandler/
|
|
- and /VirtualErrorHandler/ function annotations, and the
|
|
- /VirtualErrorHandler/ class annotation. Added sip_gilstate_t and
|
|
- SIP_RELEASE_GIL() to the public API. The Sphinx docs now use C
|
|
- domains where appropriate.
|
|
- [71c0d64913bc] <4.13-maint>
|
|
-
|
|
-2012-08-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/descriptors.c, siplib/sip.h.in.in,
|
|
- siplib/siplib.c.in:
|
|
- Bumped the API version number to 9.0. Removed the support for
|
|
- pre-9.0 variable structures. Changed the sipVariableGetterFunc
|
|
- signature to pass the Python object.
|
|
- [d8824768aa51] <4.13-maint>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Updated the documentation for sipConvertToType().
|
|
- [32c2c73f4c27] <4.13-maint>
|
|
-
|
|
-2012-08-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in,
|
|
- sphinx/annotations.rst, sphinx/directives.rst:
|
|
- Changed the support for flagging errors in Python reimplementations
|
|
- of virtuals by adding the %VirtualErrorCode directive and removing
|
|
- SIPPyException. Also replaced the all_throw_cpp_exception %Module
|
|
- argument with all_use_VirtualErrorCode, and the
|
|
- /NoThrowsCppException/ and /ThrowsCppException/ function annotations
|
|
- with /NoUsesVirtualErrorCode/ and /UsesVirtualErrorCode/.
|
|
- [523c3bccb41b] <4.13-maint>
|
|
-
|
|
-2012-08-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in:
|
|
- Fixed the support for virtual handler exceptions so that memory
|
|
- isn't leaked and the GIL is released.
|
|
- [f644e914b292] <4.13-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- A simply tidy up after the previous change.
|
|
- [b3cd21a00d51] <4.13-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Backed out changeset 1066 and did it properly.
|
|
- [368eaa1143bd] <4.13-maint>
|
|
-
|
|
-2012-08-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in,
|
|
- sphinx/annotations.rst, sphinx/directives.rst:
|
|
- Added the all_throw_cpp_exception argument to the %Module directive.
|
|
- Added the /ThrowCppException/ and /NoThrowCppException/ function
|
|
- annotations.
|
|
- [5f97352e818f] <4.13-maint>
|
|
-
|
|
-2012-08-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- No longer require that the types of the arguments of a C/C++
|
|
- signature are fully defined to SIP.
|
|
- [01e11dc52626] <4.13-maint>
|
|
-
|
|
-2012-08-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- sipTransferTo() now increments the reference count of an object if
|
|
- the owner is Py_None. Fixed a type checking bug in sip.transferto().
|
|
- Deprecated sipTransferBreak().
|
|
- [f59d135ae51c] <4.13-maint>
|
|
-
|
|
-2012-08-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- For Python v2.x unsigned short and unsigned byte are now converted
|
|
- to int rather than long objects (to be consistent with the signed
|
|
- versions).
|
|
- [897e085bdd97] <4.13-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Make sure an exception is raised when converting to a character when
|
|
- a string longer than one character is passed.
|
|
- [28ea90cba3a9] <4.13-maint>
|
|
-
|
|
-2012-07-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipdistutils.py:
|
|
- Applied a patch from Oliver Nagy to fix sipdistutils.py for Python
|
|
- v3.
|
|
- [5775580258b3] <4.13-maint>
|
|
-
|
|
-2012-07-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the use of a Python3 specific format character.
|
|
- [801ae4c35450] <4.13-maint>
|
|
-
|
|
-2012-07-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in,
|
|
- sphinx/annotations.rst, sphinx/directives.rst,
|
|
- sphinx/specification_files.rst:
|
|
- Implemented the %InstanceCode directive.
|
|
- [9b330b545c65] <4.13-maint>
|
|
-
|
|
-2012-07-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Reformatted some comments.
|
|
- [fa8592b30bf5] <4.13-maint>
|
|
-
|
|
- * configure.py.in, sipgen/export.c, sipgen/extracts.c,
|
|
- sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, sipgen/main.c,
|
|
- sipgen/sip.h.in, sipgen/sipgen.sbf, sipgen/transform.c,
|
|
- siplib/apiversions.c, siplib/bool.cpp, siplib/descriptors.c,
|
|
- siplib/objmap.c, siplib/qtlib.c, siplib/sipint.h,
|
|
- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c,
|
|
- sphinx/conf.py.in, sphinx/directives.rst:
|
|
- Updated the dates on various copyright notices.
|
|
- [257d223f5d45] <4.13-maint>
|
|
-
|
|
-2012-06-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- Fixed a documentation typo.
|
|
- [e1a825c52e33] <4.13-maint>
|
|
-
|
|
-2012-06-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.13.3 for changeset 589228145d51
|
|
- [1cbf533ebe71] <4.13-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.13.3.
|
|
- [589228145d51] [4.13.3] <4.13-maint>
|
|
-
|
|
-2012-06-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/siplib.c.in:
|
|
- Another fix for the handling of keyword arguments when used with
|
|
- unbound methods.
|
|
- [377e9e4763f5] <4.13-maint>
|
|
-
|
|
-2012-06-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the handling of keyword arguments when used with unbound
|
|
- methods.
|
|
- [cdd78f0c72b2] <4.13-maint>
|
|
-
|
|
-2012-06-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Apply a cast to the argument to
|
|
- sipConvertFrom[Const]VoidPtr[AndSize]() when it was defined with a
|
|
- typedef. This makes it easier to use typedef as a way of hiding the
|
|
- complexities of a type that SIP doesn't handle.
|
|
- [c814c38523ff] <4.13-maint>
|
|
-
|
|
-2012-05-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in,
|
|
- siplib/siplib.c.in, sphinx/annotations.rst, sphinx/directives.rst:
|
|
- The /NoRaisesPyExceptions/ and /RaisesPyExceptions/ function
|
|
- annotations can no be used with constructors. Updated the NEWS file.
|
|
- [482aa7e3f1ab] <4.13-maint>
|
|
-
|
|
-2012-04-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * specs/macx-xcode:
|
|
- Removed the macx-xcode file at it isn't supported by the build
|
|
- system.
|
|
- [31ad477ff5ae] <4.13-maint>
|
|
-
|
|
-2012-04-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Removed the free() of a code block filename now that filenames are
|
|
- retained for error messages.
|
|
- [16ef20290565] <4.13-maint>
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c:
|
|
- Error messages related to callables should now include the filename
|
|
- and line number of the callable in the .sip source file.
|
|
- [fa6c71904d78] <4.13-maint>
|
|
-
|
|
-2012-04-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the support for keeping an extra reference to a containing
|
|
- class when refering to a member variable.
|
|
- [fbb9cdbad791] <4.13-maint>
|
|
-
|
|
-2012-04-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Eliminate a race condition in sip_api_is_py_method().
|
|
- [871a7b44c8f0] <4.13-maint>
|
|
-
|
|
-2012-04-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Improved the text of the exception raised when a wrapped C/C++
|
|
- object doesn't exist.
|
|
- [dd2d72cac87f] <4.13-maint>
|
|
-
|
|
-2012-04-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Taught the build system about Qt5's QtGui module.
|
|
- [8d2739f3225f] <4.13-maint>
|
|
-
|
|
-2012-04-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Allow a string as well as an identifier for arguments to various
|
|
- name= settings so that name="name" can be used.
|
|
- [d5e6a1fa39f2] <4.13-maint>
|
|
-
|
|
-2012-03-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Updated the Unicode support for Python v3.3.
|
|
- [0870e512d8dd] <4.13-maint>
|
|
-
|
|
-2012-03-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, siplib/sip.h.in.in:
|
|
- Ensure a reference is kept to the containing object when getting an
|
|
- instance variable that is a non-const wrapped object. This should
|
|
- (safely) avoid a certain kind of application bug.
|
|
- [0dd3cb4eff0e] <4.13-maint>
|
|
-
|
|
- * siplib/qtlib.c:
|
|
- Effectively backed out change 769 because it causes inconsistent
|
|
- behaviour when a method is connected to its object's destroyed()
|
|
- method.
|
|
- [ca0fb2b4bd89] <4.13-maint>
|
|
-
|
|
-2012-02-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- If a Python reimplementation is a descriptor then use the descriptor
|
|
- protocol to bind it (specifically added for Nuitka).
|
|
- [88844f85f705] <4.13-maint>
|
|
-
|
|
-2012-02-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.13.2 for changeset 4efeefee717e
|
|
- [389a142d1997] <4.13-maint>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file. Released as v4.13.2.
|
|
- [4efeefee717e] [4.13.2] <4.13-maint>
|
|
-
|
|
-2012-02-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed bad pointer bugs in the parsing of exceptions.
|
|
- [1058b2c18309] <4.13-maint>
|
|
-
|
|
-2012-01-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/objmap.c:
|
|
- Handle aliases properly when discovering that an object has been
|
|
- deleted.
|
|
- [f51e159f6dff] <4.13-maint>
|
|
-
|
|
-2011-12-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.13.1 for changeset a782debccd42
|
|
- [8a56d87be977] <4.13-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.13.1.
|
|
- [a782debccd42] [4.13.1] <4.13-maint>
|
|
-
|
|
-2011-12-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a bug in the generation of PyQt signal signatures that caused
|
|
- a "const" to be wrongly dropped.
|
|
- [39cf1d1d8167] <4.13-maint>
|
|
-
|
|
-2011-12-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Properly handle %PickleCode returning NULL.
|
|
- [29ec1c523114] <4.13-maint>
|
|
-
|
|
-2011-12-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, Roadmap.rst, sipgen/main.c:
|
|
- Deprecation warnings can no longer be suppressed. Updated the NEWS
|
|
- file. Updated the Roadmap.
|
|
- [358be4ede9fc] <4.13-maint>
|
|
-
|
|
-2011-12-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/objmap.c:
|
|
- Completed the support for object aliases when garbage collecting an
|
|
- object.
|
|
- [7ab562ae0e39] <4.13-maint>
|
|
-
|
|
- * siplib/objmap.c, siplib/sip.h.in.in, siplib/sipint.h,
|
|
- siplib/siplib.c.in:
|
|
- When an object that uses multiple inheritance in its class hierachy
|
|
- is wrapped, all of its addresses when cast to the different super-
|
|
- classes are internally registered as aliases. This means that the
|
|
- original object will be found when given an address that is
|
|
- different as a result of a cast. (Note that the support for removing
|
|
- aliases when the object is garbage collected is not yet done.)
|
|
- [da88157d2f03] <4.13-maint>
|
|
-
|
|
-2011-12-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Backed out 1013. It breaks when the method is overloaded in a super-
|
|
- class but only one overload is reimplemented in this class so the
|
|
- compiler doesn't see the other overload in the super-class so we
|
|
- must refer to it explicitly.
|
|
- [82af71f0adcb] <4.13-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Backed out 1014.
|
|
- [e50d347a15db] <4.13-maint>
|
|
-
|
|
-2011-11-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed the generation of handlers for virtuals defined in templates.
|
|
- [98421b9cc511] <4.13-maint>
|
|
-
|
|
- * siputils.py:
|
|
- The build system now handles recursively defined macros.
|
|
- [5d7476cbb504] <4.13-maint>
|
|
-
|
|
-2011-11-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- sipSelf is now generated with the correct const qualifier.
|
|
- [3c46012c8562] <4.13-maint>
|
|
-
|
|
- * NEWS, sipgen/parser.y, sphinx/specification_files.rst:
|
|
- Protected and private super-classes can now be specified but are
|
|
- otherwise ignored.
|
|
- [f331e22716d9] <4.13-maint>
|
|
-
|
|
- * custom/mkcustom.py:
|
|
- Support for sys.platform being 'linux3'.
|
|
- [01a339a7f2e9] <4.13-maint>
|
|
-
|
|
-2011-11-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/parser.y, sphinx/annotations.rst:
|
|
- Added the /PyName/ typedef annotation.
|
|
- [8c147224120a] <4.13-maint>
|
|
-
|
|
-2011-11-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed the build system for building a debug version of PyQt on OS/X.
|
|
- [3b44dc2f0efd] <4.13-maint>
|
|
-
|
|
- * NEWS, sipgen/parser.y, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Class templates now allow template arguments to be used as a super-
|
|
- class.
|
|
- [08e44ad74137] <4.13-maint>
|
|
-
|
|
-2011-11-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/parser.y:
|
|
- Added support for 'public' preceding the name of a class in a super-
|
|
- class list.
|
|
- [7fbb8a754a81] <4.13-maint>
|
|
-
|
|
- * sipgen/parser.y, sphinx/annotations.rst, sphinx/directives.rst,
|
|
- sphinx/specification_files.rst, sphinx/using.rst:
|
|
- Updated the docs where the examples refered to deprecated syntax.
|
|
- [36208e0a6773] <4.13-maint>
|
|
-
|
|
- * NEWS, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in,
|
|
- sphinx/annotations.rst, sphinx/directives.rst:
|
|
- Added the all_raise_py_exception argument to the %Module directive.
|
|
- Added the /NoRaisesPyException/ function annotation.
|
|
- [bf725fdfd029] <4.13-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the previous change for classes contained in namespaces.
|
|
- [09411053ef1b] <4.13-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c:
|
|
- Virtual catchers will now call the most recent C++ implementation
|
|
- (if there is no Python reimplementation) even if it is unknown to
|
|
- SIP rather than the most recent implementation that SIP knows about.
|
|
- [8893e36b8ca3] <4.13-maint>
|
|
-
|
|
-2011-11-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Updated some code generator comments.
|
|
- [fad4bdca5bbd] <4.13-maint>
|
|
-
|
|
-2011-11-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Make sure PyQt's internal static support libraries don't get added
|
|
- to rpath.
|
|
- [91848382e6fd] <4.13-maint>
|
|
-
|
|
-2011-11-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Added support for void template arguments.
|
|
- [1c699c672ed7] <4.13-maint>
|
|
-
|
|
-2011-10-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.13 for changeset 0869eb93c773
|
|
- [3b2a3fb3fdda]
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.13.
|
|
- [0869eb93c773] [4.13]
|
|
-
|
|
- * Merged the v4.12 maintenance branch into the trunk.
|
|
- [021e97baeeb0]
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [af334da384fd] <4.12-maint>
|
|
-
|
|
-2011-10-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y, sphinx/specification_files.rst:
|
|
- '*' and '&' are now accepted as unary operators in expressions used
|
|
- to define the values of default arguments.
|
|
- [4eba42cb2457] <4.12-maint>
|
|
-
|
|
- * sipgen/parser.y, sipgen/sip.h.in:
|
|
- Further fix for overloads with a variant that is protected and a
|
|
- variant that has optional arguments defined in a module that
|
|
- supports keyword arguments imported by a module that doesn't.
|
|
- [79951a333f30] <4.12-maint>
|
|
-
|
|
-2011-10-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sphinx/annotations.rst:
|
|
- The /Transfer/ annotation can now be used with the /Array/
|
|
- annotation to prevent the freeing of the temporary array of
|
|
- pointers.
|
|
- [3a009ee97d60] <4.12-maint>
|
|
-
|
|
-2011-10-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/siplib.c.in, sphinx/directives.rst:
|
|
- %ConvertToSubClassCode can now cause a restart of the conversion
|
|
- process using a different requested type. This enables the correct
|
|
- handling of PyQt's QLayoutItem.
|
|
- [fa212070a486] <4.12-maint>
|
|
-
|
|
-2011-10-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- sipIsPyMethod() now allows for an object's type's tp_mro to be NULL.
|
|
- This can happen when the only instance of a dynamically created type
|
|
- is in the process of being garbage collected.
|
|
- [d66046441fa8] <4.12-maint>
|
|
-
|
|
-2011-10-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Commit backout.
|
|
- [6e11ad753de6] <4.12-maint>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Backed out changeset 0bcc2ce09ba0 This (and the following changeset)
|
|
- doesn't seem to make a difference.
|
|
- [2df67f4a3294] <4.12-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Commit backout.
|
|
- [4a9b20624f88] <4.12-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Backed out changeset de3fe63e5dec This (and the previous changeset)
|
|
- doesn't seem to make a difference.
|
|
- [78740eff2bf4] <4.12-maint>
|
|
-
|
|
-2011-09-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Add an atexit function that will disable all Python
|
|
- reimplementations of virtuals.
|
|
- [de6a700f5faa] <4.12-maint>
|
|
-
|
|
-2011-09-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in,
|
|
- sphinx/directives.rst:
|
|
- Added the %DefaultDocstringFormat directive. Added the format
|
|
- argument to the %Docstring directive.
|
|
- [dba052605539] <4.12-maint>
|
|
-
|
|
-2011-09-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the previous fix to sipIsPyMethod() so that it doesn't retain
|
|
- the GIL.
|
|
- [de3fe63e5dec] <4.12-maint>
|
|
-
|
|
-2011-09-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- sipIsPyMethod() now acquires the GIL before checking if the Python
|
|
- object has been garbage collected.
|
|
- [0bcc2ce09ba0] <4.12-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a typo in a comment.
|
|
- [c4ad84eeed37] <4.12-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Added a missing Py_DECREF() on a (very rarely used) error handling
|
|
- path.
|
|
- [a99ab15f7b18] <4.12-maint>
|
|
-
|
|
-2011-09-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug where a module with keyword arguments
|
|
- disabled derives from a class imported from a module with them
|
|
- enabled.
|
|
- [1c3d2412e35a] <4.12-maint>
|
|
-
|
|
-2011-08-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- PyQt will now only delete a QObject if the QObject belongs to the
|
|
- current thread, otherwise it calls deleteLater().
|
|
- [c2987628087f] <4.12-maint>
|
|
-
|
|
-2011-08-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.12.4 for changeset 7dff386f6d8c
|
|
- [49580889fa23] <4.12-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.12.4.
|
|
- [7dff386f6d8c] [4.12.4] <4.12-maint>
|
|
-
|
|
-2011-07-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siputils.py:
|
|
- Added support for Qt configured with -qtlibinfix based on a patch
|
|
- from Ian Scott.
|
|
- [d87cea364549] <4.12-maint>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/siplib.c.in:
|
|
- Switched to using PyLong_AsUnsignedLongMask() and
|
|
- PyLong_AsUnsignedLongLongMask() instead of the non-mask versions so
|
|
- that overflow is ignored.
|
|
- [533e6a9e3e3a] <4.12-maint>
|
|
-
|
|
-2011-07-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Make sure the %TypeHeaderCode of a /Default/ %Exception is included.
|
|
- [bbe43a0bad78] <4.12-maint>
|
|
-
|
|
-2011-06-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a regression introduced in the recent sipIsPyMethod() changes
|
|
- in the handling of special methods implemented by object (eg.
|
|
- __lt__).
|
|
- [f9f4b161c940] <4.12-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed some other warnings from more (undocumented) Python v3.2
|
|
- changes.
|
|
- [df42f6bf92c8] <4.12-maint>
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/voidptr.c:
|
|
- Fixed sipConvertFromSliceObject() for Python v3.2.
|
|
- [3d0336c32dfa] <4.12-maint>
|
|
-
|
|
-2011-06-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * build.py:
|
|
- Fixed the build system for MacOS as the development platform.
|
|
- [fdd3cecee60d] <4.12-maint>
|
|
-
|
|
-2011-05-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.12.3 for changeset 50282bee0c60
|
|
- [54c00a0e9c01] <4.12-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.12.3.
|
|
- [50282bee0c60] [4.12.3] <4.12-maint>
|
|
-
|
|
-2011-05-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Generated signal signatures no longer remove the reference '&' for
|
|
- non-const arguments.
|
|
- [274e38133e7a] <4.12-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed the calling of hooks for Python3.
|
|
- [192dfa04b3ac] <4.12-maint>
|
|
-
|
|
-2011-05-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in, sphinx/incompatibilities.rst:
|
|
- When searching for a Python reimplementation of a virtual C++
|
|
- method, any object that is not a C++ method wrapper is assumed to be
|
|
- valid. Previously, if it wasn't a Python function or method then it
|
|
- would be ignored. This is a potential incompatibility, but any code
|
|
- that is affected is either buggy or badly written.
|
|
- [f95ee221598d] <4.12-maint>
|
|
-
|
|
-2011-04-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.12.2 for changeset dd8f52a95d04
|
|
- [b99179c54a07] <4.12-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.12.2.
|
|
- [dd8f52a95d04] [4.12.2] <4.12-maint>
|
|
-
|
|
-2011-04-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/transform.c:
|
|
- Added support for global inplace numeric operators.
|
|
- [af33bd829af3] <4.12-maint>
|
|
-
|
|
- * sipdistutils.py:
|
|
- Updated the license and copyright information for sipdistutils.py.
|
|
- [94f4971497a9] <4.12-maint>
|
|
-
|
|
-2011-04-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Made sure thngs were initialised to 0 properly when parsing new-
|
|
- style directives for variables.
|
|
- [c3f5a8b89968] <4.12-maint>
|
|
-
|
|
-2011-04-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/parser.y:
|
|
- Handwritten code in class templates no longer has types substituted
|
|
- in lines that appear to be C preprocessor directives. This prevents
|
|
- #include'd file names getting substituted.
|
|
- [e039b65daa03] <4.12-maint>
|
|
-
|
|
-2011-04-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Fixed a regression in the handling of keyword arguments.
|
|
- [f68e042c94f5] <4.12-maint>
|
|
-
|
|
-2011-03-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the news file.
|
|
- [ec9807971e08] <4.12-maint>
|
|
-
|
|
-2011-03-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- The names of optional arguments to protected methods are generated
|
|
- no matter what module the method is defined in.
|
|
- [fe4c052830ff] <4.12-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Another fix for the bad protected enum fix.
|
|
- [d112d90bcbfd] <4.12-maint>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed a bug where keyword argument names were being generated when
|
|
- being defined in a parent module.
|
|
- [3e11c4b7d541] <4.12-maint>
|
|
-
|
|
-2011-03-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Mapped type template arguments now include "const" if appropriate.
|
|
- [22c5009485a8] <4.12-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a regression that caused enums in namespaces to be ignored.
|
|
- [f9b89f2c1c7d] <4.12-maint>
|
|
-
|
|
-2011-03-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- The keyword support now explicitly checks that keywords are
|
|
- provided. Python handles this for ordinary methods but not for
|
|
- __init__.
|
|
- [05718fa95834] <4.12-maint>
|
|
-
|
|
-2011-03-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Code is no longer generated for protected enums of /Abstract/
|
|
- classes.
|
|
- [d349bb35cdcc] <4.12-maint>
|
|
-
|
|
-2011-03-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- The /KeepReference/ function annotation now keeps a reference even
|
|
- if the result is already owned by Python.
|
|
- [ecb3e795382e] <4.12-maint>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/transform.c,
|
|
- sphinx/annotations.rst:
|
|
- /KeepReference/ can now be used as a function annotation.
|
|
- [dc7effca2a82] <4.12-maint>
|
|
-
|
|
- * configure.py.in:
|
|
- A fix for when building outside the source directory.
|
|
- [942f1b8ac66b] <4.12-maint>
|
|
-
|
|
-2011-03-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in,
|
|
- sipgen/transform.c:
|
|
- The %TypeHeaderCode from a class template is now included in the
|
|
- generated code.
|
|
- [b5992208a757] <4.12-maint>
|
|
-
|
|
-2011-02-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y, sipgen/transform.c:
|
|
- typedefs in class templates are now handled correctly.
|
|
- [62e2faa4fb81] <4.12-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- When comparing mapped type templates the number of dereferences of
|
|
- the template arguments is now taken into account.
|
|
- [9cf3969984a5] <4.12-maint>
|
|
-
|
|
-2011-02-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- %Docstring applied to a Qt signal is no longer ignored.
|
|
- [0fae9a0aae28] <4.12-maint>
|
|
-
|
|
-2011-02-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed /KeepReference/ when used with ctors.
|
|
- [1a5475b48b7c] <4.12-maint>
|
|
-
|
|
-2011-01-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.12.1 for changeset 6a8117e8b16a
|
|
- [2ead36288f97] <4.12-maint>
|
|
-
|
|
- * NEWS, build.py:
|
|
- Released as v4.12.1.
|
|
- [6a8117e8b16a] [4.12.1] <4.12-maint>
|
|
-
|
|
-2011-01-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Tweaked an exception message to make it easier to mimic in
|
|
- handwritten code.
|
|
- [426308437843] <4.12-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- sip will now longer complain about callables with the same Python
|
|
- signature if either of them has %MethodCode as it assumes that the
|
|
- %MethodCode will resolve any potential conflicts.
|
|
- [9ed59e5c8070] <4.12-maint>
|
|
-
|
|
-2011-01-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * build.py, sphinx/conf.py.in, sphinx/static/default.css,
|
|
- sphinx/static/logo.png, sphinx/static/logo_tn.ico:
|
|
- Added a new Sphinx stylesheet.
|
|
- [c0c94278423e] <4.12-maint>
|
|
-
|
|
-2011-01-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [fa100876a783] <4.12-maint>
|
|
-
|
|
-2011-01-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * LICENSE, build.py, configure.py.in, sipgen/export.c,
|
|
- sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l,
|
|
- sipgen/main.c, sipgen/parser.y, sipgen/sip.h.in, sipgen/sipgen.sbf,
|
|
- sipgen/transform.c, siplib/apiversions.c, siplib/bool.cpp,
|
|
- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c,
|
|
- siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in,
|
|
- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c,
|
|
- siputils.py, sphinx/conf.py.in, sphinx/directives.rst:
|
|
- Updated the copyright notices.
|
|
- [42e1cfe37140] <4.12-maint>
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Fixed a documentation typo.
|
|
- [e54f022f78f6] <4.12-maint>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in,
|
|
- sphinx/annotations.rst:
|
|
- Added the /RaisesPyException/ function annotation.
|
|
- [649736ef0ab2] <4.12-maint>
|
|
-
|
|
-2011-01-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in, siputils.py, sphinx/build_system.rst,
|
|
- sphinx/installation.rst:
|
|
- Added the --deployment-target option to configure.py which should be
|
|
- used to work around bugs in the latest versions of Python on
|
|
- MacOS/X.
|
|
- [18c8fe174f38] <4.12-maint>
|
|
-
|
|
-2011-01-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug in the %MethodCode error handling for
|
|
- zero argument slots.
|
|
- [4ed8b04e7e7a] <4.12-maint>
|
|
-
|
|
-2010-12-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sphinx/specification_files.rst:
|
|
- Added SIP_SSIZE_T as a pre-defined type so it can be used in .sip
|
|
- files.
|
|
- [1871ed7f3c9b] <4.12-maint>
|
|
-
|
|
- * sipgen/parser.y, sphinx/specification_files.rst:
|
|
- PyObject * is now a synonym for SIP_PYOBJECT in .sip files.
|
|
- [56e378d55db0] <4.12-maint>
|
|
-
|
|
- * siplib/siplib.c.in, sphinx/python_api.rst:
|
|
- Added sip.ispycreated().
|
|
- [e1efc2847290] <4.12-maint>
|
|
-
|
|
-2010-12-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/parser.y, siplib/siplib.c.in,
|
|
- sphinx/specification_files.rst:
|
|
- Added support for the __getattribute__ and __getattr__ methods.
|
|
- [1da2e2e9fa1c] <4.12-maint>
|
|
-
|
|
-2010-12-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in,
|
|
- sphinx/specification_files.rst:
|
|
- Added support for __setattr__ and __delattr__ methods.
|
|
- [3f7a1f5bff74] <4.12-maint>
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- The lazy attributes of a type are added when the first instance of
|
|
- the type is created. This leaves the instance tp_getattro and
|
|
- tp_setattro slots available.
|
|
- [12a8fc4ee75a] <4.12-maint>
|
|
-
|
|
-2010-12-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Fixed some errors in the NEWS file.
|
|
- [44a6a3833477] <4.12-maint>
|
|
-
|
|
-2010-12-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.12 for changeset 4a79f5996bd7
|
|
- [111436ade941]
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.12.
|
|
- [4a79f5996bd7] [4.12]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- A further fix for Python v2.4 and earlier.
|
|
- [5e655e94fc64]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the code generated for a composite module an Python v2.4 and
|
|
- earlier.
|
|
- [00b0fadcf6fc]
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Add a couple of casts for MSVC2008.
|
|
- [68916b34ac59]
|
|
-
|
|
-2010-12-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/python_api.rst:
|
|
- Updated the documentation regarding the sip.simplewrapper type.
|
|
- [0f92caeb5770]
|
|
-
|
|
- * sipgen/parser.y, sipgen/transform.c:
|
|
- Fixed a bug looking up mapped types that are templates with enum
|
|
- arguments.
|
|
- [1212ca61ef1d]
|
|
-
|
|
-2010-12-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed the inclusion of header files for init extenders.
|
|
- [171d8f4e9f3a]
|
|
-
|
|
-2010-12-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- sip.voidptr now uses PyLong_AsVoidPtr() for all versions of Python.
|
|
- [3d4ccc59c9c3]
|
|
-
|
|
-2010-12-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Improved the configure.py error message when an invalid build macro
|
|
- is given.
|
|
- [631ded439583]
|
|
-
|
|
- * Roadmap.rst:
|
|
- Removed the section of the roadmap stating that SIP v5 will require
|
|
- types to be defined in advance of being used because (after thinking
|
|
- about it properly) in would be a complete pain for the user.
|
|
- [02eee09f591f]
|
|
-
|
|
- * sipgen/sip.h, sipgen/sip.h.in:
|
|
- Fixed an apparent hg problem with sipgen/sip.h[.in].
|
|
- [1fd9ca0698a0]
|
|
-
|
|
-2010-12-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l, sipgen/sip.h:
|
|
- Fixed the parsing of %Extract.
|
|
- [393564f2cfeb]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Make sure backslashes in generated #line directives are escaped.
|
|
- [cc58da4653e7]
|
|
-
|
|
- * sipgen/parser.y, sipgen/sip.h:
|
|
- A deprecation warning is issues for any argument annotations in an
|
|
- explicit C/C++ signature.
|
|
- [8d0e2a1b1d1c]
|
|
-
|
|
- * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst:
|
|
- /AllowNone/ is a valid class annotation.
|
|
- [e94d52f996d7]
|
|
-
|
|
-2010-12-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y, sipgen/sip.h, sphinx/annotations.rst:
|
|
- Deprecation warning are now generated for any invalid annotation.
|
|
- Updated the docs so that annotations are mentioned in all the
|
|
- contexts that they can applied to.
|
|
- [a3715d0c74a5]
|
|
-
|
|
- * NEWS, build.py, sipgen/main.c, sipgen/main.c.in, sipgen/parser.y,
|
|
- sipgen/sip.h, sphinx/directives.rst:
|
|
- Added the automatic pseudo-%Timeline of SIP version numbers.
|
|
- [50fc306bfb6d]
|
|
-
|
|
- * NEWS, sphinx/annotations.rst:
|
|
- Documented /PyInt/ as a typedef annotation.
|
|
- [0d8a873e3d30]
|
|
-
|
|
-2010-12-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst:
|
|
- Added sipGetAddress() to the public API.
|
|
- [b202f0d04ba6]
|
|
-
|
|
-2010-11-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/main.c.in, sphinx/command_line.rst:
|
|
- Don't try and issue warnings until the -w flag has been parsed.
|
|
- [64e98b58216b]
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/main.c.in,
|
|
- sipgen/parser.y, sipgen/sip.h, sphinx/annotations.rst,
|
|
- sphinx/command_line.rst, sphinx/directives.rst:
|
|
- Added the 'keyword_arguments' argument to %Module. The /KeywordArgs/
|
|
- annotation now takes a string value describing the level of keyword
|
|
- argument support. The previous behavior is deprecated. Deprecated
|
|
- the /NoKeywordArgs/ annotation. Deprecated the code generator's -k
|
|
- command line option.
|
|
- [2294802123f4]
|
|
-
|
|
-2010-11-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h:
|
|
- More generic parser fixes for directives that allow an argument
|
|
- without requiring parentheses.
|
|
- [1d6ba419952c]
|
|
-
|
|
-2010-11-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y, sphinx/directives.rst:
|
|
- Semi-colons are now not allowed after directives with no sub-
|
|
- directives but are now required after the closing brace after sub-
|
|
- directives.
|
|
- [1a300e9d7f80]
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Tidy up some coding inconsistencies in the parser.
|
|
- [c86ace2573fd]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h:
|
|
- The (internal) %Plgin directive now uses the revised syntax.
|
|
- [86a793919cd1]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sphinx/directives.rst:
|
|
- %Timeline now respects %If/%End.
|
|
- [d227e7ea1eac]
|
|
-
|
|
- * sipgen/parser.y, sphinx/directives.rst:
|
|
- %Platforms now respects %If/%End.
|
|
- [3c1e4cb9dd4c]
|
|
-
|
|
- * sipgen/parser.y, sphinx/directives.rst:
|
|
- %Doc and %ExportedDoc now respect %If/%End.
|
|
- [e3f95120f8c9]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sphinx/directives.rst:
|
|
- %OptionalInclude is now deprecated.
|
|
- [fbfa68d0b559]
|
|
-
|
|
- * sipgen/parser.y, sphinx/directives.rst:
|
|
- The %MappedType sub-directives now respect %If/%End.
|
|
- [afb6cb9b21b9]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/annotations.rst, sphinx/conf.py.in, sphinx/directives.rst:
|
|
- %License now uses the revised syntax.
|
|
- [ebeed9b2838e]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst:
|
|
- %Include now follows the new syntax and includes the functionality
|
|
- of %OptionalInclude.
|
|
- [b71dca41f194]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst:
|
|
- %Import now uses the revised syntax.
|
|
- [df828f381c63]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst:
|
|
- Changed the argument of %DefaultEncoding to 'name' to be consistent
|
|
- with other similar directives.
|
|
- [66c4f0e60cc5]
|
|
-
|
|
-2010-11-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst:
|
|
- %Feature now uses the revised syntax.
|
|
- [ca22b358ab05]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst, sphinx/specification_files.rst:
|
|
- %Exception now (sort of) follows the revised syntax.
|
|
- [b19d67575786]
|
|
-
|
|
- * sipgen/parser.y, sphinx/directives.rst:
|
|
- Reverted the change to make %Copying a sub-directive.
|
|
- [d59876780e53]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst:
|
|
- %DefaultEncoding now uses the revised syntax.
|
|
- [111024e5bcbd]
|
|
-
|
|
-2010-11-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst, sphinx/incompatibilities.rst,
|
|
- sphinx/specification_files.rst:
|
|
- Fixed some more generic parser issues. %Copying is now a sub-
|
|
- directive of each of the different module directives. All the module
|
|
- directives now support docstrings.
|
|
- [6244dcb1fcb9]
|
|
-
|
|
- * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst:
|
|
- %CompositeModule and %Consolidated module now conform to the revised
|
|
- syntax.
|
|
- [18da01aba948]
|
|
-
|
|
- * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst,
|
|
- sphinx/using.rst:
|
|
- %API now uses the revised directive syntax.
|
|
- [b7ba07998b37]
|
|
-
|
|
-2010-11-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Generated #line directives now include the full path name of the
|
|
- file.
|
|
- [52ed45309f83]
|
|
-
|
|
- * siplib/siplib.c.in:
|
|
- Reverted the broken "fixes" passing sub-int values as varargs.
|
|
- [167ff79ec560]
|
|
-
|
|
-2010-11-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst:
|
|
- The %Module and %Property sub-directives now respect %If/%End.
|
|
- %AccessCode, %GetCode and %SetCode are now new-style sub-directives.
|
|
- [7dfe49a56ec7]
|
|
-
|
|
- * Roadmap.rst:
|
|
- Added the v5 roadmap.
|
|
- [9ddab02f25a6]
|
|
-
|
|
- * sipgen/parser.y:
|
|
- /PyInt/ can now be applied to pointer types.
|
|
- [0a986be7f8e4]
|
|
-
|
|
-2010-11-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/sip.h, sipgen/transform.c, siplib/siplib.c.in,
|
|
- sphinx/annotations.rst, sphinx/c_api.rst:
|
|
- Added /PyInt/ as an argument and function annotation. Added the L
|
|
- and M format characters to sipBuildResult(), sipCallMethod() and
|
|
- sipParseResult(). Fixed a bug in sipParseResult() in the handling of
|
|
- encoded strings.
|
|
- [372703eb4e88]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a bug maintaining the current line number when generating
|
|
- docstrings.
|
|
- [2327d077f65a]
|
|
-
|
|
-2010-11-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y, sphinx/specification_files.rst:
|
|
- Added parser support for empty namespaces. Documented how namespaces
|
|
- are implemented and how to achieve the different behaviors.
|
|
- [9101c7412e89]
|
|
-
|
|
- * sphinx/annotations.rst, sphinx/command_line.rst,
|
|
- sphinx/directives.rst:
|
|
- Documented that -I, %Import and %Include all expect POSIX style
|
|
- directory separators.
|
|
- [7b0d6bc17f28]
|
|
-
|
|
-2010-11-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in.in, siplib/siplib.c.in, siplib/voidptr.c:
|
|
- Eliminate compiler warnings when building the sip module.
|
|
- [93040d2c716c]
|
|
-
|
|
- * siplib/siplib.c.in, siplib/voidptr.c:
|
|
- Fixed some Python v3 and MSVC build bugs.
|
|
- [43cb06769dd6]
|
|
-
|
|
-2010-11-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- More updates to the NEWS file.
|
|
- [c38668e9dd93]
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [37a725e0b83a]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, siplib/siplib.c.in:
|
|
- Eliminated a couple of warning messages.
|
|
- [8d220ed77f02]
|
|
-
|
|
- * sipgen/parser.y:
|
|
- %Module and %Property sub-directives can now be individually
|
|
- enclosed in %If/%End.
|
|
- [637f2357b1e4]
|
|
-
|
|
- * sphinx/annotations.rst, sphinx/directives.rst:
|
|
- Documented the %AutoPyName directive.
|
|
- [e8106eb58553]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h:
|
|
- Added the %AutoPyName directive.
|
|
- [85d02c95ebf7]
|
|
-
|
|
-2010-11-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/main.c.in, sipgen/sip.h,
|
|
- sphinx/command_line.rst:
|
|
- Added the -T command line flag to suppress the timestamp in the
|
|
- header of generated source files.
|
|
- [d84b9db1d89d]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a bug where keyword strings where being generated for /Out/
|
|
- arguments.
|
|
- [2a314426e67a]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst:
|
|
- Replaced the %RealArgNames directive with the use_argument_names
|
|
- argument to the %Module directive.
|
|
- [0eb004659e3d]
|
|
-
|
|
- * sipgen/parser.y, sphinx/directives.rst:
|
|
- The %Module directive now respects the %If directive.
|
|
- [9b99a6f7d295]
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Documented the revised %Module directive syntax.
|
|
- [0a7d4b89a2eb]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h:
|
|
- %Module now supports the revised directive syntax. Module docstrings
|
|
- are now supported. %CModule is deprecated.
|
|
- [2606deb743f2]
|
|
-
|
|
-2010-11-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a bug in the generated of the variables table.
|
|
- [eac351f5cca7]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c:
|
|
- Fixed a bug in the tidying up of temporary class instances in unary
|
|
- operators.
|
|
- [990299a02451]
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Documented the %Property directive.
|
|
- [455500391b43]
|
|
-
|
|
- * sipgen/parser.y, sphinx/directives.rst:
|
|
- Documented the revised directive syntax. Updated %Extract so that it
|
|
- follows the revised syntax completely. %Extract no longer uses a
|
|
- quoted string as an identifer.
|
|
- [7970e4fa94ef]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/sip.h.in.in, siplib/siplib.c.in:
|
|
- Completed the support for %Property.
|
|
- [dfd258dec260]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h:
|
|
- The code generator now generates the property structure.
|
|
- [07134d471acd]
|
|
-
|
|
- * sipgen/gencode.c, siplib/descriptors.c, siplib/sip.h.in.in,
|
|
- siplib/siplib.c.in:
|
|
- Migrated the existing variable support to the new runtime structure.
|
|
- [c66412e816ab]
|
|
-
|
|
-2010-11-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l:
|
|
- Fixed the parser so that C/C++ argument names don't get confused
|
|
- with directive argument names.
|
|
- [8bad8295e12f]
|
|
-
|
|
-2010-11-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Renamed getter to get and setter to set to be consistent with
|
|
- %GetCode and %SetCode.
|
|
- [eef0c18dd0df]
|
|
-
|
|
- * sipgen/parser.y, sipgen/transform.c:
|
|
- The %Property getters and setters are now validated.
|
|
- [caf6e4cee176]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h:
|
|
- Added parser support for %Property.
|
|
- [41f66dca2447]
|
|
-
|
|
- * sipgen/extracts.c, sipgen/lexer.l, sipgen/main.c.in,
|
|
- sipgen/parser.y, sipgen/sip.h, sipgen/sipgen.sbf,
|
|
- sphinx/command_line.rst, sphinx/directives.rst,
|
|
- sphinx/specification_files.rst:
|
|
- Added the %Extract directive and the corresponding -X command line
|
|
- option.
|
|
- [37a7149135a9]
|
|
-
|
|
-2010-11-04 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l, sipgen/main.c.in, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/c_api.rst, sphinx/command_line.rst, sphinx/directives.rst,
|
|
- sphinx/introduction.rst.in, sphinx/python_api.rst:
|
|
- Issue warning messages from the parser about deprecated syntax.
|
|
- Updated the documentation regarding deprecations.
|
|
- [3a45afc8d9eb]
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Fixed a bug in the new sip.voidptr code for Python v2.5 and earlier.
|
|
- [7ff903c5cb76]
|
|
-
|
|
- * sphinx/python_api.rst:
|
|
- Updated the sip.voidptr documentation to describe the memoryview-
|
|
- like support.
|
|
- [b49b90639831]
|
|
-
|
|
- * sipdistutils.py:
|
|
- sipdistutils.py now allows the output directory to be overriden in a
|
|
- derived class.
|
|
- [5a1f9d9fff30]
|
|
-
|
|
-2010-11-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- Fixed a silly typo in the sip.voidptr changes.
|
|
- [af2d7120dd7f]
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- sip.voidptr now supports sub-script assignment for Python v2.4 and
|
|
- earlier.
|
|
- [14186a17d310]
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- sip.voidptr now supports sub-script assignment for Python v2.5.
|
|
- [67ef521ce467]
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- sip.voidptr now supports sub-script assignment (Python v2.6 and
|
|
- later only at the moment).
|
|
- [4ad087fd7e94]
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- sip.voidptr can now be indexed like memoryview.
|
|
- [76620ebb872e]
|
|
-
|
|
- * siplib/voidptr.c:
|
|
- sip.voidptr now fully implements the new buffer protocol for Python
|
|
- v2 so that memoryview works.
|
|
- [f9dfbda5844f]
|
|
-
|
|
- * NEWS, build.py, configure.py.in, sipgen/gencode.c, siplib/sip.h.in,
|
|
- siplib/sip.h.in.in, siplib/siplib.c, siplib/siplib.c.in,
|
|
- siplib/siplib.sbf, siplib/siplib.sbf.in, sphinx/installation.rst,
|
|
- sphinx/using.rst:
|
|
- Added the --sip-module flag to configure.py to allow private copies
|
|
- of the module to be built.
|
|
- [8b8e93a159c6]
|
|
-
|
|
-2010-10-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst, sphinx/specification_files.rst:
|
|
- Added the %RealArgNames directive.
|
|
- [12acbffd0085]
|
|
-
|
|
-2010-10-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l:
|
|
- All directives now start with the first non-whitespace character of
|
|
- a line.
|
|
- [c5a525178196]
|
|
-
|
|
- * .hgtags:
|
|
- Merged the v4.11 branch into the trunk.
|
|
- [a7689cef100b]
|
|
-
|
|
-2010-10-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.11.2.
|
|
- [13f57fe7e992] [4.11.2] <4.11-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the implementation of %MethodCode for dtors in C modules.
|
|
- [4f26704c5789] <4.11-maint>
|
|
-
|
|
-2010-10-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Make sure that lazy attributes have been added when searching for a
|
|
- Python reimplemention of a C++ method.
|
|
- [f45ff97a3c66] <4.11-maint>
|
|
-
|
|
- * siplib/sip.h.in:
|
|
- Properly set SIP_SUPPORT_PYCOBJECT in sip.h.
|
|
- [f1cf3fef8eb5] <4.11-maint>
|
|
-
|
|
-2010-10-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h.in,
|
|
- siplib/siplib.c:
|
|
- __enter__ and __exit__ are now handled as non-lazy methods and are
|
|
- added to the type dictionary when the type is created (rather than
|
|
- when the first attribute of the first instance is accessed). This
|
|
- required by a change in behaviour introduced in Python v2.7 and
|
|
- v3.2.
|
|
- [5167b98767e2] <4.11-maint>
|
|
-
|
|
-2010-10-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [ed3deec59b70] <4.11-maint>
|
|
-
|
|
-2010-10-09 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- /KeepReference/ now applies to global functions.
|
|
- [52e6a73fd81f] <4.11-maint>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a regression in the handling of global class pointers (eg.
|
|
- qApp in PyQt3).
|
|
- [08328092b36b] <4.11-maint>
|
|
-
|
|
-2010-10-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- /KeepReference/ can now be applied to static methods.
|
|
- [43c2359df596] <4.11-maint>
|
|
-
|
|
-2010-10-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/directives.rst:
|
|
- %TypeCode can now be specified in a %MappedType directive.
|
|
- [8727e0eb0f5e] <4.11-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Mapped types for templates no longer require the template arguments
|
|
- to be defined.
|
|
- [7ed0e265a218] <4.11-maint>
|
|
-
|
|
-2010-10-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Added support for the MSBUILD Makefile generator introduced in Qt
|
|
- v4.7 for the win32-msvc2010 target.
|
|
- [ff2494c0e443] <4.11-maint>
|
|
-
|
|
-2010-09-30 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- A protected class enum will now trigger the generation of a shadow
|
|
- class.
|
|
- [18681651c2c7] <4.11-maint>
|
|
-
|
|
-2010-09-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/c_api.rst:
|
|
- A minor documentation fix.
|
|
- [f6df40935e99] <4.11-maint>
|
|
-
|
|
-2010-09-24 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in:
|
|
- Fixed the rpaths problem properly (ie. didn't apply the fix to a
|
|
- generated file).
|
|
- [c93f5da3d4e4] <4.11-maint>
|
|
-
|
|
- * NEWS, siputils.py:
|
|
- Taught the build system about QtDeclarative. Updated the NEWS file.
|
|
- [2487fb909ee1] <4.11-maint>
|
|
-
|
|
-2010-09-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed rpaths for Qt v4.7.
|
|
- [4d12df6526e5] <4.11-maint>
|
|
-
|
|
-2010-09-14 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in:
|
|
- Ensured that uint is always defined.
|
|
- [b6508f053614] <4.11-maint>
|
|
-
|
|
-2010-09-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.11.1 for changeset fdf86b3115cd
|
|
- [3213dc5731bb] <4.11-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.11.1.
|
|
- [fdf86b3115cd] [4.11.1] <4.11-maint>
|
|
-
|
|
-2010-09-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/objmap.c:
|
|
- When deciding if an entry in the object map is valid the C/C++
|
|
- address is first checked to see if it is still valid. This detects
|
|
- the case (if there is a guard in place) where a new C/C++ object has
|
|
- been created at the same address of one that has been destroyed (but
|
|
- whose Python wrapper is still around).
|
|
-
|
|
- HG commit message. Lines beginning with 'HG:' are removed.
|
|
- [13632c7f0f2c] <4.11-maint>
|
|
-
|
|
-2010-08-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.11 for changeset 80f7c6530416
|
|
- [86286537601c]
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.11.
|
|
- [80f7c6530416] [4.11]
|
|
-
|
|
-2010-08-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/objmap.c, siplib/sip.h.in, siplib/siplib.c,
|
|
- sphinx/c_api.rst:
|
|
- Objects with handwritten access functions are no longer placed in
|
|
- the object map as they don't have a usable key. Reworked the support
|
|
- for meta-type aupplied access functions so that the original address
|
|
- is still available (even if it is no longer valid) to be used to
|
|
- search the object map.
|
|
- [c38d259c1879]
|
|
-
|
|
-2010-08-21 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [7cff86d70dc7]
|
|
-
|
|
-2010-08-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- The parsing of encoded strings is now done with two passes so that
|
|
- encoding errors are now picked up in the second pass and raise an
|
|
- appropriate exception.
|
|
- [89ff42be167c]
|
|
-
|
|
-2010-08-19 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/annotations.rst:
|
|
- The /KeepReference/ annotation now takes an optional integer key
|
|
- value.
|
|
- [efff0d2932e1]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, siplib/siplib.c:
|
|
- operator() and __call__() now support keyword arguments.
|
|
- [0daacc25c6ce]
|
|
-
|
|
-2010-08-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/sip.h.in, siplib/siplib.c, sphinx/c_api.rst:
|
|
- Completed the access function implementation so that any resources
|
|
- created by access functions are released appropriately.
|
|
- [35cf486718d4]
|
|
-
|
|
-2010-08-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in, siplib/siplib.c,
|
|
- sphinx/c_api.rst:
|
|
- Removed sipRegisterObjectFinaliser() and assume that the equivalent
|
|
- functionality will be provided by a custom meta-class.
|
|
- [d028d0cecb7b]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in, siplib/siplib.c:
|
|
- Added sipRegisterObjectFinaliser() and related infrastructure.
|
|
- (Though it will probably be replaced by a meta-type based
|
|
- implementation.)
|
|
- [d525d84c9d61]
|
|
-
|
|
- * sipgen/gencode.c, siplib/objmap.c, siplib/qtlib.c, siplib/sip.h.in,
|
|
- siplib/sipint.h, siplib/siplib.c:
|
|
- All access to the C/C++ object now goes through
|
|
- sip_api_get_address(). Bumped the internal API version to 8.0
|
|
- (because the size of sipSimpleWrapper has changed).
|
|
- [956c80d8e9fa]
|
|
-
|
|
-2010-08-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Make sure #line 0 is not generated as the Intel compiler doesn't
|
|
- like it.
|
|
- [d715222f1f65]
|
|
-
|
|
- * siplib/voidptr.c, sphinx/c_api.rst, sphinx/embedding.rst,
|
|
- sphinx/python_api.rst:
|
|
- Added support for Python v3.2. Exposed the SIP_USE_PYCAPSULE macro
|
|
- as part of the C API.
|
|
- [0e34dc4e0824]
|
|
-
|
|
-2010-08-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug affecting inplace operators.
|
|
- [6cddd9276220]
|
|
-
|
|
-2010-08-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Refactored the calls to assert() when creating types to catch any
|
|
- recursive calls.
|
|
- [052b642f04a8]
|
|
-
|
|
-2010-08-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Make sure the %UnitPostIncludeCode is after all #includes.
|
|
- [d45e8042c7da]
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h, sphinx/directives.rst:
|
|
- Added the %UnitPostIncludeCode directive.
|
|
- [058d680384e7]
|
|
-
|
|
- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- sphinx/directives.rst:
|
|
- Removed the %RemoveNamespace directive.
|
|
- [18fc68280d49]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Removed 'const' and '&' from signal signatures so that Qt doesn't
|
|
- have to.
|
|
- [9e9795fa36a5]
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a problem with the recent change regarding the original types
|
|
- of template based mapped types.
|
|
- [83019d3299ea]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y:
|
|
- Generated code now uses 'uint' rather than 'unsigned'. This is
|
|
- because Qt's QMetaObject::normalizedType() converts the latter to
|
|
- the former.
|
|
- [0923d067541a]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- The generated typedefs table now always defines a type in terms of a
|
|
- base type and never another typedef type.
|
|
- [5ed328590fd1]
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Template based mapped types now correctly keep a reference to the
|
|
- original types used when invoking the template.
|
|
- [691852c6b0b0]
|
|
-
|
|
-2010-07-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Const references are now assumed to be input arguments rather than
|
|
- output arguments.
|
|
- [d11b7adf095a]
|
|
-
|
|
-2010-07-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- An improvement on the previous fix.
|
|
- [086a77b99464]
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed global operators that are declared in a namespace.
|
|
- [c46ac8f9b1e9]
|
|
-
|
|
-2010-07-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * build.py:
|
|
- Switched to the new format of snapshot names.
|
|
- [4d30378c5622]
|
|
-
|
|
- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- sphinx/directives.rst:
|
|
- Implemented the %RemoveNamespace directive.
|
|
- [a2eb3fe46f43]
|
|
-
|
|
- * lib/LICENSE, lib/LICENSE-GPL2.txt, lib/LICENSE-GPL3.txt,
|
|
- lib/LICENSE.short, lib/README, lib/configure.py,
|
|
- lib/sipdistutils.py, lib/siputils.py, sipgen/main.c, siplib/sip.h,
|
|
- sphinx/Makefile, sphinx/conf.py, sphinx/introduction.rst:
|
|
- Merged v4.10.5 into the trunk.
|
|
- [4cce948441da]
|
|
-
|
|
-2010-07-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, siplib/sip.h.in, siplib/voidptr.c, sphinx/python_api.rst:
|
|
- Released as v4.10.5. Fixed the build regression against Python v3
|
|
- introduced in SIP v4.10.4. Properly fixed the Python v2.7 workaround
|
|
- that SIP v4.10.4 was supposed to address.
|
|
- [834787fbcb72] [4.10.5] <4.10-maint>
|
|
-
|
|
-2010-07-15 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.10.4 for changeset 046c346a71fe
|
|
- [d0340fc3658c] <4.10-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.10.4.
|
|
- [046c346a71fe] [4.10.4] <4.10-maint>
|
|
-
|
|
-2010-07-13 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/siplib.c, siplib/voidptr.c:
|
|
- Use PyCapsule when available to work around an apparent bug in
|
|
- PyCObject in Python v2.7.
|
|
- [f5574a061fd0] <4.10-maint>
|
|
-
|
|
-2010-07-12 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.10.3 for changeset 2ec1a8f8560c
|
|
- [254b8071446e] <4.10-maint>
|
|
-
|
|
- * NEWS, README:
|
|
- Released as v4.10.3.
|
|
- [2ec1a8f8560c] [4.10.3] <4.10-maint>
|
|
-
|
|
-2010-07-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c, sphinx/annotations.rst:
|
|
- Added support for the __len__ annotation.
|
|
- [f760366cea3b] <4.10-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Assignment helpers are now generated for classes that have a ctor
|
|
- where all arguments are optional.
|
|
- [3e647ed0f2a2] <4.10-maint>
|
|
-
|
|
-2010-06-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the code generator for /NewThread/ methods so that it no
|
|
- longer assumes that such methods are abstract (though it still
|
|
- assumes they don't return a value) as QThread.run() no longer is.
|
|
- [710b71e6f0c6] <4.10-maint>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed a regression introduced when fixing the += problem with spec.
|
|
- files.
|
|
- [94d177d8f426] <4.10-maint>
|
|
-
|
|
-2010-06-11 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h:
|
|
- Changed the generated docstrings for signals to use [] rather than
|
|
- () to surround the arguments.
|
|
- [1851f2d754e7] <4.10-maint>
|
|
-
|
|
-2010-06-10 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug where special methods that invoke
|
|
- sipNoMethod() were trying to tidy up sipParseErr rather than leaving
|
|
- it to sipNoMethod().
|
|
- [90aad46480b2] <4.10-maint>
|
|
-
|
|
-2010-06-08 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the previous fix to avoid compiler warning messages.
|
|
- [0a3f45fea555] <4.10-maint>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a code generation bug caused by ctor handwritten code that
|
|
- sets the error flag and isn't handling unused keyword arguments.
|
|
- [d53889ad7abe] <4.10-maint>
|
|
-
|
|
-2010-06-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/specification_files.rst:
|
|
- Added support for Q_SLOT and Q_SIGNAL.
|
|
- [cb323da88516] <4.10-maint>
|
|
-
|
|
-2010-06-05 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/lexer.l:
|
|
- Added support for Q_SIGNALS and Q_SLOTS as synonyms for signals and
|
|
- slots.
|
|
- [daf61465ef3c] <4.10-maint>
|
|
-
|
|
- * siputils.py:
|
|
- Fixed a build system regression introduced when not linking against
|
|
- X11 when building QtCore.
|
|
- [ee5415b91040] <4.10-maint>
|
|
-
|
|
-2010-06-03 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- The build system now handles += in spec files properly.
|
|
- [f292793d6c99] <4.10-maint>
|
|
-
|
|
-2010-05-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * configure.py.in, siputils.py:
|
|
- A build system fix for building a static version of QWebKit.
|
|
- [de0df36d3162] <4.10-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a bug in the error message when reporting an unsupported
|
|
- signal argument type.
|
|
- [7adbf28d075e] <4.10-maint>
|
|
-
|
|
-2010-05-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fix a code generation bug where a protected ctor had a protected
|
|
- enum argument.
|
|
- [529660fb77a9] <4.10-maint>
|
|
-
|
|
-2010-04-23 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/main.c.in, siplib/qtlib.c:
|
|
- Invoking a slot is ignored if the underlying C++ object no longer
|
|
- exists.
|
|
- [7387fa17a780] <4.10-maint>
|
|
-
|
|
-2010-04-16 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.10.2 for changeset 44ac47d02467
|
|
- [2a980c3f0e3a] <4.10-maint>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.10.2.
|
|
- [44ac47d02467] [4.10.2] <4.10-maint>
|
|
-
|
|
-2010-04-06 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/using.rst:
|
|
- Updated the PyQt example for PyQt4.
|
|
- [275fa5a54910] <4.10-maint>
|
|
-
|
|
-2010-04-01 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a regression in the new-style error handling of C++ ctors that
|
|
- raise exceptions.
|
|
- [ea295d6e9e9c] <4.10-maint>
|
|
-
|
|
-2010-03-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siputils.py:
|
|
- The X11 libraries will only be linked for modules that depend on the
|
|
- QtGui module.
|
|
- [9fe1eb5bf1ac] <4.10-maint>
|
|
-
|
|
-2010-03-22 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a bug in the pickle support under Python v3.
|
|
- [9c51fda2b963] <4.10-maint>
|
|
-
|
|
-2010-03-17 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * .hgtags:
|
|
- Added tag 4.10.1 for changeset 812aad0bacea
|
|
- [6f759792341f] <4.10-maint>
|
|
-
|
|
- * NEWS, build.py:
|
|
- Fixed the generation of the change log after tagging a release.
|
|
- Updated the NEWS file. Released as v4.10.1.
|
|
- [812aad0bacea] [4.10.1] <4.10-maint>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Removed an unused variable left over from the previous commit.
|
|
- [0068b2608046] <4.10-maint>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed the implementation of sip.cast().
|
|
- [93bc3ab3fef5] <4.10-maint>
|
|
-
|
|
-2010-03-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [752ab6580111] <4.10-maint>
|
|
-
|
|
-2010-02-26 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a memory leak with the new error handling and most Python
|
|
- special methods.
|
|
- [637497440cb5] <4.10-maint>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Global operators, when moved to the correct class, are now appended
|
|
- to the list of any existing overloads to make sure the generated
|
|
- code is in the same order as the overloads in the .sip file.
|
|
- [5c0eb00cd19b] <4.10-maint>
|
|
-
|
|
-2010-02-25 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/export.c:
|
|
- Arguments in docstrings only have names if they are optional.
|
|
- [0f83f6c82600] <4.10-maint>
|
|
-
|
|
-2010-02-20 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h.in, siplib/siplib.c,
|
|
- sphinx/c_api.rst, sphinx/incompatibilities.rst:
|
|
- Fixed a bug in the handling of /Out/ arguments of virtuals where the
|
|
- type was a reference to a class by adding the 'H' format character
|
|
- to sipParseResult() (and deprecating the 'D' format character).
|
|
- [c723c4de2e22] <4.10-maint>
|
|
-
|
|
-2010-02-18 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Fixed a bug in the documentation of the NoCopy annotation.
|
|
- [cb2c1ea78ed5] <4.10-maint>
|
|
-
|
|
-2010-02-07 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/annotations.rst:
|
|
- Python reimplementations of C++ virtuals will now be given a copy of
|
|
- any const references to classes so that they can keep a reference
|
|
- without needing to do their own explicit copy. The previous
|
|
- behaviour can be obtained using the new NoCopy annotation. The
|
|
- NoCopy annotation can also be applied to functions and methods to
|
|
- prevent the automatic copying of const references to classes that
|
|
- are returned.
|
|
- [724e4236428b] <4.10-maint>
|
|
-
|
|
-2010-02-02 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/export.c:
|
|
- Fixed the XML exporting of mapped type arguments.
|
|
- [b514b2f196b8] <4.10-maint>
|
|
-
|
|
- * siplib/sipint.h, siplib/siplib.c, siplib/siplib.sbf,
|
|
- siplib/voidptr.c:
|
|
- Moved the voidptr code to a separate file. Eliminated a few
|
|
- compilation warnings that have crept into the sip module. Refactored
|
|
- the sip module to eliminate the (wrong) forward declaration of the
|
|
- static type structures.
|
|
- [f07ec31fbdf9] <4.10-maint>
|
|
-
|
|
- * build.py:
|
|
- Fixed a bug in the release action of build.py.
|
|
- [bcdd91cbf139] <4.10-maint>
|
|
-
|
|
-2010-01-31 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * sipgen/main.c.in:
|
|
- Added the -b command line argument to the sip usage text.
|
|
- [7ae3aa20dfc0] <4.10-maint>
|
|
-
|
|
-2010-01-29 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * build.py:
|
|
- Refactored build.py so that it can be easily used as an imported
|
|
- module.
|
|
- [9170df0b1ea3] <4.10-maint>
|
|
-
|
|
-2010-01-28 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * build.py:
|
|
- Fixed a regression in the release action of build.py.
|
|
- [e3611c1babe7] <4.10-maint>
|
|
-
|
|
- * build.py:
|
|
- Changed the format of the changelog to be closer to the Mercurial
|
|
- default.
|
|
- [f1d6ba993e7f] <4.10-maint>
|
|
-
|
|
- * build.py:
|
|
- Added the changelog action to build.py.
|
|
- [8189b0595d44] <4.10-maint>
|
|
-
|
|
- * build.py:
|
|
- build.py now generates a version number corresponding to the next
|
|
- release (as the old build system did).
|
|
- [d09c61626663] <4.10-maint>
|
|
-
|
|
- * build.py:
|
|
- build.py now doesn't care about the current working directory. Fixed
|
|
- the handling of branch names.
|
|
- [3402912a0176] <4.10-maint>
|
|
-
|
|
-2010-01-27 Phil Thompson <phil@riverbankcomputing.com>
|
|
-
|
|
- * README:
|
|
- Updated the README to document the need for flex, bison and Sphinx.
|
|
- [d785bd5471f8] <4.10-maint>
|
|
-
|
|
- * sphinx/introduction.rst.in:
|
|
- Updated the documentation to include the URL of the Mercurial
|
|
- repository.
|
|
- [0a7fc3830b27] <4.10-maint>
|
|
-
|
|
- * LICENSE, LICENSE-GPL2, LICENSE-GPL3, README, build.py,
|
|
- configure.py.in, lib/LICENSE, lib/LICENSE-GPL2.txt, lib/LICENSE-
|
|
- GPL3.txt, lib/LICENSE.short, lib/README, lib/configure.py,
|
|
- lib/sipdistutils.py, lib/siputils.py, sipdistutils.py,
|
|
- sipgen/export.c, sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l,
|
|
- sipgen/main.c, sipgen/main.c.in, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/sipgen.sbf, sipgen/transform.c, siplib/apiversions.c,
|
|
- siplib/bool.cpp, siplib/descriptors.c, siplib/objmap.c,
|
|
- siplib/qtlib.c, siplib/sip.h, siplib/sip.h.in, siplib/sipint.h,
|
|
- siplib/siplib.c, siplib/siplib.sbf, siplib/threads.c, siputils.py,
|
|
- sphinx/Makefile, sphinx/conf.py, sphinx/conf.py.in,
|
|
- sphinx/introduction.rst, sphinx/introduction.rst.in:
|
|
- Refactored the build.py script so that it is a documented utility
|
|
- for allowing SIP to be built from a Mercurial repository or archive.
|
|
- Updated the directory structure accordingly.
|
|
- [3edc3f9c777f] <4.10-maint>
|
|
-
|
|
-2010-01-27 phil <phil>
|
|
-
|
|
- * .hgtags:
|
|
- Import from SVN.
|
|
- [d6529eb1c096]
|
|
-
|
|
-2010-01-14 phil <phil>
|
|
-
|
|
- * NEWS, lib/LICENSE.short:
|
|
- Released as v4.10.
|
|
- [d7aa01036415] [4.10]
|
|
-
|
|
-2010-01-08 phil <phil>
|
|
-
|
|
- * lib/siputils.py, sipgen/gencode.c, sipgen/transform.c,
|
|
- siplib/siplib.c:
|
|
- Taught the build system about QtMultimedia. Removed some potential
|
|
- warning messages in virtual catchers with handwritten code. Fixed
|
|
- docstrings that might contain C++ rather than Python scoping.
|
|
- [d1214a2c892d]
|
|
-
|
|
-2010-01-02 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a crash in the error handling when trying to call sip.wrapper
|
|
- or sip.wrappertype explicitly.
|
|
- [4f7c7b09a3e4]
|
|
-
|
|
-2009-12-29 phil <phil>
|
|
-
|
|
- * siplib/apiversions.c:
|
|
- Fixed a memory corruption bug in the implementation of sip.setapi().
|
|
- [11cc05a59770]
|
|
-
|
|
-2009-12-28 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- A fix for building against Stackless.
|
|
- [a3ce099e5002]
|
|
-
|
|
-2009-12-27 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a regression in the parsing of constrained enums.
|
|
- [eacac49b64df]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a bug in the lookup of virtual reimplementations that may only
|
|
- be apparent when looking up Python special methods.
|
|
- [97c538d2e634]
|
|
-
|
|
-2009-12-26 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Backed out the check for sub-classing from more than one wrapped
|
|
- type as it isn't sophisticated enough to handle mixins that share a
|
|
- meta-class.
|
|
- [34cf41855599]
|
|
-
|
|
-2009-12-23 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Added a hack for va_copy() being missing in MSVC.
|
|
- [e3bd9f6c1a3a]
|
|
-
|
|
-2009-12-22 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Another attempt to fix creating script wrappers on MacOS to
|
|
- invokethe right version of Python.
|
|
- [39d66e33acfd]
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h:
|
|
- Fixed a docstring bug handling default values that are literal
|
|
- strings.
|
|
- [a1fea3306f54]
|
|
-
|
|
-2009-12-21 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a fundamental problem with the parsing of signatures that
|
|
- allow keyword arguments where the current position in the format
|
|
- string and the var_args was being lost.
|
|
- [afa78322cb2d]
|
|
-
|
|
-2009-12-19 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Changed the signature of sipAddException(). Fixed a reference count
|
|
- bug in the handling of chained parse errors.
|
|
- [1e48cd06b448]
|
|
-
|
|
-2009-12-17 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c,
|
|
- sphinx/c_api.rst:
|
|
- Added sipBadCallableArg() to the C API.
|
|
- [4046e5d6ca66]
|
|
-
|
|
-2009-12-15 phil <phil>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed a NULL dereference when instantiating an unscoped class
|
|
- template.
|
|
- [908f41773044]
|
|
-
|
|
-2009-12-14 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c,
|
|
- sphinx/directives.rst:
|
|
- Added support for sipError to %MethodCode to allow code to
|
|
- distinguish between user errors and system errors.
|
|
- [8cb9ae04484a]
|
|
-
|
|
-2009-12-12 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Raise an exception if the automatically generated cast function
|
|
- fails (though this, theoretcally, shouldn't happed). Explicitly test
|
|
- for attempting to inherit from more than one wrapped type.
|
|
- [ae6cee8faa67]
|
|
-
|
|
-2009-12-11 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the generation of a bad call to sipMalloc() when generating
|
|
- for a C library.
|
|
- [a174c9456eab]
|
|
-
|
|
-2009-12-04 phil <phil>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Finally fixed %DefaultEncoding when set in an imported module.
|
|
- [d1eec2d99a95]
|
|
-
|
|
-2009-12-03 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a problem where Python wasn't creating descriptors for any
|
|
- enum slots which meant that explicitly calling special methods
|
|
- failed to invoke those slots.
|
|
- [ca934a1f4132]
|
|
-
|
|
-2009-12-02 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/siplib.c, sphinx/python_api.rst:
|
|
- Use capsules for Python v3.1 and later. Added the
|
|
- sip.voidptr.ascapsule() method.
|
|
- [154f2c63c18d]
|
|
-
|
|
-2009-11-23 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/transform.c:
|
|
- Fixed a bug where assignment helpers may not be generated for
|
|
- classes that have an alternate mapped type implementation.
|
|
- [6734e82522ee]
|
|
-
|
|
-2009-11-17 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a problem that meant that circular references in slots
|
|
- connected to objects owned by C++ weren't being detected.
|
|
- [b38add3f63d9]
|
|
-
|
|
-2009-11-15 phil <phil>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed a bug where %DefaultEncoding could be ignored if %Imports were
|
|
- being done in an inconvenient order.
|
|
- [ae075b6d08ea]
|
|
-
|
|
- * sphinx/command_line.rst, sphinx/distutils.rst:
|
|
- Added the documentation for the updated sipdistutils.py.
|
|
- [c5547730f27b]
|
|
-
|
|
- * lib/sipdistutils.py:
|
|
- An updated sipdistutils.py from Giovanni Bajo.
|
|
- [62a698e9f9bd]
|
|
-
|
|
-2009-11-14 phil <phil>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h:
|
|
- Signal docstrings no longer include default values as they are
|
|
- implemented as separate overloads.
|
|
- [339a2114ec6d]
|
|
-
|
|
- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/sip.h, siplib/sip.h:
|
|
- Docstrings are now generated for use by PyQt4 signals.
|
|
- [18bb2e74f269]
|
|
-
|
|
-2009-11-11 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- The docstrings are now wrapped with PyDoc_STRVAR().
|
|
- [ef3374625928]
|
|
-
|
|
- * sipgen/transform.c:
|
|
- The /DocType/ annotation is now properly supported for typedefs.
|
|
- [b3bbd7202a88]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- No docstrings are generated for any part of a class that isn't the
|
|
- default implementation.
|
|
- [9db19f2694a2]
|
|
-
|
|
- * sipgen/heap.c, sipgen/parser.y, sipgen/transform.c:
|
|
- Added support for /DocType/ to mapped type templates.
|
|
- [74a135153c66]
|
|
-
|
|
-2009-11-10 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h, siplib/siplib.c, sphinx/directives.rst,
|
|
- sphinx/introduction.rst, sphinx/specification_files.rst:
|
|
- Added the %Docstring directive to specify explicit docstrings.
|
|
- [61b4453a9ff4]
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/transform.c,
|
|
- siplib/siplib.c:
|
|
- More docstring fixes. Docstrings are not now generated for non-
|
|
- default implementations.
|
|
- [64779347846b]
|
|
-
|
|
-2009-11-09 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c:
|
|
- A fix for the formatting of function calls in default values for XML
|
|
- and docstrings.
|
|
- [cfd41d5169d1]
|
|
-
|
|
- * sipgen/export.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/annotations.rst:
|
|
- Added the /DocValue/ argument annotation.
|
|
- [63dbaa87cf17]
|
|
-
|
|
- * NEWS, sipgen/parser.y:
|
|
- String annotations can now have feature selectors embedded in them.
|
|
- [d8fccc02cc21]
|
|
-
|
|
-2009-11-08 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y:
|
|
- More docstring fixes.
|
|
- [98dc281a1a11]
|
|
-
|
|
- * sphinx/annotations.rst:
|
|
- Updated the docs as /DocType/ is also a function and variable
|
|
- annotation.
|
|
- [cad85d54df79]
|
|
-
|
|
- * sipgen/export.c:
|
|
- Docstrings now consider all C++ integer types to be "int".
|
|
- Docstrings now consider all C++ character types to be "str".
|
|
- [72ae0dd8d9dc]
|
|
-
|
|
-2009-11-07 phil <phil>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y,
|
|
- sipgen/sip.h, siplib/sip.h, sphinx/annotations.rst:
|
|
- Added the /DocType/ argument and mapped type annotation. More fixes
|
|
- for the docstring support.
|
|
- [99ebe42a8e10]
|
|
-
|
|
- * sipgen/export.c, sipgen/parser.y, sipgen/transform.c:
|
|
- Fixed a bug where a default copy ctor might be added when there
|
|
- aleady was one when the class had a alternative mapped type
|
|
- implementation.
|
|
- [0db8f014b7e7]
|
|
-
|
|
-2009-11-06 phil <phil>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c:
|
|
- Completed the basic support for automated docstrings (some tweaking
|
|
- still needed).
|
|
- [3d914379ef28]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Added stub docstring support for methods and classes.
|
|
- [b52d1ef306ae]
|
|
-
|
|
-2009-11-05 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/main.c, sipgen/sip.h, siplib/apiversions.c,
|
|
- siplib/sip.h, siplib/siplib.c, sphinx/command_line.rst,
|
|
- sphinx/introduction.rst:
|
|
- Added stubbed support for function docstrings.
|
|
- [91a545605044]
|
|
-
|
|
-2009-11-04 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed building on Python v2.
|
|
- [af23791238c1]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a memory leak of class instances annotated with /Out/ when
|
|
- catching C++ exceptions.
|
|
- [7fe47a8dd71d]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Completed the basic extended (ie. without docstrings) error messages
|
|
- on overload parse failures.
|
|
- [fe018c83a8df]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- More support for the extended errors when parsing signatures.
|
|
- [e837961dad1d]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, siplib/siplib.c:
|
|
- Fixed a problem where an overload that didn't take keyword arguments
|
|
- wasn't raising an error if one was supplied and there where other
|
|
- overloads that did.
|
|
- [f405b7102d19]
|
|
-
|
|
-2009-11-03 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Added the error detail for unbound methods. Ctor errors now don't
|
|
- include the module name (to match other errors).
|
|
- [b176dda5f1e9]
|
|
-
|
|
- * siplib/sip.h, siplib/siplib.c:
|
|
- Refactored the new error reporting so that it is much more
|
|
- lightweight in the common case of failure to parse an overload.
|
|
- [e801eb8ce7e6]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- The SIP API major version number has changed. Implemented the basics
|
|
- of the revised error messages (still missing the message detail
|
|
- though).
|
|
- [aa4e0e8fd705]
|
|
-
|
|
-2009-11-02 phil <phil>
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Fixed a broken Sphinx directive.
|
|
- [fc0975814576]
|
|
-
|
|
-2009-10-30 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/annotations.rst, sphinx/directives.rst:
|
|
- Added the /Default/ exception annotation to specify an exception
|
|
- that will be caught if there is no throw clause. A 'catch (...)'
|
|
- block will now always be generated.
|
|
- [d65ec4986067]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a regression in the monkey patching of instances.
|
|
- [94348861afba]
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- ...and another.
|
|
- [f90c80feb177]
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- ...and another documentation typo.
|
|
- [c3a7ea01b1e5]
|
|
-
|
|
- * sphinx/directives.rst:
|
|
- Fixed a documentation typo.
|
|
- [80259f3cc2f5]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a double delete bug with mapped types passed as references
|
|
- annotated with /Out/.
|
|
- [a788f308bbee]
|
|
-
|
|
-2009-10-28 phil <phil>
|
|
-
|
|
- * NEWS, lib/configure.py, lib/siputils.py, sphinx/build_system.rst:
|
|
- Adde support for out-of-tree building.
|
|
- [837ce5451585]
|
|
-
|
|
- * lib/siputils.py, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y,
|
|
- sipgen/sip.h, sphinx/build_system.rst, sphinx/c_api.rst,
|
|
- sphinx/command_line.rst, sphinx/directives.rst:
|
|
- Added support for building with "protected" redefined as "public" to
|
|
- reduce the size of generated modules.
|
|
- [6601a9a55993]
|
|
-
|
|
-2009-10-26 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- sipFindType() now handles references as well as pointers.
|
|
- [2228a1ad7d3f]
|
|
-
|
|
- * specs/linux-arm-g++, specs/linux-arm-thumb-g++, specs/linux-
|
|
- armv6-g++:
|
|
- Added the Linux ARM spec files from David Boddie's PyQt embedded
|
|
- patch set.
|
|
- [9285dfaea8a2]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h:
|
|
- More keyword argument bug fixing. (PyQt now seems to work with it
|
|
- enabled.)
|
|
- [d2f15ccd7460]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- More keyword argument bug fixing. (PyQt now builds again.)
|
|
- [709ea5c81d46]
|
|
-
|
|
-2009-10-25 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Bug fixing the keyword argument support.
|
|
- [9f8d9cc3f521]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, sipgen/sip.h,
|
|
- siplib/sip.h, siplib/siplib.c, sphinx/annotations.rst,
|
|
- sphinx/command_line.rst, sphinx/introduction.rst:
|
|
- Added support for (optional) keyword arguments - untested.
|
|
- [04504a7b338b]
|
|
-
|
|
-2009-10-24 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/siplib.c:
|
|
- Merged v4.9.1 back into the trunk.
|
|
- [8e50e7601287]
|
|
-
|
|
-2009-09-26 phil <phil>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.9.
|
|
- [4d26f5a2ec9c] [4.9]
|
|
-
|
|
-2009-09-19 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Fixed the dependency order of Qt libraries on Windows (which weems
|
|
- to only affect MinGW).
|
|
- [b3b353012242]
|
|
-
|
|
-2009-09-16 phil <phil>
|
|
-
|
|
- * lib/configure.py:
|
|
- Fixed a configure.py command line parsing problem on OS/X.
|
|
- [26287bd85bfd]
|
|
-
|
|
- * lib/siputils.py, sphinx/build_system.rst:
|
|
- The default build system values of universal and arch are now taken
|
|
- from the configuration.
|
|
- [33fab9918a24]
|
|
-
|
|
- * NEWS, siplib/siplib.c, sphinx/python_api.rst:
|
|
- Added sip.ispyowned().
|
|
- [ad556c1da3a4]
|
|
-
|
|
-2009-09-15 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- A fix for the last fix.
|
|
- [de0e5576ac75]
|
|
-
|
|
- * lib/siputils.py:
|
|
- More fixes for Snow Leopard.
|
|
- [64601a49b403]
|
|
-
|
|
-2009-09-14 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/parser.y, siplib/siplib.c,
|
|
- sphinx/annotations.rst:
|
|
- Allowed the /NoArgParser/ annotation to be used for class methods.
|
|
- [e5ec799a3f70]
|
|
-
|
|
-2009-09-12 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a problem when a function returns a class instance that SIP
|
|
- doesn't think can be copied.
|
|
- [bf71880486d0]
|
|
-
|
|
- * lib/configure.py, lib/siputils.py, sphinx/build_system.rst,
|
|
- sphinx/installation.rst:
|
|
- The --arch option now only implies a universal binary if it is
|
|
- specified more than once.
|
|
- [8c16580e8c21]
|
|
-
|
|
- * lib/configure.py, lib/siputils.py, sphinx/build_system.rst:
|
|
- Added support for specifying a MacOS architecture when creating a
|
|
- wrapper script.
|
|
- [8eeb8a1947b7]
|
|
-
|
|
-2009-09-11 phil <phil>
|
|
-
|
|
- * lib/configure.py:
|
|
- The MacOS specific configure.py options are no longer enabled on
|
|
- other platforms.
|
|
- [2dd928167cd9]
|
|
-
|
|
- * lib/configure.py, sphinx/installation.rst:
|
|
- Removed the -a short form of --arch so that it will be the same as
|
|
- PyQt.
|
|
- [239f8861bc8e]
|
|
-
|
|
- * NEWS, lib/configure.py, lib/siputils.py, sphinx/build_system.rst,
|
|
- sphinx/installation.rst:
|
|
- Added the --arch flag to configure.py to allow the architectures to
|
|
- be included in a MacOS/X universal binary to be specified.
|
|
- [b74bcfcb34b0]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Fixed a problem with the name of an API version in modules that sub-
|
|
- class from classes with versioned methods in a different module.
|
|
- [5b327c45a283]
|
|
-
|
|
-2009-09-06 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Added the support for handling keyword arguments to QObject ctors.
|
|
- [562b8ecd5e55]
|
|
-
|
|
-2009-09-04 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c,
|
|
- sphinx/annotations.rst, sphinx/c_api.rst:
|
|
- Completed the support for /Array/ applied to classes and mapped
|
|
- types.
|
|
- [f32ceb5cb246]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, siplib/siplib.c:
|
|
- Added support for /Array/ for classes and mapped types for non-
|
|
- virtual functions.
|
|
- [24bcbdbd0393]
|
|
-
|
|
-2009-09-03 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/transform.c, siplib/sip.h:
|
|
- Added the extended assignment helper and the array allocation helper
|
|
- for the future support of /Array/ for classes and mapped types.
|
|
- [61cf6b3635ab]
|
|
-
|
|
-2009-09-01 phil <phil>
|
|
-
|
|
- * NEWS, build.py, lib/LICENSE-GPL2.txt, lib/LICENSE-GPL3.txt,
|
|
- lib/LICENSE.short, sphinx/introduction.rst:
|
|
- Added the GPL as a licensing option.
|
|
- [1d372e99f512]
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h,
|
|
- siplib/siplib.c, sphinx/specification_files.rst:
|
|
- Added support for __iter__ and __next__.
|
|
- [d6cd069a434f]
|
|
-
|
|
-2009-08-21 phil <phil>
|
|
-
|
|
- * sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Added a check for recursive class hierarchies. Fixed the error
|
|
- message about type2string() by making sure it handles structs.
|
|
- [7af2d9cb07f8]
|
|
-
|
|
-2009-08-11 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed sipIsPyMethod() to not use PyObject_GetAttr() so that
|
|
- reimplementations defined in mixins will be found. This was a
|
|
- regression introduced when attribute lookup was made less lazy when
|
|
- getting super() to work properly.
|
|
- [710a488b84b4]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed the conversion of strings to wchar_t arrays as it was using
|
|
- calls that appeared in Python v2.6.
|
|
- [47cc56c95614]
|
|
-
|
|
-2009-08-08 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- sipFindType() will now find types given as a pointer.
|
|
- [b693f15869c8]
|
|
-
|
|
-2009-08-06 phil <phil>
|
|
-
|
|
- * lib/sipdistutils.py:
|
|
- Fixed sipdistutils.py for Python v3.
|
|
- [4574e78f607f]
|
|
-
|
|
-2009-08-05 phil <phil>
|
|
-
|
|
- * siplib/apiversions.c, siplib/sip.h, siplib/siplib.c:
|
|
- Fixes for looking up types when some times have no implementation
|
|
- for all API versions.
|
|
- [e77c51f40fe0]
|
|
-
|
|
-2009-08-04 phil <phil>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- No longer complain about methods having the same Python signature if
|
|
- they all are versioned.
|
|
- [076cbeaeb3ad]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Init extenders now respect API version numbers.
|
|
- [4efa4f7f246b]
|
|
-
|
|
-2009-08-03 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/transform.c:
|
|
- Virtual methods now support API versions.
|
|
- [8ec049505369]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sphinx/annotations.rst:
|
|
- Added support for the /API/ annotation to all overloaded methods.
|
|
- [fae5b6dd29d0]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- sphinx/annotations.rst:
|
|
- The /API/ annotation is now supported for ctors.
|
|
- [a24c25aede8d]
|
|
-
|
|
-2009-08-02 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, siplib/siplib.c:
|
|
- Instantiated class templates now take their API from the scoping
|
|
- class.
|
|
- [39bf3e3fc6de]
|
|
-
|
|
-2009-08-01 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/transform.c:
|
|
- Operator casts and global slots now handle classes with alternate
|
|
- mapped type implementations. (In a limited way, but good enough for
|
|
- PyQt.)
|
|
- [c2ed8e5bbf11]
|
|
-
|
|
-2009-07-29 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a crash with sipFindType() when the search happens to land on
|
|
- an unresolved external type.
|
|
- [ec4838cbf038]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed the Python v3 buffer interface for sip.voidptr.
|
|
- [4f800839bd44]
|
|
-
|
|
-2009-07-25 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c,
|
|
- sphinx/annotations.rst, sphinx/command_line.rst,
|
|
- sphinx/specification_files.rst:
|
|
- Fixed the '/' operator for Python v3 and future import for Python
|
|
- v2.
|
|
- [fe62bcd81fa3]
|
|
-
|
|
-2009-07-18 phil <phil>
|
|
-
|
|
- * sipgen/transform.c, sphinx/python_api.rst:
|
|
- Fixed a typo in a couple of error messages.
|
|
- [c7eb3170f527]
|
|
-
|
|
-2009-07-09 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed the nb_index initialiser for sip.voidptr for Python v2.4 and
|
|
- earler.
|
|
- [672b898935b5]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Allow the meta-type to be used with with ordinary Python classes,
|
|
- not just SIP generated classes.
|
|
- [6f724709902c]
|
|
-
|
|
-2009-07-08 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Complete the support for mapped type static methods.
|
|
- [f1cf7ebed748]
|
|
-
|
|
-2009-07-07 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Safety commit of (mostly complete) support for static functions in
|
|
- mapped types.
|
|
- [58aa805c1867]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sphinx/annotations.rst:
|
|
- Extended the use of /AllowNone/ to classes with %ConvertToType code.
|
|
- [102fc846396e]
|
|
-
|
|
-2009-07-06 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h,
|
|
- siplib/siplib.c, sphinx/annotations.rst:
|
|
- Added the /AllowNone/ mapped type annotation for mapped types that
|
|
- want to place a special interpretation on None.
|
|
- [d449e525c5e8]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- The generated virtual handler code is now the same for classes and
|
|
- for mapped types that might have an alternate class implementation.
|
|
- [60ce12a7d248]
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- Make sure mapped types honour the /Constrained/ annotation.
|
|
- [0a8916fbe3b2]
|
|
-
|
|
-2009-07-05 phil <phil>
|
|
-
|
|
- * siplib/apiversions.c, siplib/siplib.c:
|
|
- Debugged mapped types with namespaces.
|
|
- [1f55210a89de]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- siplib/descriptors.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c:
|
|
- Safety checkin on the run-time support for mapped types with
|
|
- namespaces.
|
|
- [ec7ba808f36c]
|
|
-
|
|
-2009-06-29 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Finished the code generation support for enums in mapped types.
|
|
- (Runtime support still to do.)
|
|
- [552a2d4950a1]
|
|
-
|
|
-2009-06-28 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Safety commit of the support for mapped types containing enums.
|
|
- [d94e09ea5add]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, siplib/siplib.c:
|
|
- Implemented the sipContainerDef in anticipation of mapped types
|
|
- supporting enums (for the moment, static methods and variables at a
|
|
- later date). Fixed a problem where API version ranges wheren't being
|
|
- reused.
|
|
- [28f8f2aa4bcf]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/apiversions.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c:
|
|
- Fixed a problem with enums in a type with alternate APIs.
|
|
- [e320f9cb7d19]
|
|
-
|
|
-2009-06-27 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Added a workaround to the build system when using virtualenv on
|
|
- MacOS.
|
|
- [ff5b09d449d5]
|
|
-
|
|
-2009-06-25 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c, sphinx/c_api.rst:
|
|
- A Python string object can now be provided when a wide character
|
|
- (wchar_t) is expected.
|
|
- [5a629389629b]
|
|
-
|
|
-2009-06-23 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- Some fixes for generated code for mapped types and classes not being
|
|
- as completely interchangeable as needed. (Still more to do.)
|
|
- [438a66e8e0a4]
|
|
-
|
|
-2009-06-22 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Bug fixes to the multi-API type support - PyQt4 now builds again.
|
|
- [795308460def]
|
|
-
|
|
- * siplib/apiversions.c, sphinx/annotations.rst:
|
|
- Completed the run-time support for multi-API types.
|
|
- [8888d5cd3feb]
|
|
-
|
|
-2009-06-21 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Completed the code generation changes for multi-API types.
|
|
- [439a95ba643e]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- More refactoring in preparation for multi-API support for types.
|
|
- [a9c3de1478d8]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- More changes to the multi-API support for types.
|
|
- [329493ac7802]
|
|
-
|
|
-2009-06-20 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Safety commit of latest changes for support of type API selection.
|
|
- [9443ed19b08b]
|
|
-
|
|
-2009-06-19 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Safety commit of parser changes to get at the API version of a class
|
|
- before it is defined.
|
|
- [c209ce56ea4d]
|
|
-
|
|
-2009-06-18 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- siplib/apiversions.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c, sphinx/annotations.rst:
|
|
- Implemented API selection for global functions.
|
|
- [db777d90f374]
|
|
-
|
|
-2009-06-17 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/apiversions.c, siplib/sip.h, sphinx/annotations.rst,
|
|
- sphinx/c_api.rst, sphinx/directives.rst, sphinx/using.rst:
|
|
- Completed the documentation for the API support. The %API directive
|
|
- can now be used any number of times in a module. Added the parser
|
|
- support for the API annotation.
|
|
- [9e63d5da36bd]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- siplib/apiversions.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c, sphinx/directives.rst,
|
|
- sphinx/specification_files.rst:
|
|
- Added support for the %API directive.
|
|
- [076c846bb8ca]
|
|
-
|
|
-2009-06-16 phil <phil>
|
|
-
|
|
- * siplib/apiversions.c, siplib/sipint.h, siplib/siplib.c,
|
|
- sphinx/c_api.rst:
|
|
- Implemented sipIsAPIEnabled().
|
|
- [ade852c2131a]
|
|
-
|
|
- * siplib/apiversions.c:
|
|
- ...and made sure it compiles.
|
|
- [3e8030fe1b76]
|
|
-
|
|
- * siplib/apiversions.c, siplib/sipint.h, siplib/siplib.c,
|
|
- siplib/siplib.sbf, sphinx/python_api.rst, sphinx/using.rst:
|
|
- Fixed the reference count of the sip module in the error path if its
|
|
- initialisation fails. Added the sip.getapi() and sip.setapi()
|
|
- functions.
|
|
- [43c34f1c289a]
|
|
-
|
|
- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c, siplib/sip.h, siplib/siplib.c,
|
|
- sphinx/specification_files.rst:
|
|
- Merged v4.8.1 into the trunk.
|
|
- [d1bd8aecab5a]
|
|
-
|
|
-2009-06-05 phil <phil>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.8.
|
|
- [6e9fb584da32] [4.8]
|
|
-
|
|
-2009-06-03 phil <phil>
|
|
-
|
|
- * build.py:
|
|
- More internal build system fixes.
|
|
- [4f34294143b0]
|
|
-
|
|
- * NEWS, build.py, siplib/descriptors.c, sphinx/Makefile:
|
|
- Fixed a Python v3 portability bug. Fixed the internal build system
|
|
- for Python v2.5.
|
|
- [144adbee9ea0]
|
|
-
|
|
-2009-06-02 phil <phil>
|
|
-
|
|
- * build.py, doc/sipref.txt, sphinx/conf.py,
|
|
- sphinx/extensions/siproles.py:
|
|
- Switched to the Sphinx documentation.
|
|
- [16b6a4f285a6]
|
|
-
|
|
- * sphinx/build_system.rst, sphinx/builtin.rst, sphinx/distutils.rst,
|
|
- sphinx/python_api.rst, sphinx/using.rst:
|
|
- Completed the initial Sphinx docs.
|
|
- [d9202085c430]
|
|
-
|
|
- * sphinx/c_api.rst, sphinx/embedding.rst, sphinx/python_api.rst,
|
|
- sphinx/using.rst:
|
|
- More Sphinx docs.
|
|
- [f3c5b7d3dcd4]
|
|
-
|
|
-2009-06-01 phil <phil>
|
|
-
|
|
- * sphinx/annotations.rst, sphinx/c_api.rst, sphinx/command_line.rst,
|
|
- sphinx/directives.rst, sphinx/extensions/siproles.py,
|
|
- sphinx/specification_files.rst, sphinx/using.rst:
|
|
- More Sphinx docs.
|
|
- [831112f389a5]
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a bug where nested templates where having their types resolved
|
|
- (when they should have been left as templates) which then meant that
|
|
- they were being found and were being instantiated again (possibly in
|
|
- a different module).
|
|
- [79d8261912c8]
|
|
-
|
|
- * build.py:
|
|
- Fixed the build system after removing the TODO file.
|
|
- [93ea3b759b5f]
|
|
-
|
|
-2009-05-31 phil <phil>
|
|
-
|
|
- * sphinx/annotations.rst, sphinx/builtin.rst, sphinx/c_api.rst,
|
|
- sphinx/conf.py, sphinx/directives.rst,
|
|
- sphinx/extensions/annotations.py, sphinx/extensions/siproles.py,
|
|
- sphinx/incompatibilities.rst, sphinx/installation.rst:
|
|
- More Sphinx docs.
|
|
- [d28f3153b2f8]
|
|
-
|
|
- * doc/sipref.txt, sphinx/annotations.rst, sphinx/c_api.rst,
|
|
- sphinx/conf.py, sphinx/extensions/annotations.py,
|
|
- sphinx/incompatibilities.rst, sphinx/using.rst:
|
|
- More Sphinx docs.
|
|
- [e4dcbba1bd9d]
|
|
-
|
|
-2009-05-30 phil <phil>
|
|
-
|
|
- * sphinx/build_system.rst, sphinx/conf.py, sphinx/distutils.rst,
|
|
- sphinx/introduction.rst, sphinx/python_api.rst, sphinx/using.rst:
|
|
- Sphinx documentation changes.
|
|
- [62644d47ee77]
|
|
-
|
|
- * TODO, doc/sipref.txt, siplib/siplib.c, sphinx/Makefile,
|
|
- sphinx/annotations.rst, sphinx/build_system.rst, sphinx/builtin.rst,
|
|
- sphinx/c_api.rst, sphinx/command_line.rst, sphinx/conf.py,
|
|
- sphinx/directives.rst, sphinx/distutils.rst, sphinx/embedding.rst,
|
|
- sphinx/incompatibilities.rst, sphinx/index.rst,
|
|
- sphinx/installation.rst, sphinx/introduction.rst,
|
|
- sphinx/python_api.rst, sphinx/specification_files.rst,
|
|
- sphinx/using.rst:
|
|
- Initial commit of the Sphinx documentation.
|
|
- [432d95fdad2f]
|
|
-
|
|
- * sipgen/parser.y, sipgen/transform.c:
|
|
- Reverted the previous fix and fixed the real bug which was that
|
|
- %DefaultEncoding wasn't being inherited properly by modules.
|
|
- [9abeaff1148a]
|
|
-
|
|
-2009-05-29 phil <phil>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a bug in comparing virtual handlers that had a char* result or
|
|
- argument and a default encoding was specified (ie. with Python v3).
|
|
- [3c92e9237373]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, siplib/descriptors.c,
|
|
- siplib/qtlib.c, siplib/sip.h, siplib/siplib.c:
|
|
- Eliminated more warning messages.
|
|
- [a61fb0a096f2]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h:
|
|
- Eliminated some compiler warning messages - particularly for Python
|
|
- v2.4.
|
|
- [374f079e7228]
|
|
-
|
|
-2009-05-28 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Removed a compiler warning for the generated calls to
|
|
- PyInit_Module() for Python v2.5 and v2.6.
|
|
- [dc93a8fa4a5b]
|
|
-
|
|
-2009-05-27 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- The implicit copying of const& results is disabled for abstract
|
|
- classes.
|
|
- [705fc12e2144]
|
|
-
|
|
-2009-05-26 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the generated code for abstract operators.
|
|
- [c56cc92b0917]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Added the missing initialisation of the sipVariableDescr_Type type.
|
|
- [2c0779527ed3]
|
|
-
|
|
-2009-05-25 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/sip.h, siplib/sip.h, siplib/siplib.c:
|
|
- __bool__ is now synonymous with __nonzero__. __truediv__ and
|
|
- __itruediv__ are now explicit. __div__ and __idiv__ are now Python
|
|
- v2 only. Added support for __floordiv__, __ifloordiv__ and
|
|
- __index__.
|
|
- [537579d9318e]
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Hopefully fixed the regression with specific mapped types not
|
|
- properly superceding template mapped types that was affecting PyKDE3
|
|
- and PyKDE4.
|
|
- [25a665370099]
|
|
-
|
|
-2009-05-24 phil <phil>
|
|
-
|
|
- * siplib/descriptors.c, siplib/sipint.h:
|
|
- Added a repr() method to sip.methoddescriptor.
|
|
- [149f6c3f12a5]
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a bug where the name of an automatically generated
|
|
- complementary slot wasn't being generated.
|
|
- [0f304e850331]
|
|
-
|
|
- * sipgen/export.c:
|
|
- Added support for images in the generated Scintilla API files from a
|
|
- patch from Detlev Offenbach.
|
|
- [83966cc9950a]
|
|
-
|
|
-2009-04-30 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/transform.c, siplib/qtlib.c:
|
|
- %DefaultSupertype now only changes the default for the current
|
|
- module. (%DefaultMetatype still affects importing modules.) This
|
|
- should mean that modules that extend PyQt4 will continue to work
|
|
- without having to make super-type or meta-type changes.
|
|
- [5fc24c675796]
|
|
-
|
|
-2009-04-24 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed the lookup of generated slot functions in sub-types. Moved
|
|
- some assertions to more appropriate places when a generated slot
|
|
- function isn't found.
|
|
- [5b59bd703dff]
|
|
-
|
|
-2009-04-20 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c:
|
|
- Disabled the new implicit copying of const reference results where
|
|
- the class doesn't have a public copy ctor.
|
|
- [70cd90b1d5b9]
|
|
-
|
|
-2009-04-18 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a problem handling __setitem__ when being used to support
|
|
- multi-dimensional mappings.
|
|
- [705be62a3cd0]
|
|
-
|
|
-2009-04-09 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Print any exception raised by __dtor__.
|
|
- [0d56ac42feac]
|
|
-
|
|
-2009-04-01 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, siplib/sip.h, siplib/siplib.c:
|
|
- Added support for PyQt4's support for signals that have overloaded
|
|
- methods.
|
|
- [c0ad968503e4]
|
|
-
|
|
-2009-03-30 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a compiler warning message if sipCpp isn't used by
|
|
- %BIGetBufferCode.
|
|
- [26269a7e86f4]
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- Fixed the declaration of the module initialisation function when
|
|
- building static modules for Python v3.
|
|
- [6f48c809c90b]
|
|
-
|
|
-2009-03-27 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a couple of missing calls to clear the error flag while
|
|
- parsing strings.
|
|
- [2275585e4c08]
|
|
-
|
|
-2009-03-26 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Replaced the new /Byte/ annotation with the even newer /Encoding/
|
|
- annotation and %DefaultEncoding directive.
|
|
- [7c648d9cdd13]
|
|
-
|
|
-2009-03-24 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Changed the order in which PyQt4 signals are generated so that those
|
|
- with optional arguments appear with the most arguments first and
|
|
- least last.
|
|
- [4d0b9c852cf8]
|
|
-
|
|
-2009-03-23 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c:
|
|
- Backed out the removal of sipSelfWasArg and supporting code as it
|
|
- really is needed. However, changed how it was set so that super()
|
|
- should still work.
|
|
- [29d1813e4566]
|
|
-
|
|
-2009-03-21 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a bug in the code generated for protected methods with
|
|
- multiple Python names.
|
|
- [7aa8d62ddf7c]
|
|
-
|
|
-2009-03-20 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Bytes and the buffer protocol are now also supported for non-byte
|
|
- char and char * (howver the buffer protocol support seems to be
|
|
- broken).
|
|
- [1c5b994cd2d6]
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/sip.h, sipgen/transform.c, siplib/descriptors.c,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- Many changes to the wrapping of strings for Python v3 so that char
|
|
- and char * (unless the /Byte/ annotation is specified) are handled
|
|
- as Unicode rather than bytes. Such strings must be able to be
|
|
- encoded as Latin-1. Related to the above, the generated code is much
|
|
- more careful than it used to be about keeping Python string objects
|
|
- alive while their data is being used.
|
|
- [49cf3c9e7b69]
|
|
-
|
|
-2009-03-18 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a long-standing bug in the handling of the /NoArgParser/
|
|
- annotation that only came to light with Python v3.
|
|
- [2c44dd616d6d]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/transform.c:
|
|
- More fixes for consolidated modules. Python v2 and v3 should now be
|
|
- working.
|
|
- [b966b1df2bb1]
|
|
-
|
|
-2009-03-17 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/transform.c:
|
|
- Some fixes for consolidated module support for both Python v2 and
|
|
- v3.
|
|
- [b17d4cdf4709]
|
|
-
|
|
- * lib/siputils.py:
|
|
- Tweaked the build system to make it easier for Makefile sub-classes
|
|
- to add commands to targets.
|
|
- [abe3ecd83256]
|
|
-
|
|
-2009-03-16 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c:
|
|
- Fixed a bug in generating Python v3 consolidated modules.
|
|
- [8fc22b7be6fd]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a typo that broke the build of the sip module for Python v2.
|
|
- [348b333af022]
|
|
-
|
|
-2009-03-15 phil <phil>
|
|
-
|
|
- * siplib/sip.h:
|
|
- Tweaks to the Python portability macros.
|
|
- [c1f795ce8a5a]
|
|
-
|
|
- * siplib/sip.h:
|
|
- More Python portability macros.
|
|
- [b3d39099f350]
|
|
-
|
|
-2009-03-14 phil <phil>
|
|
-
|
|
- * lib/configure.py:
|
|
- Fixed a Mac build regression handling the location of the SDK.
|
|
- [2c8cf43905e1]
|
|
-
|
|
- * siplib/sip.h:
|
|
- Added some more Python porting macros.
|
|
- [c046cc5bb268]
|
|
-
|
|
- * lib/siputils.py:
|
|
- Removed a remaining Python v2 specific call from the build system.
|
|
- [c1527c576e1d]
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/sip.h:
|
|
- The generated code now supports Python v3.
|
|
- [c60f38353478]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- The sip module can now be imported by Python v3.
|
|
- [a8bd1e5a5a4b]
|
|
-
|
|
-2009-03-13 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, siplib/siplib.c:
|
|
- Ported the PyString_ calls in the sip module to Python v3.
|
|
- [337e7e627054]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Updated the generated module initialisation code for Python v3 - but
|
|
- not for consolidated modules yet.
|
|
- [985c336dd059]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Moved to PyLong_* for Python v3.
|
|
- [a1d1a376920b]
|
|
-
|
|
-2009-03-12 phil <phil>
|
|
-
|
|
- * lib/siputils.py, sipgen/gencode.c, siplib/objmap.c, siplib/qtlib.c,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- More porting of the sip module. It now compiles but still calls
|
|
- Python v2 functions.
|
|
- [9f4570a090e1]
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h, siplib/descriptors.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Partially ported the sip module to Python v3. Added the
|
|
- %BIGetBufferCode and %BIReleaseBufferCode directives to support the
|
|
- buffer interface of Python v3.
|
|
- [0631013fd5ae]
|
|
-
|
|
-2009-03-11 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, lib/configure.py, lib/siputils.py:
|
|
- configure.py now uses optparse. configure.py and the build system
|
|
- will now run under Python3.
|
|
- [89bbb0b49865]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Implemented __dict__ for sipsimplewrapper.
|
|
- [cf1c9edeb56a]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h:
|
|
- Added the SIP_PYMETHODDEF_CAST compatibility macro for Python v2.4
|
|
- and earlier.
|
|
- [43e5b0afa42d]
|
|
-
|
|
-2009-03-10 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Changed the code generated for variable getters so that a copy is
|
|
- only returned if the variable is const.
|
|
- [22c2ae7bdc37]
|
|
-
|
|
-2009-03-09 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Changed the generation of the string pool to get around MSVC's
|
|
- limitation on the size of a string.
|
|
- [e15683c4034a]
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [262f29053a78]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Made sure all generated code doesn't break strict aliasing.
|
|
- [ae62345de148]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- SIP now automatically copies objects when they are returned as a
|
|
- const reference.
|
|
- [3d0c7011cb93]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c:
|
|
- A further fix to the order in which modules have their types
|
|
- resolved.
|
|
- [d7ebeff5a7ce]
|
|
-
|
|
-2009-03-06 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Taught the build system about the QtScriptTools module.
|
|
- [6c0d66e4ef0b]
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a bug where types were being resolved in outer modules before
|
|
- inner modules. This meant that template-based types created on the
|
|
- fly might be created in the wrong module.
|
|
- [cd2a99e505be]
|
|
-
|
|
-2009-03-05 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Taught the build system about the new dependency of QtXmlPatterns on
|
|
- QtNetwork.
|
|
- [50a9e41802c2]
|
|
-
|
|
-2009-03-04 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixes for the updated method cache.
|
|
- [d82c3be07e1b]
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c:
|
|
- Greatly simplified the virtual reimplementation method cache now
|
|
- that attribute lookup has been cleaned up.
|
|
- [0cc40f47e6d5]
|
|
-
|
|
-2009-03-03 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/sip.h, siplib/sip.h, siplib/siplib.c:
|
|
- Implemented the /KeepReference/ argument annotation.
|
|
- [c8e2e1961f50]
|
|
-
|
|
-2009-02-27 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Added sipCanConvertToEnum() to the public API.
|
|
- [2748f0bbb0ab]
|
|
-
|
|
-2009-02-26 phil <phil>
|
|
-
|
|
- * siplib/sipint.h, siplib/siplib.c:
|
|
- Removed the __dict__ getter as it is no longer needed. Changed the
|
|
- declaration of the descriptors as they don't need to be exported.
|
|
- [ddd2710b42fd]
|
|
-
|
|
-2009-02-25 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, siplib/sip.h, siplib/siplib.c:
|
|
- Reverted to using type's and object's attribute getters and setters
|
|
- now that we populate the type dictionary of a generated type with
|
|
- all its lazy attributes in one go. Changed how an external
|
|
- attributer getter works now that it only needs to populate the type
|
|
- dictionary.
|
|
- [8a22253728be]
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- Safety checking of the working (but still to be changed) attribute
|
|
- lookup code.
|
|
- [d7244d817b9f]
|
|
-
|
|
- * sipgen/gencode.c, siplib/descriptors.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Refactored the support for setting instance variables.
|
|
- [cc8a22386009]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, siplib/descriptors.c,
|
|
- siplib/sip.h, siplib/sipint.h, siplib/siplib.c:
|
|
- The refactored support for getting variables now works.
|
|
- [c3e7dc58b020]
|
|
-
|
|
-2009-02-24 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Safety commit of refactored wrapping of class variables.
|
|
- [fa8ba6ef243b]
|
|
-
|
|
-2009-02-23 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed the problem with looking up external lazy attributes - wrapped
|
|
- variables are the only thing not working.
|
|
- [ab3e207d555b]
|
|
-
|
|
- * siplib/descriptors.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c, siplib/siplib.sbf:
|
|
- Safety commit of new attribute lookup code. Don't use this - it's
|
|
- broken.
|
|
- [2673bc2add5c]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a reference count leak when an external lazy attribute was a
|
|
- descriptor.
|
|
- [1047169d1ba8]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a crash when accessing a wrapped instance variable as a class
|
|
- variable.
|
|
- [e922b386c5aa]
|
|
-
|
|
-2009-02-22 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a bug in the refactored attribute lookup.
|
|
- [ddad97af22ec]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Completed the support for the lazy attribute lookup hook.
|
|
- [1f7bc8f488a8]
|
|
-
|
|
-2009-02-21 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c:
|
|
- Added initial support for registering lazy attribute getters.
|
|
- [9aae0eb78368]
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c:
|
|
- The PyQt4 signal table is now generated. The XML export now marks
|
|
- the default signal.
|
|
- [dbf0c7f47b6b]
|
|
-
|
|
-2009-02-20 phil <phil>
|
|
-
|
|
- * lib/LICENSE, sipgen/gencode.c, siplib/sip.h:
|
|
- Added the stub of signal table for PyQt4.
|
|
- [f53134503038]
|
|
-
|
|
-2009-02-16 phil <phil>
|
|
-
|
|
- * siplib/sip.h, siplib/siplib.c:
|
|
- Removed some compiler warnings.
|
|
- [a3c24034045a]
|
|
-
|
|
-2009-02-14 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- More signal/slot refactoring fixes.
|
|
- [e1c0b895f0d1]
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h:
|
|
- Debugged the signal/slot refactoring.
|
|
- [a4a47ea6fd1e]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h,
|
|
- siplib/sipint.h, siplib/siplib.c:
|
|
- Safety commit of latest signal/slot refactoring.
|
|
- [751cebc544cc]
|
|
-
|
|
-2009-02-13 phil <phil>
|
|
-
|
|
- * siplib/qtlib.c, siplib/siplib.c:
|
|
- Fixed a build problem with Python 2.4.x and earlier.
|
|
- [df846f30a329]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c, siplib/siplib.c:
|
|
- PyQt3 signal support is now enabled with the %Plugin directive
|
|
- instead of %SIPOptions. Removed %SIPOptions.
|
|
- [d511ad00cc71]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- The generated typedefs table is now sorted.
|
|
- [abd1a7d60330]
|
|
-
|
|
-2009-02-12 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- An unconstrained enum can now be a sub-class of int.
|
|
- [60366594aa80]
|
|
-
|
|
-2009-02-11 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h:
|
|
- Renamed TypeFlags to PyQt4Flags. Renamed NoQMetaObject to
|
|
- PyQt4NoQMetaObject. Moved the type flags into the PyQt4-specific
|
|
- type structure.
|
|
- [259fceeadbbe]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c:
|
|
- Removed the registration of wrapped types with the Qt meta-type
|
|
- system as it is no longer needed by PyQt4.
|
|
- [71f80e789732]
|
|
-
|
|
-2009-02-07 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/qtlib.c, siplib/sip.h, siplib/siplib.c:
|
|
- Removed sipAssignType() and moved the helpers to the PyQt4 plugin.
|
|
- [305f07cd3ce2]
|
|
-
|
|
-2009-02-02 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c:
|
|
- The QObject.sender() support is now PyQt3 only again.
|
|
- [e732e65c15b5]
|
|
-
|
|
-2009-02-01 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- Fixed a bug in the generation of the sipParseArgs() sub-format
|
|
- character for types.
|
|
- [fadc9f7074f1]
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h:
|
|
- Changed the QObject::sender() support for PyQt4.
|
|
- [9d6d9918bb1f]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Debugged the merged types table.
|
|
- [cf4e643c28b5]
|
|
-
|
|
-2009-01-31 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/heap.c, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- Safety commit of the merge of the class, mapped types and enum
|
|
- tables.
|
|
- [33a1dbf992df]
|
|
-
|
|
-2009-01-30 phil <phil>
|
|
-
|
|
- * siplib/sip.h, siplib/siplib.c:
|
|
- Wrapped classes are now created as they are needed and not in the
|
|
- order they appear in the generated class table. Therefore the class,
|
|
- mapped type and enum tables can now be merged and ordered by the
|
|
- type name (and searched using a binary search).
|
|
- [4a72c9cee88f]
|
|
-
|
|
-2009-01-29 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Moved the last of the type parsing to PyQt3.
|
|
- [b7d7695e3d8e]
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c:
|
|
- Moved the registering of int types to PyQt4.
|
|
- [e63f85d857bd]
|
|
-
|
|
-2009-01-28 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Refactored the support for looking up typedefs.
|
|
- [42851fe9a2cb]
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c:
|
|
- Moved the type parsing support to PyQt3.
|
|
- [531e8244cfd3]
|
|
-
|
|
-2009-01-27 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Removed a remaining call to sipReleaseMappedType().
|
|
- [2a9cbf86c86a]
|
|
-
|
|
-2009-01-25 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a too-few-arguments-to-a-print bug in the code generator.
|
|
- [1260503c2021]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed compilation issues.
|
|
- [635ffd53597b]
|
|
-
|
|
-2009-01-18 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h:
|
|
- Replaced sipFindConnection() with sipFindSlot().
|
|
- [30f0174c05f4]
|
|
-
|
|
-2009-01-13 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c:
|
|
- Replaced sipFreeSignature() with sipFreeSipslot().
|
|
- [e5275f031458]
|
|
-
|
|
-2009-01-12 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c:
|
|
- Pushed the parsing of signatures into PyQt.
|
|
- [b2e616d5c92f]
|
|
-
|
|
-2009-01-11 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c:
|
|
- Replaced sipConvertRx() with sipConvertRxEx().
|
|
- [cc0e4fe70f50]
|
|
-
|
|
-2009-01-10 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Removed the generation of an old Qt API entry.
|
|
- [30f044ed1723]
|
|
-
|
|
-2009-01-09 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h:
|
|
- Safety commit of partial refactoring of the Qt signal support.
|
|
- [429673b02dcd]
|
|
-
|
|
-2009-01-04 phil <phil>
|
|
-
|
|
- * lib/LICENSE, lib/LICENSE.short, sipgen/gencode.c:
|
|
- Don't import the qt_register_type symbol if it isn't needed. Updated
|
|
- copyright notices.
|
|
- [f2dbc98f7144]
|
|
-
|
|
-2008-12-30 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, siplib/sip.h, siplib/siplib.c:
|
|
- sipTypeFromPyTypeObject() now takes a PyTypeObject* rather than a
|
|
- PyObject*.
|
|
- [077c2ad4451f]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/objmap.c, siplib/sip.h,
|
|
- siplib/sipint.h, siplib/siplib.c, siplib/threads.c:
|
|
- Added sipTypeName() and sipTypeScope() to the public SIP API.
|
|
- [701c6915d3e3]
|
|
-
|
|
-2008-12-29 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, siplib/sip.h,
|
|
- siplib/sipint.h, siplib/siplib.c:
|
|
- Migrated sipEnum_* to sipType_*.
|
|
- [e0417099f5a9]
|
|
-
|
|
-2008-12-27 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- sipType_* are now generated for enums. These are used internally but
|
|
- the SIP API has not yet been changed.
|
|
- [ca45e1d31af2]
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c:
|
|
- Broke out the generated type structures for mapped and class types
|
|
- to different structures with a common header.
|
|
- [ff4bec0abd37]
|
|
-
|
|
-2008-12-26 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Wrapped enums now have their own meta-type. This is the hook that
|
|
- will allow the C++ name of an enum to be derived from the enum's
|
|
- Python type object.
|
|
- [ea550b12904c]
|
|
-
|
|
-2008-12-24 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Added sip_api_init_module() to make sure dependent modules can be
|
|
- fully initialised before they are needed.
|
|
- [fed394659169]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h:
|
|
- Removed the Qt meta-type id from the pyqt4TypeDef structure as we
|
|
- want to use it for mapped types as well but we would never know when
|
|
- it was safe to cast from a sipTypeDef pointer.
|
|
- [92c012de8c02]
|
|
-
|
|
-2008-12-21 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- The PyQt4-specific extension to the generated type structure is now
|
|
- used for mapped types as well.
|
|
- [f49b6d447292]
|
|
-
|
|
-2008-12-20 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- Changed the PyQt4-specifc handling of Qt meta-type registration.
|
|
- [d112840accfd]
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- A generated type structure now has its Python type object set
|
|
- earlier so that sub-meta-types can use sipIsExactWrappedType().
|
|
- Calls to QObject::metaObject() are no longer need to trigger the
|
|
- creation of the meta-object.
|
|
- [8d816e1f3008]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h, siplib/sip.h:
|
|
- Added %Plugin and use it to support pyqt4TypeDef.
|
|
- [0f236470d582]
|
|
-
|
|
-2008-12-19 phil <phil>
|
|
-
|
|
- * siplib/sip.h:
|
|
- Moved the qt_qobject member out of sipWrapperType and into PyQt
|
|
- where it belongs.
|
|
- [babe6a91d801]
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- Completed the migration of sipClass_* to sipType_*.
|
|
- [e7c00163d819]
|
|
-
|
|
- * doc/sipref.txt:
|
|
- Documentation updates. All uses of sipClass_* are only by deprecated
|
|
- parts of the API.
|
|
- [cfa2b5ca880e]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Deprecated the 'B' and 'C' format characters to sipBuildResult() and
|
|
- sipCallMethod(). Added the new 'N' format character to
|
|
- sipBuildResult() and sipCallMethod().
|
|
- [d685f1b18287]
|
|
-
|
|
-2008-12-17 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/siplib.c:
|
|
- Deprecated the 'C' format character of sipParseResult() in favor of
|
|
- the existing 'D' character.
|
|
- [be1f044d9828]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Migrated the sub-class convertor code to using sipType rather than
|
|
- sipClass.
|
|
- [a4424a9ac5a5]
|
|
-
|
|
-2008-12-16 phil <phil>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a bug where names of mapped type templates where being
|
|
- generated for modules that didn't need them.
|
|
- [176171583343]
|
|
-
|
|
-2008-12-14 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h,
|
|
- siplib/sipint.h, siplib/siplib.c:
|
|
- Replaced the deprecated sipConvertFromInstance() and
|
|
- sipConvertFromNewInstance() with sipConvertFromType() and
|
|
- sipConvertFromNewType().
|
|
- [6f6e06ceaace]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Replaced the deprecated sipForceConvertToInstance() and
|
|
- sipForceConvertToMappedType() with sipForceConvertToType().
|
|
- [fc54ee3b5308]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Replaced the deprecated sipConvertToInstance() and
|
|
- sipConvertToMappedType() with sipConvertToType().
|
|
- [8e66284398dd]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Replaced the deprecated sipCanConvertToInstance() and
|
|
- sipCanConvertToMappedType() by sipCanConvertToType().
|
|
- [c1f1b170b263]
|
|
-
|
|
-2008-12-13 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Replaced the deprecated sipReleaseInstance() and
|
|
- sipReleaseMappedType() with sipReleaseType().
|
|
- [7ce45ed9ae89]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Replaced the deprecated sipGetWrapper() with sipGetPyObject().
|
|
- [8cb295b72e62]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/objmap.c, siplib/qtlib.c,
|
|
- siplib/sip.h, siplib/sipint.h, siplib/siplib.c:
|
|
- More moves from sipClass_* to sipType_*.
|
|
- [4e7936a90f99]
|
|
-
|
|
- * sipgen/gencode.c, siplib/objmap.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c:
|
|
- More conversions from sipClass_* to sipType_*.
|
|
- [75eed80555d4]
|
|
-
|
|
-2008-12-12 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c,
|
|
- siplib/threads.c:
|
|
- Merged the adding of type instances.
|
|
- [d2db3775a993]
|
|
-
|
|
-2008-12-08 phil <phil>
|
|
-
|
|
- * lib/siputils.py, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Started the port from sipClass_* to sipType_*. Added support for
|
|
- assert() to the build system.
|
|
- [231826fe6d04]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Renamed sipMappedType_* to sipType_*.
|
|
- [8df5a86247e8]
|
|
-
|
|
-2008-12-07 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Added sipType_* for wrapped types. sipClass_* is now defined in
|
|
- terms of sipType_*.
|
|
- [bb37272a3113]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Deprecated sipClassName().
|
|
- [de0402f5112c]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- Mapped types are now described by the same sipTypeDef structure that
|
|
- describes wrapped types.
|
|
- [77ce210b751e]
|
|
-
|
|
-2008-12-06 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, siplib/sip.h, siplib/siplib.c:
|
|
- Moved the 'user' field from sip.wrapper to sip.simplewrapper because
|
|
- PyQt uses it for some non-QObject types.
|
|
- [0bb916ce4818]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h, sipgen/transform.c, siplib/sip.h, siplib/siplib.c:
|
|
- Restored %DefaultMetatype and the /Metatype/ class annotation. This
|
|
- support is now complete. Documented the meta-type and super-type
|
|
- support.
|
|
- [15f1b60f808f]
|
|
-
|
|
-2008-12-03 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sipint.h,
|
|
- siplib/siplib.c:
|
|
- Code generator changes to support sipSimpleWrapper.
|
|
- [ebd5b0b103ae]
|
|
-
|
|
- * siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c:
|
|
- The sip module now compiles again without any unexpected warnings.
|
|
- [6fb536d5333e]
|
|
-
|
|
-2008-12-02 phil <phil>
|
|
-
|
|
- * siplib/objmap.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h,
|
|
- siplib/siplib.c:
|
|
- Various compilation fixes.
|
|
- [ace8e0f95607]
|
|
-
|
|
-2008-12-01 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Safety checkin of the support for the new sip.simplewrapper type.
|
|
- [3d87512e3a5c]
|
|
-
|
|
- * NEWS, doc/sipref.txt, siplib/siplib.c:
|
|
- Added support for %InitialisationCode. (Actually in the previous
|
|
- commit but I forgotto mention it.) The text of an attribute
|
|
- exception now mimics that produced by the Python interpreter.
|
|
- [70d0f5dc259b]
|
|
-
|
|
-2008-11-30 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h, sipgen/transform.c, siplib/sip.h, siplib/siplib.c:
|
|
- Refactored the super-type and meta-type support. Meta-types are now
|
|
- handled implicitly.
|
|
- [2676976c88bf]
|
|
-
|
|
-2008-11-29 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/siplib.c:
|
|
- Debugged the metatype support.
|
|
- [e7e9b5d303c3]
|
|
-
|
|
-2008-11-27 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- The metatypes are now registered and readied.
|
|
- [5c4757c83b70]
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/transform.c, siplib/siplib.c:
|
|
- Fixes for various regressions.
|
|
- [eea6dc713727]
|
|
-
|
|
-2008-11-26 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Use the string pool for calls to qRegisterMetaType().
|
|
- [954bd63eb830]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/transform.c, siplib/sip.h, siplib/siplib.c:
|
|
- Completed the code generator support for user defined metatypes.
|
|
- [6c09f41b9eec]
|
|
-
|
|
-2008-11-24 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c, siplib/sip.h:
|
|
- Added the parser support for %Metatype and %DefaultMetatype.
|
|
- [6af8f6a12eb5]
|
|
-
|
|
-2008-11-23 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- The string pool now overlaps strings where possible.
|
|
- [4873718f6e82]
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- Enum names now use the string pool.
|
|
- [b6414c99a03a]
|
|
-
|
|
- * sipgen/parser.y, siplib/sip.h, siplib/siplib.c:
|
|
- Fixed a regression in the handling of nested namespaces.
|
|
- [a49433be0291]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- Python and C++ type names now use the string pool. The string pool
|
|
- is currently broken for namespace extenders.
|
|
- [b08a2ca9d7fd]
|
|
-
|
|
-2008-11-22 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c, siplib/sip.h, siplib/siplib.c:
|
|
- The generated name cache is now a single (const) string.
|
|
- [0296eda5e61a]
|
|
-
|
|
- * doc/sipref.txt, lib/configure.py, lib/siputils.py, sipgen/gencode.c,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- Removed all deprecated parts of the API and generated code.
|
|
- [0a00c20f5c5b]
|
|
-
|
|
-2008-11-21 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Use "-undefined dynamic_lookup" rather than linking against the
|
|
- Python framework on MacOS.
|
|
- [773c8920c04f]
|
|
-
|
|
-2008-11-18 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Added sipWrapperType_Check() to the public API.
|
|
- [42d9ec7403f4]
|
|
-
|
|
-2008-11-17 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c:
|
|
- Merged v4.7.9 into the trunk.
|
|
- [63aff4a6e0f0]
|
|
-
|
|
-2008-11-08 phil <phil>
|
|
-
|
|
- * NEWS, TODO, build.py, doc/default.css, doc/sipref.txt, lib/LICENSE,
|
|
- lib/LICENSE.short, lib/README.HP-UX, lib/THANKS, lib/configure.py,
|
|
- lib/siputils.py, sipgen/export.c, sipgen/gencode.c, sipgen/heap.c,
|
|
- sipgen/lexer.l, sipgen/main.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c, siplib/objmap.c, siplib/qtlib.c, siplib/sip.h,
|
|
- siplib/sipint.h, siplib/siplib.c, specs/linux-icc,
|
|
- specs/win32-msvc2005, specs/win32-msvc2008:
|
|
- Merged v4.7.8 into the trunk.
|
|
- [9cc6147a1067]
|
|
-
|
|
-2007-07-30 phil <phil>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.7.
|
|
- [a458d43a6fbb] [4.7]
|
|
-
|
|
-2007-07-28 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a memory leak with mapped types with the /Out/ annotation.
|
|
- [5c156cb3b313]
|
|
-
|
|
-2007-07-27 phil <phil>
|
|
-
|
|
- * siplib/qtlib.c:
|
|
- Fixed a bug preventing wrapped C++ slots from being disconnected.
|
|
- [43fc1981c30d]
|
|
-
|
|
-2007-07-14 phil <phil>
|
|
-
|
|
- * siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c:
|
|
- Rather than only lambda functions being given an extra reference
|
|
- when used as a slot, anything other that a method or wrapped C
|
|
- function is given an extra reference. Specifically this means that
|
|
- partial functions can now be used as slots.
|
|
- [2562db168ce9]
|
|
-
|
|
-2007-07-04 phil <phil>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Relaxed the restriction that /Out/ arguments couldn't be const.
|
|
- [546fba30aac6]
|
|
-
|
|
-2007-06-25 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a compiler warning message about an unused argument in
|
|
- generated code.
|
|
- [5713835ff863]
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed a bug in the previous fix so that it only applies to mapped
|
|
- types.
|
|
- [68a7fd2c1ea4]
|
|
-
|
|
- * sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Fixed a bug where template based types where overwriting the header
|
|
- code of any previously defined type based on the same interface
|
|
- file.
|
|
- [f41edc04b3cf]
|
|
-
|
|
-2007-06-23 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c:
|
|
- Consolidated modules are now generated as either C or C++ (rather
|
|
- than always C) so that the name cache names are consistently
|
|
- mangled.
|
|
- [83c24c956277]
|
|
-
|
|
-2007-06-22 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Fixed a build system problem for PyQt on Windows against a static
|
|
- Qt.
|
|
- [3ff5f3d1e074]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed silly code generation typo.
|
|
- [3232af13c3f6]
|
|
-
|
|
- * lib/siputils.py:
|
|
- Changed the build system so that missing macros default to being
|
|
- empty rather than causing an error. (Qt v4.3.0 contains such a
|
|
- case.)
|
|
- [213c1dd11448]
|
|
-
|
|
-2007-06-20 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/main.c,
|
|
- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Split the consolidated module concept into separate consolidated and
|
|
- composite module types, which significantly simplifies things.
|
|
- [eb0502b5bb27]
|
|
-
|
|
-2007-06-19 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Updated some comments in the build system.
|
|
- [f38ba63f0f97]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a bug in the sip module consolidated module support. Otherwise
|
|
- everything seems to work.
|
|
- [a9d7eeffdf81]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- More consolidated module refactoring.
|
|
- [9c629ca01a4a]
|
|
-
|
|
-2007-06-18 phil <phil>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y,
|
|
- sipgen/sip.h, sipgen/transform.c:
|
|
- More consolidated module refactoring. PyQt4 with only QtCore enabled
|
|
- now compiles.
|
|
- [bec649674da2]
|
|
-
|
|
-2007-06-16 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y:
|
|
- More consolidated module support.
|
|
- [b7455f328486]
|
|
-
|
|
-2007-06-12 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Hopefully fixed a bug in the handling of the 'C' and 'D' format
|
|
- characters in sipParseResult().
|
|
- [c28fa1333976]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- More refactoring for consolidated module support. SIP no longer
|
|
- generates lots of .h files. Note that SIP is now less tolerant of
|
|
- missing #includes in %TypeHeaderCode and %ModuleHeaderCode.
|
|
- [ae2dec8da410]
|
|
-
|
|
-2007-06-04 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Removed the need to generate the shadow class definition in a header
|
|
- file and put it in the original class's C++ file instead.
|
|
- [30cd539612c7]
|
|
-
|
|
-2007-06-03 phil <phil>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c:
|
|
- More consolidated module refactoring.
|
|
- [9fbe5340767f]
|
|
-
|
|
-2007-06-01 phil <phil>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed a missing return in parser.y.
|
|
- [3f160ab4ae5b]
|
|
-
|
|
-2007-05-28 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- A bit more consolidated module support.
|
|
- [f714935139bb]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- More work on consolidated modules.
|
|
- [bde47f2343cf]
|
|
-
|
|
-2007-05-27 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, siplib/sip.h, siplib/siplib.c:
|
|
- The component stub modules (ie. those requested with the -p flag)
|
|
- are now generated.
|
|
- [21119384ab4f]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/main.c, sipgen/sip.h:
|
|
- Added the stubs of the -n and -p command line options for the
|
|
- remaining consolidated module support. Documented the
|
|
- %ConsolidatedModule directive.
|
|
- [744cf0ed0857]
|
|
-
|
|
-2007-05-24 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h:
|
|
- Completed the implementation of %ConsolidatedModule for the simple
|
|
- case (where the consolidated module populates itself from the
|
|
- component modules).
|
|
- [78406f2fdcb4]
|
|
-
|
|
-2007-05-23 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h:
|
|
- A bit more refactoring for the consolidated module support.
|
|
- [51a36ed46e45]
|
|
-
|
|
- * siplib/objmap.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c:
|
|
- When deciding if an instance is already wrapped, sip only considers
|
|
- if the candidate is a sub-class of the expected class. (Before it
|
|
- used to consider if the candidate was a super-class of the expected
|
|
- class as well. However this shouldn't be necessary as the candidates
|
|
- class should be correct if all the sub-class convertor code is
|
|
- working properly.)
|
|
- [014d6fb553a9]
|
|
-
|
|
- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, siplib/objmap.c:
|
|
- Added the start of the support for %ConsolidatedModule.
|
|
- [2cdafc7810be]
|
|
-
|
|
-2007-05-20 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, siplib/siplib.c:
|
|
- Added the dump() funtion to the sip module.
|
|
- [299d67a0fe51]
|
|
-
|
|
-2007-05-13 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Added sipTransferBreak() for removing hidden references without
|
|
- changing owndership.
|
|
- [5d298052a2e5]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h:
|
|
- Added support for /Transfer/ as a function annotation.
|
|
- [ab6bd827b7a0]
|
|
-
|
|
-2007-05-12 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Added the build system hooks for PyQt's QtScript module.
|
|
- [6fdf6cb0ade1]
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed some parser problems related to versioning.
|
|
- [a4ffe24c61bd]
|
|
-
|
|
-2007-05-11 phil <phil>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Relaxed the restriction that the arguments to mapped type templates
|
|
- had to be simple names and not basic types.
|
|
- [04d512a7ddee]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Generated the sipClass_* for namespaces.
|
|
- [234dfbd619d5]
|
|
-
|
|
-2007-05-07 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- More fixes to mapped type templates - should be Ok now.
|
|
- [3e7528f5ec18]
|
|
-
|
|
-2007-05-04 phil <phil>
|
|
-
|
|
- * doc/sipref.txt:
|
|
- Fixed a couple of documentation bugs regarding exceptions.
|
|
- [21138bd0e4dd]
|
|
-
|
|
-2007-05-03 phil <phil>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a bug where generated .h files for template argument types
|
|
- were being included in the mapped type rather than the mapped type's
|
|
- own .h file.
|
|
- [015e7bc362e3]
|
|
-
|
|
-2007-04-28 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Removed the need for the copy_reg module. This marks the completion
|
|
- if the pickle support.
|
|
- [855e5b2a3bfc]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Pickling nested types now works.
|
|
- [d10779f3268e]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Minor refactoring of the pickle code prior to adding support for
|
|
- nested classes.
|
|
- [33badbfc5ee1]
|
|
-
|
|
-2007-04-27 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, siplib/siplib.c:
|
|
- Named enums that are nested within other types can now be pickled.
|
|
- (Note that the pickle format for classes will be changed in the next
|
|
- few days to allow nested classes to be pickled in the same way.)
|
|
- [ad31cd17972b]
|
|
-
|
|
-2007-04-26 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- More improvements to the pick code.
|
|
- [7387a6436f4f]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Slight improvement to the generated pickle code.
|
|
- [250d4acde794]
|
|
-
|
|
-2007-04-22 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Added %PickleCode to allow wrapped objects to be pickled.
|
|
- [45059aeff1d0]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Module level enums can now be pickled. Removed the None
|
|
- implementations of __reduce__ and __reduce_ex__ and fixed the
|
|
- segfault that pickling was causing.
|
|
- [960a54bd61d7]
|
|
-
|
|
-2007-04-10 phil <phil>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.6.
|
|
- [9d849b09a8d4] [4.6]
|
|
-
|
|
-2007-04-07 phil <phil>
|
|
-
|
|
- * sipgen/export.c:
|
|
- Changed the API file generation to generate the __init__ form of a
|
|
- ctor as well as the callable type form.
|
|
- [316e430f8a37]
|
|
-
|
|
-2007-04-02 phil <phil>
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [5c6477d8ee0d]
|
|
-
|
|
- * NEWS, doc/sipref.txt, lib/configure.py, lib/siputils.py:
|
|
- Added the -n flag to configure.py to build universal binaries on
|
|
- MacOS/X.
|
|
- [e892f0a63956]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a MinGW warning message.
|
|
- [79ac369e6efa]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Backed out the save and restore of the exception state in
|
|
- sipWrapper_dealloc() as it can get called when there is no current
|
|
- thread state (which results in a segfault).
|
|
- [f66e13ead83b]
|
|
-
|
|
- * NEWS:
|
|
- Updated the NEWS file.
|
|
- [c7488adf6abf]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a bug handling sub-class convertor code with multiple
|
|
- inheritance.
|
|
- [8ac3a23e1e3c]
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c:
|
|
- Virtuals that return a wchar_t * now keep then free the previous
|
|
- result to limit the possible memory leaks.
|
|
- [48b87ba8bc6a]
|
|
-
|
|
-2007-04-01 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/transform.c:
|
|
- Fixed a bug in the wchar_t support with const wchar_t * arguments.
|
|
- Fixed a bug in the wchar_t support with char and wchar_t being
|
|
- considered equivalent.
|
|
- [541c7556314d]
|
|
-
|
|
-2007-03-26 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed problem where lambda slots connected to QObject.destroyed()
|
|
- were cleared before the signal was emitted.
|
|
- [2ace696800c4]
|
|
-
|
|
-2007-03-25 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c:
|
|
- Completed the wchar_t support.
|
|
- [14c15deefc3b]
|
|
-
|
|
-2007-03-24 phil <phil>
|
|
-
|
|
- * sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y,
|
|
- sipgen/sip.h, sipgen/transform.c, siplib/qtlib.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Added support for wchar_t - undocumented and certainly untested.
|
|
- [14559b49bd9d]
|
|
-
|
|
-2007-03-10 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- No longer generate the forward declaration of an opaque class. It
|
|
- shouldn't be necessary and means that the class could be a C
|
|
- structure.
|
|
- [647d2f4b8561]
|
|
-
|
|
-2007-03-02 phil <phil>
|
|
-
|
|
- * sipgen/lexer.l:
|
|
- SIP should now handle DOS format files on UNIX systems.
|
|
- [1935d8be814b]
|
|
-
|
|
-2007-02-27 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y,
|
|
- sipgen/sip.h:
|
|
- Undeprecated the -g command line option. Added the /HoldGIL/
|
|
- annotation.
|
|
- [fbf1aaec1094]
|
|
-
|
|
-2007-02-25 phil <phil>
|
|
-
|
|
- * sipgen/transform.c, siplib/siplib.c:
|
|
- Fixed the previous fix related to signatures for the cases where the
|
|
- Python and C++ signatures have different numbers of arguments.
|
|
- [66f4866a1393]
|
|
-
|
|
- * doc/sipref.txt, siplib/siplib.c:
|
|
- Included Matt Newell's fix for making sure that a sub-class
|
|
- convertor returns the most specific type available.
|
|
- [7b9b628d5c50]
|
|
-
|
|
-2007-02-24 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/transform.c:
|
|
- Fixed some documentation references to Py_ssize_t. sip now takes C++
|
|
- as well as Python signatures into account when deciding what
|
|
- interface files a class need to include.
|
|
- [ac3ecfcc08d3]
|
|
-
|
|
- * doc/sipref.txt, siplib/qtlib.c:
|
|
- Leave it to the Qt support code to release the GIL when connecting
|
|
- signals.
|
|
- [8c907b07ad8f]
|
|
-
|
|
-2007-02-20 phil <phil>
|
|
-
|
|
- * siplib/qtlib.c, siplib/sipint.h, siplib/siplib.c:
|
|
- An instance dictionary is not longer created automatically. Python
|
|
- will create it if and when it is needed. lambda slots are now
|
|
- cleaned up in the clear function rather than being left to the slot
|
|
- proxy dtor.
|
|
- [61eac95ed77e]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a bug in the implementation of /Transfer/ when the object was
|
|
- aleady owned by C++ but the owning object had been garbage
|
|
- collected.
|
|
- [4d64b0e0db86]
|
|
-
|
|
-2007-02-18 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a bug in the clearing of reference cycles with lambda slots.
|
|
- Although the slot is visited, it is no longer cleared - that is left
|
|
- to the proxy dtor.
|
|
- [aac8236a8970]
|
|
-
|
|
-2007-02-16 phil <phil>
|
|
-
|
|
- * lib/siputils.py, sipgen/gencode.c:
|
|
- Fixed a bug in the build system for QtDesigner on Windows. The
|
|
- Q_OBJECT support code now uses metaObject() rather than
|
|
- staticMetaObject because the latter is private in the ActiveQt
|
|
- classes.
|
|
- [4b8647dbb036]
|
|
-
|
|
-2007-02-10 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c, siplib/sip.h, siplib/siplib.c:
|
|
- Added support for /TypeFlags/. Added sipFindClass() and
|
|
- sipFindNamedEnum() to the public API.
|
|
- [530b7a1aa547]
|
|
-
|
|
-2007-02-06 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h:
|
|
- More changes to the Q_OBJECT support.
|
|
- [b46c77268a1c]
|
|
-
|
|
-2007-02-04 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h:
|
|
- Renamed "Qt4MetaObject" to "Qt4Q_OBJECT".
|
|
- [9b8809b3f254]
|
|
-
|
|
-2007-02-01 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Changed the metaObject() hook so that it won't crash if the C++
|
|
- instance has gone.
|
|
- [5241cd5c39d3]
|
|
-
|
|
-2007-01-30 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Changed the metaObject() hook again.
|
|
- [77da534919cb]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Changed the metaObject() hooks.
|
|
- [272f63959180]
|
|
-
|
|
-2007-01-27 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Changed the way the Qt support API is created so that new SIPs can
|
|
- build old PyQts.
|
|
- [15c8d8be611d]
|
|
-
|
|
- * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Added the hooks to allow PyQt to build a proper meta-object when a
|
|
- new Python class is defined.
|
|
- [c82c3d1b50aa]
|
|
-
|
|
-2007-01-25 phil <phil>
|
|
-
|
|
- * lib/siputils.py, siplib/qtlib.c:
|
|
- Fixed a build system bug that affected non-MinGW Windows compilers
|
|
- when building static modules. Taught the build system about the
|
|
- QtDesigner module.
|
|
- [0029d3937d59]
|
|
-
|
|
-2007-01-23 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Reimplemented the support for qt_metacall() so that it is a bit
|
|
- cleaner and can't be called from Python.
|
|
- [c3701e916110]
|
|
-
|
|
-2007-01-22 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/qtlib.c,
|
|
- siplib/sip.h, siplib/sipint.h, siplib/siplib.c:
|
|
- Added support for the QtMetaClass option. Added sipParseSignature()
|
|
- to the private Qt API. (Both of the above are needed for David
|
|
- Boddie's support for Python widgets in Qt Designer.)
|
|
- [51250dc9185b]
|
|
-
|
|
-2007-01-21 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Extended the cyclic garbage collector support for lambda slots so it
|
|
- works with SIGNALs as well as PYSIGNALs. Incremented the SIP API
|
|
- version number to 3.4.
|
|
- [fcf4f2b51bd7]
|
|
-
|
|
- * siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c:
|
|
- Fixed garbage collection support for lambda slots (at the moment
|
|
- only when the slot is connected to a PYSIGNAL).
|
|
- [8bf735cda5bf]
|
|
-
|
|
-2007-01-16 phil <phil>
|
|
-
|
|
- * siplib/sip.h:
|
|
- Added #undef slots to sip.h for when embedding Python 2.3 in Qt
|
|
- applications.
|
|
- [33ab2adb9d0c]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- qRegisterMetaType() is now called for every candidate class at
|
|
- module initialisation rather than when the first instance is created
|
|
- from Python.
|
|
- [a31d12e3d9c2]
|
|
-
|
|
-2007-01-15 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/siplib.c:
|
|
- Allowed /TransferThis/ to be specified more than once.
|
|
- [e8246e9dc928]
|
|
-
|
|
- * doc/sipref.txt, lib/LICENSE.short, siplib/threads.c:
|
|
- Updated the copyright notices. Fixed a reentrancy problem in
|
|
- wrapping objects obtained from C/C++ (thanks to Giovanni Bajo for
|
|
- the fix).
|
|
- [117d2c42c517]
|
|
-
|
|
-2007-01-10 phil <phil>
|
|
-
|
|
- * siplib/sip.h, siplib/siplib.c:
|
|
- Added support for __truediv__ and __itruediv__ by making them
|
|
- synonyms for __div__ and __idiv__.
|
|
- [1c6e71aeb203]
|
|
-
|
|
-2007-01-07 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- Hopefully fixed a bug in the generation of the typedefs table that
|
|
- wasn't using the full name of foreign modules.
|
|
- [a193602041a2]
|
|
-
|
|
-2006-12-28 phil <phil>
|
|
-
|
|
- * siplib/sip.h:
|
|
- Fixed a bug in the sipResetCppHasRef() macro that breaks the
|
|
- /TransferBack/ annotation.
|
|
- [30e9fc168db0]
|
|
-
|
|
-2006-12-20 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Fixed a MacOS specific bug in create_wrapper() in the build system.
|
|
- [34641513890f]
|
|
-
|
|
- * lib/sipdistutils.py:
|
|
- Applied a patch to sipdistutils.py from Giovanni Bajo to allow .sip
|
|
- files to be used in the "depends" argument to setup().
|
|
- [912613b39701]
|
|
-
|
|
-2006-12-16 phil <phil>
|
|
-
|
|
- * NEWS, lib/siputils.py:
|
|
- Fixed a bug in the build system that meant that lines in the top
|
|
- level mkspec file were being ignored after the last include.
|
|
- [c2ee167686b7]
|
|
-
|
|
-2006-12-09 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Fixed a MacOS build problem caused by another change to Qt installs.
|
|
- [90c588f6fa54]
|
|
-
|
|
- * NEWS, build.py:
|
|
- Updated the NEWS file. Fixed the internal build system for later
|
|
- versions of docutils.
|
|
- [4bcf93b8836e]
|
|
-
|
|
-2006-12-06 phil <phil>
|
|
-
|
|
- * NEWS, siplib/qtlib.c:
|
|
- "PyQt_PyObject" is now used instead of "PyObject *". lamda functions
|
|
- can now be used as slots.
|
|
- [33493621d63e]
|
|
-
|
|
-2006-11-26 phil <phil>
|
|
-
|
|
- * siplib/sip.h, siplib/siplib.c:
|
|
- Fixed an incorrect assumption that if a Python wrapper of a C++
|
|
- owned object was being garbage collected then its Python children
|
|
- (ie. things it owns) should also be garbage collected. It may be
|
|
- that the parent is a "temporary" object (eg. the argument of a
|
|
- reimplementation of a virtual) but the children are "permanent". The
|
|
- case in PyQt is the parent argument of
|
|
- QAbstractItemDelegate.createEditor().
|
|
- [b981a814a1b2]
|
|
-
|
|
-2006-11-25 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- PEP 353 fixes from Ulli.
|
|
- [d22c558be4b9]
|
|
-
|
|
- * siplib/qtlib.c, siplib/sip.h, siplib/siplib.c:
|
|
- Some "char *" to "const char *" fixes from Ulli.
|
|
- [208ba44fcddc]
|
|
-
|
|
-2006-11-18 phil <phil>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed a broken pointer bug in the API file generation.
|
|
- [b80f4ae42e97]
|
|
-
|
|
-2006-11-17 phil <phil>
|
|
-
|
|
- * sipgen/export.c, sipgen/lexer.l:
|
|
- Fixed a misleading error message when instantiating templates. Fixed
|
|
- a bug generating global functions in API files.
|
|
- [6b6804bacc4f]
|
|
-
|
|
-2006-11-11 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Fixed a bug with virtual handlers when a module %Imports from two
|
|
- other (independent) modules.
|
|
- [56ca50343b62]
|
|
-
|
|
-2006-11-04 phil <phil>
|
|
-
|
|
- * NEWS:
|
|
- Released as v4.5.
|
|
- [5982951360f3] [4.5]
|
|
-
|
|
-2006-10-28 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- The build system now handles .prl files on MacOS.
|
|
- [25b8444de255]
|
|
-
|
|
-2006-10-27 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/sip.h, sipgen/transform.c:
|
|
- Changed NoDefaultCopyCtor to NoDefaultCtors. Updated the NEWS file.
|
|
- [57307ed6d154]
|
|
-
|
|
-2006-10-22 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, lib/siputils.py, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c, siplib/qtlib.c:
|
|
- A fix for configuring QtAssistant in PyQt for Qt v4.2 on MacOS.
|
|
- Added the NoDefaultCopyCtor class annotation.
|
|
- [ed57b3a6fd1c]
|
|
-
|
|
-2006-10-21 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, siplib/siplib.c:
|
|
- Fixed a Python 2.4/2.5 change that was missed. Added
|
|
- sip.setdeleted().
|
|
- [2db4a119d6c6]
|
|
-
|
|
-2006-10-20 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, lib/siputils.py, specs/hurd-g++, specs/solaris-cc:
|
|
- Platform portability fixes from Ulli. Fix for conditional includes
|
|
- in spec files from Ulli. Qt4 module include directories are now
|
|
- searched before the main Qt4 include directory. Handle the change in
|
|
- debug libraries in Qt v4.2.
|
|
- [3f72b2b88460]
|
|
-
|
|
-2006-10-15 phil <phil>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Allow virtual signals if the NoEmitters option is set.
|
|
- [6657a8d15171]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c:
|
|
- Fixed a bug where the first argument to a global comparison operator
|
|
- was mishandled if it was a pointer rather than a reference.
|
|
- [5c5c0d5f6b65]
|
|
-
|
|
-2006-10-13 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Improved the previous fix for the incorrect ctor exception.
|
|
- [3d9f787fedf8]
|
|
-
|
|
-2006-10-08 phil <phil>
|
|
-
|
|
- * lib/siputils.py, siplib/siplib.c:
|
|
- Fixed bug where handwritten traverse and clear code wasn't being
|
|
- called for derived classes. Fixed an incorrect Python exception
|
|
- raised when a C++ exception is thrown by a ctor. The build system
|
|
- now displayed an error if a non-framework build of Python is used on
|
|
- MacOS. Untested fix for building a static module with MinGW.
|
|
- [9c60ee47e4d5]
|
|
-
|
|
-2006-10-07 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Build system fixes for Qt v4.2.0 based on a patch from Matt Newell.
|
|
- [e7f12b65d105]
|
|
-
|
|
-2006-09-30 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Fixes for building QtTest on Windows.
|
|
- [a8b3716e682a]
|
|
-
|
|
-2006-09-23 phil <phil>
|
|
-
|
|
- * lib/siputils.py, sipgen/parser.y:
|
|
- Taught the build system about QtTest. Fixed a bug in the handling of
|
|
- namespaces split across multiple header files.
|
|
- [89b8c6c6b8c6]
|
|
-
|
|
- * TODO, doc/sipref.txt, siplib/siplib.c:
|
|
- Added support for hooking into the C++ dtor from Python by
|
|
- implementing __dtor__() from a patch by Jean Jacques Lecler.
|
|
- [38da61ef1711]
|
|
-
|
|
- * NEWS, doc/sipref.txt, siplib/siplib.c:
|
|
- Added sip.delete() (based on a patch from Jean Jacques Lecler) and
|
|
- sip.isdeleted().
|
|
- [8946500be6fa]
|
|
-
|
|
- * doc/sipref.txt, sipgen/export.c, sipgen/main.c, sipgen/sip.h:
|
|
- Removed the -n flag to sip now I think I've decided how to change
|
|
- code completion in QScintilla.
|
|
- [69cb56ba58f1]
|
|
-
|
|
-2006-09-22 phil <phil>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Backed out the check that abstract methods are virtual - because
|
|
- they don't have to be.
|
|
- [1c753a1e011a]
|
|
-
|
|
-2006-09-17 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c:
|
|
- Added support for pure virtual dtors. Fixed a bug where abstract
|
|
- operators weren't flagging the class as being abstract.
|
|
- [867e6aa1d499]
|
|
-
|
|
-2006-09-03 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/siplib.c:
|
|
- Defeated a GCC v4 warning message on generated code.
|
|
- [be5889f172fb]
|
|
-
|
|
-2006-08-17 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Minor code generation formatting tidyups.
|
|
- [c4397d6c3aca]
|
|
-
|
|
- * siplib/sip.h, siplib/siplib.c, specs/linux-lsb:
|
|
- Added argument type checking to sipRegisterIntTypes().
|
|
- [aa1a3cf373d0]
|
|
-
|
|
-2006-08-16 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Added sipRegisterIntTypes() to the private Qt support API so that
|
|
- PyQt4 can implement Q_ENUMS and Q_FLAGS.
|
|
- [0909d2f2b376]
|
|
-
|
|
-2006-08-05 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Added support for QAxContainer in the build system.
|
|
- [5ddf72d045fb]
|
|
-
|
|
-2006-07-19 phil <phil>
|
|
-
|
|
- * lib/configure.py, lib/siputils.py, specs/hurd-g++, specs/linux-pgcc,
|
|
- specs/solaris-cc, specs/solaris-cc-64, specs/solaris-g++,
|
|
- specs/solaris-g++-64, specs/win32-icc, specs/win32-msvc,
|
|
- specs/win32-msvc.net, specs/win32-msvc2005:
|
|
- Updated the spec files from Qt v4.1.4. Added (completely untested)
|
|
- support for embedding manifests for MSVC v8.
|
|
- [db5efb4cac5b]
|
|
-
|
|
-2006-07-16 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, siplib/sip.h, siplib/siplib.c:
|
|
- More Python v2.5 changes.
|
|
- [d54e5c462956]
|
|
-
|
|
-2006-07-15 phil <phil>
|
|
-
|
|
- * siplib/objmap.c, siplib/sip.h, siplib/siplib.c:
|
|
- The sip module will now build against Python v2.5. (The 64 bit
|
|
- changes still need to be done.)
|
|
- [00cc5cf214cf]
|
|
-
|
|
-2006-07-08 phil <phil>
|
|
-
|
|
- * lib/configure.py:
|
|
- Fixed the use of sys.lib in configure.py.
|
|
- [a10f12367272]
|
|
-
|
|
-2006-07-06 phil <phil>
|
|
-
|
|
- * lib/configure.py:
|
|
- configure.py uses sys.lib if it is defined (for some 64 bit Linux
|
|
- distros).
|
|
- [0dbaacd9a231]
|
|
-
|
|
-2006-07-04 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Always call a dtor if there is one, even if we can't see how the
|
|
- instance could have been created.
|
|
- [47bb2a6a914a]
|
|
-
|
|
-2006-07-01 phil <phil>
|
|
-
|
|
- * sipgen/export.c:
|
|
- Fixed default arguments and C++ scoped names in the new API file
|
|
- handling.
|
|
- [6909ffb3bb65]
|
|
-
|
|
-2006-06-30 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/export.c, sipgen/gencode.c,
|
|
- sipgen/genxml.c, sipgen/main.c, sipgen/sip.h, sipgen/sipgen.sbf:
|
|
- Added the -n command line option (possibly only temporarily).
|
|
- Changed the API generation so that it is more complete and uses
|
|
- Python types rather than C/C++ types.
|
|
- [1cd867db4c66]
|
|
-
|
|
-2006-06-29 phil <phil>
|
|
-
|
|
- * lib/configure.py:
|
|
- Added sip_config_args to sipconfig.py. Added __hex__() to
|
|
- sip.voidptr.
|
|
- [d60d22ffda1c]
|
|
-
|
|
- * NEWS, doc/sipref.txt, lib/configure.py, siplib/siplib.c:
|
|
-
|
|
- [16c887e1169c]
|
|
-
|
|
-2006-06-19 phil <phil>
|
|
-
|
|
- * lib/siputils.py, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- More warning fixes from Ulli.
|
|
- [4ba06471ee46]
|
|
-
|
|
-2006-06-17 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Changed the explicit C linkage to retain the benefit of using
|
|
- static.
|
|
- [b2f02ca5a819]
|
|
-
|
|
-2006-06-13 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y:
|
|
- Signals and slots are now const char * rather than char *.
|
|
- [a43a225ba180]
|
|
-
|
|
-2006-06-10 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Fixed the implementation of /TransferBack/ for virtuals. Changed all
|
|
- API arguments that take a format string from char * to const char *
|
|
- for Solaris. Used explicit C linkage for all generated function
|
|
- calls when genarting C++. (May need more work in this area.)
|
|
- [2d05ea691d29]
|
|
-
|
|
-2006-06-06 phil <phil>
|
|
-
|
|
- * sipgen/genxml.c:
|
|
- Changed the XML handling of opaque classes.
|
|
- [86888971690a]
|
|
-
|
|
-2006-06-05 phil <phil>
|
|
-
|
|
- * sipgen/genxml.c:
|
|
- Added support for opaque classes to the XML.
|
|
- [427fc4186f14]
|
|
-
|
|
-2006-06-03 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- More XML generation changes.
|
|
- [b204d646b580]
|
|
-
|
|
-2006-05-31 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h:
|
|
- More XML generation changes.
|
|
- [91acee878afd]
|
|
-
|
|
-2006-05-30 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/genxml.c, sipgen/parser.y, sipgen/sip.h:
|
|
- More XML generation changes.
|
|
- [7d79341cfc58]
|
|
-
|
|
-2006-05-28 phil <phil>
|
|
-
|
|
- * sipgen/genxml.c:
|
|
- More XML generation changes.
|
|
- [a95f90a9f6d2]
|
|
-
|
|
-2006-05-25 phil <phil>
|
|
-
|
|
- * sipgen/genxml.c, siplib/qtlib.c:
|
|
- Fixed bug disconnecting Python signals.
|
|
- [7a44ec54ef69]
|
|
-
|
|
-2006-05-20 phil <phil>
|
|
-
|
|
- * sipgen/genxml.c:
|
|
- More XML generation changes.
|
|
- [7e8538e5e080]
|
|
-
|
|
- * sipgen/genxml.c, sipgen/transform.c:
|
|
- Backed out the change that treated "char" and "char *" as equivalent
|
|
- when comparing Python signatures. (The former is different to the
|
|
- latter if it appears first.)
|
|
- [f411eb8c010c]
|
|
-
|
|
-2006-05-18 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h:
|
|
- More XML generation changes.
|
|
- [e42fe590a33c]
|
|
-
|
|
-2006-05-16 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h, sipgen/transform.c:
|
|
- Tightened up on detecting clashing Python signatures involving
|
|
- strings and longs. Changes to the XML file generation.
|
|
- [180930e69638]
|
|
-
|
|
-2006-05-13 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Removed some Python API calls made after the interpreter is known to
|
|
- have gone.
|
|
- [dc80be8d888f]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a sip module bug that meant that the Python API might be
|
|
- called after the interpreter had gone.
|
|
- [a9470b7f1479]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed code generation bug with abstract operators.
|
|
- [473bd3cea296]
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h:
|
|
- Added %UnitCode.
|
|
- [2f3ad3e3a582]
|
|
-
|
|
-2006-05-11 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Added sipExportSymbol() and sipImportSymbol(). Bumped the API
|
|
- version number to 3.2.
|
|
- [ee671f33f9a8]
|
|
-
|
|
-2006-05-08 phil <phil>
|
|
-
|
|
- * sipgen/heap.c:
|
|
- Removed (hopefully) two new warning messages.
|
|
- [a347b1964dd2]
|
|
-
|
|
-2006-05-07 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h:
|
|
- Added support for %ExportedHeaderCode.
|
|
- [1fc6cbb5421c]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c:
|
|
- Fixed bug in handling of virtuals with different Python and C++
|
|
- signatures.
|
|
- [7c64bcb52e90]
|
|
-
|
|
-2006-05-05 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/heap.c,
|
|
- sipgen/lexer.l, sipgen/main.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c:
|
|
- Fixes for compiler warnings and a couple of minor bugs from Ulli.
|
|
- Deprecated %SIPNoEmitters and replaced it with %SIPOptions. Added
|
|
- the RegisterTypes option so that appropriate classes are registered
|
|
- with Qt automatically when needed - so PyQt4 doesn't need to
|
|
- implement qRegisterMetaType().
|
|
- [b80581e367f3]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h:
|
|
- Fixed some compiler warnings.
|
|
- [5c4467450cbe]
|
|
-
|
|
-2006-05-01 phil <phil>
|
|
-
|
|
- * sipgen/genxml.c, sipgen/transform.c:
|
|
- More work on the XML generation.
|
|
- [cb5eec12561a]
|
|
-
|
|
-2006-04-30 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/genxml.c, sipgen/main.c, sipgen/sip.h,
|
|
- sipgen/sipgen.sbf:
|
|
- Added the -m flag to generate the XML representation of the Pythonic
|
|
- API.
|
|
- [57d825e6a61f]
|
|
-
|
|
-2006-04-28 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c:
|
|
- Replaced long long with PY_LONG_LONG for MSVC 6.
|
|
- [19dc39dffac6]
|
|
-
|
|
-2006-04-27 phil <phil>
|
|
-
|
|
- * lib/siputils.py, sipgen/parser.y:
|
|
- Fixed bug in handling multiple instances of the same namespace. The
|
|
- build system allows Apple's Python to be used if there is also a
|
|
- later python.org installation. MacOS modules are now bundles rather
|
|
- than dynamic libraries and can now be loaded by Pythons from
|
|
- python.org. Released as v4.4.3.
|
|
- [809972a88944]
|
|
-
|
|
-2006-04-21 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed the previous const mapped type fix.
|
|
- [1a5385651af1]
|
|
-
|
|
-2006-04-20 phil <phil>
|
|
-
|
|
- * lib/siputils.py, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Fixed the GUI enabled interpreter in sipconfig.create_wrapper() for
|
|
- MacOS. Fixed static const mapped types.
|
|
- [def8fea45725]
|
|
-
|
|
-2006-04-18 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, lib/configure.py, lib/siputils.py:
|
|
- Fixed the build system for when sys.prefix != sys.exec_prefix.
|
|
- [83449c4ab4f2]
|
|
-
|
|
-2006-04-16 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, lib/siputils.py:
|
|
- Added the export_all argument to the ModuleMakefile constructor of
|
|
- the build system so that exports can be handled on a per module
|
|
- basis. This is needed to get around a (not properly understood)
|
|
- problem with modules that wrap C++ exceptions.
|
|
- [89709d0957bd]
|
|
-
|
|
-2006-04-15 phil <phil>
|
|
-
|
|
- * lib/siputils.py, siplib/qtlib.c, specs/hurd-g++, specs/solaris-cc:
|
|
- The build system now complains if a property is used in a spec file
|
|
- when no properties have been defined. Removed Qt specific properties
|
|
- from the solaris-cc and hurd-g++ spec files. Fixed the disconnecting
|
|
- of short-circuited signals.
|
|
- [0c4ee0a3db80]
|
|
-
|
|
-2006-04-08 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Fixed the build system to better support frameworks on MacOS.
|
|
- [864b17931a7b]
|
|
-
|
|
-2006-04-07 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, siplib/sip.h, siplib/siplib.c:
|
|
- Made sure that all uses of sipMappedType * in the API are const.
|
|
- [0d3533b681e3]
|
|
-
|
|
-2006-04-06 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- The sipconfig module now uses qt_data_dir (if set) to find the qmake
|
|
- spec files.
|
|
- [2f81428640de]
|
|
-
|
|
-2006-04-05 phil <phil>
|
|
-
|
|
- * NEWS, TODO, sipgen/parser.y, sipgen/transform.c:
|
|
- Merged v4.4.1 into the trunk. SIP now properly detects duplicate
|
|
- Python signatures.
|
|
- [9c53b26de67b]
|
|
-
|
|
-2006-04-02 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed a regression in the handling of __dict__.
|
|
- [33a17c1ed42d]
|
|
-
|
|
-2006-04-01 phil <phil>
|
|
-
|
|
- * siplib/sip.h, siplib/siplib.c:
|
|
- Make the sip module's support for long long and unsigned long long
|
|
- conditional on HAVE_LONG_LONG so that it will build with older
|
|
- compilers.
|
|
- [e655c6a8a748]
|
|
-
|
|
-2006-03-29 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/gencode.c:
|
|
- Removed extraneous brackets in generated code.
|
|
- [a64c7cdb2ee9]
|
|
-
|
|
-2006-03-28 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed some C++ code wrongly appearing in C modules.
|
|
- [7e80756dae4d]
|
|
-
|
|
-2006-03-25 phil <phil>
|
|
-
|
|
- * NEWS, sipgen/parser.y:
|
|
- Fixed a regression in the handling of namespaces.
|
|
- [7a22e2205ba9]
|
|
-
|
|
-2006-03-24 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c:
|
|
- Documented sipModule and sipModuleDict as being available to
|
|
- %PostInitialisationCode. Released as v4.4.
|
|
- [8acdabcf6a08] [4.4]
|
|
-
|
|
-2006-03-21 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, lib/sipdistutils.py, siplib/sip.h, siplib/siplib.c:
|
|
- Applied patch for sipdistuils.py from Giovanni. Documented
|
|
- sipConvertFromNamedEnum(). Wrapped types now define __reduce_ex__
|
|
- and __reduce__ attributes set to None so that pickle knows they
|
|
- can't be pickled.
|
|
- [94694c47891e]
|
|
-
|
|
-2006-03-20 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed the special handling of the __dict__ attribute so that it
|
|
- doesn't apply to Python sub-classes of wrapped classes.
|
|
- [6835562cf526]
|
|
-
|
|
-2006-03-19 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sipint.h,
|
|
- siplib/siplib.c, siplib/threads.c:
|
|
- Documentation tweaks. Generate sipSelf for ctor %MethodCode now that
|
|
- it's existence is documented. Fixed a second place where slots with
|
|
- no underlying C++ instance might be invoked.
|
|
- [ba7b9c9371e1]
|
|
-
|
|
-2006-03-17 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c:
|
|
- Removed __unicode__ from the documentation. Fixed a bug with virtual
|
|
- methods that returned a reference to a type that had
|
|
- %ConvertToTypeCode.
|
|
- [6dc8ddba43ed]
|
|
-
|
|
-2006-03-15 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sipint.h, siplib/siplib.c:
|
|
- Removal of a now redundant error message. Fixed a leaking weak
|
|
- reference object. Another attempt at fixing calling slots where the
|
|
- underlying C++ instance has disappeared.
|
|
- [8f7b10cbc372]
|
|
-
|
|
-2006-03-14 phil <phil>
|
|
-
|
|
- * lib/siputils.py, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h,
|
|
- sipgen/transform.c:
|
|
- More const void * fixes. Fixed bug with building debug modules using
|
|
- MinGW. Fixed feature where too many names were being generated from
|
|
- imported modules. SIP now handles nested imports properly and
|
|
- doesn't require all modules to be explcitly imported.
|
|
- [f7b3774f05bf]
|
|
-
|
|
-2006-03-13 phil <phil>
|
|
-
|
|
- * build.py, doc/sipref.txt, lib/README.Fink, lib/siputils.py,
|
|
- sipgen/parser.y:
|
|
- Build system changes to support MacOS properly. Fixed crash when
|
|
- %TypeHeaderCode was used outside of a scope.
|
|
- [fc9cf357273b]
|
|
-
|
|
-2006-03-12 phil <phil>
|
|
-
|
|
- * TODO, sipgen/gencode.c:
|
|
- Fixed calls to sipConvertFromVoidPtr() with a const argument.
|
|
- [1d20b7ddf5b7]
|
|
-
|
|
-2006-03-11 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Minor changes to sipconfig.py for PyQt4's pyqtconfig.py.
|
|
- [5c35ed3d0e90]
|
|
-
|
|
- * lib/siputils.py, sipgen/parser.y:
|
|
- Fixed handling of generating code for the version before the first
|
|
- %Timeline version.
|
|
- [3ffe3ddaa678]
|
|
-
|
|
-2006-03-08 phil <phil>
|
|
-
|
|
- * siplib/qtlib.c:
|
|
- Fixed a bug in the handling of QVariant * and PyObject * signal
|
|
- arguments.
|
|
- [c04f60565120]
|
|
-
|
|
-2006-03-06 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a regression in handling of enums defined in an imported
|
|
- module.
|
|
- [305954bab24d]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed bug in handling the typedef void hack.
|
|
- [f5ec81faf924]
|
|
-
|
|
-2006-03-05 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Fixed bug with abstract classes with %ConvertToSubClassCode.
|
|
- Reimplemented namspaces split across modules so that there is a
|
|
- single namespace implemented in the original module.
|
|
- [e04e87b70f29]
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed missing #include for classes that aren't an immediate parent.
|
|
- [5f28954fe478]
|
|
-
|
|
-2006-03-04 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed a regression in the wrappers around protected methods.
|
|
- [65fc03434a16]
|
|
-
|
|
- * siplib/qtlib.c:
|
|
- Suppressed the exception about the underlying object disappearing
|
|
- when calling a Python slot. This is because we don't automatically
|
|
- disconnect Python slots.
|
|
- [5a90239b615c]
|
|
-
|
|
-2006-03-02 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Added sipLong_AsUnsignedLong() to work around a bug in
|
|
- PyLong_AsUnsignedLong().
|
|
- [ae6bdfc7d774]
|
|
-
|
|
-2006-02-26 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed bug in handling class arguments with /Out/ specified.
|
|
- [a39d9d9a8d5a]
|
|
-
|
|
- * lib/siputils.py, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y:
|
|
- Recognise NULL as a synonym for 0. Some build system changes for
|
|
- Cygwin. Fixed the deletion of temporary instances in catch clauses.
|
|
- [1b9e30dd13fb]
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/qtlib.c,
|
|
- siplib/sip.h:
|
|
- SIP now treats signed char as a type distinct from char.
|
|
- [01500c239ace]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c,
|
|
- siplib/sip.h, siplib/siplib.c:
|
|
- Tore up the recent changes for handling cross module namespaces. A
|
|
- namespace is now defined in each module it is used. That makes
|
|
- things easier to implement and should be less confusing for the
|
|
- user. The API and data structures should now be stable.
|
|
- [02277356e12c]
|
|
-
|
|
-2006-02-25 phil <phil>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Fixed bug in handling of variables introduced in the previous
|
|
- commit.
|
|
- [aadd2d0daa3e]
|
|
-
|
|
- * sipgen/gencode.c, sipgen/parser.y:
|
|
- Added support for variables defined in namespaces defined in other
|
|
- modules.
|
|
- [a1210912bb6c]
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Completed the support for enums in namespaces originating in other
|
|
- modules.
|
|
- [590dbde2e463]
|
|
-
|
|
-2006-02-21 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/siplib.c:
|
|
- Added the 't' and 'u' format characters to sipParseArgs(),
|
|
- sipParseResult(), sipCallMethod() and sipBuildResult(). unsigned and
|
|
- unsigned short are now implemented as Python long objects instead of
|
|
- integer objects.
|
|
- [f8c047d7f8df]
|
|
-
|
|
-2006-02-19 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h:
|
|
- Implemented disconnects for universal signals.
|
|
- [6cd1a4dc4e73]
|
|
-
|
|
-2006-02-18 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h:
|
|
- Implemented support for signal arguments of type PyObject *.
|
|
- Implemented support for shortcircuited Python signals (ie. just the
|
|
- name without arguments) that will only work with other
|
|
- shortcircuited Python signals and Python slots - bit don't need to
|
|
- do any conversions between Python and C++.
|
|
- [6748c4088281]
|
|
-
|
|
-2006-02-17 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c:
|
|
- Fixed bug in the implementation of /TransferBack/ in virtual
|
|
- handlers. Fixed bug in methods with a void result and a single /Out/
|
|
- argument that was a mapped type or class.
|
|
- [f6486c697de5]
|
|
-
|
|
-2006-02-16 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c:
|
|
- Fixed bug in generating code that called sipCallMethod(). Updated
|
|
- the documentation where it was still referring to the legacy type
|
|
- convertors.
|
|
- [acdd622dba74]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed bug in generated legacy mapped type convertor names.
|
|
- [8424561f0d54]
|
|
-
|
|
-2006-02-15 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed bug that could easily result in deleting non-heap instances.
|
|
- [9ab37451f8f0]
|
|
-
|
|
-2006-02-13 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, lib/siputils.py:
|
|
- Fixes to PythonModuleMakefile.
|
|
- [684799b183d5]
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c,
|
|
- siplib/sip.h, siplib/sipint.h, siplib/siplib.c:
|
|
- Renamed the new sipCheckConvert functions to sipForceConvert
|
|
- functions. Added the 'B', 'C' and 'D' format character to
|
|
- sipBuildResult() and sipCallMethod(). Removed the 'L' format
|
|
- character from sipBuildResult() and sipCallMethod(). Added
|
|
- sipConvertFromInstance(), sipConvertFromNewInstance() and
|
|
- sipConvertFromMappedType().
|
|
- [f6324b7c7ab1]
|
|
-
|
|
-2006-02-12 phil <phil>
|
|
-
|
|
- * NEWS, TODO, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y,
|
|
- siplib/sip.h, siplib/siplib.c, siplib/threads.c:
|
|
- Overhauled how %ConvertToTypeCode should be written - detail below.
|
|
- (Still need to overhaul %ConvertFromTypeCode.) Added
|
|
- sipCanConvertToInstance(), sipConvertToInstance(),
|
|
- sipCheckConvertToInstance() and sipReleaseInstance(). Added
|
|
- sipCanConvertToMappedType(), sipConvertToMappedType(),
|
|
- sipCheckConvertToMappedType(), sipReleaseMappedType() and
|
|
- sipFindMappedType(). Changed the order of the arguments to
|
|
- sipConvertToCppTransfer(). Added the 'C' and 'D' format characters
|
|
- to sipParseResult(). Changed the meaning of the 'J' and 'M' format
|
|
- characters in sipParseArgs(). Removed the sipConvertTo_*()
|
|
- functions. Removed sipConvertToCppTransfer(). Took all of the None
|
|
- handling out of %ConvertToTypeCode.
|
|
- [7122e755a332]
|
|
-
|
|
-2006-01-28 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c:
|
|
- Fixed the support for __hash__.
|
|
- [f57b38d29839]
|
|
-
|
|
-2006-01-26 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l,
|
|
- sipgen/parser.y, sipgen/sip.h, siplib/qtlib.c, siplib/sip.h,
|
|
- siplib/sipint.h:
|
|
- Added %SIPNoEmitters to stop SIP generating signal emitters for a
|
|
- module and any module that imports it. Changed the signal/slot
|
|
- support so that Python signals can be implemented with proxies.
|
|
- [ebc0499b0e99]
|
|
-
|
|
-2006-01-20 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c:
|
|
- Fixed a bug in sipTransferTo() that caused some objects to be
|
|
- garbage collected while ownership was being transferred. Check that
|
|
- abstract methods are only ever called as bound methods.
|
|
- [7f66705a98e7]
|
|
-
|
|
-2006-01-19 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, siplib/siplib.c:
|
|
- Updated the documentation for sipConnectRx(). The __dict__ attribute
|
|
- of a wrapper type now returns a regular dictionary rather than a
|
|
- proxy (because PyDict_Next() doesn't iterate over proxies).
|
|
- [b7b57265c54c]
|
|
-
|
|
-2006-01-14 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed the searching of signal types.
|
|
- [d24efdbe5952]
|
|
-
|
|
-2006-01-11 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- The previous fix wasn't quite so trivial.
|
|
- [a598de0cf451]
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Added missing function prototype.
|
|
- [5d6320a5e0a1]
|
|
-
|
|
-2006-01-10 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, lib/siputils.py, sipgen/gencode.c,
|
|
- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Fixed code generation bugs in new virtual handling code that was
|
|
- triggered by PyKDE. Build system changes for MinGW. Added support
|
|
- for constrained bools. Generate code to wrap static enum instances
|
|
- with inline code rather than through tables (as is done with class
|
|
- instances) for Windows.
|
|
- [48a76f76e9b8]
|
|
-
|
|
-2006-01-09 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y:
|
|
- Changed the signatures of sipForceConvertTo_*() and
|
|
- sipConvertFrom_*() back to their SIP 4.3 versions, deprecated them,
|
|
- and introduced the Transfer variants.
|
|
- [422ea1e3fee9]
|
|
-
|
|
- * NEWS, doc/sipref.txt, lib/configure.py, lib/siputils.py:
|
|
- More build system changes for Windows. Added the platform macro to
|
|
- sipconfig.py. The default Windows platform Python 2.4 and later is
|
|
- now win32-msvc.net rather than win32-msvc.
|
|
- [e9d83bea0e38]
|
|
-
|
|
-2006-01-08 phil <phil>
|
|
-
|
|
- * lib/configure.py, lib/siputils.py:
|
|
- Various build system changes needed by PyQt4 on Windows.
|
|
- [dcbf196c14bb]
|
|
-
|
|
-2006-01-07 phil <phil>
|
|
-
|
|
- * lib/LICENSE.short, lib/configure.py, lib/sipdistutils.py,
|
|
- lib/siputils.py, specs/aix-g++, specs/aix-g++-64, specs/aix-xlc,
|
|
- specs/aix-xlc-64, specs/darwin-g++, specs/freebsd-g++,
|
|
- specs/freebsd-g++34, specs/freebsd-g++40, specs/freebsd-icc, specs
|
|
- /hpux-acc, specs/hpux-acc-64, specs/hpux-acc-o64, specs/hpux-g++,
|
|
- specs/hpux-g++-64, specs/hpuxi-acc, specs/hpuxi-acc-32, specs/hpuxi-
|
|
- acc-64, specs/hurd-g++, specs/irix-cc, specs/irix-cc-64,
|
|
- specs/irix-g++, specs/irix-g++-64, specs/linux-cxx, specs/linux-
|
|
- ecc-64, specs/linux-g++, specs/linux-g++-32, specs/linux-g++-64,
|
|
- specs/linux-icc, specs/linux-kcc, specs/linux-kylix, specs/linux-
|
|
- pgcc, specs/lynxos-g++, specs/macx-g++, specs/macx-mwerks, specs
|
|
- /macx-pbuilder, specs/macx-xcode, specs/macx-xlc, specs/netbsd-g++,
|
|
- specs/openbsd-g++, specs/qnx-g++, specs/sco-cc, specs/sco-g++, specs
|
|
- /solaris-cc, specs/solaris-cc-64, specs/solaris-g++,
|
|
- specs/solaris-g++-64, specs/tru64-cxx, specs/tru64-g++, specs
|
|
- /unixware-cc, specs/unixware-g++, specs/win32-borland,
|
|
- specs/win32-g++, specs/win32-icc, specs/win32-msvc,
|
|
- specs/win32-msvc.net, specs/win32-msvc2005:
|
|
- Updated the spec files from Qt v4.1. Added support for the $$()
|
|
- method of accessing environment variables in qmake spec files.
|
|
- sipdistutils.py fix from Giovanni. Changes to the build system for
|
|
- the slightly different macro names on Windows.
|
|
- [5030a64bab73]
|
|
-
|
|
-2006-01-04 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/transform.c:
|
|
- Added support for the /NoDerived/ annotation.
|
|
- [496e87667614]
|
|
-
|
|
-2006-01-03 phil <phil>
|
|
-
|
|
- * siplib/siplib.c:
|
|
- Fixed bug in handling of delayed dtors.
|
|
- [9ad8378e1bbd]
|
|
-
|
|
-2006-01-02 phil <phil>
|
|
-
|
|
- * sipgen/transform.c:
|
|
- Fixed another bug with the new handling of virtual function calls
|
|
- (where re-implementations from another module weren't picked up).
|
|
- [b4a5f97c4acd]
|
|
-
|
|
-2005-12-30 phil <phil>
|
|
-
|
|
- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c:
|
|
- Fixed bugs with the new handling of virtuals that caused recursions.
|
|
- [e15093e5d260]
|
|
-
|
|
-2005-12-29 phil <phil>
|
|
-
|
|
- * lib/siputils.py:
|
|
- Taught the build system about the QtAssistantClient library.
|
|
- [ef92ee748d4c]
|
|
-
|
|
- * sipgen/gencode.c:
|
|
- Fixed bugs related to global operators with an enum as the first
|
|
- argument.
|
|
- [2379d714c099]
|
|
-
|
|
-2005-12-28 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/sip.h,
|
|
- siplib/siplib.c:
|
|
- Added sipConvertToCppTransfer(). Changed the signatures for the type
|
|
- convertor functions. Added the 'L' format character to
|
|
- sipBuildResult() and sipCallMethod().
|
|
- [2bf4d76eefe2]
|
|
-
|
|
-2005-12-27 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y,
|
|
- sipgen/sip.h, sipgen/transform.c, siplib/sip.h, siplib/siplib.c:
|
|
- Added support for the /DelayDtor/ class annotation to control the
|
|
- order of dtor calls when the interpreter exits. Fixed bugs with cast
|
|
- operators.
|
|
- [5a03f38f92c7]
|
|
-
|
|
-2005-12-26 phil <phil>
|
|
-
|
|
- * doc/sipref.txt, sipgen/gencode.c:
|
|
- Fixed a documentation bug. Slightly changed the declaration of the
|
|
- sipProtectVirt wrappers.
|
|
- [bc65dd63ac7d]
|
|
-
|
|
-2005-12-24 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, sipgen/gencode.c:
|
|
- Class methods called as class.method(self, ...) is now equivalent to
|
|
- this->class::method(...). Class methods called as self.method(...)
|
|
- is now equivalent to this->method(...). Introduced sipSelfWasArg and
|
|
- the sipProtectVirt wrappers in order to support the above.
|
|
- [d49dc239a2d7]
|
|
-
|
|
-2005-12-22 phil <phil>
|
|
-
|
|
- * siplib/qtlib.c, siplib/siplib.c:
|
|
- SIP no longer complains if a slot to be disconnected isn't actually
|
|
- connected (and hopes Qt will then behave appropriately).
|
|
- [7e93c92ec9b9]
|
|
-
|
|
-2005-12-19 phil <phil>
|
|
-
|
|
- * sipgen/parser.y:
|
|
- Backed out the recent change that ignored abstract specifications if
|
|
- the methods wasn't virtual.
|
|
- [72f23df36c23]
|
|
-
|
|
- * doc/sipref.txt, lib/siputils.py:
|
|
- Various changes to the build system to better support Qt v4.
|
|
- [0a793291a2db]
|
|
-
|
|
-2005-12-18 phil <phil>
|
|
-
|
|
- * NEWS, doc/sipref.txt, lib/siputils.py:
|
|
- Added the PythonModuleMakefile class and create_wrapper() function
|
|
- to the build system.
|
|
- [70cd55448b1c]
|
|
-
|
|
-2005-12-15 phil <phil>
|
|
-
|
|
- * .repoman, NEWS, build.py, doc/sipref.txt, sipgen/main.c,
|
|
- siplib/qtlib.c, siplib/qtlib.cpp, siplib/sip.h:
|
|
- Internally renamed qtlib.cpp to qtlib.c. Small changes to the
|
|
- internal build system caused by the move to SVN. Removed SIP_BUILD
|
|
- from sip.h.
|
|
- [efe612146497]
|
|
-
|
|
-2005-12-14 phil <phil>
|
|
-
|
|
- * .repoman, NEWS, TODO, build.py, custom/custom.c, custom/customw.c,
|
|
- custom/mkcustom.py, doc/default.css, doc/sipref.txt, lib/LICENSE,
|
|
- lib/LICENSE.short, lib/README, lib/README.Fink, lib/README.HP-UX,
|
|
- lib/THANKS, lib/configure.py, lib/sipdistutils.py, lib/siputils.py,
|
|
- sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, sipgen/main.c,
|
|
- sipgen/parser.y, sipgen/sip.h, sipgen/sipgen.sbf,
|
|
- sipgen/transform.c, siplib/bool.cpp, siplib/objmap.c,
|
|
- siplib/qtlib.cpp, siplib/sip.h, siplib/sipint.h, siplib/siplib.c,
|
|
- siplib/siplib.sbf, siplib/threads.c, specs/aix-g++,
|
|
- specs/aix-g++-64, specs/aix-xlc, specs/aix-xlc-64, specs/bsdi-g++,
|
|
- specs/cygwin-g++, specs/darwin-g++, specs/dgux-g++,
|
|
- specs/freebsd-g++, specs/freebsd-g++34, specs/freebsd-icc, specs
|
|
- /hpux-acc, specs/hpux-acc-64, specs/hpux-acc-o64, specs/hpux-cc,
|
|
- specs/hpux-g++, specs/hpux-g++-64, specs/hpuxi-acc-32, specs/hpuxi-
|
|
- acc-64, specs/hurd-g++, specs/irix-cc, specs/irix-cc-64, specs/irix-
|
|
- cc-o32, specs/irix-g++, specs/linux-cxx, specs/linux-ecc-64,
|
|
- specs/linux-g++, specs/linux-g++-64, specs/linux-icc, specs/linux-
|
|
- kcc, specs/linux-kylix, specs/linux-pgcc, specs/lynxos-g++,
|
|
- specs/macx-g++, specs/macx-mwerks, specs/macx-pbuilder, specs/macx-
|
|
- xlc, specs/netbsd-g++, specs/openbsd-g++, specs/qnx-g++, specs
|
|
- /reliant-cds, specs/reliant-cds-64, specs/sco-cc, specs/sco-g++,
|
|
- specs/solaris-cc, specs/solaris-cc-64, specs/solaris-g++,
|
|
- specs/solaris-g++-64, specs/tru64-cxx, specs/tru64-g++, specs
|
|
- /unixware-cc, specs/unixware-g++, specs/win32-borland,
|
|
- specs/win32-g++, specs/win32-icc, specs/win32-msvc,
|
|
- specs/win32-msvc.net, specs/win32-msvc2005, specs/win32-watcom:
|
|
- Initial import of sip from CVS
|
|
- [1fd77e66a56d]
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/configure.py sip/configure.py
|
|
--- ./sip-4.19.12.orig/configure.py 2018-07-05 05:55:19.000000000 -0400
|
|
+++ sip/configure.py 2018-09-18 18:12:23.643053242 -0400
|
|
@@ -30,8 +30,8 @@
|
|
|
|
|
|
# Initialise the globals.
|
|
-sip_version = 0x04130c
|
|
-sip_version_str = "4.19.12"
|
|
+sip_version = 0x04ffff
|
|
+sip_version_str = "4.255.255"
|
|
py_version = sys.hexversion >> 8
|
|
py_platform = sys.platform
|
|
plat_py_site_dir = None
|
|
@@ -46,6 +46,7 @@
|
|
sip_inc_dir = ''
|
|
sip_root_dir = ''
|
|
sip_module_dir = ''
|
|
+sip_module_dest_dir = ''
|
|
sip_sip_dir = ''
|
|
pyi_dir = ''
|
|
sysroot = ''
|
|
@@ -185,7 +186,7 @@
|
|
siputils.inform("The sip.h header file will be installed in %s." % sip_inc_dir)
|
|
|
|
if not opts.no_module:
|
|
- siputils.inform("The %s module will be installed in %s." % (sip_module_name, sip_module_dir))
|
|
+ siputils.inform("The %s module will be installed in %s." % (sip_module_name, sip_module_dest_dir))
|
|
|
|
if opts.pyi:
|
|
siputils.inform("The sip.pyi stub file will be installed in %s." % pyi_dir)
|
|
@@ -302,30 +303,35 @@
|
|
cfg.set_build_macros(macros)
|
|
|
|
all_installs = []
|
|
- installs = []
|
|
+ top_installs = []
|
|
+ gen_installs = []
|
|
subdirs = []
|
|
|
|
if not opts.no_tools:
|
|
subdirs.append('sipgen')
|
|
- installs.append(
|
|
+ top_installs.append(
|
|
(["sipconfig.py", os.path.join(src_dir, "sipdistutils.py")],
|
|
cfg.sip_root_dir))
|
|
+ gen_installs.append(
|
|
+ (os.path.join(src_dir, "siplib", "sip.h"), cfg.sip_inc_dir))
|
|
|
|
if not opts.no_module:
|
|
subdirs.append('siplib')
|
|
|
|
- all_installs += installs
|
|
+ all_installs.extend(top_installs)
|
|
+ all_installs.extend(gen_installs)
|
|
|
|
# The command to run to generate the dist-info directory.
|
|
mk_distinfo = os.path.join(os.path.dirname(os.path.abspath(__file__)),
|
|
'mk_distinfo.py')
|
|
- distinfo_dir = os.path.join(cfg.sip_root_dir,
|
|
+ distinfo_dir = os.path.join(cfg.sip_module_dir,
|
|
'%s-%s.dist-info' % (sip_module_name.replace('.', '_'),
|
|
sip_version_str))
|
|
- run_mk_distinfo = '%s %s "$(DESTDIR)" %s installed.txt' % (sys.executable,
|
|
- mk_distinfo, distinfo_dir)
|
|
|
|
if opts.use_qmake:
|
|
+ run_mk_distinfo = '%s %s \\\"$(INSTALL_ROOT)\\\" %s installed.txt' % (
|
|
+ sys.executable, mk_distinfo, distinfo_dir)
|
|
+
|
|
sipconfig.inform("Creating top level .pro file...")
|
|
|
|
pro = open("sip.pro", "w")
|
|
@@ -333,8 +339,9 @@
|
|
pro.write("TEMPLATE = subdirs\n")
|
|
pro.write("SUBDIRS = %s\n" % " ".join(subdirs))
|
|
|
|
- if installs:
|
|
- files, path = installs
|
|
+ if top_installs:
|
|
+ # There will only be one element.
|
|
+ files, path = top_installs[0]
|
|
pro.write("\n")
|
|
pro.write("build_system.files = %s\n" % " ".join(files))
|
|
pro.write("build_system.path = %s\n" % quote(path))
|
|
@@ -343,22 +350,25 @@
|
|
if opts.distinfo:
|
|
pro.write("\n")
|
|
pro.write("distinfo.extra = %s\n" % run_mk_distinfo)
|
|
- pro.write("distinfo.path = %s\n" % quote(cfg.sip_root_dir))
|
|
+ pro.write("distinfo.path = %s\n" % quote(cfg.sip_module_dir))
|
|
pro.write("INSTALLS += distinfo\n")
|
|
|
|
pro.close()
|
|
else:
|
|
+ run_mk_distinfo = '%s %s "$(DESTDIR)" %s installed.txt' % (
|
|
+ sys.executable, mk_distinfo, distinfo_dir)
|
|
+
|
|
sipconfig.inform("Creating top level Makefile...")
|
|
|
|
# Note that mk_distinfo.py won't exist if we are building from the
|
|
# repository.
|
|
if opts.distinfo and os.path.isfile(mk_distinfo):
|
|
- installs.append((run_mk_distinfo, None))
|
|
+ top_installs.append((run_mk_distinfo, None))
|
|
|
|
sipconfig.ParentMakefile(
|
|
configuration=cfg,
|
|
subdirs=subdirs,
|
|
- installs=installs
|
|
+ installs=top_installs
|
|
).generate()
|
|
|
|
if opts.use_qmake:
|
|
@@ -390,6 +400,14 @@
|
|
pro.write("HEADERS = %s\n" % " ".join(
|
|
[qmake_quote(h) for h in headers]))
|
|
|
|
+ if gen_installs:
|
|
+ # There will only be one element.
|
|
+ files, path = gen_installs[0]
|
|
+ pro.write("\n")
|
|
+ pro.write("sip_h.files = %s\n" % " ".join(files))
|
|
+ pro.write("sip_h.path = %s\n" % quote(path))
|
|
+ pro.write("INSTALLS += sip_h\n")
|
|
+
|
|
pro.close()
|
|
else:
|
|
sipconfig.inform("Creating sip code generator Makefile...")
|
|
@@ -399,6 +417,7 @@
|
|
build_file=os.path.join(src_dir, "sipgen", "sipgen.sbf"),
|
|
dir="sipgen",
|
|
install_dir=os.path.dirname(cfg.sip_bin),
|
|
+ installs=gen_installs,
|
|
console=1,
|
|
warnings=1,
|
|
universal=opts.universal,
|
|
@@ -406,7 +425,7 @@
|
|
deployment_target=opts.deployment_target
|
|
).generate()
|
|
|
|
- # The code generator installs.
|
|
+ # The implied code generator installs.
|
|
if not opts.no_tools:
|
|
sip_dir, sip_exe = os.path.split(cfg.sip_bin)
|
|
if sys.platform == 'win32':
|
|
@@ -417,18 +436,18 @@
|
|
# The module installs.
|
|
module_installs=[]
|
|
|
|
- if not opts.no_tools:
|
|
- module_installs.append(
|
|
- (os.path.join(src_dir, "siplib", "sip.h"), cfg.sip_inc_dir))
|
|
-
|
|
if opts.pyi:
|
|
module_installs.append((os.path.join(src_dir, 'sip.pyi'), pyi_dir))
|
|
|
|
all_installs.extend(module_installs)
|
|
|
|
if not opts.no_module:
|
|
- mod_ext = '.pyd' if sys.platform == 'win32' else '.so'
|
|
- all_installs.append(('sip' + mod_ext, cfg.sip_module_dir))
|
|
+ if sys.platform == 'win32':
|
|
+ mod = 'sip.lib' if opts.static else 'sip.pyd'
|
|
+ else:
|
|
+ mod = 'libsip.a' if opts.static else 'sip.so'
|
|
+
|
|
+ all_installs.append((mod, sip_module_dest_dir))
|
|
|
|
if opts.use_qmake:
|
|
sipconfig.inform("Creating sip module .pro file...")
|
|
@@ -453,7 +472,11 @@
|
|
|
|
if sip_module_name != 'sip':
|
|
pro.write("\n")
|
|
- pro.write('DEFINES += SIP_MODULE_NAME=\\\\\\"%s\\\\\\"\n' % sip_module_name)
|
|
+ pro.write('DEFINES += SIP_MODULE_NAME=%s\n' % sip_module_name)
|
|
+
|
|
+ base_name = sip_module_name.split('.')[-1]
|
|
+ if base_name != 'sip':
|
|
+ pro.write('DEFINES += SIP_MODULE_BASENAME=%s\n' % base_name)
|
|
|
|
if not opts.static:
|
|
# These only need to be correct for Windows.
|
|
@@ -485,7 +508,7 @@
|
|
""" % (debug_suffix, link_lib_dir))
|
|
|
|
pro.write("\n")
|
|
- pro.write("target.path = %s\n" % cfg.sip_module_dir)
|
|
+ pro.write("target.path = %s\n" % sip_module_dest_dir)
|
|
pro.write("INSTALLS += target\n")
|
|
|
|
if opts.pyi:
|
|
@@ -494,12 +517,6 @@
|
|
pro.write("sip_pyi.path = %s\n" % pyi_dir)
|
|
pro.write("INSTALLS += sip_pyi\n")
|
|
|
|
- if not opts.no_tools:
|
|
- pro.write("\n")
|
|
- pro.write("sip_h.files = sip.h\n")
|
|
- pro.write("sip_h.path = %s\n" % cfg.sip_inc_dir)
|
|
- pro.write("INSTALLS += sip_h\n")
|
|
-
|
|
c_sources = get_sources("siplib", "*.c")
|
|
cpp_sources = get_sources("siplib", "*.cpp")
|
|
pro.write("\n")
|
|
@@ -521,7 +538,7 @@
|
|
configuration=cfg,
|
|
build_file=os.path.join(src_dir, "siplib", "siplib.sbf"),
|
|
dir="siplib",
|
|
- install_dir=cfg.sip_module_dir,
|
|
+ install_dir=sip_module_dest_dir,
|
|
installs=module_installs,
|
|
console=1,
|
|
warnings=1,
|
|
@@ -533,8 +550,11 @@
|
|
)
|
|
|
|
if sip_module_name != 'sip':
|
|
- makefile.DEFINES.append(
|
|
- 'SIP_MODULE_NAME=\\"%s\\"' % sip_module_name)
|
|
+ makefile.DEFINES.append('SIP_MODULE_NAME=%s' % sip_module_name)
|
|
+
|
|
+ base_name = sip_module_name.split('.')[-1]
|
|
+ if base_name != 'sip':
|
|
+ makefile.DEFINES.append('SIP_MODULE_BASENAME=%s' % base_name)
|
|
|
|
if src_dir != build_dir:
|
|
src_siplib_dir = os.path.join(src_dir, "siplib")
|
|
@@ -908,7 +928,7 @@
|
|
global plat_bin_dir, plat_py_conf_inc_dir, plat_py_inc_dir
|
|
global plat_py_lib_dir, plat_py_site_dir, plat_sip_dir
|
|
global sip_bin_dir, sip_inc_dir, sip_root_dir, sip_module_dir, sip_sip_dir
|
|
- global pyi_dir
|
|
+ global sip_module_dest_dir, sip_module_name, pyi_dir
|
|
|
|
# Set defaults.
|
|
sip_bin_dir = plat_bin_dir
|
|
@@ -941,7 +961,9 @@
|
|
if opts.destdir is not None:
|
|
sip_root_dir = opts.destdir
|
|
|
|
- global sip_module_name
|
|
+ # The module directory might have been set in a configuration file.
|
|
+ if not sip_module_dir:
|
|
+ sip_module_dir = sip_root_dir
|
|
|
|
sip_module_name = opts.sip_module
|
|
|
|
@@ -949,10 +971,10 @@
|
|
|
|
if len(module_path) > 1:
|
|
del module_path[-1]
|
|
- module_path.insert(0, sip_root_dir)
|
|
- sip_module_dir = os.path.join(*module_path)
|
|
+ module_path.insert(0, sip_module_dir)
|
|
+ sip_module_dest_dir = os.path.join(*module_path)
|
|
else:
|
|
- sip_module_dir = sip_root_dir
|
|
+ sip_module_dest_dir = sip_module_dir
|
|
|
|
# Override from the command line.
|
|
if opts.platform is not None:
|
|
@@ -970,7 +992,7 @@
|
|
if opts.pyidir is not None:
|
|
pyi_dir = opts.pyidir
|
|
else:
|
|
- pyi_dir = sip_module_dir
|
|
+ pyi_dir = sip_module_dest_dir
|
|
|
|
# Get the platform specific macros for building.
|
|
macros = siputils.parse_build_macros(
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/configure.py.in sip/configure.py.in
|
|
--- ./sip-4.19.12.orig/configure.py.in 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/configure.py.in 2018-09-18 18:00:57.923048048 -0400
|
|
@@ -0,0 +1,1031 @@
|
|
+# This script handles the SIP configuration and generates the Makefiles.
|
|
+#
|
|
+# Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com>
|
|
+#
|
|
+# This file is part of SIP.
|
|
+#
|
|
+# This copy of SIP is licensed for use under the terms of the SIP License
|
|
+# Agreement. See the file LICENSE for more details.
|
|
+#
|
|
+# This copy of SIP may also used under the terms of the GNU General Public
|
|
+# License v2 or v3 as published by the Free Software Foundation which can be
|
|
+# found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package.
|
|
+#
|
|
+# SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
+
|
|
+
|
|
+import sys
|
|
+import os
|
|
+import glob
|
|
+import optparse
|
|
+from distutils import sysconfig
|
|
+
|
|
+try:
|
|
+ from importlib import invalidate_caches
|
|
+except ImportError:
|
|
+ invalidate_caches = lambda: None
|
|
+
|
|
+import siputils
|
|
+
|
|
+
|
|
+# Initialise the globals.
|
|
+sip_version = 0x@RM_HEXVERSION@
|
|
+sip_version_str = "@RM_RELEASE@"
|
|
+py_version = sys.hexversion >> 8
|
|
+py_platform = sys.platform
|
|
+plat_py_site_dir = None
|
|
+plat_py_inc_dir = None
|
|
+plat_py_venv_inc_dir = None
|
|
+plat_py_conf_inc_dir = None
|
|
+plat_py_lib_dir = None
|
|
+plat_sip_dir = None
|
|
+plat_bin_dir = None
|
|
+platform_specs = []
|
|
+sip_bin_dir = ''
|
|
+sip_inc_dir = ''
|
|
+sip_root_dir = ''
|
|
+sip_module_dir = ''
|
|
+sip_module_dest_dir = ''
|
|
+sip_sip_dir = ''
|
|
+pyi_dir = ''
|
|
+sysroot = ''
|
|
+src_dir = os.path.dirname(os.path.abspath(__file__))
|
|
+sip_module_name = None
|
|
+build_platform = None
|
|
+
|
|
+# Constants.
|
|
+DEFAULT_MACOSX_ARCH = 'i386 ppc'
|
|
+MACOSX_SDK_DIRS = ('/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs', '/Developer/SDKs')
|
|
+
|
|
+# The names of build macros extracted from the platform specific configuration
|
|
+# files.
|
|
+build_macro_names = [
|
|
+ "DEFINES", "CONFIG",
|
|
+ "CC",
|
|
+ "CFLAGS",
|
|
+ "CFLAGS_RELEASE", "CFLAGS_DEBUG",
|
|
+ "CFLAGS_CONSOLE", "CFLAGS_SHLIB", "CFLAGS_APP", "CFLAGS_THREAD",
|
|
+ "CFLAGS_MT", "CFLAGS_MT_DBG", "CFLAGS_MT_DLL", "CFLAGS_MT_DLLDBG",
|
|
+ "CFLAGS_EXCEPTIONS_ON", "CFLAGS_EXCEPTIONS_OFF",
|
|
+ "CFLAGS_RTTI_ON", "CFLAGS_RTTI_OFF",
|
|
+ "CFLAGS_STL_ON", "CFLAGS_STL_OFF",
|
|
+ "CFLAGS_WARN_ON", "CFLAGS_WARN_OFF",
|
|
+ "CHK_DIR_EXISTS", "COPY",
|
|
+ "CXX",
|
|
+ "CXXFLAGS",
|
|
+ "CXXFLAGS_RELEASE", "CXXFLAGS_DEBUG",
|
|
+ "CXXFLAGS_CONSOLE", "CXXFLAGS_SHLIB", "CXXFLAGS_APP", "CXXFLAGS_THREAD",
|
|
+ "CXXFLAGS_MT", "CXXFLAGS_MT_DBG", "CXXFLAGS_MT_DLL", "CXXFLAGS_MT_DLLDBG",
|
|
+ "CXXFLAGS_EXCEPTIONS_ON", "CXXFLAGS_EXCEPTIONS_OFF",
|
|
+ "CXXFLAGS_RTTI_ON", "CXXFLAGS_RTTI_OFF",
|
|
+ "CXXFLAGS_STL_ON", "CXXFLAGS_STL_OFF",
|
|
+ "CXXFLAGS_WARN_ON", "CXXFLAGS_WARN_OFF",
|
|
+ "DEL_FILE",
|
|
+ "EXTENSION_SHLIB", "EXTENSION_PLUGIN",
|
|
+ "INCDIR", "INCDIR_X11", "INCDIR_OPENGL",
|
|
+ "LIBS_CORE", "LIBS_GUI", "LIBS_NETWORK", "LIBS_OPENGL", "LIBS_WEBKIT",
|
|
+ "LINK", "LINK_SHLIB", "AIX_SHLIB", "LINK_SHLIB_CMD",
|
|
+ "LFLAGS", "LFLAGS_CONSOLE", "LFLAGS_CONSOLE_DLL", "LFLAGS_DEBUG",
|
|
+ "LFLAGS_DLL",
|
|
+ "LFLAGS_PLUGIN", "LFLAGS_RELEASE", "LFLAGS_SHLIB", "LFLAGS_SONAME",
|
|
+ "LFLAGS_THREAD", "LFLAGS_WINDOWS", "LFLAGS_WINDOWS_DLL", "LFLAGS_OPENGL",
|
|
+ "LIBDIR", "LIBDIR_X11", "LIBDIR_OPENGL",
|
|
+ "LIBS", "LIBS_CONSOLE", "LIBS_RT",
|
|
+ "LIBS_RTMT", "LIBS_THREAD", "LIBS_WINDOWS", "LIBS_X11",
|
|
+ "MAKEFILE_GENERATOR",
|
|
+ "MKDIR",
|
|
+ "RPATH", "LFLAGS_RPATH",
|
|
+ "AR", "RANLIB", "LIB", "STRIP"
|
|
+]
|
|
+
|
|
+
|
|
+def show_platforms():
|
|
+ """Display the different platform/compilers.
|
|
+ """
|
|
+ sys.stdout.write("""
|
|
+The following platform/compiler configurations are supported:
|
|
+
|
|
+""")
|
|
+
|
|
+ platform_specs.sort()
|
|
+ sys.stdout.write(siputils.format(", ".join(platform_specs), leftmargin=2))
|
|
+ sys.stdout.write("\n\n")
|
|
+
|
|
+
|
|
+def show_macros():
|
|
+ """Display the different build macros.
|
|
+ """
|
|
+ sys.stdout.write("""
|
|
+The following options may be used to adjust the compiler configuration:
|
|
+
|
|
+""")
|
|
+
|
|
+ build_macro_names.sort()
|
|
+ sys.stdout.write(siputils.format(", ".join(build_macro_names), leftmargin=2))
|
|
+ sys.stdout.write("\n\n")
|
|
+
|
|
+
|
|
+def set_build_platform():
|
|
+ """ Initialise the build platform. """
|
|
+
|
|
+ global build_platform
|
|
+
|
|
+ # Set the platform specific default specification.
|
|
+ platdefaults = {
|
|
+ "aix": "aix-xlc",
|
|
+ "bsd": "bsdi-g++",
|
|
+ "cygwin": "cygwin-g++",
|
|
+ "darwin": "macx-g++",
|
|
+ "dgux": "dgux-g++",
|
|
+ "freebsd": "freebsd-g++",
|
|
+ "gnu": "hurd-g++",
|
|
+ "hp-ux": "hpux-acc",
|
|
+ "irix": "irix-cc",
|
|
+ "linux": "linux-g++",
|
|
+ "lynxos": "lynxos-g++",
|
|
+ "netbsd": "netbsd-g++",
|
|
+ "openbsd": "openbsd-g++",
|
|
+ "openunix": "unixware-cc",
|
|
+ "osf1": "tru64-cxx",
|
|
+ "qnx": "qnx-g++",
|
|
+ "reliantunix": "reliant-cds",
|
|
+ "sco_sv": "sco-cc",
|
|
+ "sinix": "reliant-cds",
|
|
+ "sunos5": "solaris-cc",
|
|
+ "ultrix": "ultrix-g++",
|
|
+ "unix_sv": "unixware-g++",
|
|
+ "unixware": "unixware-cc"
|
|
+ }
|
|
+
|
|
+ build_platform = "none"
|
|
+
|
|
+ if py_platform == "win32":
|
|
+ if py_version >= 0x030500:
|
|
+ build_platform = "win32-msvc2015"
|
|
+ elif py_version >= 0x030300:
|
|
+ build_platform = "win32-msvc2010"
|
|
+ elif py_version >= 0x020600:
|
|
+ build_platform = "win32-msvc2008"
|
|
+ elif py_version >= 0x020400:
|
|
+ build_platform = "win32-msvc.net"
|
|
+ else:
|
|
+ build_platform = "win32-msvc"
|
|
+ else:
|
|
+ for pd in list(platdefaults.keys()):
|
|
+ if py_platform[:len(pd)] == pd:
|
|
+ build_platform = platdefaults[pd]
|
|
+ break
|
|
+
|
|
+
|
|
+def inform_user():
|
|
+ """ Tell the user the option values that are going to be used. """
|
|
+
|
|
+ if not opts.no_tools:
|
|
+ siputils.inform("The SIP code generator will be installed in %s." % sip_bin_dir)
|
|
+ siputils.inform("The sip.h header file will be installed in %s." % sip_inc_dir)
|
|
+
|
|
+ if not opts.no_module:
|
|
+ siputils.inform("The %s module will be installed in %s." % (sip_module_name, sip_module_dest_dir))
|
|
+
|
|
+ if opts.pyi:
|
|
+ siputils.inform("The sip.pyi stub file will be installed in %s." % pyi_dir)
|
|
+
|
|
+ if opts.static:
|
|
+ siputils.inform("The %s module will be built as a static library." % sip_module_name)
|
|
+
|
|
+ siputils.inform("The default directory to install .sip files in is %s." % sip_sip_dir)
|
|
+
|
|
+ if opts.use_qmake is None:
|
|
+ siputils.inform("The platform/compiler configuration is %s." % build_platform)
|
|
+
|
|
+ if opts.arch:
|
|
+ siputils.inform("MacOS/X binaries will be created for %s." % (", ".join(opts.arch.split())))
|
|
+
|
|
+ if opts.universal:
|
|
+ siputils.inform("MacOS/X universal binaries will be created using %s." % opts.universal)
|
|
+
|
|
+ if opts.deployment_target:
|
|
+ siputils.inform("MacOS/X deployment target is %s." % opts.deployment_target)
|
|
+
|
|
+
|
|
+def set_platform_directories():
|
|
+ """ Initialise the global variables relating to platform-specific
|
|
+ directories.
|
|
+ """
|
|
+ global plat_py_site_dir, plat_py_inc_dir, plat_py_venv_inc_dir
|
|
+ global plat_py_conf_inc_dir, plat_bin_dir, plat_py_lib_dir, plat_sip_dir
|
|
+
|
|
+ # We trust distutils for some stuff.
|
|
+ plat_py_site_dir = sysconfig.get_python_lib(plat_specific=1)
|
|
+ plat_py_inc_dir = sysconfig.get_python_inc()
|
|
+ plat_py_venv_inc_dir = sysconfig.get_python_inc(prefix=sys.prefix)
|
|
+ plat_py_conf_inc_dir = os.path.dirname(sysconfig.get_config_h_filename())
|
|
+
|
|
+ if sys.platform == "win32":
|
|
+ bin_dir = sys.exec_prefix
|
|
+
|
|
+ try:
|
|
+ # Python v3.3 and later.
|
|
+ base_prefix = sys.base_prefix
|
|
+
|
|
+ if sys.exec_prefix != sys.base_exec_prefix:
|
|
+ bin_dir += '\\Scripts'
|
|
+
|
|
+ except AttributeError:
|
|
+ try:
|
|
+ # virtualenv for Python v2.
|
|
+ base_prefix = sys.real_prefix
|
|
+ bin_dir += '\\Scripts'
|
|
+
|
|
+ except AttributeError:
|
|
+ # We can't detect the base prefix in Python v3 prior to v3.3.
|
|
+ base_prefix = sys.prefix
|
|
+
|
|
+ plat_py_lib_dir = base_prefix + "\\libs"
|
|
+ plat_bin_dir = bin_dir
|
|
+ plat_sip_dir = sys.prefix + "\\sip"
|
|
+ else:
|
|
+ lib_dir = sysconfig.get_python_lib(plat_specific=1, standard_lib=1)
|
|
+
|
|
+ plat_py_lib_dir = lib_dir + "/config"
|
|
+ plat_bin_dir = sys.exec_prefix + "/bin"
|
|
+ plat_sip_dir = sys.prefix + "/share/sip"
|
|
+
|
|
+
|
|
+def create_config(module, template, macros):
|
|
+ """Create the SIP configuration module so that it can be imported by build
|
|
+ scripts.
|
|
+
|
|
+ module is the module file name.
|
|
+ template is the template file name.
|
|
+ macros is the dictionary of build macros.
|
|
+ """
|
|
+ siputils.inform("Creating %s..." % module)
|
|
+
|
|
+ content = {
|
|
+ "sip_config_args": sys.argv[1:],
|
|
+ "sip_version": sip_version,
|
|
+ "sip_version_str": sip_version_str,
|
|
+ "platform": build_platform,
|
|
+ "sip_bin": os.path.join(sip_bin_dir, "sip"),
|
|
+ "sip_inc_dir": sip_inc_dir,
|
|
+ "sip_root_dir": sip_root_dir,
|
|
+ "sip_module_dir": sip_module_dir,
|
|
+ "default_bin_dir": plat_bin_dir,
|
|
+ "default_mod_dir": plat_py_site_dir,
|
|
+ "default_sip_dir": sip_sip_dir,
|
|
+ "py_version": py_version,
|
|
+ "py_inc_dir": plat_py_inc_dir,
|
|
+ "py_conf_inc_dir": plat_py_conf_inc_dir,
|
|
+ "py_lib_dir": plat_py_lib_dir,
|
|
+ "universal": opts.universal,
|
|
+ "arch": opts.arch,
|
|
+ "deployment_target": opts.deployment_target,
|
|
+ "qt_framework": 0
|
|
+ }
|
|
+
|
|
+ siputils.create_config_module(module, template, content, macros)
|
|
+
|
|
+
|
|
+def create_makefiles(macros):
|
|
+ """Create the Makefiles.
|
|
+
|
|
+ macros is the dictionary of platform specific build macros.
|
|
+ """
|
|
+ # Bootstrap. Make sure we get the right one.
|
|
+ sys.path.insert(0, os.path.curdir)
|
|
+ invalidate_caches()
|
|
+ import sipconfig
|
|
+
|
|
+ cfg = sipconfig.Configuration()
|
|
+
|
|
+ cfg.set_build_macros(macros)
|
|
+
|
|
+ all_installs = []
|
|
+ top_installs = []
|
|
+ gen_installs = []
|
|
+ subdirs = []
|
|
+
|
|
+ if not opts.no_tools:
|
|
+ subdirs.append('sipgen')
|
|
+ top_installs.append(
|
|
+ (["sipconfig.py", os.path.join(src_dir, "sipdistutils.py")],
|
|
+ cfg.sip_root_dir))
|
|
+ gen_installs.append(
|
|
+ (os.path.join(src_dir, "siplib", "sip.h"), cfg.sip_inc_dir))
|
|
+
|
|
+ if not opts.no_module:
|
|
+ subdirs.append('siplib')
|
|
+
|
|
+ all_installs.extend(top_installs)
|
|
+ all_installs.extend(gen_installs)
|
|
+
|
|
+ # The command to run to generate the dist-info directory.
|
|
+ mk_distinfo = os.path.join(os.path.dirname(os.path.abspath(__file__)),
|
|
+ 'mk_distinfo.py')
|
|
+ distinfo_dir = os.path.join(cfg.sip_module_dir,
|
|
+ '%s-%s.dist-info' % (sip_module_name.replace('.', '_'),
|
|
+ sip_version_str))
|
|
+
|
|
+ if opts.use_qmake:
|
|
+ run_mk_distinfo = '%s %s \\\"$(INSTALL_ROOT)\\\" %s installed.txt' % (
|
|
+ sys.executable, mk_distinfo, distinfo_dir)
|
|
+
|
|
+ sipconfig.inform("Creating top level .pro file...")
|
|
+
|
|
+ pro = open("sip.pro", "w")
|
|
+
|
|
+ pro.write("TEMPLATE = subdirs\n")
|
|
+ pro.write("SUBDIRS = %s\n" % " ".join(subdirs))
|
|
+
|
|
+ if top_installs:
|
|
+ # There will only be one element.
|
|
+ files, path = top_installs[0]
|
|
+ pro.write("\n")
|
|
+ pro.write("build_system.files = %s\n" % " ".join(files))
|
|
+ pro.write("build_system.path = %s\n" % quote(path))
|
|
+ pro.write("INSTALLS += build_system\n")
|
|
+
|
|
+ if opts.distinfo:
|
|
+ pro.write("\n")
|
|
+ pro.write("distinfo.extra = %s\n" % run_mk_distinfo)
|
|
+ pro.write("distinfo.path = %s\n" % quote(cfg.sip_module_dir))
|
|
+ pro.write("INSTALLS += distinfo\n")
|
|
+
|
|
+ pro.close()
|
|
+ else:
|
|
+ run_mk_distinfo = '%s %s "$(DESTDIR)" %s installed.txt' % (
|
|
+ sys.executable, mk_distinfo, distinfo_dir)
|
|
+
|
|
+ sipconfig.inform("Creating top level Makefile...")
|
|
+
|
|
+ # Note that mk_distinfo.py won't exist if we are building from the
|
|
+ # repository.
|
|
+ if opts.distinfo and os.path.isfile(mk_distinfo):
|
|
+ top_installs.append((run_mk_distinfo, None))
|
|
+
|
|
+ sipconfig.ParentMakefile(
|
|
+ configuration=cfg,
|
|
+ subdirs=subdirs,
|
|
+ installs=top_installs
|
|
+ ).generate()
|
|
+
|
|
+ if opts.use_qmake:
|
|
+ sipconfig.inform("Creating sip code generator .pro file...")
|
|
+
|
|
+ pro = open(os.path.join("sipgen", "sipgen.pro"), "w")
|
|
+
|
|
+ pro.write("TEMPLATE = app\n")
|
|
+ pro.write("TARGET = sip\n")
|
|
+ pro.write("CONFIG -= qt app_bundle\n")
|
|
+ pro.write("CONFIG += warn_on exceptions_off console %s\n" % (
|
|
+ ("debug" if opts.debug else "release")))
|
|
+
|
|
+ pro.write("\n")
|
|
+ pro.write("# Work around QTBUG-39300.\n")
|
|
+ pro.write("CONFIG -= android_install\n")
|
|
+
|
|
+ pro.write("\n")
|
|
+ pro.write("target.path = %s\n" % os.path.dirname(cfg.sip_bin))
|
|
+ pro.write("INSTALLS += target\n")
|
|
+
|
|
+ c_sources = get_sources("sipgen", "*.c")
|
|
+ pro.write("\n")
|
|
+ pro.write("SOURCES = %s\n" % " ".join(
|
|
+ [qmake_quote(s) for s in c_sources]))
|
|
+
|
|
+ headers = get_sources("sipgen", "*.h")
|
|
+ pro.write("\n")
|
|
+ pro.write("HEADERS = %s\n" % " ".join(
|
|
+ [qmake_quote(h) for h in headers]))
|
|
+
|
|
+ if gen_installs:
|
|
+ # There will only be one element.
|
|
+ files, path = gen_installs[0]
|
|
+ pro.write("\n")
|
|
+ pro.write("sip_h.files = %s\n" % " ".join(files))
|
|
+ pro.write("sip_h.path = %s\n" % quote(path))
|
|
+ pro.write("INSTALLS += sip_h\n")
|
|
+
|
|
+ pro.close()
|
|
+ else:
|
|
+ sipconfig.inform("Creating sip code generator Makefile...")
|
|
+
|
|
+ sipconfig.ProgramMakefile(
|
|
+ configuration=cfg,
|
|
+ build_file=os.path.join(src_dir, "sipgen", "sipgen.sbf"),
|
|
+ dir="sipgen",
|
|
+ install_dir=os.path.dirname(cfg.sip_bin),
|
|
+ installs=gen_installs,
|
|
+ console=1,
|
|
+ warnings=1,
|
|
+ universal=opts.universal,
|
|
+ arch=opts.arch,
|
|
+ deployment_target=opts.deployment_target
|
|
+ ).generate()
|
|
+
|
|
+ # The implied code generator installs.
|
|
+ if not opts.no_tools:
|
|
+ sip_dir, sip_exe = os.path.split(cfg.sip_bin)
|
|
+ if sys.platform == 'win32':
|
|
+ sip_exe += '.exe'
|
|
+
|
|
+ all_installs.append((sip_exe, sip_dir))
|
|
+
|
|
+ # The module installs.
|
|
+ module_installs=[]
|
|
+
|
|
+ if opts.pyi:
|
|
+ module_installs.append((os.path.join(src_dir, 'sip.pyi'), pyi_dir))
|
|
+
|
|
+ all_installs.extend(module_installs)
|
|
+
|
|
+ if not opts.no_module:
|
|
+ if sys.platform == 'win32':
|
|
+ mod = 'sip.lib' if opts.static else 'sip.pyd'
|
|
+ else:
|
|
+ mod = 'libsip.a' if opts.static else 'sip.so'
|
|
+
|
|
+ all_installs.append((mod, sip_module_dest_dir))
|
|
+
|
|
+ if opts.use_qmake:
|
|
+ sipconfig.inform("Creating sip module .pro file...")
|
|
+
|
|
+ pro = open(os.path.join("siplib", "siplib.pro"), "w")
|
|
+
|
|
+ pro.write("TEMPLATE = lib\n")
|
|
+ pro.write("TARGET = sip\n")
|
|
+ pro.write("CONFIG -= qt\n")
|
|
+ pro.write("CONFIG += warn_on exceptions_off %s %s\n" % (
|
|
+ ("staticlib" if opts.static else "plugin plugin_bundle"),
|
|
+ ("debug" if opts.debug else "release")))
|
|
+
|
|
+ pro.write("\n")
|
|
+ pro.write("# Work around QTBUG-39300.\n")
|
|
+ pro.write("CONFIG -= android_install\n")
|
|
+
|
|
+ pro.write("\n")
|
|
+ pro.write("INCLUDEPATH += %s\n" % cfg.py_inc_dir)
|
|
+ if cfg.py_conf_inc_dir != cfg.py_inc_dir:
|
|
+ pro.write("INCLUDEPATH += %s\n" % cfg.py_conf_inc_dir)
|
|
+
|
|
+ if sip_module_name != 'sip':
|
|
+ pro.write("\n")
|
|
+ pro.write('DEFINES += SIP_MODULE_NAME=%s\n' % sip_module_name)
|
|
+
|
|
+ base_name = sip_module_name.split('.')[-1]
|
|
+ if base_name != 'sip':
|
|
+ pro.write('DEFINES += SIP_MODULE_BASENAME=%s\n' % base_name)
|
|
+
|
|
+ if not opts.static:
|
|
+ # These only need to be correct for Windows.
|
|
+ debug_suffix = "_d" if opts.debug else ""
|
|
+ link_lib_dir = quote("-L" + cfg.py_lib_dir)
|
|
+
|
|
+ pro.write("""
|
|
+win32 {
|
|
+ PY_MODULE = sip%s.pyd
|
|
+ PY_MODULE_SRC = $(DESTDIR_TARGET)
|
|
+
|
|
+ LIBS += %s
|
|
+} else {
|
|
+ PY_MODULE = sip.so
|
|
+
|
|
+ macx {
|
|
+ PY_MODULE_SRC = $(TARGET).plugin/Contents/MacOS/$(TARGET)
|
|
+
|
|
+ QMAKE_LFLAGS += "-undefined dynamic_lookup"
|
|
+ } else {
|
|
+ PY_MODULE_SRC = $(TARGET)
|
|
+ }
|
|
+}
|
|
+
|
|
+QMAKE_POST_LINK = $(COPY_FILE) $$PY_MODULE_SRC $$PY_MODULE
|
|
+
|
|
+target.CONFIG = no_check_exist
|
|
+target.files = $$PY_MODULE
|
|
+""" % (debug_suffix, link_lib_dir))
|
|
+
|
|
+ pro.write("\n")
|
|
+ pro.write("target.path = %s\n" % sip_module_dest_dir)
|
|
+ pro.write("INSTALLS += target\n")
|
|
+
|
|
+ if opts.pyi:
|
|
+ pro.write("\n")
|
|
+ pro.write("sip_pyi.files = sip.pyi\n")
|
|
+ pro.write("sip_pyi.path = %s\n" % pyi_dir)
|
|
+ pro.write("INSTALLS += sip_pyi\n")
|
|
+
|
|
+ c_sources = get_sources("siplib", "*.c")
|
|
+ cpp_sources = get_sources("siplib", "*.cpp")
|
|
+ pro.write("\n")
|
|
+ pro.write("SOURCES = %s\n" % " ".join(
|
|
+ [qmake_quote(s) for s in c_sources + cpp_sources]))
|
|
+
|
|
+ headers = get_sources("siplib", "*.h")
|
|
+ pro.write("\n")
|
|
+ pro.write("HEADERS = %s\n" % " ".join(
|
|
+ [qmake_quote(h) for h in headers]))
|
|
+
|
|
+ pro.close()
|
|
+ else:
|
|
+ sipconfig.inform("Creating sip module Makefile...")
|
|
+
|
|
+ build_dir = os.getcwd()
|
|
+
|
|
+ makefile = sipconfig.ModuleMakefile(
|
|
+ configuration=cfg,
|
|
+ build_file=os.path.join(src_dir, "siplib", "siplib.sbf"),
|
|
+ dir="siplib",
|
|
+ install_dir=sip_module_dest_dir,
|
|
+ installs=module_installs,
|
|
+ console=1,
|
|
+ warnings=1,
|
|
+ static=opts.static,
|
|
+ debug=opts.debug,
|
|
+ universal=opts.universal,
|
|
+ arch=opts.arch,
|
|
+ deployment_target=opts.deployment_target
|
|
+ )
|
|
+
|
|
+ if sip_module_name != 'sip':
|
|
+ makefile.DEFINES.append('SIP_MODULE_NAME=%s' % sip_module_name)
|
|
+
|
|
+ base_name = sip_module_name.split('.')[-1]
|
|
+ if base_name != 'sip':
|
|
+ makefile.DEFINES.append('SIP_MODULE_BASENAME=%s' % base_name)
|
|
+
|
|
+ if src_dir != build_dir:
|
|
+ src_siplib_dir = os.path.join(src_dir, "siplib")
|
|
+ makefile.extra_include_dirs.append(src_siplib_dir)
|
|
+ makefile.extra_source_dirs.append(src_siplib_dir)
|
|
+
|
|
+ makefile.generate()
|
|
+
|
|
+ # Create the file containing all installed files.
|
|
+ if opts.distinfo:
|
|
+ installed = open('installed.txt', 'w')
|
|
+
|
|
+ for sources, dst in all_installs:
|
|
+ if not isinstance(sources, (list, tuple)):
|
|
+ sources = [sources]
|
|
+
|
|
+ for src in sources:
|
|
+ installed.write(
|
|
+ os.path.join(dst, os.path.basename(src)) + '\n')
|
|
+
|
|
+ installed.close()
|
|
+
|
|
+
|
|
+def get_sources(sources_dir, ext):
|
|
+ """ Get the quoted files with the specified extension from a directory. """
|
|
+
|
|
+ return [quote(f) for f in glob.glob(os.path.join(src_dir, sources_dir, ext))]
|
|
+
|
|
+
|
|
+def quote(path):
|
|
+ """ Return a path that is quoted if necessary. """
|
|
+
|
|
+ if ' ' in path:
|
|
+ path = '"' + path + '"'
|
|
+
|
|
+ return path
|
|
+
|
|
+
|
|
+def qmake_quote(path):
|
|
+ """ Return a path quoted for qmake if it contains spaces. path is the
|
|
+ path.
|
|
+ """
|
|
+
|
|
+ if ' ' in path:
|
|
+ path = '$$quote(%s)' % path
|
|
+
|
|
+ return path
|
|
+
|
|
+
|
|
+# Look out for recursive definitions.
|
|
+_extrapolating = []
|
|
+
|
|
+def _get_configuration_value(config, name, default=None):
|
|
+ """ Get a configuration value while extrapolating. """
|
|
+
|
|
+ value = config.get(name)
|
|
+ if value is None:
|
|
+ if default is None:
|
|
+ siputils.error("Configuration file references non-existent name '%s'." % name)
|
|
+
|
|
+ return default
|
|
+
|
|
+ parts = value.split('%(', 1)
|
|
+ while len(parts) == 2:
|
|
+ prefix, tail = parts
|
|
+
|
|
+ parts = tail.split(')', 1)
|
|
+ if len(parts) != 2:
|
|
+ siputils.error("Configuration file contains unterminated extrapolated name '%s'." % tail)
|
|
+
|
|
+ xtra_name, suffix = parts
|
|
+
|
|
+ if xtra_name in _extrapolating:
|
|
+ siputils.error("Configuration file contains a recursive reference to '%s'." % xtra_name)
|
|
+
|
|
+ _extrapolating.append(xtra_name)
|
|
+ xtra_value = _get_configuration_value(config, xtra_name)
|
|
+ _extrapolating.pop()
|
|
+
|
|
+ value = prefix + xtra_value + suffix
|
|
+
|
|
+ parts = value.split('%(', 1)
|
|
+
|
|
+ return value
|
|
+
|
|
+
|
|
+def update_from_configuration_file(config_file):
|
|
+ """ Update a number of globals from values read from a configuration file.
|
|
+ """
|
|
+
|
|
+ siputils.inform("Reading configuration from %s..." % config_file)
|
|
+
|
|
+ config = {}
|
|
+
|
|
+ # Read the file into the dict.
|
|
+ cfg = open(config_file)
|
|
+ line_nr = 0
|
|
+
|
|
+ for l in cfg:
|
|
+ line_nr += 1
|
|
+
|
|
+ # Strip comments and blank lines.
|
|
+ l = l.split('#')[0].strip()
|
|
+ if l == '':
|
|
+ continue
|
|
+
|
|
+ parts = l.split('=', 1)
|
|
+ if len(parts) == 2:
|
|
+ name = parts[0].strip()
|
|
+ value = parts[1].strip()
|
|
+ else:
|
|
+ name = value = ''
|
|
+
|
|
+ if name == '' or value == '':
|
|
+ siputils.error("%s:%d: Invalid line." % (config_file, line_nr))
|
|
+
|
|
+ config[name] = value
|
|
+ last_name = name
|
|
+
|
|
+ cfg.close()
|
|
+
|
|
+ # Enforce the presets.
|
|
+ version = siputils.version_to_string(py_version).split('.')
|
|
+ config['py_major'] = version[0]
|
|
+ config['py_minor'] = version[1]
|
|
+ config['sysroot'] = sysroot
|
|
+
|
|
+ # Override the relevant values.
|
|
+ global py_platform, plat_py_conf_inc_dir, plat_py_inc_dir, plat_py_lib_dir
|
|
+ global sip_bin_dir, sip_inc_dir, sip_module_dir, sip_sip_dir
|
|
+
|
|
+ py_platform = _get_configuration_value(config, 'py_platform', py_platform)
|
|
+ plat_py_inc_dir = _get_configuration_value(config, 'py_inc_dir',
|
|
+ plat_py_inc_dir)
|
|
+ plat_py_lib_dir = _get_configuration_value(config, 'py_pylib_dir',
|
|
+ plat_py_lib_dir)
|
|
+
|
|
+ # The pyconfig.h directory defaults to the Python.h directory.
|
|
+ plat_py_conf_inc_dir = _get_configuration_value(config, 'py_conf_inc_dir',
|
|
+ plat_py_inc_dir)
|
|
+
|
|
+ sip_bin_dir = _get_configuration_value(config, 'sip_bin_dir', sip_bin_dir)
|
|
+ sip_module_dir = _get_configuration_value(config, 'sip_module_dir',
|
|
+ sip_module_dir)
|
|
+
|
|
+ # Note that this defaults to any 'py_inc_dir' specified in the
|
|
+ # configuration file.
|
|
+ sip_inc_dir = _get_configuration_value(config, 'sip_inc_dir',
|
|
+ plat_py_inc_dir)
|
|
+
|
|
+ # Note that this is only used when creating sipconfig.py.
|
|
+ sip_sip_dir = _get_configuration_value(config, 'sip_sip_dir', sip_sip_dir)
|
|
+
|
|
+
|
|
+def create_optparser(sdk_dir):
|
|
+ """Create the parser for the command line.
|
|
+ """
|
|
+ def store_abspath(option, opt_str, value, parser):
|
|
+ setattr(parser.values, option.dest, os.path.abspath(value))
|
|
+
|
|
+ def store_abspath_dir(option, opt_str, value, parser):
|
|
+ if not os.path.isdir(value):
|
|
+ raise optparse.OptionValueError("'%s' is not a directory" % value)
|
|
+ setattr(parser.values, option.dest, os.path.abspath(value))
|
|
+
|
|
+ def store_abspath_file(option, opt_str, value, parser):
|
|
+ if not os.path.isfile(value):
|
|
+ raise optparse.OptionValueError("'%s' is not a file" % value)
|
|
+ setattr(parser.values, option.dest, os.path.abspath(value))
|
|
+
|
|
+ def store_version(option, opt_str, value, parser):
|
|
+ version = siputils.version_from_string(value)
|
|
+ if version is None:
|
|
+ raise optparse.OptionValueError(
|
|
+ "'%s' is not a valid version number" % value)
|
|
+ setattr(parser.values, option.dest, version)
|
|
+
|
|
+ p = optparse.OptionParser(usage="python %prog [opts] [macro=value] "
|
|
+ "[macro+=value]", version=sip_version_str)
|
|
+
|
|
+ # Note: we don't use %default to be compatible with Python 2.3.
|
|
+ p.add_option("-k", "--static", action="store_true", default=False,
|
|
+ dest="static", help="build the SIP module as a static library")
|
|
+ p.add_option("-p", "--platform", action="store", type="string",
|
|
+ metavar="PLATFORM", dest="platform", help="the platform/compiler "
|
|
+ "configuration [default: %s]" % build_platform)
|
|
+ p.add_option("-u", "--debug", action="store_true", default=False,
|
|
+ help="build with debugging symbols")
|
|
+ p.add_option("--sip-module", action="store", default="sip", type="string",
|
|
+ metavar="NAME", dest="sip_module", help="the package.module name "
|
|
+ "of the sip module [default: sip]")
|
|
+ p.add_option("--configuration", dest='config_file', type='string',
|
|
+ action='callback', callback=store_abspath_file, metavar="FILE",
|
|
+ help="FILE contains the target configuration")
|
|
+ p.add_option("--target-py-version", dest='target_py_version',
|
|
+ type='string', action='callback', callback=store_version,
|
|
+ metavar="VERSION",
|
|
+ help="the major.minor version of the target Python [default: "
|
|
+ "%s]" % siputils.version_to_string(py_version, parts=2))
|
|
+ p.add_option("--sysroot", dest='sysroot', type='string', action='callback',
|
|
+ callback=store_abspath_dir, metavar="DIR",
|
|
+ help="DIR is the target system root directory")
|
|
+ p.add_option("--no-module", action="store_true", default=False,
|
|
+ dest="no_module", help="disable the installation of the sip "
|
|
+ "module [default: enabled]")
|
|
+ p.add_option("--no-tools", action="store_true", default=False,
|
|
+ dest="no_tools", help="disable the building of the code generator "
|
|
+ "and the installation of the build system [default: enabled]")
|
|
+ p.add_option("--use-qmake", action="store_true", default=False,
|
|
+ dest="use_qmake", help="generate qmake .pro files instead of "
|
|
+ "Makefiles")
|
|
+
|
|
+ if sys.platform == 'darwin':
|
|
+ # Get the latest SDK to use as the default.
|
|
+ sdks = glob.glob(sdk_dir + '/MacOSX*.sdk')
|
|
+ if len(sdks) > 0:
|
|
+ sdks.sort()
|
|
+ _, default_sdk = os.path.split(sdks[-1])
|
|
+ else:
|
|
+ default_sdk = 'MacOSX10.4u.sdk'
|
|
+
|
|
+ g = optparse.OptionGroup(p, title="MacOS X Configuration")
|
|
+ g.add_option("--arch", action="append", default=[], dest="arch",
|
|
+ choices=["i386", "x86_64", "ppc"],
|
|
+ help="build for architecture ARCH")
|
|
+ g.add_option("--deployment-target", action="store", default='',
|
|
+ metavar="VERSION", dest="deployment_target",
|
|
+ help="set the value of the MACOSX_DEPLOYMENT_TARGET "
|
|
+ "environment variable in generated Makefiles")
|
|
+ g.add_option("-n", "--universal", action="store_true", default=False,
|
|
+ dest="universal",
|
|
+ help="build the SIP code generator and module as universal "
|
|
+ "binaries")
|
|
+ g.add_option("-s", "--sdk", action="store", default=default_sdk,
|
|
+ type="string", metavar="SDK", dest="sdk",
|
|
+ help="the name of the SDK used when building universal "
|
|
+ "binaries [default: %s]" % default_sdk)
|
|
+ p.add_option_group(g)
|
|
+
|
|
+ # Querying.
|
|
+ g = optparse.OptionGroup(p, title="Query")
|
|
+ g.add_option("--show-platforms", action="store_true", default=False,
|
|
+ dest="show_platforms", help="show the list of supported "
|
|
+ "platform/compiler configurations")
|
|
+ g.add_option("--show-build-macros", action="store_true", default=False,
|
|
+ dest="show_build_macros", help="show the list of supported build "
|
|
+ "macros")
|
|
+ p.add_option_group(g)
|
|
+
|
|
+ # Installation.
|
|
+ g = optparse.OptionGroup(p, title="Installation")
|
|
+ g.add_option("-b", "--bindir", action="callback", type="string",
|
|
+ metavar="DIR", dest="sipbindir", callback=store_abspath,
|
|
+ help="where the SIP code generator will be installed [default: "
|
|
+ "%s]" % plat_bin_dir)
|
|
+ g.add_option("-d", "--destdir", action="callback", type="string",
|
|
+ metavar="DIR", dest="destdir", callback=store_abspath,
|
|
+ help="where the SIP module will be installed [default: "
|
|
+ "%s]" % plat_py_site_dir)
|
|
+ g.add_option("-e", "--incdir", action="callback", type="string",
|
|
+ metavar="DIR", dest="sipincdir", callback=store_abspath,
|
|
+ help="where the SIP header file will be installed [default: "
|
|
+ "%s]" % plat_py_venv_inc_dir)
|
|
+ g.add_option("-v", "--sipdir", action="callback", type="string",
|
|
+ metavar="DIR", dest="sipsipdir", callback=store_abspath,
|
|
+ help="where .sip files are normally installed [default: "
|
|
+ "%s]" % plat_sip_dir)
|
|
+ g.add_option("--no-dist-info", action="store_false", default=True,
|
|
+ dest="distinfo",
|
|
+ help="do not install the dist-info directory")
|
|
+ g.add_option("--no-stubs", "--no-pyi", action="store_false", default=True,
|
|
+ dest="pyi",
|
|
+ help="do not install the sip.pyi stub file")
|
|
+ g.add_option("--stubsdir", "--pyidir", action="callback", type="string",
|
|
+ metavar="DIR", dest="pyidir", callback=store_abspath,
|
|
+ help="where the sip.pyi stub file will be installed [default: "
|
|
+ "%s]" % plat_py_site_dir)
|
|
+ p.add_option_group(g)
|
|
+
|
|
+ return p
|
|
+
|
|
+
|
|
+def main(argv):
|
|
+ """Create the configuration module module.
|
|
+
|
|
+ argv is the list of command line arguments.
|
|
+ """
|
|
+ siputils.inform("This is SIP %s for Python %s on %s." % (sip_version_str, sys.version.split()[0], sys.platform))
|
|
+
|
|
+ global py_version, build_platform
|
|
+
|
|
+ if py_version < 0x020300:
|
|
+ siputils.error("This version of SIP requires Python v2.3 or later.")
|
|
+
|
|
+ # Basic initialisation.
|
|
+ set_platform_directories()
|
|
+ set_build_platform()
|
|
+
|
|
+ # Build up the list of valid specs.
|
|
+ for s in os.listdir(os.path.join(src_dir, "specs")):
|
|
+ platform_specs.append(s)
|
|
+
|
|
+ # Determine the directory containing the default OS/X SDK.
|
|
+ if sys.platform == 'darwin':
|
|
+ for sdk_dir in MACOSX_SDK_DIRS:
|
|
+ if os.path.isdir(sdk_dir):
|
|
+ break
|
|
+ else:
|
|
+ sdk_dir = MACOSX_SDK_DIRS[0]
|
|
+ else:
|
|
+ sdk_dir = ''
|
|
+
|
|
+ # Parse the command line.
|
|
+ global opts
|
|
+
|
|
+ p = create_optparser(sdk_dir)
|
|
+ opts, args = p.parse_args()
|
|
+
|
|
+ # Override defaults that affect subsequent configuration.
|
|
+ if opts.target_py_version is not None:
|
|
+ py_version = opts.target_py_version
|
|
+
|
|
+ if opts.sysroot is not None:
|
|
+ global sysroot
|
|
+ sysroot = opts.sysroot
|
|
+
|
|
+ # Make sure MacOS specific options get initialised.
|
|
+ if sys.platform != 'darwin':
|
|
+ opts.universal = ''
|
|
+ opts.arch = []
|
|
+ opts.sdk = ''
|
|
+ opts.deployment_target = ''
|
|
+
|
|
+ # Handle the query options.
|
|
+ if opts.show_platforms or opts.show_build_macros:
|
|
+ if opts.show_platforms:
|
|
+ show_platforms()
|
|
+
|
|
+ if opts.show_build_macros:
|
|
+ show_macros()
|
|
+
|
|
+ sys.exit()
|
|
+
|
|
+ # Convert the list 'arch' option to a string. Multiple architectures
|
|
+ # imply a universal binary.
|
|
+ if len(opts.arch) > 1:
|
|
+ opts.universal = True
|
|
+
|
|
+ opts.arch = ' '.join(opts.arch)
|
|
+
|
|
+ # Convert the boolean 'universal' option to a string.
|
|
+ if opts.universal:
|
|
+ if '/' in opts.sdk:
|
|
+ opts.universal = os.path.abspath(opts.sdk)
|
|
+ else:
|
|
+ opts.universal = sdk_dir + '/' + opts.sdk
|
|
+
|
|
+ if not os.path.isdir(opts.universal):
|
|
+ siputils.error("Unable to find the SDK directory %s. Use the --sdk flag to specify the name of the SDK or its full path." % opts.universal)
|
|
+
|
|
+ if opts.arch == '':
|
|
+ opts.arch = DEFAULT_MACOSX_ARCH
|
|
+ else:
|
|
+ opts.universal = ''
|
|
+
|
|
+ # No sip module also implies no stubs.
|
|
+ if opts.no_module:
|
|
+ opts.pyi = False
|
|
+
|
|
+ # Apply the overrides from any configuration file.
|
|
+ global plat_bin_dir, plat_py_conf_inc_dir, plat_py_inc_dir
|
|
+ global plat_py_lib_dir, plat_py_site_dir, plat_sip_dir
|
|
+ global sip_bin_dir, sip_inc_dir, sip_root_dir, sip_module_dir, sip_sip_dir
|
|
+ global sip_module_dest_dir, sip_module_name, pyi_dir
|
|
+
|
|
+ # Set defaults.
|
|
+ sip_bin_dir = plat_bin_dir
|
|
+ sip_inc_dir = plat_py_venv_inc_dir
|
|
+ sip_root_dir = plat_py_site_dir
|
|
+ sip_sip_dir = plat_sip_dir
|
|
+
|
|
+ if opts.config_file is not None:
|
|
+ update_from_configuration_file(opts.config_file)
|
|
+ elif sysroot != '':
|
|
+ def apply_sysroot(d):
|
|
+ if d.startswith(sys.prefix):
|
|
+ d = sysroot + d[len(sys.prefix):]
|
|
+
|
|
+ return d
|
|
+
|
|
+ plat_bin_dir = apply_sysroot(plat_bin_dir)
|
|
+ plat_py_conf_inc_dir = apply_sysroot(plat_py_conf_inc_dir)
|
|
+ plat_py_inc_dir = apply_sysroot(plat_py_inc_dir)
|
|
+ plat_py_lib_dir = apply_sysroot(plat_py_lib_dir)
|
|
+ plat_py_site_dir = apply_sysroot(plat_py_site_dir)
|
|
+ plat_sip_dir = apply_sysroot(plat_sip_dir)
|
|
+
|
|
+ sip_bin_dir = apply_sysroot(sip_bin_dir)
|
|
+ sip_inc_dir = apply_sysroot(sip_inc_dir)
|
|
+ sip_root_dir = apply_sysroot(sip_root_dir)
|
|
+ sip_sip_dir = apply_sysroot(sip_sip_dir)
|
|
+
|
|
+ # Fix the name of the sip module.
|
|
+ if opts.destdir is not None:
|
|
+ sip_root_dir = opts.destdir
|
|
+
|
|
+ # The module directory might have been set in a configuration file.
|
|
+ if not sip_module_dir:
|
|
+ sip_module_dir = sip_root_dir
|
|
+
|
|
+ sip_module_name = opts.sip_module
|
|
+
|
|
+ module_path = sip_module_name.split(".")
|
|
+
|
|
+ if len(module_path) > 1:
|
|
+ del module_path[-1]
|
|
+ module_path.insert(0, sip_module_dir)
|
|
+ sip_module_dest_dir = os.path.join(*module_path)
|
|
+ else:
|
|
+ sip_module_dest_dir = sip_module_dir
|
|
+
|
|
+ # Override from the command line.
|
|
+ if opts.platform is not None:
|
|
+ build_platform = opts.platform
|
|
+
|
|
+ if opts.sipbindir is not None:
|
|
+ sip_bin_dir = opts.sipbindir
|
|
+
|
|
+ if opts.sipincdir is not None:
|
|
+ sip_inc_dir = opts.sipincdir
|
|
+
|
|
+ if opts.sipsipdir is not None:
|
|
+ sip_sip_dir = opts.sipsipdir
|
|
+
|
|
+ if opts.pyidir is not None:
|
|
+ pyi_dir = opts.pyidir
|
|
+ else:
|
|
+ pyi_dir = sip_module_dest_dir
|
|
+
|
|
+ # Get the platform specific macros for building.
|
|
+ macros = siputils.parse_build_macros(
|
|
+ os.path.join(src_dir, "specs", build_platform), build_macro_names,
|
|
+ args)
|
|
+
|
|
+ if macros is None:
|
|
+ siputils.error("Unsupported macro name specified. Use the --show-build-macros flag to see a list of supported macros.")
|
|
+ sys.exit(2)
|
|
+
|
|
+ # Tell the user what's been found.
|
|
+ inform_user()
|
|
+
|
|
+ # Install the configuration module.
|
|
+ create_config("sipconfig.py", os.path.join(src_dir, "siputils.py"),
|
|
+ macros)
|
|
+
|
|
+ # Create the Makefiles.
|
|
+ create_makefiles(macros)
|
|
+
|
|
+
|
|
+###############################################################################
|
|
+# The script starts here.
|
|
+###############################################################################
|
|
+
|
|
+if __name__ == "__main__":
|
|
+ try:
|
|
+ main(sys.argv)
|
|
+ except SystemExit:
|
|
+ raise
|
|
+ except:
|
|
+ sys.stderr.write(
|
|
+"""An internal error occured. Please report all the output from the program,
|
|
+including the following traceback, to support@riverbankcomputing.com.
|
|
+""")
|
|
+ raise
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/METADATA.in sip/METADATA.in
|
|
--- ./sip-4.19.12.orig/METADATA.in 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/METADATA.in 2018-09-18 17:52:23.267544161 -0400
|
|
@@ -0,0 +1,81 @@
|
|
+Metadata-Version: 1.1
|
|
+Name: PyQt5_sip
|
|
+Version: @RB_VERSION@
|
|
+Summary: Python extension module support for PyQt5
|
|
+Home-page: https://www.riverbankcomputing.com/software/sip/
|
|
+Author: Riverbank Computing Limited
|
|
+Author-email: info@riverbankcomputing.com
|
|
+Platform: UNIX
|
|
+Platform: OS X
|
|
+Platform: Windows
|
|
+Platform: iOS
|
|
+Platform: Android
|
|
+
|
|
+SIP - A Python Extension Module Generator for C and C++ Libraries
|
|
+=================================================================
|
|
+
|
|
+What is SIP?
|
|
+------------
|
|
+
|
|
+One of the features of Python that makes it so powerful is the ability to take
|
|
+existing libraries, written in C or C++, and make them available as Python
|
|
+extension modules. Such extension modules are often called bindings for the
|
|
+library.
|
|
+
|
|
+SIP is a tool that makes it very easy to create Python bindings for C and C++
|
|
+libraries. It was originally developed to create PyQt, the Python bindings for
|
|
+the Qt toolkit, but can be used to create bindings for any C or C++ library.
|
|
+
|
|
+SIP comprises a code generator and a Python module. The code generator
|
|
+processes a set of specification files and generates C or C++ code which is
|
|
+then compiled to create the bindings extension module. The Python module
|
|
+provides support functions to the automatically generated code. Normally a
|
|
+package containing SIP generated bindings includes a private copy of the
|
|
+Python module.
|
|
+
|
|
+The specification files contain a description of the interface of the C or C++
|
|
+library, i.e. the classes, methods, functions and variables. The format of a
|
|
+specification file is almost identical to a C or C++ header file, so much so
|
|
+that the easiest way of creating a specification file is to edit the
|
|
+corresponding header file.
|
|
+
|
|
+SIP makes it easy to exploit existing C or C++ libraries in a productive
|
|
+interpretive programming environment. SIP also makes it easy to take a Python
|
|
+application (maybe a prototype) and selectively implement parts of the
|
|
+application (maybe for performance reasons) in C or C++.
|
|
+
|
|
+
|
|
+Author
|
|
+------
|
|
+
|
|
+SIP is copyright (c) Riverbank Computing Limited. Its homepage is
|
|
+https://www.riverbankcomputing.com/software/sip/.
|
|
+
|
|
+Support may be obtained from the PyQt mailing list at
|
|
+https://www.riverbankcomputing.com/mailman/listinfo/pyqt/.
|
|
+
|
|
+
|
|
+License
|
|
+-------
|
|
+
|
|
+SIP is released under the GPL v2, GPL v3 licenses, and under a license similar
|
|
+to the BSD license.
|
|
+
|
|
+
|
|
+Installation
|
|
+------------
|
|
+
|
|
+SIP source packages can be dowloaded from
|
|
+https://www.riverbankcomputing.com/software/sip/download/.
|
|
+
|
|
+Wheels containing the private copy of the Python module for PyQt5 for 32 and
|
|
+64-bit Windows, 64-bit macOS and 64-bit Linux can be installed from PyPI::
|
|
+
|
|
+ pip3 install PyQt5_sip
|
|
+
|
|
+
|
|
+Documentation
|
|
+-------------
|
|
+
|
|
+The documentation for the latest release can be found
|
|
+`here <http://pyqt.sourceforge.net/Docs/sip4/>`__.
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/mk_distinfo.py sip/mk_distinfo.py
|
|
--- ./sip-4.19.12.orig/mk_distinfo.py 2018-07-04 12:00:06.000000000 -0400
|
|
+++ sip/mk_distinfo.py 1969-12-31 19:00:00.000000000 -0500
|
|
@@ -1,120 +0,0 @@
|
|
-# This script handles the creation of the PEP 376 .dist-info directory for a
|
|
-# package.
|
|
-#
|
|
-# Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com>
|
|
-#
|
|
-# This script is distributed under the terms of the GNU General Public License
|
|
-# v3 as published by the Free Software Foundation.
|
|
-#
|
|
-# This script is supplied WITHOUT ANY WARRANTY; without even the implied
|
|
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
-
|
|
-
|
|
-import base64
|
|
-import hashlib
|
|
-import os
|
|
-import shutil
|
|
-import sys
|
|
-
|
|
-
|
|
-def error(message):
|
|
- """ Display an error message and terminate. """
|
|
-
|
|
- sys.stderr.write(message + '\n')
|
|
- sys.exit(1)
|
|
-
|
|
-
|
|
-# Parse the command line.
|
|
-if len(sys.argv) != 4:
|
|
- error("usage: {0} prefix dist-info installed".format(sys.argv[0]))
|
|
-
|
|
-prefix_dir = sys.argv[1]
|
|
-distinfo_dir = sys.argv[2]
|
|
-installed_fn = sys.argv[3]
|
|
-
|
|
-# Read the list of installed files.
|
|
-installed_f = open(installed_fn)
|
|
-installed = installed_f.read().strip().split('\n')
|
|
-installed_f.close()
|
|
-
|
|
-# The prefix directory corresponds to DESTDIR or INSTALL_ROOT.
|
|
-real_distinfo_dir = prefix_dir + distinfo_dir
|
|
-
|
|
-# Remove any existing dist-info directory and create an empty one.
|
|
-if os.path.exists(real_distinfo_dir):
|
|
- try:
|
|
- shutil.rmtree(real_distinfo_dir)
|
|
- except:
|
|
- error("unable to delete existing {0}".format(real_distinfo_dir))
|
|
-
|
|
-try:
|
|
- os.mkdir(real_distinfo_dir)
|
|
-except:
|
|
- error("unable to create {0}".format(real_distinfo_dir))
|
|
-
|
|
-# Create the INSTALLER file. We pretend that pip was the installer.
|
|
-installer_fn = os.path.join(distinfo_dir, 'INSTALLER')
|
|
-installer_f = open(prefix_dir + installer_fn, 'w')
|
|
-installer_f.write('pip\n')
|
|
-installer_f.close()
|
|
-
|
|
-installed.append(installer_fn)
|
|
-
|
|
-# Create the METADATA file.
|
|
-METADATA = '''Metadata-Version: 1.1
|
|
-Name: {0}
|
|
-Version: {1}
|
|
-'''
|
|
-
|
|
-distinfo_path, distinfo_base = os.path.split(distinfo_dir)
|
|
-pkg_name, version = os.path.splitext(distinfo_base)[0].split('-')
|
|
-
|
|
-metadata_fn = os.path.join(distinfo_dir, 'METADATA')
|
|
-metadata_f = open(prefix_dir + metadata_fn, 'w')
|
|
-metadata_f.write(METADATA.format(pkg_name, version))
|
|
-metadata_f.close()
|
|
-
|
|
-installed.append(metadata_fn)
|
|
-
|
|
-# Create the RECORD file.
|
|
-record_fn = os.path.join(distinfo_dir, 'RECORD')
|
|
-record_f = open(prefix_dir + record_fn, 'w')
|
|
-
|
|
-for name in installed:
|
|
- native_name = prefix_dir + name.replace('/', os.sep)
|
|
- if os.path.isdir(native_name):
|
|
- all_fns = []
|
|
-
|
|
- for root, dirs, files in os.walk(native_name):
|
|
- for f in files:
|
|
- all_fns.append(os.path.join(root, f).replace(os.sep, '/'))
|
|
-
|
|
- if '__pycache__' in dirs:
|
|
- dirs.remove('__pycache__')
|
|
- else:
|
|
- all_fns = [prefix_dir + name]
|
|
-
|
|
- for fn in all_fns:
|
|
- real_distinfo_path = prefix_dir + distinfo_path
|
|
-
|
|
- if fn.startswith(real_distinfo_path):
|
|
- fn_name = fn[len(real_distinfo_path) + 1:].replace('\\', '/')
|
|
- elif fn.startswith(prefix_dir + sys.prefix):
|
|
- fn_name = os.path.relpath(
|
|
- fn, real_distinfo_path).replace('\\', '/')
|
|
- else:
|
|
- fn_name = fn[len(prefix_dir):]
|
|
-
|
|
- fn_f = open(fn, 'rb')
|
|
- data = fn_f.read()
|
|
- fn_f.close()
|
|
-
|
|
- digest = base64.urlsafe_b64encode(
|
|
- hashlib.sha256(data).digest()).rstrip(b'=').decode('ascii')
|
|
-
|
|
- record_f.write(
|
|
- '{0},sha256={1},{2}\n'.format(fn_name, digest, len(data)))
|
|
-
|
|
-record_f.write('{0}/RECORD,,\n'.format(distinfo_base))
|
|
-
|
|
-record_f.close()
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/rb-product sip/rb-product
|
|
--- ./sip-4.19.12.orig/rb-product 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/rb-product 2018-09-18 17:52:23.269544132 -0400
|
|
@@ -0,0 +1 @@
|
|
+sip
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/Roadmap.rst sip/Roadmap.rst
|
|
--- ./sip-4.19.12.orig/Roadmap.rst 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/Roadmap.rst 2018-09-18 17:52:23.268544146 -0400
|
|
@@ -0,0 +1,75 @@
|
|
+SIP v5 Roadmap
|
|
+==============
|
|
+
|
|
+The next major release of SIP will be v5 and is currently being planned.
|
|
+
|
|
+The major focus of v5 will be to:
|
|
+
|
|
+- eliminate inconsistencies in the syntax of specification files
|
|
+
|
|
+- fill in some gaps in the C/C++ support
|
|
+
|
|
+- restructure, refactor and rewrite the code as appropriate to ensure that it
|
|
+ is easy to test, maintain and enhance over the long term.
|
|
+
|
|
+There is no plan to introduce any significant new functionality.
|
|
+
|
|
+Any feedback on the roadmap is very welcome.
|
|
+
|
|
+
|
|
+Migration from SIP v4 to v5
|
|
+---------------------------
|
|
+
|
|
+SIP v4.19.x will be the final series of SIP v4 releases. All features that
|
|
+will be removed in SIP v5 will trigger a deprecation warning. These will be
|
|
+Use of the old syntax will trigger deprecation warning messages. These will be
|
|
+disabled by default and will be enabled by passing the ``-w`` command line
|
|
+option to the code generator.
|
|
+
|
|
+A set of specification files that does not trigger any deprecation warnings
|
|
+with SIP v4.19.x should work unchanged with SIP v5.
|
|
+
|
|
+
|
|
+Roadmap
|
|
+-------
|
|
+
|
|
+Here we list specific changes that are planned. Note that no changes are
|
|
+planned for the ``sip`` extension module.
|
|
+
|
|
+- The syntax of directives will be revised to follow a standard pattern that
|
|
+ supports arguments and sub-directives in a consistent manner.
|
|
+
|
|
+- All directives will behave consistently when enclosed in ``%If``/``%End``
|
|
+ blocks.
|
|
+
|
|
+- Support will be added for fixed sized arrays of any type.
|
|
+
|
|
+- Support for optionally detecting overflows when converting from Python
|
|
+ integers to C/C++ types will be investigated.
|
|
+
|
|
+- Invalid annotations will trigger an error message rather than being silently
|
|
+ ignored.
|
|
+
|
|
+- Error messages will be improved and will always include a reference to the
|
|
+ originating file and line number.
|
|
+
|
|
+- Support for the generation of QScintilla API files will be removed. A
|
|
+ utility to create these files from the XML export file will be added to
|
|
+ QScintilla.
|
|
+
|
|
+- The code generator's ``-I`` command line option will support Windows style
|
|
+ path names.
|
|
+
|
|
+- The code generator may be extended using plugins.
|
|
+
|
|
+- All PyQt specific support will be removed and implemented in appropriate
|
|
+ plugins that will be distributed as part of PyQt.
|
|
+
|
|
+- The design of the code generator will allow for the implementation of plugins
|
|
+ to support generating bindings for languages other than Python.
|
|
+
|
|
+- The code generator will be reimplemented using Python v3. It will be able to
|
|
+ be used as a standalone application or a package.
|
|
+
|
|
+- The build system will be removed. SIP itself will be distributed as a
|
|
+ ``distutils`` package.
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/export.c sip/sipgen/export.c
|
|
--- ./sip-4.19.12.orig/sipgen/export.c 2018-07-05 05:54:58.000000000 -0400
|
|
+++ sip/sipgen/export.c 2018-09-24 13:12:20.671276115 -0400
|
|
@@ -1,7 +1,7 @@
|
|
/*
|
|
* The XML and API file generator module for SIP.
|
|
*
|
|
- * Copyright (c) 2015 Riverbank Computing Limited <info@riverbankcomputing.com>
|
|
+ * Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com>
|
|
*
|
|
* This file is part of SIP.
|
|
*
|
|
@@ -34,32 +34,34 @@
|
|
|
|
static void apiEnums(sipSpec *pt, moduleDef *mod, classDef *scope, FILE *fp);
|
|
static void apiVars(sipSpec *pt, moduleDef *mod, classDef *scope, FILE *fp);
|
|
-static int apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct,
|
|
- int sec, FILE *fp);
|
|
-static int apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope,
|
|
- overDef *od, int sec, FILE *fp);
|
|
+static void apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct,
|
|
+ FILE *fp);
|
|
+static void apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope,
|
|
+ overDef *od, FILE *fp);
|
|
static int apiArgument(sipSpec *pt, argDef *ad, int out, int need_comma,
|
|
- int sec, int names, int defaults, int in_str, FILE *fp);
|
|
+ int names, int defaults, int in_str, FILE *fp);
|
|
static void xmlClass(sipSpec *pt, moduleDef *mod, classDef *cd, FILE *fp);
|
|
static void xmlEnums(sipSpec *pt, moduleDef *mod, classDef *scope, int indent,
|
|
FILE *fp);
|
|
static void xmlVars(sipSpec *pt, moduleDef *mod, classDef *scope, int indent,
|
|
FILE *fp);
|
|
-static void xmlFunction(sipSpec *pt, classDef *scope, memberDef *md,
|
|
- overDef *oloads, int indent, FILE *fp);
|
|
-static int xmlCtor(sipSpec *pt, classDef *scope, ctorDef *ct, int sec,
|
|
+static void xmlFunction(sipSpec *pt, moduleDef *mod, classDef *scope,
|
|
+ memberDef *md, overDef *oloads, int indent, FILE *fp);
|
|
+static void xmlCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct,
|
|
int indent, FILE *fp);
|
|
-static int xmlOverload(sipSpec *pt, classDef *scope, memberDef *md,
|
|
- overDef *od, classDef *xtnds, int stat, int sec, int indent, FILE *fp);
|
|
+static void xmlOverload(sipSpec *pt, moduleDef *mod, classDef *scope,
|
|
+ memberDef *md, overDef *od, classDef *xtnds, int stat, int indent,
|
|
+ FILE *fp);
|
|
static void xmlCppSignature(FILE *fp, overDef *od);
|
|
-static void xmlArgument(sipSpec *pt, argDef *ad, const char *dir, int res_xfer,
|
|
- int sec, int indent, FILE *fp);
|
|
-static void xmlType(sipSpec *pt, argDef *ad, int sec, FILE *fp);
|
|
+static void xmlArgument(sipSpec *pt, moduleDef *mod, argDef *ad, int out,
|
|
+ KwArgs kwargs, int res_xfer, int indent, FILE *fp);
|
|
+static void xmlType(sipSpec *pt, moduleDef *mod, argDef *ad, int out,
|
|
+ KwArgs kwargs, FILE *fp);
|
|
static void xmlIndent(int indent, FILE *fp);
|
|
-static const char *dirAttribute(argDef *ad);
|
|
-static const char *pyType(sipSpec *pt, argDef *ad, int sec, classDef **scope);
|
|
-static int exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd,
|
|
- int sec, int names, int defaults, int in_str, int is_signal);
|
|
+static void xmlRealName(scopedNameDef *fqcname, FILE *fp);
|
|
+static const char *pyType(sipSpec *pt, argDef *ad, classDef **scope);
|
|
+static void exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd,
|
|
+ int names, int defaults, int in_str, int is_signal);
|
|
|
|
|
|
/*
|
|
@@ -86,8 +88,7 @@
|
|
if (od->common->slot != no_slot)
|
|
continue;
|
|
|
|
- if (apiOverload(pt, mod, NULL, od, FALSE, fp))
|
|
- apiOverload(pt, mod, NULL, od, TRUE, fp);
|
|
+ apiOverload(pt, mod, NULL, od, fp);
|
|
}
|
|
|
|
for (cd = pt->classes; cd != NULL; cd = cd->next)
|
|
@@ -108,8 +109,7 @@
|
|
if (isPrivateCtor(ct))
|
|
continue;
|
|
|
|
- if (apiCtor(pt, mod, cd, ct, FALSE, fp))
|
|
- apiCtor(pt, mod, cd, ct, TRUE, fp);
|
|
+ apiCtor(pt, mod, cd, ct, fp);
|
|
}
|
|
|
|
for (od = cd->overs; od != NULL; od = od->next)
|
|
@@ -120,8 +120,7 @@
|
|
if (od->common->slot != no_slot)
|
|
continue;
|
|
|
|
- if (apiOverload(pt, mod, cd, od, FALSE, fp))
|
|
- apiOverload(pt, mod, cd, od, TRUE, fp);
|
|
+ apiOverload(pt, mod, cd, od, fp);
|
|
}
|
|
}
|
|
|
|
@@ -132,10 +131,10 @@
|
|
/*
|
|
* Generate an API ctor.
|
|
*/
|
|
-static int apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct,
|
|
- int sec, FILE *fp)
|
|
+static void apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct,
|
|
+ FILE *fp)
|
|
{
|
|
- int need_sec = FALSE, need_comma, a;
|
|
+ int need_comma, a;
|
|
|
|
/* Do the callable type form. */
|
|
fprintf(fp, "%s.", mod->name);
|
|
@@ -148,11 +147,8 @@
|
|
{
|
|
argDef *ad = &ct->pysig.args[a];
|
|
|
|
- need_comma = apiArgument(pt, ad, FALSE, need_comma, sec, TRUE, TRUE,
|
|
- FALSE, fp);
|
|
-
|
|
- if (ad->atype == rxcon_type || ad->atype == rxdis_type)
|
|
- need_sec = TRUE;
|
|
+ need_comma = apiArgument(pt, ad, FALSE, need_comma, TRUE, TRUE, FALSE,
|
|
+ fp);
|
|
}
|
|
|
|
fprintf(fp, ")\n");
|
|
@@ -163,12 +159,10 @@
|
|
fprintf(fp, ".__init__?%d(self", CLASS_ID);
|
|
|
|
for (a = 0; a < ct->pysig.nrArgs; ++a)
|
|
- apiArgument(pt, &ct->pysig.args[a], FALSE, TRUE, sec, TRUE, TRUE,
|
|
- FALSE, fp);
|
|
+ apiArgument(pt, &ct->pysig.args[a], FALSE, TRUE, TRUE, TRUE, FALSE,
|
|
+ fp);
|
|
|
|
fprintf(fp, ")\n");
|
|
-
|
|
- return need_sec;
|
|
}
|
|
|
|
|
|
@@ -231,21 +225,16 @@
|
|
/*
|
|
* Generate a single API overload.
|
|
*/
|
|
-static int apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope,
|
|
- overDef *od, int sec, FILE *fp)
|
|
+static void apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope,
|
|
+ overDef *od, FILE *fp)
|
|
{
|
|
- int need_sec;
|
|
-
|
|
fprintf(fp, "%s.", mod->name);
|
|
prScopedPythonName(fp, scope, od->common->pyname->text);
|
|
fprintf(fp, "?%d", METHOD_ID);
|
|
|
|
- need_sec = exportPythonSignature(pt, fp, &od->pysig, sec, TRUE, TRUE,
|
|
- FALSE, FALSE);
|
|
+ exportPythonSignature(pt, fp, &od->pysig, TRUE, TRUE, FALSE, FALSE);
|
|
|
|
fprintf(fp, "\n");
|
|
-
|
|
- return need_sec;
|
|
}
|
|
|
|
|
|
@@ -253,7 +242,7 @@
|
|
* Generate the API for an argument.
|
|
*/
|
|
static int apiArgument(sipSpec *pt, argDef *ad, int out, int need_comma,
|
|
- int sec, int names, int defaults, int in_str, FILE *fp)
|
|
+ int names, int defaults, int in_str, FILE *fp)
|
|
{
|
|
const char *tname;
|
|
classDef *tscope;
|
|
@@ -261,10 +250,7 @@
|
|
if (isArraySize(ad))
|
|
return need_comma;
|
|
|
|
- if (sec && (ad->atype == slotcon_type || ad->atype == slotdis_type))
|
|
- return need_comma;
|
|
-
|
|
- if ((tname = pyType(pt, ad, sec, &tscope)) == NULL)
|
|
+ if ((tname = pyType(pt, ad, &tscope)) == NULL)
|
|
return need_comma;
|
|
|
|
if (need_comma)
|
|
@@ -327,7 +313,7 @@
|
|
xmlVars(pt, mod, NULL, 1, fp);
|
|
|
|
for (md = mod->othfuncs; md != NULL; md = md->next)
|
|
- xmlFunction(pt, NULL, md, mod->overs, 1, fp);
|
|
+ xmlFunction(pt, mod, NULL, md, mod->overs, 1, fp);
|
|
|
|
fprintf(fp, "</Module>\n");
|
|
|
|
@@ -336,6 +322,26 @@
|
|
|
|
|
|
/*
|
|
+ * Generate a 'realname' attribute containing a fully qualified C/C++ name.
|
|
+ */
|
|
+static void xmlRealName(scopedNameDef *fqcname, FILE *fp)
|
|
+{
|
|
+ const char *sep = "";
|
|
+ scopedNameDef *snd;
|
|
+
|
|
+ fprintf(fp, " realname=\"");
|
|
+
|
|
+ for (snd = removeGlobalScope(fqcname); snd != NULL; snd = snd->next)
|
|
+ {
|
|
+ fprintf(fp, "%s%s", sep, snd->name);
|
|
+ sep = "::";
|
|
+ }
|
|
+
|
|
+ fprintf(fp, "\"");
|
|
+}
|
|
+
|
|
+
|
|
+/*
|
|
* Generate the XML for a class.
|
|
*/
|
|
static void xmlClass(sipSpec *pt, moduleDef *mod, classDef *cd, FILE *fp)
|
|
@@ -358,9 +364,11 @@
|
|
{
|
|
xmlIndent(indent++, fp);
|
|
fprintf(fp, "<Class name=\"");
|
|
- prScopedPythonName(fp, cd->ecd, cd->pyname->text);
|
|
+ restPyClass(cd, FALSE, fp);
|
|
fprintf(fp, "\"");
|
|
|
|
+ xmlRealName(classFQCName(cd), fp);
|
|
+
|
|
if (cd->picklecode != NULL)
|
|
fprintf(fp, " pickle=\"1\"");
|
|
|
|
@@ -384,7 +392,7 @@
|
|
if (cl != cd->supers)
|
|
fprintf(fp, " ");
|
|
|
|
- prScopedPythonName(fp, cl->cd->ecd, cl->cd->pyname->text);
|
|
+ restPyClass(cl->cd, TRUE, fp);
|
|
}
|
|
|
|
fprintf(fp, "\"");
|
|
@@ -398,15 +406,14 @@
|
|
if (isPrivateCtor(ct))
|
|
continue;
|
|
|
|
- if (xmlCtor(pt, cd, ct, FALSE, indent, fp))
|
|
- xmlCtor(pt, cd, ct, TRUE, indent, fp);
|
|
+ xmlCtor(pt, mod, cd, ct, indent, fp);
|
|
}
|
|
|
|
xmlEnums(pt, mod, cd, indent, fp);
|
|
xmlVars(pt, mod, cd, indent, fp);
|
|
|
|
for (md = cd->members; md != NULL; md = md->next)
|
|
- xmlFunction(pt, cd, md, cd->overs, indent, fp);
|
|
+ xmlFunction(pt, mod, cd, md, cd->overs, indent, fp);
|
|
|
|
if (!isHiddenNamespace(cd))
|
|
{
|
|
@@ -438,15 +445,22 @@
|
|
|
|
xmlIndent(indent++, fp);
|
|
fprintf(fp, "<Enum name=\"");
|
|
- prScopedPythonName(fp, ed->ecd, ed->pyname->text);
|
|
- fprintf(fp, "\">\n");
|
|
+ restPyEnum(ed, FALSE, fp);
|
|
+ fprintf(fp, "\"");
|
|
+
|
|
+ xmlRealName(ed->fqcname, fp);
|
|
+
|
|
+ fprintf(fp, ">\n");
|
|
|
|
for (emd = ed->members; emd != NULL; emd = emd->next)
|
|
{
|
|
xmlIndent(indent, fp);
|
|
- fprintf(fp, "<EnumMember name=\"");
|
|
- prScopedPythonName(fp, ed->ecd, emd->pyname->text);
|
|
- fprintf(fp, "\"/>\n");
|
|
+ fprintf(fp, "<EnumMember name=\"%s\"", emd->pyname->text);
|
|
+
|
|
+ if (strcmp(emd->pyname->text, emd->cname) != 0)
|
|
+ fprintf(fp, " realname=\"%s\"", emd->cname);
|
|
+
|
|
+ fprintf(fp, "/>\n");
|
|
}
|
|
|
|
xmlIndent(--indent, fp);
|
|
@@ -495,7 +509,7 @@
|
|
if (isStaticVar(vd))
|
|
fprintf(fp, " static=\"1\"");
|
|
|
|
- xmlType(pt, &vd->type, FALSE, fp);
|
|
+ xmlType(pt, mod, &vd->type, FALSE, NoKwArgs, fp);
|
|
fprintf(fp, "/>\n");
|
|
}
|
|
}
|
|
@@ -504,10 +518,10 @@
|
|
/*
|
|
* Generate the XML for a ctor.
|
|
*/
|
|
-static int xmlCtor(sipSpec *pt, classDef *scope, ctorDef *ct, int sec,
|
|
+static void xmlCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct,
|
|
int indent, FILE *fp)
|
|
{
|
|
- int a, need_sec;
|
|
+ int a;
|
|
|
|
xmlIndent(indent++, fp);
|
|
fprintf(fp, "<Function name=\"");
|
|
@@ -518,38 +532,34 @@
|
|
if (ct->pysig.nrArgs == 0)
|
|
{
|
|
fprintf(fp, "/>\n");
|
|
- return FALSE;
|
|
+ return;
|
|
}
|
|
|
|
fprintf(fp, ">\n");
|
|
|
|
- need_sec = FALSE;
|
|
-
|
|
for (a = 0; a < ct->pysig.nrArgs; ++a)
|
|
{
|
|
argDef *ad = &ct->pysig.args[a];
|
|
|
|
- xmlArgument(pt, ad, dirAttribute(ad), FALSE, sec, indent, fp);
|
|
+ if (isInArg(ad))
|
|
+ xmlArgument(pt, mod, ad, FALSE, ct->kwargs, FALSE, indent, fp);
|
|
|
|
- if (ad->atype == rxcon_type || ad->atype == rxdis_type)
|
|
- need_sec = TRUE;
|
|
+ if (isOutArg(ad))
|
|
+ xmlArgument(pt, mod, ad, TRUE, ct->kwargs, FALSE, indent, fp);
|
|
}
|
|
|
|
xmlIndent(--indent, fp);
|
|
fprintf(fp, "</Function>\n");
|
|
-
|
|
- return need_sec;
|
|
}
|
|
|
|
|
|
/*
|
|
* Generate the XML for a function.
|
|
*/
|
|
-static void xmlFunction(sipSpec *pt, classDef *scope, memberDef *md,
|
|
- overDef *oloads, int indent, FILE *fp)
|
|
+static void xmlFunction(sipSpec *pt, moduleDef *mod, classDef *scope,
|
|
+ memberDef *md, overDef *oloads, int indent, FILE *fp)
|
|
{
|
|
overDef *od;
|
|
- const char *default_str = "default=\"1\" ";
|
|
|
|
for (od = oloads; od != NULL; od = od->next)
|
|
{
|
|
@@ -564,14 +574,33 @@
|
|
|
|
if (isSignal(od))
|
|
{
|
|
- xmlIndent(indent, fp);
|
|
- fprintf(fp, "<Signal %sname=\"", default_str);
|
|
+ int a;
|
|
+
|
|
+ xmlIndent(indent++, fp);
|
|
+ fprintf(fp, "<Signal name=\"");
|
|
prScopedPythonName(fp, scope, md->pyname->text);
|
|
- fprintf(fp, "\" sig=\"");
|
|
- xmlCppSignature(fp, od);
|
|
- fprintf(fp, "\"/>\n");
|
|
+ /* TODO: add the C++ signature. */
|
|
+ /* fprintf(fp, "\" sig=\""); */
|
|
+ /* xmlCppSignature(fp, od); */
|
|
|
|
- default_str = "";
|
|
+ /* Handle the trivial case. */
|
|
+ if (od->pysig.nrArgs == 0)
|
|
+ {
|
|
+ fprintf(fp, "\"/>\n");
|
|
+ continue;
|
|
+ }
|
|
+
|
|
+ fprintf(fp, "\">\n");
|
|
+
|
|
+ for (a = 0; a < od->pysig.nrArgs; ++a)
|
|
+ {
|
|
+ argDef *ad = &od->pysig.args[a];
|
|
+
|
|
+ xmlArgument(pt, mod, ad, FALSE, od->kwargs, FALSE, indent, fp);
|
|
+ }
|
|
+
|
|
+ xmlIndent(--indent, fp);
|
|
+ fprintf(fp, "</Signal>\n");
|
|
|
|
continue;
|
|
}
|
|
@@ -585,8 +614,7 @@
|
|
isstat = FALSE;
|
|
}
|
|
|
|
- if (xmlOverload(pt, scope, md, od, xtnds, isstat, FALSE, indent, fp))
|
|
- xmlOverload(pt, scope, md, od, xtnds, isstat, TRUE, indent, fp);
|
|
+ xmlOverload(pt, mod, scope, md, od, xtnds, isstat, indent, fp);
|
|
}
|
|
}
|
|
|
|
@@ -594,10 +622,11 @@
|
|
/*
|
|
* Generate the XML for an overload.
|
|
*/
|
|
-static int xmlOverload(sipSpec *pt, classDef *scope, memberDef *md,
|
|
- overDef *od, classDef *xtnds, int stat, int sec, int indent, FILE *fp)
|
|
+static void xmlOverload(sipSpec *pt, moduleDef *mod, classDef *scope,
|
|
+ memberDef *md, overDef *od, classDef *xtnds, int stat, int indent,
|
|
+ FILE *fp)
|
|
{
|
|
- int a, need_sec, no_res;
|
|
+ int a, no_res;
|
|
|
|
xmlIndent(indent++, fp);
|
|
fprintf(fp, "<Function name=\"");
|
|
@@ -635,16 +664,14 @@
|
|
if (no_res && od->pysig.nrArgs == 0)
|
|
{
|
|
fprintf(fp, "/>\n");
|
|
- return FALSE;
|
|
+ return;
|
|
}
|
|
|
|
fprintf(fp, ">\n");
|
|
|
|
if (!no_res)
|
|
- xmlArgument(pt, &od->pysig.result, "out", isResultTransferredBack(od),
|
|
- FALSE, indent, fp);
|
|
-
|
|
- need_sec = FALSE;
|
|
+ xmlArgument(pt, mod, &od->pysig.result, TRUE, NoKwArgs,
|
|
+ isResultTransferredBack(od), indent, fp);
|
|
|
|
for (a = 0; a < od->pysig.nrArgs; ++a)
|
|
{
|
|
@@ -654,16 +681,15 @@
|
|
if (isNumberSlot(md) && a == 0 && od->pysig.nrArgs == 2)
|
|
continue;
|
|
|
|
- xmlArgument(pt, ad, dirAttribute(ad), FALSE, sec, indent, fp);
|
|
+ if (isInArg(ad))
|
|
+ xmlArgument(pt, mod, ad, FALSE, od->kwargs, FALSE, indent, fp);
|
|
|
|
- if (ad->atype == rxcon_type || ad->atype == rxdis_type)
|
|
- need_sec = TRUE;
|
|
+ if (isOutArg(ad))
|
|
+ xmlArgument(pt, mod, ad, TRUE, od->kwargs, FALSE, indent, fp);
|
|
}
|
|
|
|
xmlIndent(--indent, fp);
|
|
fprintf(fp, "</Function>\n");
|
|
-
|
|
- return need_sec;
|
|
}
|
|
|
|
|
|
@@ -679,65 +705,35 @@
|
|
|
|
|
|
/*
|
|
- * Convert an arguments direction to an XML attribute value.
|
|
- */
|
|
-static const char *dirAttribute(argDef *ad)
|
|
-{
|
|
- if (isInArg(ad))
|
|
- {
|
|
- if (isOutArg(ad))
|
|
- return "inout";
|
|
-
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- return "out";
|
|
-}
|
|
-
|
|
-
|
|
-/*
|
|
* Generate the XML for an argument.
|
|
*/
|
|
-static void xmlArgument(sipSpec *pt, argDef *ad, const char *dir, int res_xfer,
|
|
- int sec, int indent, FILE *fp)
|
|
+static void xmlArgument(sipSpec *pt, moduleDef *mod, argDef *ad, int out,
|
|
+ KwArgs kwargs, int res_xfer, int indent, FILE *fp)
|
|
{
|
|
if (isArraySize(ad))
|
|
return;
|
|
|
|
- if (sec && (ad->atype == slotcon_type || ad->atype == slotdis_type))
|
|
- return;
|
|
-
|
|
xmlIndent(indent, fp);
|
|
- fprintf(fp, "<Argument");
|
|
- xmlType(pt, ad, sec, fp);
|
|
+ fprintf(fp, "<%s", (out ? "Return" : "Argument"));
|
|
+ xmlType(pt, mod, ad, out, kwargs, fp);
|
|
|
|
- if (dir != NULL)
|
|
- fprintf(fp, " dir=\"%s\"", dir);
|
|
+ if (!out)
|
|
+ {
|
|
+ if (isAllowNone(ad))
|
|
+ fprintf(fp, " allownone=\"1\"");
|
|
|
|
- if (isAllowNone(ad))
|
|
- fprintf(fp, " allownone=\"1\"");
|
|
+ if (isDisallowNone(ad))
|
|
+ fprintf(fp, " disallownone=\"1\"");
|
|
|
|
- if (isDisallowNone(ad))
|
|
- fprintf(fp, " disallownone=\"1\"");
|
|
+ if (isTransferred(ad))
|
|
+ fprintf(fp, " transfer=\"to\"");
|
|
+ else if (isThisTransferred(ad))
|
|
+ fprintf(fp, " transfer=\"this\"");
|
|
+ }
|
|
|
|
- if (isTransferred(ad))
|
|
- fprintf(fp, " transfer=\"to\"");
|
|
- else if (isThisTransferred(ad))
|
|
- fprintf(fp, " transfer=\"this\"");
|
|
- else if (res_xfer || isTransferredBack(ad))
|
|
+ if (res_xfer || isTransferredBack(ad))
|
|
fprintf(fp, " transfer=\"back\"");
|
|
|
|
- /*
|
|
- * Handle the default value, but ignore it if it is an output only
|
|
- * argument.
|
|
- */
|
|
- if (ad->defval && (dir == NULL || strcmp(dir, "out") != 0))
|
|
- {
|
|
- prcode(fp, " default=\"");
|
|
- prDefaultValue(ad, FALSE, fp);
|
|
- prcode(fp, "\"");
|
|
- }
|
|
-
|
|
fprintf(fp, "/>\n");
|
|
}
|
|
|
|
@@ -745,73 +741,68 @@
|
|
/*
|
|
* Generate the XML for a type.
|
|
*/
|
|
-static void xmlType(sipSpec *pt, argDef *ad, int sec, FILE *fp)
|
|
+static void xmlType(sipSpec *pt, moduleDef *mod, argDef *ad, int out,
|
|
+ KwArgs kwargs, FILE *fp)
|
|
{
|
|
- const char *type_type = NULL, *type_name;
|
|
+ const char *type_name;
|
|
classDef *type_scope;
|
|
+ typeHintDef *thd;
|
|
|
|
fprintf(fp, " typename=\"");
|
|
|
|
- switch (ad->atype)
|
|
+ /* Handle the argument name. */
|
|
+ if (!out && ad->name != NULL)
|
|
{
|
|
- case class_type:
|
|
- type_type = (isOpaque(ad->u.cd) ? "opaque" : "class");
|
|
- break;
|
|
-
|
|
- case enum_type:
|
|
- if (ad->u.ed->pyname != NULL)
|
|
- type_type = "enum";
|
|
- break;
|
|
-
|
|
- case rxcon_type:
|
|
- case rxdis_type:
|
|
- if (!sec)
|
|
- type_type = "class";
|
|
- break;
|
|
+ if (kwargs == AllKwArgs || (kwargs == OptionalKwArgs && ad->defval != NULL))
|
|
+ fprintf(fp, "%s: ", ad->name->text);
|
|
+ }
|
|
|
|
- case qobject_type:
|
|
- type_type = "class";
|
|
- break;
|
|
+ /* Use any explicit type hint unless the argument is constrained. */
|
|
+ thd = (out ? ad->typehint_out : (isConstrained(ad) ? NULL : ad->typehint_in));
|
|
|
|
- case slotcon_type:
|
|
- case slotdis_type:
|
|
+ if (thd != NULL)
|
|
+ {
|
|
+ pyiTypeHint(pt, thd, mod, out, NULL, FALSE, TRUE, fp);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ switch (ad->atype)
|
|
{
|
|
- int a;
|
|
-
|
|
- prcode(fp, "SLOT(");
|
|
-
|
|
- for (a = 0; a < ad->u.sa->nrArgs; ++a)
|
|
- {
|
|
- if (a > 0)
|
|
- prcode(fp, ", ");
|
|
+ case class_type:
|
|
+ restPyClass(ad->u.cd, TRUE, fp);
|
|
+ break;
|
|
|
|
- prcode(fp, "%M%B%M", &ad->u.sa->args[a]);
|
|
- }
|
|
+ case enum_type:
|
|
+ if (ad->u.ed->pyname != NULL)
|
|
+ restPyEnum(ad->u.ed, TRUE, fp);
|
|
+ else
|
|
+ fprintf(fp, "int");
|
|
|
|
- prcode(fp, ")");
|
|
- }
|
|
+ break;
|
|
|
|
- break;
|
|
+ case qobject_type:
|
|
+ restPyClass(pt->qobject_cd, TRUE, fp);
|
|
+ break;
|
|
|
|
- case mapped_type:
|
|
- type_type = "mappedtype";
|
|
- break;
|
|
+ case mapped_type:
|
|
+ /* There would normally be a type hint. */
|
|
+ fprintf(fp, "unknown-type");
|
|
+ break;
|
|
|
|
- /* Suppress a compiler warning. */
|
|
- default:
|
|
- ;
|
|
+ default:
|
|
+ if ((type_name = pyType(pt, ad, &type_scope)) != NULL)
|
|
+ prScopedPythonName(fp, type_scope, type_name);
|
|
+ }
|
|
}
|
|
|
|
- if ((type_name = pyType(pt, ad, sec, &type_scope)) != NULL)
|
|
- prScopedPythonName(fp, type_scope, type_name);
|
|
+ if (!out && ad->name != NULL && ad->defval != NULL)
|
|
+ {
|
|
+ fprintf(fp, " = ");
|
|
+ /* TODO: use reST references where appropriate. */
|
|
+ prDefaultValue(ad, FALSE, fp);
|
|
+ }
|
|
|
|
fprintf(fp, "\"");
|
|
-
|
|
- if (type_type != NULL)
|
|
- fprintf(fp, " typetype=\"%s\"", type_type);
|
|
-
|
|
- if (ad->name != NULL)
|
|
- fprintf(fp, " name=\"%s\"", ad->name->text);
|
|
}
|
|
|
|
|
|
@@ -828,7 +819,7 @@
|
|
/*
|
|
* Get the Python representation of a type.
|
|
*/
|
|
-static const char *pyType(sipSpec *pt, argDef *ad, int sec, classDef **scope)
|
|
+static const char *pyType(sipSpec *pt, argDef *ad, classDef **scope)
|
|
{
|
|
const char *type_name;
|
|
|
|
@@ -947,23 +938,6 @@
|
|
type_name = "int";
|
|
break;
|
|
|
|
- case signal_type:
|
|
- type_name = "SIGNAL()";
|
|
- break;
|
|
-
|
|
- case slot_type:
|
|
- type_name = "SLOT()";
|
|
- break;
|
|
-
|
|
- case rxcon_type:
|
|
- case rxdis_type:
|
|
- if (sec)
|
|
- type_name = "callable";
|
|
- else
|
|
- type_name = "QObject";
|
|
-
|
|
- break;
|
|
-
|
|
case qobject_type:
|
|
type_name = "QObject";
|
|
break;
|
|
@@ -1046,11 +1020,6 @@
|
|
type_name = "...";
|
|
break;
|
|
|
|
- case slotcon_type:
|
|
- case anyslot_type:
|
|
- type_name = "SLOT()";
|
|
- break;
|
|
-
|
|
default:
|
|
type_name = NULL;
|
|
}
|
|
@@ -1062,10 +1031,10 @@
|
|
/*
|
|
* Generate a Python signature.
|
|
*/
|
|
-static int exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd,
|
|
- int sec, int names, int defaults, int in_str, int is_signal)
|
|
+static void exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd,
|
|
+ int names, int defaults, int in_str, int is_signal)
|
|
{
|
|
- int need_sec = FALSE, need_comma = FALSE, is_res, nr_out, a;
|
|
+ int need_comma = FALSE, is_res, nr_out, a;
|
|
|
|
if (is_signal)
|
|
{
|
|
@@ -1089,11 +1058,8 @@
|
|
if (!isInArg(ad))
|
|
continue;
|
|
|
|
- need_comma = apiArgument(pt, ad, FALSE, need_comma, sec, names,
|
|
- defaults, in_str, fp);
|
|
-
|
|
- if (ad->atype == rxcon_type || ad->atype == rxdis_type)
|
|
- need_sec = TRUE;
|
|
+ need_comma = apiArgument(pt, ad, FALSE, need_comma, names, defaults,
|
|
+ in_str, fp);
|
|
}
|
|
|
|
if (is_signal)
|
|
@@ -1118,7 +1084,7 @@
|
|
fprintf(fp, "(");
|
|
|
|
if (is_res)
|
|
- need_comma = apiArgument(pt, &sd->result, TRUE, FALSE, sec, FALSE,
|
|
+ need_comma = apiArgument(pt, &sd->result, TRUE, FALSE, FALSE,
|
|
FALSE, in_str, fp);
|
|
else
|
|
need_comma = FALSE;
|
|
@@ -1129,13 +1095,43 @@
|
|
|
|
if (isOutArg(ad))
|
|
/* We don't want the name in the result tuple. */
|
|
- need_comma = apiArgument(pt, ad, TRUE, need_comma, sec, FALSE,
|
|
+ need_comma = apiArgument(pt, ad, TRUE, need_comma, FALSE,
|
|
FALSE, in_str, fp);
|
|
}
|
|
|
|
if ((is_res && nr_out > 0) || nr_out > 1)
|
|
fprintf(fp, ")");
|
|
}
|
|
+}
|
|
|
|
- return need_sec;
|
|
+
|
|
+/*
|
|
+ * Generate a fully qualified class name optionally as a reST reference.
|
|
+ */
|
|
+void restPyClass(classDef *cd, int as_ref, FILE *fp)
|
|
+{
|
|
+ if (as_ref)
|
|
+ fprintf(fp, ":sip:class:`~");
|
|
+
|
|
+ fprintf(fp, "%s.", cd->iff->module->fullname->text);
|
|
+ prScopedPythonName(fp, cd->ecd, cd->pyname->text);
|
|
+
|
|
+ if (as_ref)
|
|
+ fprintf(fp, "`");
|
|
+}
|
|
+
|
|
+
|
|
+/*
|
|
+ * Generate a fully qualified enum name optionally as a reST reference.
|
|
+ */
|
|
+void restPyEnum(enumDef *ed, int as_ref, FILE *fp)
|
|
+{
|
|
+ if (as_ref)
|
|
+ fprintf(fp, ":sip:enum:`~");
|
|
+
|
|
+ fprintf(fp, "%s.", ed->module->fullname->text);
|
|
+ prScopedPythonName(fp, ed->ecd, ed->pyname->text);
|
|
+
|
|
+ if (as_ref)
|
|
+ fprintf(fp, "`");
|
|
}
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/lexer.c sip/sipgen/lexer.c
|
|
--- ./sip-4.19.12.orig/sipgen/lexer.c 2018-07-05 05:55:19.000000000 -0400
|
|
+++ sip/sipgen/lexer.c 2018-09-18 18:12:23.334057750 -0400
|
|
@@ -1,6 +1,6 @@
|
|
-#line 2 "sip-4.19.12/sipgen/lexer.c"
|
|
+#line 2 "sipgen/lexer.c"
|
|
|
|
-#line 4 "sip-4.19.12/sipgen/lexer.c"
|
|
+#line 4 "sipgen/lexer.c"
|
|
|
|
#define YY_INT_ALIGNED short int
|
|
|
|
@@ -8,8 +8,8 @@
|
|
|
|
#define FLEX_SCANNER
|
|
#define YY_FLEX_MAJOR_VERSION 2
|
|
-#define YY_FLEX_MINOR_VERSION 5
|
|
-#define YY_FLEX_SUBMINOR_VERSION 35
|
|
+#define YY_FLEX_MINOR_VERSION 6
|
|
+#define YY_FLEX_SUBMINOR_VERSION 1
|
|
#if YY_FLEX_SUBMINOR_VERSION > 0
|
|
#define FLEX_BETA
|
|
#endif
|
|
@@ -47,7 +47,6 @@
|
|
typedef uint16_t flex_uint16_t;
|
|
typedef int32_t flex_int32_t;
|
|
typedef uint32_t flex_uint32_t;
|
|
-typedef uint64_t flex_uint64_t;
|
|
#else
|
|
typedef signed char flex_int8_t;
|
|
typedef short int flex_int16_t;
|
|
@@ -55,7 +54,6 @@
|
|
typedef unsigned char flex_uint8_t;
|
|
typedef unsigned short int flex_uint16_t;
|
|
typedef unsigned int flex_uint32_t;
|
|
-#endif /* ! C99 */
|
|
|
|
/* Limits of integral types. */
|
|
#ifndef INT8_MIN
|
|
@@ -86,27 +84,17 @@
|
|
#define UINT32_MAX (4294967295U)
|
|
#endif
|
|
|
|
-#endif /* ! FLEXINT_H */
|
|
-
|
|
-#ifdef __cplusplus
|
|
-
|
|
-/* The "const" storage-class-modifier is valid. */
|
|
-#define YY_USE_CONST
|
|
-
|
|
-#else /* ! __cplusplus */
|
|
-
|
|
-/* C99 requires __STDC__ to be defined as 1. */
|
|
-#if defined (__STDC__)
|
|
-
|
|
-#define YY_USE_CONST
|
|
+#endif /* ! C99 */
|
|
|
|
-#endif /* defined (__STDC__) */
|
|
-#endif /* ! __cplusplus */
|
|
+#endif /* ! FLEXINT_H */
|
|
|
|
-#ifdef YY_USE_CONST
|
|
+/* TODO: this is always defined, so inline it */
|
|
#define yyconst const
|
|
+
|
|
+#if defined(__GNUC__) && __GNUC__ >= 3
|
|
+#define yynoreturn __attribute__((__noreturn__))
|
|
#else
|
|
-#define yyconst
|
|
+#define yynoreturn
|
|
#endif
|
|
|
|
/* Returned upon end-of-file. */
|
|
@@ -142,7 +130,15 @@
|
|
|
|
/* Size of default input buffer. */
|
|
#ifndef YY_BUF_SIZE
|
|
+#ifdef __ia64__
|
|
+/* On IA-64, the buffer size is 16k, not 8k.
|
|
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
|
|
+ * Ditto for the __ia64__ case accordingly.
|
|
+ */
|
|
+#define YY_BUF_SIZE 32768
|
|
+#else
|
|
#define YY_BUF_SIZE 16384
|
|
+#endif /* __ia64__ */
|
|
#endif
|
|
|
|
/* The state buf must be large enough to hold one state per character in the main buffer.
|
|
@@ -159,7 +155,7 @@
|
|
typedef size_t yy_size_t;
|
|
#endif
|
|
|
|
-extern yy_size_t yyleng;
|
|
+extern int yyleng;
|
|
|
|
extern FILE *yyin, *yyout;
|
|
|
|
@@ -168,13 +164,14 @@
|
|
#define EOB_ACT_LAST_MATCH 2
|
|
|
|
#define YY_LESS_LINENO(n)
|
|
+ #define YY_LINENO_REWIND_TO(ptr)
|
|
|
|
/* Return all but the first "n" matched characters back to the input stream. */
|
|
#define yyless(n) \
|
|
do \
|
|
{ \
|
|
/* Undo effects of setting up yytext. */ \
|
|
- int yyless_macro_arg = (n); \
|
|
+ yy_size_t yyless_macro_arg = (n); \
|
|
YY_LESS_LINENO(yyless_macro_arg);\
|
|
*yy_cp = (yy_hold_char); \
|
|
YY_RESTORE_YY_MORE_OFFSET \
|
|
@@ -197,12 +194,12 @@
|
|
/* Size of input buffer in bytes, not including room for EOB
|
|
* characters.
|
|
*/
|
|
- yy_size_t yy_buf_size;
|
|
+ int yy_buf_size;
|
|
|
|
/* Number of characters read into yy_ch_buf, not including EOB
|
|
* characters.
|
|
*/
|
|
- yy_size_t yy_n_chars;
|
|
+ int yy_n_chars;
|
|
|
|
/* Whether we "own" the buffer - i.e., we know we created it,
|
|
* and can realloc() it to grow it, and should free() it to
|
|
@@ -253,7 +250,7 @@
|
|
/* Stack of input buffers. */
|
|
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
|
|
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
|
|
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
|
|
+static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
|
|
|
|
/* We provide macros for accessing buffer states in case in the
|
|
* future we want to put the buffer states in a more general
|
|
@@ -272,11 +269,11 @@
|
|
|
|
/* yy_hold_char holds the character lost when yytext is formed. */
|
|
static char yy_hold_char;
|
|
-static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
|
|
-yy_size_t yyleng;
|
|
+static int yy_n_chars; /* number of characters read into yy_ch_buf */
|
|
+int yyleng;
|
|
|
|
/* Points to current character in buffer. */
|
|
-static char *yy_c_buf_p = (char *) 0;
|
|
+static char *yy_c_buf_p = NULL;
|
|
static int yy_init = 0; /* whether we need to initialize */
|
|
static int yy_start = 0; /* start state number */
|
|
|
|
@@ -301,7 +298,7 @@
|
|
|
|
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
|
|
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
|
|
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len );
|
|
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
|
|
|
|
void *yyalloc (yy_size_t );
|
|
void *yyrealloc (void *,yy_size_t );
|
|
@@ -335,7 +332,7 @@
|
|
|
|
typedef unsigned char YY_CHAR;
|
|
|
|
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
|
|
+FILE *yyin = NULL, *yyout = NULL;
|
|
|
|
typedef int yy_state_type;
|
|
|
|
@@ -344,19 +341,22 @@
|
|
int yylineno = 1;
|
|
|
|
extern char *yytext;
|
|
+#ifdef yytext_ptr
|
|
+#undef yytext_ptr
|
|
+#endif
|
|
#define yytext_ptr yytext
|
|
|
|
static yy_state_type yy_get_previous_state (void );
|
|
static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
|
|
static int yy_get_next_buffer (void );
|
|
-static void yy_fatal_error (yyconst char msg[] );
|
|
+static void yynoreturn yy_fatal_error (yyconst char* msg );
|
|
|
|
/* Done after the current pattern has been matched and before the
|
|
* corresponding action - sets up yytext.
|
|
*/
|
|
#define YY_DO_BEFORE_ACTION \
|
|
(yytext_ptr) = yy_bp; \
|
|
- yyleng = (yy_size_t) (yy_cp - yy_bp); \
|
|
+ yyleng = (int) (yy_cp - yy_bp); \
|
|
(yy_hold_char) = *yy_cp; \
|
|
*yy_cp = '\0'; \
|
|
(yy_c_buf_p) = yy_cp;
|
|
@@ -509,7 +509,7 @@
|
|
131, 113, 0, 113, 0, 113, 7, 113, 101, 0
|
|
} ;
|
|
|
|
-static yyconst flex_int32_t yy_ec[256] =
|
|
+static yyconst YY_CHAR yy_ec[256] =
|
|
{ 0,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
|
|
1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
|
|
@@ -541,7 +541,7 @@
|
|
1, 1, 1, 1, 1
|
|
} ;
|
|
|
|
-static yyconst flex_int32_t yy_meta[70] =
|
|
+static yyconst YY_CHAR yy_meta[70] =
|
|
{ 0,
|
|
1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 3, 3, 3, 4, 4, 1, 4, 4, 4,
|
|
@@ -552,7 +552,7 @@
|
|
3, 3, 3, 3, 3, 3, 3, 3, 1
|
|
} ;
|
|
|
|
-static yyconst flex_int16_t yy_base[1239] =
|
|
+static yyconst flex_uint16_t yy_base[1239] =
|
|
{ 0,
|
|
0, 68, 2823, 69, 70, 73, 75, 75, 2817, 80,
|
|
2824, 2827, 2827, 2827, 73, 82, 77, 87, 77, 128,
|
|
@@ -832,7 +832,7 @@
|
|
1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230
|
|
} ;
|
|
|
|
-static yyconst flex_int16_t yy_nxt[2897] =
|
|
+static yyconst flex_uint16_t yy_nxt[2897] =
|
|
{ 0,
|
|
12, 13, 14, 13, 15, 12, 16, 12, 12, 12,
|
|
12, 17, 18, 19, 20, 21, 22, 23, 23, 23,
|
|
@@ -1492,7 +1492,7 @@
|
|
#define YY_MORE_ADJ 0
|
|
#define YY_RESTORE_YY_MORE_OFFSET
|
|
char *yytext;
|
|
-#line 1 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 1 "sipgen/metasrc/lexer.l"
|
|
/*
|
|
* The SIP lexer.
|
|
*
|
|
@@ -1510,7 +1510,7 @@
|
|
* SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*/
|
|
-#line 20 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 20 "sipgen/metasrc/lexer.l"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
@@ -1560,7 +1560,7 @@
|
|
|
|
|
|
|
|
-#line 1564 "sip-4.19.12/sipgen/lexer.c"
|
|
+#line 1564 "sipgen/lexer.c"
|
|
|
|
#define INITIAL 0
|
|
#define code 1
|
|
@@ -1597,19 +1597,19 @@
|
|
|
|
FILE *yyget_in (void );
|
|
|
|
-void yyset_in (FILE * in_str );
|
|
+void yyset_in (FILE * _in_str );
|
|
|
|
FILE *yyget_out (void );
|
|
|
|
-void yyset_out (FILE * out_str );
|
|
+void yyset_out (FILE * _out_str );
|
|
|
|
-yy_size_t yyget_leng (void );
|
|
+ int yyget_leng (void );
|
|
|
|
char *yyget_text (void );
|
|
|
|
int yyget_lineno (void );
|
|
|
|
-void yyset_lineno (int line_number );
|
|
+void yyset_lineno (int _line_number );
|
|
|
|
/* Macros after this point can all be overridden by user definitions in
|
|
* section 1.
|
|
@@ -1623,8 +1623,12 @@
|
|
#endif
|
|
#endif
|
|
|
|
+#ifndef YY_NO_UNPUT
|
|
+
|
|
static void yyunput (int c,char *buf_ptr );
|
|
|
|
+#endif
|
|
+
|
|
#ifndef yytext_ptr
|
|
static void yy_flex_strncpy (char *,yyconst char *,int );
|
|
#endif
|
|
@@ -1647,7 +1651,7 @@
|
|
static int yy_start_stack_depth = 0;
|
|
static int *yy_start_stack = NULL;
|
|
|
|
- static void yy_push_state (int new_state );
|
|
+ static void yy_push_state (int _new_state );
|
|
|
|
static void yy_pop_state (void );
|
|
|
|
@@ -1655,7 +1659,12 @@
|
|
|
|
/* Amount of stuff to slurp up with each read. */
|
|
#ifndef YY_READ_BUF_SIZE
|
|
+#ifdef __ia64__
|
|
+/* On IA-64, the buffer size is 16k, not 8k */
|
|
+#define YY_READ_BUF_SIZE 16384
|
|
+#else
|
|
#define YY_READ_BUF_SIZE 8192
|
|
+#endif /* __ia64__ */
|
|
#endif
|
|
|
|
/* Copy whatever the last rule matched to the standard output. */
|
|
@@ -1663,7 +1672,7 @@
|
|
/* This used to be an fputs(), but since the string might contain NUL's,
|
|
* we now use fwrite().
|
|
*/
|
|
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
|
|
+#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
|
|
#endif
|
|
|
|
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
|
@@ -1674,7 +1683,7 @@
|
|
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
|
|
{ \
|
|
int c = '*'; \
|
|
- yy_size_t n; \
|
|
+ int n; \
|
|
for ( n = 0; n < max_size && \
|
|
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
|
|
buf[n] = (char) c; \
|
|
@@ -1687,7 +1696,7 @@
|
|
else \
|
|
{ \
|
|
errno=0; \
|
|
- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
|
|
+ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
|
|
{ \
|
|
if( errno != EINTR) \
|
|
{ \
|
|
@@ -1742,7 +1751,7 @@
|
|
|
|
/* Code executed at the end of each rule. */
|
|
#ifndef YY_BREAK
|
|
-#define YY_BREAK break;
|
|
+#define YY_BREAK /*LINTED*/break;
|
|
#endif
|
|
|
|
#define YY_RULE_SETUP \
|
|
@@ -1755,15 +1764,10 @@
|
|
*/
|
|
YY_DECL
|
|
{
|
|
- register yy_state_type yy_current_state;
|
|
- register char *yy_cp, *yy_bp;
|
|
- register int yy_act;
|
|
+ yy_state_type yy_current_state;
|
|
+ char *yy_cp, *yy_bp;
|
|
+ int yy_act;
|
|
|
|
-#line 74 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
-
|
|
-
|
|
-#line 1766 "sip-4.19.12/sipgen/lexer.c"
|
|
-
|
|
if ( !(yy_init) )
|
|
{
|
|
(yy_init) = 1;
|
|
@@ -1790,7 +1794,13 @@
|
|
yy_load_buffer_state( );
|
|
}
|
|
|
|
- while ( 1 ) /* loops until end-of-file is reached */
|
|
+ {
|
|
+#line 74 "sipgen/metasrc/lexer.l"
|
|
+
|
|
+
|
|
+#line 1802 "sipgen/lexer.c"
|
|
+
|
|
+ while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
|
|
{
|
|
yy_cp = (yy_c_buf_p);
|
|
|
|
@@ -1807,7 +1817,7 @@
|
|
yy_match:
|
|
do
|
|
{
|
|
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
|
|
+ YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
|
|
if ( yy_accept[yy_current_state] )
|
|
{
|
|
(yy_last_accepting_state) = yy_current_state;
|
|
@@ -1819,7 +1829,7 @@
|
|
if ( yy_current_state >= 1231 )
|
|
yy_c = yy_meta[(unsigned int) yy_c];
|
|
}
|
|
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
|
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
|
|
++yy_cp;
|
|
}
|
|
while ( yy_base[yy_current_state] != 2827 );
|
|
@@ -1848,527 +1858,527 @@
|
|
|
|
case 1:
|
|
YY_RULE_SETUP
|
|
-#line 76 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 76 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_API;}
|
|
YY_BREAK
|
|
case 2:
|
|
YY_RULE_SETUP
|
|
-#line 77 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 77 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_AUTOPYNAME;}
|
|
YY_BREAK
|
|
case 3:
|
|
YY_RULE_SETUP
|
|
-#line 78 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 78 "sipgen/metasrc/lexer.l"
|
|
{return TK_CMODULE;}
|
|
YY_BREAK
|
|
case 4:
|
|
YY_RULE_SETUP
|
|
-#line 79 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 79 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_COMPOMODULE;}
|
|
YY_BREAK
|
|
case 5:
|
|
YY_RULE_SETUP
|
|
-#line 80 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 80 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_CONSMODULE;}
|
|
YY_BREAK
|
|
case 6:
|
|
YY_RULE_SETUP
|
|
-#line 81 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 81 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_DEFDOCSTRFMT;}
|
|
YY_BREAK
|
|
case 7:
|
|
YY_RULE_SETUP
|
|
-#line 82 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 82 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_DEFDOCSTRSIG;}
|
|
YY_BREAK
|
|
case 8:
|
|
YY_RULE_SETUP
|
|
-#line 83 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 83 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_DEFENCODING;}
|
|
YY_BREAK
|
|
case 9:
|
|
YY_RULE_SETUP
|
|
-#line 84 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 84 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_DEFMETATYPE;}
|
|
YY_BREAK
|
|
case 10:
|
|
YY_RULE_SETUP
|
|
-#line 85 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 85 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_DEFSUPERTYPE;}
|
|
YY_BREAK
|
|
case 11:
|
|
YY_RULE_SETUP
|
|
-#line 86 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 86 "sipgen/metasrc/lexer.l"
|
|
{return TK_END;}
|
|
YY_BREAK
|
|
case 12:
|
|
YY_RULE_SETUP
|
|
-#line 87 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 87 "sipgen/metasrc/lexer.l"
|
|
{BEGIN INITIAL; return TK_END;}
|
|
YY_BREAK
|
|
case 13:
|
|
YY_RULE_SETUP
|
|
-#line 88 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 88 "sipgen/metasrc/lexer.l"
|
|
{return TK_EXCEPTION;}
|
|
YY_BREAK
|
|
case 14:
|
|
YY_RULE_SETUP
|
|
-#line 89 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 89 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_FEATURE;}
|
|
YY_BREAK
|
|
case 15:
|
|
YY_RULE_SETUP
|
|
-#line 90 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 90 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_HIDE_NS;}
|
|
YY_BREAK
|
|
case 16:
|
|
YY_RULE_SETUP
|
|
-#line 91 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 91 "sipgen/metasrc/lexer.l"
|
|
{return TK_IF;}
|
|
YY_BREAK
|
|
case 17:
|
|
YY_RULE_SETUP
|
|
-#line 92 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 92 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_IMPORT;}
|
|
YY_BREAK
|
|
case 18:
|
|
YY_RULE_SETUP
|
|
-#line 93 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 93 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_INCLUDE;}
|
|
YY_BREAK
|
|
case 19:
|
|
YY_RULE_SETUP
|
|
-#line 94 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 94 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_LICENSE;}
|
|
YY_BREAK
|
|
case 20:
|
|
YY_RULE_SETUP
|
|
-#line 95 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 95 "sipgen/metasrc/lexer.l"
|
|
{return TK_MAPPEDTYPE;}
|
|
YY_BREAK
|
|
case 21:
|
|
YY_RULE_SETUP
|
|
-#line 96 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 96 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_MODULE;}
|
|
YY_BREAK
|
|
case 22:
|
|
YY_RULE_SETUP
|
|
-#line 97 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 97 "sipgen/metasrc/lexer.l"
|
|
{return TK_OPTINCLUDE;}
|
|
YY_BREAK
|
|
case 23:
|
|
YY_RULE_SETUP
|
|
-#line 98 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 98 "sipgen/metasrc/lexer.l"
|
|
{return TK_PLATFORMS;}
|
|
YY_BREAK
|
|
case 24:
|
|
YY_RULE_SETUP
|
|
-#line 99 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 99 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_PLUGIN;}
|
|
YY_BREAK
|
|
case 25:
|
|
YY_RULE_SETUP
|
|
-#line 100 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 100 "sipgen/metasrc/lexer.l"
|
|
{BEGIN directive_start; return TK_PROPERTY;}
|
|
YY_BREAK
|
|
case 26:
|
|
YY_RULE_SETUP
|
|
-#line 101 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 101 "sipgen/metasrc/lexer.l"
|
|
{return TK_TIMELINE;}
|
|
YY_BREAK
|
|
case 27:
|
|
YY_RULE_SETUP
|
|
-#line 103 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 103 "sipgen/metasrc/lexer.l"
|
|
{return TK_CLASS;}
|
|
YY_BREAK
|
|
case 28:
|
|
YY_RULE_SETUP
|
|
-#line 104 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 104 "sipgen/metasrc/lexer.l"
|
|
{return TK_STRUCT;}
|
|
YY_BREAK
|
|
case 29:
|
|
YY_RULE_SETUP
|
|
-#line 105 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 105 "sipgen/metasrc/lexer.l"
|
|
{return TK_PUBLIC;}
|
|
YY_BREAK
|
|
case 30:
|
|
YY_RULE_SETUP
|
|
-#line 106 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 106 "sipgen/metasrc/lexer.l"
|
|
{return TK_PROTECTED;}
|
|
YY_BREAK
|
|
case 31:
|
|
YY_RULE_SETUP
|
|
-#line 107 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 107 "sipgen/metasrc/lexer.l"
|
|
{return TK_PRIVATE;}
|
|
YY_BREAK
|
|
case 32:
|
|
YY_RULE_SETUP
|
|
-#line 108 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 108 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIGNALS;}
|
|
YY_BREAK
|
|
case 33:
|
|
YY_RULE_SETUP
|
|
-#line 109 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 109 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIGNALS;}
|
|
YY_BREAK
|
|
case 34:
|
|
YY_RULE_SETUP
|
|
-#line 110 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 110 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIGNAL_METHOD;}
|
|
YY_BREAK
|
|
case 35:
|
|
YY_RULE_SETUP
|
|
-#line 111 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 111 "sipgen/metasrc/lexer.l"
|
|
{return TK_SLOTS;}
|
|
YY_BREAK
|
|
case 36:
|
|
YY_RULE_SETUP
|
|
-#line 112 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 112 "sipgen/metasrc/lexer.l"
|
|
{return TK_SLOTS;}
|
|
YY_BREAK
|
|
case 37:
|
|
YY_RULE_SETUP
|
|
-#line 113 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 113 "sipgen/metasrc/lexer.l"
|
|
{return TK_SLOT_METHOD;}
|
|
YY_BREAK
|
|
case 38:
|
|
YY_RULE_SETUP
|
|
-#line 114 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 114 "sipgen/metasrc/lexer.l"
|
|
{return TK_CHAR;}
|
|
YY_BREAK
|
|
case 39:
|
|
YY_RULE_SETUP
|
|
-#line 115 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 115 "sipgen/metasrc/lexer.l"
|
|
{return TK_WCHAR_T;}
|
|
YY_BREAK
|
|
case 40:
|
|
YY_RULE_SETUP
|
|
-#line 116 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 116 "sipgen/metasrc/lexer.l"
|
|
{return TK_BOOL;}
|
|
YY_BREAK
|
|
case 41:
|
|
YY_RULE_SETUP
|
|
-#line 117 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 117 "sipgen/metasrc/lexer.l"
|
|
{return TK_SHORT;}
|
|
YY_BREAK
|
|
case 42:
|
|
YY_RULE_SETUP
|
|
-#line 118 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 118 "sipgen/metasrc/lexer.l"
|
|
{return TK_INT;}
|
|
YY_BREAK
|
|
case 43:
|
|
YY_RULE_SETUP
|
|
-#line 119 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 119 "sipgen/metasrc/lexer.l"
|
|
{return TK_LONG;}
|
|
YY_BREAK
|
|
case 44:
|
|
YY_RULE_SETUP
|
|
-#line 120 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 120 "sipgen/metasrc/lexer.l"
|
|
{return TK_FLOAT;}
|
|
YY_BREAK
|
|
case 45:
|
|
YY_RULE_SETUP
|
|
-#line 121 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 121 "sipgen/metasrc/lexer.l"
|
|
{return TK_DOUBLE;}
|
|
YY_BREAK
|
|
case 46:
|
|
YY_RULE_SETUP
|
|
-#line 122 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 122 "sipgen/metasrc/lexer.l"
|
|
{return TK_VOID;}
|
|
YY_BREAK
|
|
case 47:
|
|
YY_RULE_SETUP
|
|
-#line 123 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 123 "sipgen/metasrc/lexer.l"
|
|
{return TK_VIRTUAL;}
|
|
YY_BREAK
|
|
case 48:
|
|
YY_RULE_SETUP
|
|
-#line 124 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 124 "sipgen/metasrc/lexer.l"
|
|
{return TK_ENUM;}
|
|
YY_BREAK
|
|
case 49:
|
|
YY_RULE_SETUP
|
|
-#line 125 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 125 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIGNED;}
|
|
YY_BREAK
|
|
case 50:
|
|
YY_RULE_SETUP
|
|
-#line 126 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 126 "sipgen/metasrc/lexer.l"
|
|
{return TK_UNSIGNED;}
|
|
YY_BREAK
|
|
case 51:
|
|
YY_RULE_SETUP
|
|
-#line 127 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 127 "sipgen/metasrc/lexer.l"
|
|
{return TK_CONST;}
|
|
YY_BREAK
|
|
case 52:
|
|
YY_RULE_SETUP
|
|
-#line 128 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 128 "sipgen/metasrc/lexer.l"
|
|
{return TK_STATIC;}
|
|
YY_BREAK
|
|
case 53:
|
|
YY_RULE_SETUP
|
|
-#line 129 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 129 "sipgen/metasrc/lexer.l"
|
|
{return TK_TRUE_VALUE;}
|
|
YY_BREAK
|
|
case 54:
|
|
YY_RULE_SETUP
|
|
-#line 130 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 130 "sipgen/metasrc/lexer.l"
|
|
{return TK_FALSE_VALUE;}
|
|
YY_BREAK
|
|
case 55:
|
|
YY_RULE_SETUP
|
|
-#line 131 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 131 "sipgen/metasrc/lexer.l"
|
|
{return TK_NULL_VALUE;}
|
|
YY_BREAK
|
|
case 56:
|
|
YY_RULE_SETUP
|
|
-#line 132 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 132 "sipgen/metasrc/lexer.l"
|
|
{return TK_TYPEDEF;}
|
|
YY_BREAK
|
|
case 57:
|
|
YY_RULE_SETUP
|
|
-#line 133 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 133 "sipgen/metasrc/lexer.l"
|
|
{return TK_NAMESPACE;}
|
|
YY_BREAK
|
|
case 58:
|
|
YY_RULE_SETUP
|
|
-#line 134 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 134 "sipgen/metasrc/lexer.l"
|
|
{return TK_OPERATOR;}
|
|
YY_BREAK
|
|
case 59:
|
|
YY_RULE_SETUP
|
|
-#line 135 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 135 "sipgen/metasrc/lexer.l"
|
|
{return TK_THROW;}
|
|
YY_BREAK
|
|
case 60:
|
|
YY_RULE_SETUP
|
|
-#line 136 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 136 "sipgen/metasrc/lexer.l"
|
|
{return TK_EXPLICIT;}
|
|
YY_BREAK
|
|
case 61:
|
|
YY_RULE_SETUP
|
|
-#line 137 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 137 "sipgen/metasrc/lexer.l"
|
|
{return TK_TEMPLATE;}
|
|
YY_BREAK
|
|
case 62:
|
|
YY_RULE_SETUP
|
|
-#line 138 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 138 "sipgen/metasrc/lexer.l"
|
|
{return TK_FINAL;}
|
|
YY_BREAK
|
|
case 63:
|
|
YY_RULE_SETUP
|
|
-#line 139 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 139 "sipgen/metasrc/lexer.l"
|
|
{return TK_SCOPE;}
|
|
YY_BREAK
|
|
case 64:
|
|
YY_RULE_SETUP
|
|
-#line 140 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 140 "sipgen/metasrc/lexer.l"
|
|
{return TK_LOGICAL_OR;}
|
|
YY_BREAK
|
|
case 65:
|
|
YY_RULE_SETUP
|
|
-#line 141 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 141 "sipgen/metasrc/lexer.l"
|
|
{return TK_PYOBJECT;}
|
|
YY_BREAK
|
|
case 66:
|
|
YY_RULE_SETUP
|
|
-#line 142 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 142 "sipgen/metasrc/lexer.l"
|
|
{return TK_PYTUPLE;}
|
|
YY_BREAK
|
|
case 67:
|
|
YY_RULE_SETUP
|
|
-#line 143 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 143 "sipgen/metasrc/lexer.l"
|
|
{return TK_PYLIST;}
|
|
YY_BREAK
|
|
case 68:
|
|
YY_RULE_SETUP
|
|
-#line 144 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 144 "sipgen/metasrc/lexer.l"
|
|
{return TK_PYDICT;}
|
|
YY_BREAK
|
|
case 69:
|
|
YY_RULE_SETUP
|
|
-#line 145 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 145 "sipgen/metasrc/lexer.l"
|
|
{return TK_PYCALLABLE;}
|
|
YY_BREAK
|
|
case 70:
|
|
YY_RULE_SETUP
|
|
-#line 146 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 146 "sipgen/metasrc/lexer.l"
|
|
{return TK_PYSLICE;}
|
|
YY_BREAK
|
|
case 71:
|
|
YY_RULE_SETUP
|
|
-#line 147 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 147 "sipgen/metasrc/lexer.l"
|
|
{return TK_PYTYPE;}
|
|
YY_BREAK
|
|
case 72:
|
|
YY_RULE_SETUP
|
|
-#line 148 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 148 "sipgen/metasrc/lexer.l"
|
|
{return TK_PYBUFFER;}
|
|
YY_BREAK
|
|
case 73:
|
|
YY_RULE_SETUP
|
|
-#line 149 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 149 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIPSIGNAL;}
|
|
YY_BREAK
|
|
case 74:
|
|
YY_RULE_SETUP
|
|
-#line 150 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 150 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIPSLOT;}
|
|
YY_BREAK
|
|
case 75:
|
|
YY_RULE_SETUP
|
|
-#line 151 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 151 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIPANYSLOT;}
|
|
YY_BREAK
|
|
case 76:
|
|
YY_RULE_SETUP
|
|
-#line 152 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 152 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIPRXCON;}
|
|
YY_BREAK
|
|
case 77:
|
|
YY_RULE_SETUP
|
|
-#line 153 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 153 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIPRXDIS;}
|
|
YY_BREAK
|
|
case 78:
|
|
YY_RULE_SETUP
|
|
-#line 154 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 154 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIPSLOTCON;}
|
|
YY_BREAK
|
|
case 79:
|
|
YY_RULE_SETUP
|
|
-#line 155 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 155 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIPSLOTDIS;}
|
|
YY_BREAK
|
|
case 80:
|
|
YY_RULE_SETUP
|
|
-#line 156 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 156 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIPSSIZET;}
|
|
YY_BREAK
|
|
case 81:
|
|
YY_RULE_SETUP
|
|
-#line 157 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 157 "sipgen/metasrc/lexer.l"
|
|
{return TK_QOBJECT;}
|
|
YY_BREAK
|
|
case 82:
|
|
YY_RULE_SETUP
|
|
-#line 158 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 158 "sipgen/metasrc/lexer.l"
|
|
{return TK_ELLIPSIS;}
|
|
YY_BREAK
|
|
case 83:
|
|
YY_RULE_SETUP
|
|
-#line 160 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 160 "sipgen/metasrc/lexer.l"
|
|
{return TK_FORMAT;}
|
|
YY_BREAK
|
|
case 84:
|
|
YY_RULE_SETUP
|
|
-#line 161 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 161 "sipgen/metasrc/lexer.l"
|
|
{return TK_GET;}
|
|
YY_BREAK
|
|
case 85:
|
|
YY_RULE_SETUP
|
|
-#line 162 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 162 "sipgen/metasrc/lexer.l"
|
|
{return TK_ID;}
|
|
YY_BREAK
|
|
case 86:
|
|
YY_RULE_SETUP
|
|
-#line 163 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 163 "sipgen/metasrc/lexer.l"
|
|
{return TK_KWARGS;}
|
|
YY_BREAK
|
|
case 87:
|
|
YY_RULE_SETUP
|
|
-#line 164 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 164 "sipgen/metasrc/lexer.l"
|
|
{return TK_LANGUAGE;}
|
|
YY_BREAK
|
|
case 88:
|
|
YY_RULE_SETUP
|
|
-#line 165 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 165 "sipgen/metasrc/lexer.l"
|
|
{return TK_LICENSEE;}
|
|
YY_BREAK
|
|
case 89:
|
|
YY_RULE_SETUP
|
|
-#line 166 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 166 "sipgen/metasrc/lexer.l"
|
|
{return TK_NAME;}
|
|
YY_BREAK
|
|
case 90:
|
|
YY_RULE_SETUP
|
|
-#line 167 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 167 "sipgen/metasrc/lexer.l"
|
|
{return TK_OPTIONAL;}
|
|
YY_BREAK
|
|
case 91:
|
|
YY_RULE_SETUP
|
|
-#line 168 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 168 "sipgen/metasrc/lexer.l"
|
|
{return TK_ORDER;}
|
|
YY_BREAK
|
|
case 92:
|
|
YY_RULE_SETUP
|
|
-#line 169 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 169 "sipgen/metasrc/lexer.l"
|
|
{return TK_REMOVELEADING;}
|
|
YY_BREAK
|
|
case 93:
|
|
YY_RULE_SETUP
|
|
-#line 170 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 170 "sipgen/metasrc/lexer.l"
|
|
{return TK_SET;}
|
|
YY_BREAK
|
|
case 94:
|
|
YY_RULE_SETUP
|
|
-#line 171 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 171 "sipgen/metasrc/lexer.l"
|
|
{return TK_SIGNATURE;}
|
|
YY_BREAK
|
|
case 95:
|
|
YY_RULE_SETUP
|
|
-#line 172 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 172 "sipgen/metasrc/lexer.l"
|
|
{return TK_TIMESTAMP;}
|
|
YY_BREAK
|
|
case 96:
|
|
YY_RULE_SETUP
|
|
-#line 173 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 173 "sipgen/metasrc/lexer.l"
|
|
{return TK_TYPE;}
|
|
YY_BREAK
|
|
case 97:
|
|
YY_RULE_SETUP
|
|
-#line 174 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 174 "sipgen/metasrc/lexer.l"
|
|
{return TK_USEARGNAMES;}
|
|
YY_BREAK
|
|
case 98:
|
|
YY_RULE_SETUP
|
|
-#line 175 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 175 "sipgen/metasrc/lexer.l"
|
|
{return TK_USELIMITEDAPI;}
|
|
YY_BREAK
|
|
case 99:
|
|
YY_RULE_SETUP
|
|
-#line 176 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 176 "sipgen/metasrc/lexer.l"
|
|
{return TK_ALLRAISEPYEXC;}
|
|
YY_BREAK
|
|
case 100:
|
|
YY_RULE_SETUP
|
|
-#line 177 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 177 "sipgen/metasrc/lexer.l"
|
|
{return TK_CALLSUPERINIT;}
|
|
YY_BREAK
|
|
case 101:
|
|
YY_RULE_SETUP
|
|
-#line 178 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 178 "sipgen/metasrc/lexer.l"
|
|
{return TK_DEFERRORHANDLER;}
|
|
YY_BREAK
|
|
case 102:
|
|
YY_RULE_SETUP
|
|
-#line 179 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 179 "sipgen/metasrc/lexer.l"
|
|
{return TK_VERSION;}
|
|
YY_BREAK
|
|
case 103:
|
|
YY_RULE_SETUP
|
|
-#line 181 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 181 "sipgen/metasrc/lexer.l"
|
|
{return TK_TRUE_VALUE;}
|
|
YY_BREAK
|
|
case 104:
|
|
YY_RULE_SETUP
|
|
-#line 182 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 182 "sipgen/metasrc/lexer.l"
|
|
{return TK_FALSE_VALUE;}
|
|
YY_BREAK
|
|
case 105:
|
|
YY_RULE_SETUP
|
|
-#line 185 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 185 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* Ignore whitespace. */
|
|
;
|
|
@@ -2376,7 +2386,7 @@
|
|
YY_BREAK
|
|
case 106:
|
|
YY_RULE_SETUP
|
|
-#line 190 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 190 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/*
|
|
* Maintain the parenthesis depth so that we don't enter the 'code' state
|
|
@@ -2391,7 +2401,7 @@
|
|
YY_BREAK
|
|
case 107:
|
|
YY_RULE_SETUP
|
|
-#line 202 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 202 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* Maintain the parenthesis depth. */
|
|
--parenDepth;
|
|
@@ -2404,7 +2414,7 @@
|
|
case 108:
|
|
/* rule 108 can match eol */
|
|
YY_RULE_SETUP
|
|
-#line 211 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 211 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* Maintain the line number. */
|
|
++inputFileStack[currentFile].sloc.linenr;
|
|
@@ -2417,7 +2427,7 @@
|
|
YY_BREAK
|
|
case 109:
|
|
YY_RULE_SETUP
|
|
-#line 221 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 221 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* Ignore C++ style comments. */
|
|
;
|
|
@@ -2425,7 +2435,7 @@
|
|
YY_BREAK
|
|
case 110:
|
|
YY_RULE_SETUP
|
|
-#line 227 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 227 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* A signed decimal number. */
|
|
yylval.number = strtol(yytext,NULL,0);
|
|
@@ -2434,7 +2444,7 @@
|
|
YY_BREAK
|
|
case 111:
|
|
YY_RULE_SETUP
|
|
-#line 234 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 234 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* A floating point number. */
|
|
yylval.real = strtod(yytext,NULL);
|
|
@@ -2443,7 +2453,7 @@
|
|
YY_BREAK
|
|
case 112:
|
|
YY_RULE_SETUP
|
|
-#line 241 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 241 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* An unsigned hexadecimal number. */
|
|
yylval.number = strtol(yytext,NULL,16);
|
|
@@ -2452,7 +2462,7 @@
|
|
YY_BREAK
|
|
case 113:
|
|
YY_RULE_SETUP
|
|
-#line 248 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 248 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* An identifier name. */
|
|
yylval.text = sipStrdup(yytext);
|
|
@@ -2461,7 +2471,7 @@
|
|
YY_BREAK
|
|
case 114:
|
|
YY_RULE_SETUP
|
|
-#line 255 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 255 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* A relative pathname. */
|
|
yylval.text = sipStrdup(yytext);
|
|
@@ -2471,7 +2481,7 @@
|
|
case 115:
|
|
/* rule 115 can match eol */
|
|
YY_RULE_SETUP
|
|
-#line 262 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 262 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* A double-quoted string. */
|
|
char ch, *dp, *sp;
|
|
@@ -2510,7 +2520,7 @@
|
|
case 116:
|
|
/* rule 116 can match eol */
|
|
YY_RULE_SETUP
|
|
-#line 298 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 298 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* A single-quoted character. */
|
|
if (strlen(yytext) != 3)
|
|
@@ -2523,7 +2533,7 @@
|
|
YY_BREAK
|
|
case 117:
|
|
YY_RULE_SETUP
|
|
-#line 309 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 309 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* Ignore C-style comments. */
|
|
yy_push_state(ccomment);
|
|
@@ -2532,28 +2542,28 @@
|
|
case 118:
|
|
/* rule 118 can match eol */
|
|
YY_RULE_SETUP
|
|
-#line 313 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 313 "sipgen/metasrc/lexer.l"
|
|
{
|
|
++inputFileStack[currentFile].sloc.linenr;
|
|
}
|
|
YY_BREAK
|
|
case 119:
|
|
YY_RULE_SETUP
|
|
-#line 316 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 316 "sipgen/metasrc/lexer.l"
|
|
{
|
|
yy_pop_state();
|
|
}
|
|
YY_BREAK
|
|
case 120:
|
|
YY_RULE_SETUP
|
|
-#line 319 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 319 "sipgen/metasrc/lexer.l"
|
|
{
|
|
;
|
|
}
|
|
YY_BREAK
|
|
case 121:
|
|
YY_RULE_SETUP
|
|
-#line 324 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 324 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The software license. */
|
|
codeIdx = 0;
|
|
@@ -2562,7 +2572,7 @@
|
|
YY_BREAK
|
|
case 122:
|
|
YY_RULE_SETUP
|
|
-#line 330 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 330 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a from-type code block. */
|
|
codeIdx = 0;
|
|
@@ -2571,7 +2581,7 @@
|
|
YY_BREAK
|
|
case 123:
|
|
YY_RULE_SETUP
|
|
-#line 336 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 336 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a to-type code block. */
|
|
codeIdx = 0;
|
|
@@ -2580,7 +2590,7 @@
|
|
YY_BREAK
|
|
case 124:
|
|
YY_RULE_SETUP
|
|
-#line 342 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 342 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a to-sub-class code block. */
|
|
codeIdx = 0;
|
|
@@ -2589,7 +2599,7 @@
|
|
YY_BREAK
|
|
case 125:
|
|
YY_RULE_SETUP
|
|
-#line 348 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 348 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of an exported header code block. */
|
|
codeIdx = 0;
|
|
@@ -2598,7 +2608,7 @@
|
|
YY_BREAK
|
|
case 126:
|
|
YY_RULE_SETUP
|
|
-#line 354 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 354 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of part of an extract. */
|
|
codeIdx = 0;
|
|
@@ -2610,7 +2620,7 @@
|
|
YY_BREAK
|
|
case 127:
|
|
YY_RULE_SETUP
|
|
-#line 363 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 363 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a module header code block. */
|
|
codeIdx = 0;
|
|
@@ -2619,7 +2629,7 @@
|
|
YY_BREAK
|
|
case 128:
|
|
YY_RULE_SETUP
|
|
-#line 369 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 369 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a type header code block. */
|
|
codeIdx = 0;
|
|
@@ -2628,7 +2638,7 @@
|
|
YY_BREAK
|
|
case 129:
|
|
YY_RULE_SETUP
|
|
-#line 375 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 375 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a pre-initialisation code block. */
|
|
codeIdx = 0;
|
|
@@ -2637,7 +2647,7 @@
|
|
YY_BREAK
|
|
case 130:
|
|
YY_RULE_SETUP
|
|
-#line 381 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 381 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of an initialisation code block. */
|
|
codeIdx = 0;
|
|
@@ -2646,7 +2656,7 @@
|
|
YY_BREAK
|
|
case 131:
|
|
YY_RULE_SETUP
|
|
-#line 387 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 387 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a post-initialisation code block. */
|
|
codeIdx = 0;
|
|
@@ -2655,7 +2665,7 @@
|
|
YY_BREAK
|
|
case 132:
|
|
YY_RULE_SETUP
|
|
-#line 393 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 393 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a class finalisation code block. */
|
|
codeIdx = 0;
|
|
@@ -2664,7 +2674,7 @@
|
|
YY_BREAK
|
|
case 133:
|
|
YY_RULE_SETUP
|
|
-#line 399 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 399 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a unit code block. */
|
|
codeIdx = 0;
|
|
@@ -2673,7 +2683,7 @@
|
|
YY_BREAK
|
|
case 134:
|
|
YY_RULE_SETUP
|
|
-#line 405 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 405 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a unit post-include code block. */
|
|
codeIdx = 0;
|
|
@@ -2682,7 +2692,7 @@
|
|
YY_BREAK
|
|
case 135:
|
|
YY_RULE_SETUP
|
|
-#line 411 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 411 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a module code block. */
|
|
codeIdx = 0;
|
|
@@ -2691,7 +2701,7 @@
|
|
YY_BREAK
|
|
case 136:
|
|
YY_RULE_SETUP
|
|
-#line 417 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 417 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a type code block. */
|
|
codeIdx = 0;
|
|
@@ -2700,7 +2710,7 @@
|
|
YY_BREAK
|
|
case 137:
|
|
YY_RULE_SETUP
|
|
-#line 423 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 423 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a C++ method code block. */
|
|
codeIdx = 0;
|
|
@@ -2709,7 +2719,7 @@
|
|
YY_BREAK
|
|
case 138:
|
|
YY_RULE_SETUP
|
|
-#line 429 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 429 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a C++ code block to insert before the MethodCode. */
|
|
codeIdx = 0;
|
|
@@ -2718,7 +2728,7 @@
|
|
YY_BREAK
|
|
case 139:
|
|
YY_RULE_SETUP
|
|
-#line 435 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 435 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a C++ virtual call code block. */
|
|
codeIdx = 0;
|
|
@@ -2727,7 +2737,7 @@
|
|
YY_BREAK
|
|
case 140:
|
|
YY_RULE_SETUP
|
|
-#line 441 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 441 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a C++ virtual code block. */
|
|
codeIdx = 0;
|
|
@@ -2736,7 +2746,7 @@
|
|
YY_BREAK
|
|
case 141:
|
|
YY_RULE_SETUP
|
|
-#line 447 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 447 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a traverse code block. */
|
|
codeIdx = 0;
|
|
@@ -2745,7 +2755,7 @@
|
|
YY_BREAK
|
|
case 142:
|
|
YY_RULE_SETUP
|
|
-#line 453 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 453 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a clear code block. */
|
|
codeIdx = 0;
|
|
@@ -2754,7 +2764,7 @@
|
|
YY_BREAK
|
|
case 143:
|
|
YY_RULE_SETUP
|
|
-#line 459 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 459 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a get buffer code block. */
|
|
codeIdx = 0;
|
|
@@ -2763,7 +2773,7 @@
|
|
YY_BREAK
|
|
case 144:
|
|
YY_RULE_SETUP
|
|
-#line 465 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 465 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a release buffer code block. */
|
|
codeIdx = 0;
|
|
@@ -2772,7 +2782,7 @@
|
|
YY_BREAK
|
|
case 145:
|
|
YY_RULE_SETUP
|
|
-#line 471 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 471 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a read buffer code block. */
|
|
codeIdx = 0;
|
|
@@ -2781,7 +2791,7 @@
|
|
YY_BREAK
|
|
case 146:
|
|
YY_RULE_SETUP
|
|
-#line 477 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 477 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a write buffer code block. */
|
|
codeIdx = 0;
|
|
@@ -2790,7 +2800,7 @@
|
|
YY_BREAK
|
|
case 147:
|
|
YY_RULE_SETUP
|
|
-#line 483 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 483 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a segment count code block. */
|
|
codeIdx = 0;
|
|
@@ -2799,7 +2809,7 @@
|
|
YY_BREAK
|
|
case 148:
|
|
YY_RULE_SETUP
|
|
-#line 489 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 489 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a char buffer code block. */
|
|
codeIdx = 0;
|
|
@@ -2808,7 +2818,7 @@
|
|
YY_BREAK
|
|
case 149:
|
|
YY_RULE_SETUP
|
|
-#line 495 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 495 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a create instance code block. */
|
|
codeIdx = 0;
|
|
@@ -2817,7 +2827,7 @@
|
|
YY_BREAK
|
|
case 150:
|
|
YY_RULE_SETUP
|
|
-#line 501 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 501 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a pickle code block. */
|
|
codeIdx = 0;
|
|
@@ -2826,7 +2836,7 @@
|
|
YY_BREAK
|
|
case 151:
|
|
YY_RULE_SETUP
|
|
-#line 507 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 507 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a pre-Python code block. */
|
|
deprecated("%PrePythonCode is deprecated");
|
|
@@ -2837,7 +2847,7 @@
|
|
YY_BREAK
|
|
case 152:
|
|
YY_RULE_SETUP
|
|
-#line 515 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 515 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a raise Python exception code block. */
|
|
codeIdx = 0;
|
|
@@ -2846,7 +2856,7 @@
|
|
YY_BREAK
|
|
case 153:
|
|
YY_RULE_SETUP
|
|
-#line 521 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 521 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of an exported type hint code block. */
|
|
codeIdx = 0;
|
|
@@ -2855,7 +2865,7 @@
|
|
YY_BREAK
|
|
case 154:
|
|
YY_RULE_SETUP
|
|
-#line 527 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 527 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a type hint code block. */
|
|
codeIdx = 0;
|
|
@@ -2864,7 +2874,7 @@
|
|
YY_BREAK
|
|
case 155:
|
|
YY_RULE_SETUP
|
|
-#line 533 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 533 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a docstring block. */
|
|
codeIdx = 0;
|
|
@@ -2876,7 +2886,7 @@
|
|
YY_BREAK
|
|
case 156:
|
|
YY_RULE_SETUP
|
|
-#line 542 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 542 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a documentation block. */
|
|
deprecated("%Doc is deprecated, use %Extract instead");
|
|
@@ -2887,7 +2897,7 @@
|
|
YY_BREAK
|
|
case 157:
|
|
YY_RULE_SETUP
|
|
-#line 550 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 550 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of an exported documentation block. */
|
|
deprecated("%ExportedDoc is deprecated, use %Extract instead");
|
|
@@ -2898,7 +2908,7 @@
|
|
YY_BREAK
|
|
case 158:
|
|
YY_RULE_SETUP
|
|
-#line 558 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 558 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a Makefile code block. */
|
|
deprecated("%Makefile is deprecated");
|
|
@@ -2909,7 +2919,7 @@
|
|
YY_BREAK
|
|
case 159:
|
|
YY_RULE_SETUP
|
|
-#line 566 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 566 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of an access code block. */
|
|
codeIdx = 0;
|
|
@@ -2918,7 +2928,7 @@
|
|
YY_BREAK
|
|
case 160:
|
|
YY_RULE_SETUP
|
|
-#line 572 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 572 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a get code block. */
|
|
codeIdx = 0;
|
|
@@ -2927,7 +2937,7 @@
|
|
YY_BREAK
|
|
case 161:
|
|
YY_RULE_SETUP
|
|
-#line 578 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 578 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of a set code block. */
|
|
codeIdx = 0;
|
|
@@ -2936,7 +2946,7 @@
|
|
YY_BREAK
|
|
case 162:
|
|
YY_RULE_SETUP
|
|
-#line 584 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 584 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The start of part of a virtual error handler. */
|
|
codeIdx = 0;
|
|
@@ -2948,7 +2958,7 @@
|
|
YY_BREAK
|
|
case 163:
|
|
YY_RULE_SETUP
|
|
-#line 593 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 593 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The end of a code block. */
|
|
BEGIN INITIAL;
|
|
@@ -2959,7 +2969,7 @@
|
|
case 164:
|
|
/* rule 164 can match eol */
|
|
YY_RULE_SETUP
|
|
-#line 600 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 600 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The end of a code line . */
|
|
struct inputFile *ifp;
|
|
@@ -2981,7 +2991,7 @@
|
|
YY_BREAK
|
|
case 165:
|
|
YY_RULE_SETUP
|
|
-#line 619 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 619 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* The contents of a code line. */
|
|
if (codeIdx == MAX_CODE_LINE_LENGTH)
|
|
@@ -2992,7 +3002,7 @@
|
|
YY_BREAK
|
|
case 166:
|
|
YY_RULE_SETUP
|
|
-#line 627 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 627 "sipgen/metasrc/lexer.l"
|
|
{
|
|
/* Anything else is returned as is. */
|
|
return yytext[0];
|
|
@@ -3000,10 +3010,10 @@
|
|
YY_BREAK
|
|
case 167:
|
|
YY_RULE_SETUP
|
|
-#line 632 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 632 "sipgen/metasrc/lexer.l"
|
|
ECHO;
|
|
YY_BREAK
|
|
-#line 3007 "sip-4.19.12/sipgen/lexer.c"
|
|
+#line 3017 "sipgen/lexer.c"
|
|
case YY_STATE_EOF(INITIAL):
|
|
case YY_STATE_EOF(code):
|
|
case YY_STATE_EOF(ccomment):
|
|
@@ -3138,6 +3148,7 @@
|
|
"fatal flex scanner internal error--no action found" );
|
|
} /* end of action switch */
|
|
} /* end of scanning one token */
|
|
+ } /* end of user's declarations */
|
|
} /* end of yylex */
|
|
|
|
/* yy_get_next_buffer - try to read in a new buffer
|
|
@@ -3149,9 +3160,9 @@
|
|
*/
|
|
static int yy_get_next_buffer (void)
|
|
{
|
|
- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
|
|
- register char *source = (yytext_ptr);
|
|
- register int number_to_move, i;
|
|
+ char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
|
|
+ char *source = (yytext_ptr);
|
|
+ yy_size_t number_to_move, i;
|
|
int ret_val;
|
|
|
|
if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
|
|
@@ -3180,7 +3191,7 @@
|
|
/* Try to read more data. */
|
|
|
|
/* First move last chars to start of buffer. */
|
|
- number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
|
|
+ number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1;
|
|
|
|
for ( i = 0; i < number_to_move; ++i )
|
|
*(dest++) = *(source++);
|
|
@@ -3193,21 +3204,21 @@
|
|
|
|
else
|
|
{
|
|
- yy_size_t num_to_read =
|
|
+ int num_to_read =
|
|
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
|
|
|
|
while ( num_to_read <= 0 )
|
|
{ /* Not enough room in the buffer - grow it. */
|
|
|
|
/* just a shorter name for the current buffer */
|
|
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
|
|
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
|
|
|
|
int yy_c_buf_p_offset =
|
|
(int) ((yy_c_buf_p) - b->yy_ch_buf);
|
|
|
|
if ( b->yy_is_our_buffer )
|
|
{
|
|
- yy_size_t new_size = b->yy_buf_size * 2;
|
|
+ int new_size = b->yy_buf_size * 2;
|
|
|
|
if ( new_size <= 0 )
|
|
b->yy_buf_size += b->yy_buf_size / 8;
|
|
@@ -3216,11 +3227,11 @@
|
|
|
|
b->yy_ch_buf = (char *)
|
|
/* Include room in for 2 EOB chars. */
|
|
- yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
|
|
+ yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) );
|
|
}
|
|
else
|
|
/* Can't grow it, we don't own it. */
|
|
- b->yy_ch_buf = 0;
|
|
+ b->yy_ch_buf = NULL;
|
|
|
|
if ( ! b->yy_ch_buf )
|
|
YY_FATAL_ERROR(
|
|
@@ -3262,10 +3273,10 @@
|
|
else
|
|
ret_val = EOB_ACT_CONTINUE_SCAN;
|
|
|
|
- if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
|
|
+ if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
|
|
/* Extend the array by 50%, plus the number we really need. */
|
|
- yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
|
|
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
|
|
+ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
|
|
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size );
|
|
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
|
|
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
|
|
}
|
|
@@ -3283,15 +3294,15 @@
|
|
|
|
static yy_state_type yy_get_previous_state (void)
|
|
{
|
|
- register yy_state_type yy_current_state;
|
|
- register char *yy_cp;
|
|
+ yy_state_type yy_current_state;
|
|
+ char *yy_cp;
|
|
|
|
yy_current_state = (yy_start);
|
|
yy_current_state += YY_AT_BOL();
|
|
|
|
for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
|
|
{
|
|
- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
|
|
+ YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
|
|
if ( yy_accept[yy_current_state] )
|
|
{
|
|
(yy_last_accepting_state) = yy_current_state;
|
|
@@ -3303,7 +3314,7 @@
|
|
if ( yy_current_state >= 1231 )
|
|
yy_c = yy_meta[(unsigned int) yy_c];
|
|
}
|
|
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
|
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
|
|
}
|
|
|
|
return yy_current_state;
|
|
@@ -3316,10 +3327,10 @@
|
|
*/
|
|
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
|
|
{
|
|
- register int yy_is_jam;
|
|
- register char *yy_cp = (yy_c_buf_p);
|
|
+ int yy_is_jam;
|
|
+ char *yy_cp = (yy_c_buf_p);
|
|
|
|
- register YY_CHAR yy_c = 1;
|
|
+ YY_CHAR yy_c = 1;
|
|
if ( yy_accept[yy_current_state] )
|
|
{
|
|
(yy_last_accepting_state) = yy_current_state;
|
|
@@ -3331,15 +3342,17 @@
|
|
if ( yy_current_state >= 1231 )
|
|
yy_c = yy_meta[(unsigned int) yy_c];
|
|
}
|
|
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
|
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
|
|
yy_is_jam = (yy_current_state == 1230);
|
|
|
|
- return yy_is_jam ? 0 : yy_current_state;
|
|
+ return yy_is_jam ? 0 : yy_current_state;
|
|
}
|
|
|
|
- static void yyunput (int c, register char * yy_bp )
|
|
+#ifndef YY_NO_UNPUT
|
|
+
|
|
+ static void yyunput (int c, char * yy_bp )
|
|
{
|
|
- register char *yy_cp;
|
|
+ char *yy_cp;
|
|
|
|
yy_cp = (yy_c_buf_p);
|
|
|
|
@@ -3349,10 +3362,10 @@
|
|
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
|
|
{ /* need to shift things up to make room */
|
|
/* +2 for EOB chars. */
|
|
- register yy_size_t number_to_move = (yy_n_chars) + 2;
|
|
- register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
|
|
+ int number_to_move = (yy_n_chars) + 2;
|
|
+ char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
|
|
YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
|
|
- register char *source =
|
|
+ char *source =
|
|
&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
|
|
|
|
while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
|
|
@@ -3361,7 +3374,7 @@
|
|
yy_cp += (int) (dest - source);
|
|
yy_bp += (int) (dest - source);
|
|
YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
|
|
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
|
|
+ (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
|
|
|
|
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
|
|
YY_FATAL_ERROR( "flex scanner push-back overflow" );
|
|
@@ -3374,6 +3387,8 @@
|
|
(yy_c_buf_p) = yy_cp;
|
|
}
|
|
|
|
+#endif
|
|
+
|
|
#ifndef YY_NO_INPUT
|
|
#ifdef __cplusplus
|
|
static int yyinput (void)
|
|
@@ -3398,7 +3413,7 @@
|
|
|
|
else
|
|
{ /* need more input */
|
|
- yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
|
|
+ int offset = (yy_c_buf_p) - (yytext_ptr);
|
|
++(yy_c_buf_p);
|
|
|
|
switch ( yy_get_next_buffer( ) )
|
|
@@ -3530,7 +3545,7 @@
|
|
/* yy_ch_buf has to be 2 characters longer than the size given because
|
|
* we need to put in 2 end-of-buffer characters.
|
|
*/
|
|
- b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
|
|
+ b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2) );
|
|
if ( ! b->yy_ch_buf )
|
|
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
|
|
|
@@ -3560,10 +3575,6 @@
|
|
yyfree((void *) b );
|
|
}
|
|
|
|
-#ifndef __cplusplus
|
|
-extern int isatty (int );
|
|
-#endif /* __cplusplus */
|
|
-
|
|
/* Initializes or reinitializes a buffer.
|
|
* This function is sometimes called more than once on the same buffer,
|
|
* such as during a yyrestart() or at EOF.
|
|
@@ -3676,7 +3687,7 @@
|
|
*/
|
|
static void yyensure_buffer_stack (void)
|
|
{
|
|
- yy_size_t num_to_alloc;
|
|
+ int num_to_alloc;
|
|
|
|
if (!(yy_buffer_stack)) {
|
|
|
|
@@ -3684,7 +3695,7 @@
|
|
* scanner will even need a stack. We use 2 instead of 1 to avoid an
|
|
* immediate realloc on the next call.
|
|
*/
|
|
- num_to_alloc = 1;
|
|
+ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
|
|
(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
|
|
(num_to_alloc * sizeof(struct yy_buffer_state*)
|
|
);
|
|
@@ -3701,7 +3712,7 @@
|
|
if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
|
|
|
|
/* Increase the buffer to prepare for a possible push. */
|
|
- int grow_size = 8 /* arbitrary grow size */;
|
|
+ yy_size_t grow_size = 8 /* arbitrary grow size */;
|
|
|
|
num_to_alloc = (yy_buffer_stack_max) + grow_size;
|
|
(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
|
|
@@ -3731,16 +3742,16 @@
|
|
base[size-2] != YY_END_OF_BUFFER_CHAR ||
|
|
base[size-1] != YY_END_OF_BUFFER_CHAR )
|
|
/* They forgot to leave room for the EOB's. */
|
|
- return 0;
|
|
+ return NULL;
|
|
|
|
b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
|
|
if ( ! b )
|
|
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
|
|
|
|
- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
|
|
+ b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
|
|
b->yy_buf_pos = b->yy_ch_buf = base;
|
|
b->yy_is_our_buffer = 0;
|
|
- b->yy_input_file = 0;
|
|
+ b->yy_input_file = NULL;
|
|
b->yy_n_chars = b->yy_buf_size;
|
|
b->yy_is_interactive = 0;
|
|
b->yy_at_bol = 1;
|
|
@@ -3763,24 +3774,25 @@
|
|
YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
|
|
{
|
|
|
|
- return yy_scan_bytes(yystr,strlen(yystr) );
|
|
+ return yy_scan_bytes(yystr,(int) strlen(yystr) );
|
|
}
|
|
|
|
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
|
|
* scan from a @e copy of @a bytes.
|
|
- * @param bytes the byte buffer to scan
|
|
- * @param len the number of bytes in the buffer pointed to by @a bytes.
|
|
+ * @param yybytes the byte buffer to scan
|
|
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
|
|
*
|
|
* @return the newly allocated buffer state object.
|
|
*/
|
|
-YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
|
|
+YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
|
|
{
|
|
YY_BUFFER_STATE b;
|
|
char *buf;
|
|
- yy_size_t n, i;
|
|
+ yy_size_t n;
|
|
+ yy_size_t i;
|
|
|
|
/* Get memory for full buffer, including space for trailing EOB's. */
|
|
- n = _yybytes_len + 2;
|
|
+ n = (yy_size_t) _yybytes_len + 2;
|
|
buf = (char *) yyalloc(n );
|
|
if ( ! buf )
|
|
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
|
|
@@ -3802,14 +3814,14 @@
|
|
return b;
|
|
}
|
|
|
|
- static void yy_push_state (int new_state )
|
|
+ static void yy_push_state (int _new_state )
|
|
{
|
|
if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
|
|
{
|
|
yy_size_t new_size;
|
|
|
|
(yy_start_stack_depth) += YY_START_STACK_INCR;
|
|
- new_size = (yy_start_stack_depth) * sizeof( int );
|
|
+ new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
|
|
|
|
if ( ! (yy_start_stack) )
|
|
(yy_start_stack) = (int *) yyalloc(new_size );
|
|
@@ -3823,7 +3835,7 @@
|
|
|
|
(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
|
|
|
|
- BEGIN(new_state);
|
|
+ BEGIN(_new_state);
|
|
}
|
|
|
|
static void yy_pop_state (void)
|
|
@@ -3843,9 +3855,9 @@
|
|
#define YY_EXIT_FAILURE 2
|
|
#endif
|
|
|
|
-static void yy_fatal_error (yyconst char* msg )
|
|
+static void yynoreturn yy_fatal_error (yyconst char* msg )
|
|
{
|
|
- (void) fprintf( stderr, "%s\n", msg );
|
|
+ (void) fprintf( stderr, "%s\n", msg );
|
|
exit( YY_EXIT_FAILURE );
|
|
}
|
|
|
|
@@ -3856,7 +3868,7 @@
|
|
do \
|
|
{ \
|
|
/* Undo effects of setting up yytext. */ \
|
|
- int yyless_macro_arg = (n); \
|
|
+ yy_size_t yyless_macro_arg = (n); \
|
|
YY_LESS_LINENO(yyless_macro_arg);\
|
|
yytext[yyleng] = (yy_hold_char); \
|
|
(yy_c_buf_p) = yytext + yyless_macro_arg; \
|
|
@@ -3896,7 +3908,7 @@
|
|
/** Get the length of the current token.
|
|
*
|
|
*/
|
|
-yy_size_t yyget_leng (void)
|
|
+int yyget_leng (void)
|
|
{
|
|
return yyleng;
|
|
}
|
|
@@ -3911,29 +3923,29 @@
|
|
}
|
|
|
|
/** Set the current line number.
|
|
- * @param line_number
|
|
+ * @param _line_number line number
|
|
*
|
|
*/
|
|
-void yyset_lineno (int line_number )
|
|
+void yyset_lineno (int _line_number )
|
|
{
|
|
|
|
- yylineno = line_number;
|
|
+ yylineno = _line_number;
|
|
}
|
|
|
|
/** Set the input stream. This does not discard the current
|
|
* input buffer.
|
|
- * @param in_str A readable stream.
|
|
+ * @param _in_str A readable stream.
|
|
*
|
|
* @see yy_switch_to_buffer
|
|
*/
|
|
-void yyset_in (FILE * in_str )
|
|
+void yyset_in (FILE * _in_str )
|
|
{
|
|
- yyin = in_str ;
|
|
+ yyin = _in_str ;
|
|
}
|
|
|
|
-void yyset_out (FILE * out_str )
|
|
+void yyset_out (FILE * _out_str )
|
|
{
|
|
- yyout = out_str ;
|
|
+ yyout = _out_str ;
|
|
}
|
|
|
|
int yyget_debug (void)
|
|
@@ -3941,9 +3953,9 @@
|
|
return yy_flex_debug;
|
|
}
|
|
|
|
-void yyset_debug (int bdebug )
|
|
+void yyset_debug (int _bdebug )
|
|
{
|
|
- yy_flex_debug = bdebug ;
|
|
+ yy_flex_debug = _bdebug ;
|
|
}
|
|
|
|
static int yy_init_globals (void)
|
|
@@ -3952,10 +3964,10 @@
|
|
* This function is called from yylex_destroy(), so don't allocate here.
|
|
*/
|
|
|
|
- (yy_buffer_stack) = 0;
|
|
+ (yy_buffer_stack) = NULL;
|
|
(yy_buffer_stack_top) = 0;
|
|
(yy_buffer_stack_max) = 0;
|
|
- (yy_c_buf_p) = (char *) 0;
|
|
+ (yy_c_buf_p) = NULL;
|
|
(yy_init) = 0;
|
|
(yy_start) = 0;
|
|
|
|
@@ -3968,8 +3980,8 @@
|
|
yyin = stdin;
|
|
yyout = stdout;
|
|
#else
|
|
- yyin = (FILE *) 0;
|
|
- yyout = (FILE *) 0;
|
|
+ yyin = NULL;
|
|
+ yyout = NULL;
|
|
#endif
|
|
|
|
/* For future reference: Set errno on error, since we are called by
|
|
@@ -4011,7 +4023,8 @@
|
|
#ifndef yytext_ptr
|
|
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
|
|
{
|
|
- register int i;
|
|
+
|
|
+ int i;
|
|
for ( i = 0; i < n; ++i )
|
|
s1[i] = s2[i];
|
|
}
|
|
@@ -4020,7 +4033,7 @@
|
|
#ifdef YY_NEED_STRLEN
|
|
static int yy_flex_strlen (yyconst char * s )
|
|
{
|
|
- register int n;
|
|
+ int n;
|
|
for ( n = 0; s[n]; ++n )
|
|
;
|
|
|
|
@@ -4030,11 +4043,12 @@
|
|
|
|
void *yyalloc (yy_size_t size )
|
|
{
|
|
- return (void *) malloc( size );
|
|
+ return malloc(size);
|
|
}
|
|
|
|
void *yyrealloc (void * ptr, yy_size_t size )
|
|
{
|
|
+
|
|
/* The cast to (char *) in the following accommodates both
|
|
* implementations that use char* generic pointers, and those
|
|
* that use void* generic pointers. It works with the latter
|
|
@@ -4042,17 +4056,17 @@
|
|
* any pointer type to void*, and deal with argument conversions
|
|
* as though doing an assignment.
|
|
*/
|
|
- return (void *) realloc( (char *) ptr, size );
|
|
+ return realloc(ptr, size);
|
|
}
|
|
|
|
void yyfree (void * ptr )
|
|
{
|
|
- free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
|
|
+ free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
|
|
}
|
|
|
|
#define YYTABLES_NAME "yytables"
|
|
|
|
-#line 632 "sip-4.19.12/sipgen/metasrc/lexer.l"
|
|
+#line 632 "sipgen/metasrc/lexer.l"
|
|
|
|
|
|
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/metasrc/parser.y sip/sipgen/metasrc/parser.y
|
|
--- ./sip-4.19.12.orig/sipgen/metasrc/parser.y 2018-07-05 05:54:58.000000000 -0400
|
|
+++ sip/sipgen/metasrc/parser.y 2018-09-24 13:12:20.673276084 -0400
|
|
@@ -7586,7 +7586,7 @@
|
|
if (getDeprecated(optflgs))
|
|
setIsDeprecated(od);
|
|
|
|
- if (!isPrivate(od) && !isSignal(od) && (od->common->slot == no_slot || od->common->slot == call_slot))
|
|
+ if (!isPrivate(od) && (od->common->slot == no_slot || od->common->slot == call_slot))
|
|
{
|
|
od->kwargs = keywordArgs(mod, optflgs, &od->pysig, hasProtected(od->common));
|
|
|
|
@@ -7598,7 +7598,7 @@
|
|
* we need to make sure that any other overloads' keyword argument
|
|
* names are marked as used.
|
|
*/
|
|
- if (isProtected(od) && !inMainModule())
|
|
+ if (!isSignal(od) && isProtected(od) && !inMainModule())
|
|
{
|
|
overDef *kwod;
|
|
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/parser.c sip/sipgen/parser.c
|
|
--- ./sip-4.19.12.orig/sipgen/parser.c 2018-07-05 05:55:19.000000000 -0400
|
|
+++ sip/sipgen/parser.c 2018-09-18 18:12:23.641053271 -0400
|
|
@@ -1,14 +1,13 @@
|
|
-/* A Bison parser, made by GNU Bison 2.3. */
|
|
+/* A Bison parser, made by GNU Bison 3.0.4. */
|
|
|
|
-/* Skeleton implementation for Bison's Yacc-like parsers in C
|
|
+/* Bison implementation for Yacc-like parsers in C
|
|
|
|
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
|
- Free Software Foundation, Inc.
|
|
+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
|
|
|
|
- This program is free software; you can redistribute it and/or modify
|
|
+ This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
- the Free Software Foundation; either version 2, or (at your option)
|
|
- any later version.
|
|
+ the Free Software Foundation, either version 3 of the License, or
|
|
+ (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
@@ -16,9 +15,7 @@
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
- along with this program; if not, write to the Free Software
|
|
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
- Boston, MA 02110-1301, USA. */
|
|
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
/* As a special exception, you may create a larger work that contains
|
|
part or all of the Bison parser skeleton and distribute that work
|
|
@@ -47,7 +44,7 @@
|
|
#define YYBISON 1
|
|
|
|
/* Bison version. */
|
|
-#define YYBISON_VERSION "2.3"
|
|
+#define YYBISON_VERSION "3.0.4"
|
|
|
|
/* Skeleton name. */
|
|
#define YYSKELETON_NAME "yacc.c"
|
|
@@ -55,324 +52,17 @@
|
|
/* Pure parsers. */
|
|
#define YYPURE 0
|
|
|
|
-/* Using locations. */
|
|
-#define YYLSP_NEEDED 0
|
|
-
|
|
-
|
|
+/* Push parsers. */
|
|
+#define YYPUSH 0
|
|
|
|
-/* Tokens. */
|
|
-#ifndef YYTOKENTYPE
|
|
-# define YYTOKENTYPE
|
|
- /* Put the tokens into the symbol table, so that GDB and other debuggers
|
|
- know about them. */
|
|
- enum yytokentype {
|
|
- TK_API = 258,
|
|
- TK_AUTOPYNAME = 259,
|
|
- TK_DEFDOCSTRFMT = 260,
|
|
- TK_DEFDOCSTRSIG = 261,
|
|
- TK_DEFENCODING = 262,
|
|
- TK_PLUGIN = 263,
|
|
- TK_VIRTERRORHANDLER = 264,
|
|
- TK_EXPTYPEHINTCODE = 265,
|
|
- TK_TYPEHINTCODE = 266,
|
|
- TK_DOCSTRING = 267,
|
|
- TK_DOC = 268,
|
|
- TK_EXPORTEDDOC = 269,
|
|
- TK_EXTRACT = 270,
|
|
- TK_MAKEFILE = 271,
|
|
- TK_ACCESSCODE = 272,
|
|
- TK_GETCODE = 273,
|
|
- TK_SETCODE = 274,
|
|
- TK_PREINITCODE = 275,
|
|
- TK_INITCODE = 276,
|
|
- TK_POSTINITCODE = 277,
|
|
- TK_FINALCODE = 278,
|
|
- TK_UNITCODE = 279,
|
|
- TK_UNITPOSTINCLUDECODE = 280,
|
|
- TK_MODCODE = 281,
|
|
- TK_TYPECODE = 282,
|
|
- TK_PREPYCODE = 283,
|
|
- TK_COPYING = 284,
|
|
- TK_MAPPEDTYPE = 285,
|
|
- TK_CODELINE = 286,
|
|
- TK_IF = 287,
|
|
- TK_END = 288,
|
|
- TK_NAME_VALUE = 289,
|
|
- TK_PATH_VALUE = 290,
|
|
- TK_STRING_VALUE = 291,
|
|
- TK_VIRTUALCATCHERCODE = 292,
|
|
- TK_TRAVERSECODE = 293,
|
|
- TK_CLEARCODE = 294,
|
|
- TK_GETBUFFERCODE = 295,
|
|
- TK_RELEASEBUFFERCODE = 296,
|
|
- TK_READBUFFERCODE = 297,
|
|
- TK_WRITEBUFFERCODE = 298,
|
|
- TK_SEGCOUNTCODE = 299,
|
|
- TK_CHARBUFFERCODE = 300,
|
|
- TK_PICKLECODE = 301,
|
|
- TK_VIRTUALCALLCODE = 302,
|
|
- TK_METHODCODE = 303,
|
|
- TK_PREMETHODCODE = 304,
|
|
- TK_INSTANCECODE = 305,
|
|
- TK_FROMTYPE = 306,
|
|
- TK_TOTYPE = 307,
|
|
- TK_TOSUBCLASS = 308,
|
|
- TK_INCLUDE = 309,
|
|
- TK_OPTINCLUDE = 310,
|
|
- TK_IMPORT = 311,
|
|
- TK_EXPHEADERCODE = 312,
|
|
- TK_MODHEADERCODE = 313,
|
|
- TK_TYPEHEADERCODE = 314,
|
|
- TK_MODULE = 315,
|
|
- TK_CMODULE = 316,
|
|
- TK_CONSMODULE = 317,
|
|
- TK_COMPOMODULE = 318,
|
|
- TK_CLASS = 319,
|
|
- TK_STRUCT = 320,
|
|
- TK_PUBLIC = 321,
|
|
- TK_PROTECTED = 322,
|
|
- TK_PRIVATE = 323,
|
|
- TK_SIGNALS = 324,
|
|
- TK_SIGNAL_METHOD = 325,
|
|
- TK_SLOTS = 326,
|
|
- TK_SLOT_METHOD = 327,
|
|
- TK_BOOL = 328,
|
|
- TK_SHORT = 329,
|
|
- TK_INT = 330,
|
|
- TK_LONG = 331,
|
|
- TK_FLOAT = 332,
|
|
- TK_DOUBLE = 333,
|
|
- TK_CHAR = 334,
|
|
- TK_WCHAR_T = 335,
|
|
- TK_VOID = 336,
|
|
- TK_PYOBJECT = 337,
|
|
- TK_PYTUPLE = 338,
|
|
- TK_PYLIST = 339,
|
|
- TK_PYDICT = 340,
|
|
- TK_PYCALLABLE = 341,
|
|
- TK_PYSLICE = 342,
|
|
- TK_PYTYPE = 343,
|
|
- TK_PYBUFFER = 344,
|
|
- TK_VIRTUAL = 345,
|
|
- TK_ENUM = 346,
|
|
- TK_SIGNED = 347,
|
|
- TK_UNSIGNED = 348,
|
|
- TK_SCOPE = 349,
|
|
- TK_LOGICAL_OR = 350,
|
|
- TK_CONST = 351,
|
|
- TK_STATIC = 352,
|
|
- TK_SIPSIGNAL = 353,
|
|
- TK_SIPSLOT = 354,
|
|
- TK_SIPANYSLOT = 355,
|
|
- TK_SIPRXCON = 356,
|
|
- TK_SIPRXDIS = 357,
|
|
- TK_SIPSLOTCON = 358,
|
|
- TK_SIPSLOTDIS = 359,
|
|
- TK_SIPSSIZET = 360,
|
|
- TK_NUMBER_VALUE = 361,
|
|
- TK_REAL_VALUE = 362,
|
|
- TK_TYPEDEF = 363,
|
|
- TK_NAMESPACE = 364,
|
|
- TK_TIMELINE = 365,
|
|
- TK_PLATFORMS = 366,
|
|
- TK_FEATURE = 367,
|
|
- TK_LICENSE = 368,
|
|
- TK_QCHAR_VALUE = 369,
|
|
- TK_TRUE_VALUE = 370,
|
|
- TK_FALSE_VALUE = 371,
|
|
- TK_NULL_VALUE = 372,
|
|
- TK_OPERATOR = 373,
|
|
- TK_THROW = 374,
|
|
- TK_QOBJECT = 375,
|
|
- TK_EXCEPTION = 376,
|
|
- TK_RAISECODE = 377,
|
|
- TK_VIRTERRORCODE = 378,
|
|
- TK_EXPLICIT = 379,
|
|
- TK_TEMPLATE = 380,
|
|
- TK_FINAL = 381,
|
|
- TK_ELLIPSIS = 382,
|
|
- TK_DEFMETATYPE = 383,
|
|
- TK_DEFSUPERTYPE = 384,
|
|
- TK_PROPERTY = 385,
|
|
- TK_HIDE_NS = 386,
|
|
- TK_FORMAT = 387,
|
|
- TK_GET = 388,
|
|
- TK_ID = 389,
|
|
- TK_KWARGS = 390,
|
|
- TK_LANGUAGE = 391,
|
|
- TK_LICENSEE = 392,
|
|
- TK_NAME = 393,
|
|
- TK_OPTIONAL = 394,
|
|
- TK_ORDER = 395,
|
|
- TK_REMOVELEADING = 396,
|
|
- TK_SET = 397,
|
|
- TK_SIGNATURE = 398,
|
|
- TK_TIMESTAMP = 399,
|
|
- TK_TYPE = 400,
|
|
- TK_USEARGNAMES = 401,
|
|
- TK_USELIMITEDAPI = 402,
|
|
- TK_ALLRAISEPYEXC = 403,
|
|
- TK_CALLSUPERINIT = 404,
|
|
- TK_DEFERRORHANDLER = 405,
|
|
- TK_VERSION = 406
|
|
- };
|
|
-#endif
|
|
-/* Tokens. */
|
|
-#define TK_API 258
|
|
-#define TK_AUTOPYNAME 259
|
|
-#define TK_DEFDOCSTRFMT 260
|
|
-#define TK_DEFDOCSTRSIG 261
|
|
-#define TK_DEFENCODING 262
|
|
-#define TK_PLUGIN 263
|
|
-#define TK_VIRTERRORHANDLER 264
|
|
-#define TK_EXPTYPEHINTCODE 265
|
|
-#define TK_TYPEHINTCODE 266
|
|
-#define TK_DOCSTRING 267
|
|
-#define TK_DOC 268
|
|
-#define TK_EXPORTEDDOC 269
|
|
-#define TK_EXTRACT 270
|
|
-#define TK_MAKEFILE 271
|
|
-#define TK_ACCESSCODE 272
|
|
-#define TK_GETCODE 273
|
|
-#define TK_SETCODE 274
|
|
-#define TK_PREINITCODE 275
|
|
-#define TK_INITCODE 276
|
|
-#define TK_POSTINITCODE 277
|
|
-#define TK_FINALCODE 278
|
|
-#define TK_UNITCODE 279
|
|
-#define TK_UNITPOSTINCLUDECODE 280
|
|
-#define TK_MODCODE 281
|
|
-#define TK_TYPECODE 282
|
|
-#define TK_PREPYCODE 283
|
|
-#define TK_COPYING 284
|
|
-#define TK_MAPPEDTYPE 285
|
|
-#define TK_CODELINE 286
|
|
-#define TK_IF 287
|
|
-#define TK_END 288
|
|
-#define TK_NAME_VALUE 289
|
|
-#define TK_PATH_VALUE 290
|
|
-#define TK_STRING_VALUE 291
|
|
-#define TK_VIRTUALCATCHERCODE 292
|
|
-#define TK_TRAVERSECODE 293
|
|
-#define TK_CLEARCODE 294
|
|
-#define TK_GETBUFFERCODE 295
|
|
-#define TK_RELEASEBUFFERCODE 296
|
|
-#define TK_READBUFFERCODE 297
|
|
-#define TK_WRITEBUFFERCODE 298
|
|
-#define TK_SEGCOUNTCODE 299
|
|
-#define TK_CHARBUFFERCODE 300
|
|
-#define TK_PICKLECODE 301
|
|
-#define TK_VIRTUALCALLCODE 302
|
|
-#define TK_METHODCODE 303
|
|
-#define TK_PREMETHODCODE 304
|
|
-#define TK_INSTANCECODE 305
|
|
-#define TK_FROMTYPE 306
|
|
-#define TK_TOTYPE 307
|
|
-#define TK_TOSUBCLASS 308
|
|
-#define TK_INCLUDE 309
|
|
-#define TK_OPTINCLUDE 310
|
|
-#define TK_IMPORT 311
|
|
-#define TK_EXPHEADERCODE 312
|
|
-#define TK_MODHEADERCODE 313
|
|
-#define TK_TYPEHEADERCODE 314
|
|
-#define TK_MODULE 315
|
|
-#define TK_CMODULE 316
|
|
-#define TK_CONSMODULE 317
|
|
-#define TK_COMPOMODULE 318
|
|
-#define TK_CLASS 319
|
|
-#define TK_STRUCT 320
|
|
-#define TK_PUBLIC 321
|
|
-#define TK_PROTECTED 322
|
|
-#define TK_PRIVATE 323
|
|
-#define TK_SIGNALS 324
|
|
-#define TK_SIGNAL_METHOD 325
|
|
-#define TK_SLOTS 326
|
|
-#define TK_SLOT_METHOD 327
|
|
-#define TK_BOOL 328
|
|
-#define TK_SHORT 329
|
|
-#define TK_INT 330
|
|
-#define TK_LONG 331
|
|
-#define TK_FLOAT 332
|
|
-#define TK_DOUBLE 333
|
|
-#define TK_CHAR 334
|
|
-#define TK_WCHAR_T 335
|
|
-#define TK_VOID 336
|
|
-#define TK_PYOBJECT 337
|
|
-#define TK_PYTUPLE 338
|
|
-#define TK_PYLIST 339
|
|
-#define TK_PYDICT 340
|
|
-#define TK_PYCALLABLE 341
|
|
-#define TK_PYSLICE 342
|
|
-#define TK_PYTYPE 343
|
|
-#define TK_PYBUFFER 344
|
|
-#define TK_VIRTUAL 345
|
|
-#define TK_ENUM 346
|
|
-#define TK_SIGNED 347
|
|
-#define TK_UNSIGNED 348
|
|
-#define TK_SCOPE 349
|
|
-#define TK_LOGICAL_OR 350
|
|
-#define TK_CONST 351
|
|
-#define TK_STATIC 352
|
|
-#define TK_SIPSIGNAL 353
|
|
-#define TK_SIPSLOT 354
|
|
-#define TK_SIPANYSLOT 355
|
|
-#define TK_SIPRXCON 356
|
|
-#define TK_SIPRXDIS 357
|
|
-#define TK_SIPSLOTCON 358
|
|
-#define TK_SIPSLOTDIS 359
|
|
-#define TK_SIPSSIZET 360
|
|
-#define TK_NUMBER_VALUE 361
|
|
-#define TK_REAL_VALUE 362
|
|
-#define TK_TYPEDEF 363
|
|
-#define TK_NAMESPACE 364
|
|
-#define TK_TIMELINE 365
|
|
-#define TK_PLATFORMS 366
|
|
-#define TK_FEATURE 367
|
|
-#define TK_LICENSE 368
|
|
-#define TK_QCHAR_VALUE 369
|
|
-#define TK_TRUE_VALUE 370
|
|
-#define TK_FALSE_VALUE 371
|
|
-#define TK_NULL_VALUE 372
|
|
-#define TK_OPERATOR 373
|
|
-#define TK_THROW 374
|
|
-#define TK_QOBJECT 375
|
|
-#define TK_EXCEPTION 376
|
|
-#define TK_RAISECODE 377
|
|
-#define TK_VIRTERRORCODE 378
|
|
-#define TK_EXPLICIT 379
|
|
-#define TK_TEMPLATE 380
|
|
-#define TK_FINAL 381
|
|
-#define TK_ELLIPSIS 382
|
|
-#define TK_DEFMETATYPE 383
|
|
-#define TK_DEFSUPERTYPE 384
|
|
-#define TK_PROPERTY 385
|
|
-#define TK_HIDE_NS 386
|
|
-#define TK_FORMAT 387
|
|
-#define TK_GET 388
|
|
-#define TK_ID 389
|
|
-#define TK_KWARGS 390
|
|
-#define TK_LANGUAGE 391
|
|
-#define TK_LICENSEE 392
|
|
-#define TK_NAME 393
|
|
-#define TK_OPTIONAL 394
|
|
-#define TK_ORDER 395
|
|
-#define TK_REMOVELEADING 396
|
|
-#define TK_SET 397
|
|
-#define TK_SIGNATURE 398
|
|
-#define TK_TIMESTAMP 399
|
|
-#define TK_TYPE 400
|
|
-#define TK_USEARGNAMES 401
|
|
-#define TK_USELIMITEDAPI 402
|
|
-#define TK_ALLRAISEPYEXC 403
|
|
-#define TK_CALLSUPERINIT 404
|
|
-#define TK_DEFERRORHANDLER 405
|
|
-#define TK_VERSION 406
|
|
+/* Pull parsers. */
|
|
+#define YYPULL 1
|
|
|
|
|
|
|
|
|
|
/* Copy the first part of user declarations. */
|
|
-#line 19 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 19 "sipgen/metasrc/parser.y" /* yacc.c:339 */
|
|
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
@@ -556,11 +246,15 @@
|
|
static void checkEllipsis(signatureDef *sd);
|
|
static scopedNameDef *fullyQualifiedName(scopedNameDef *snd);
|
|
|
|
+#line 250 "sipgen/parser.c" /* yacc.c:339 */
|
|
|
|
-/* Enabling traces. */
|
|
-#ifndef YYDEBUG
|
|
-# define YYDEBUG 0
|
|
-#endif
|
|
+# ifndef YY_NULLPTR
|
|
+# if defined __cplusplus && 201103L <= __cplusplus
|
|
+# define YY_NULLPTR nullptr
|
|
+# else
|
|
+# define YY_NULLPTR 0
|
|
+# endif
|
|
+# endif
|
|
|
|
/* Enabling verbose error messages. */
|
|
#ifdef YYERROR_VERBOSE
|
|
@@ -570,15 +264,332 @@
|
|
# define YYERROR_VERBOSE 0
|
|
#endif
|
|
|
|
-/* Enabling the token table. */
|
|
-#ifndef YYTOKEN_TABLE
|
|
-# define YYTOKEN_TABLE 0
|
|
+/* In a future release of Bison, this section will be replaced
|
|
+ by #include "parser.h". */
|
|
+#ifndef YY_YY_SIPGEN_PARSER_H_INCLUDED
|
|
+# define YY_YY_SIPGEN_PARSER_H_INCLUDED
|
|
+/* Debug traces. */
|
|
+#ifndef YYDEBUG
|
|
+# define YYDEBUG 0
|
|
+#endif
|
|
+#if YYDEBUG
|
|
+extern int yydebug;
|
|
#endif
|
|
|
|
+/* Token type. */
|
|
+#ifndef YYTOKENTYPE
|
|
+# define YYTOKENTYPE
|
|
+ enum yytokentype
|
|
+ {
|
|
+ TK_API = 258,
|
|
+ TK_AUTOPYNAME = 259,
|
|
+ TK_DEFDOCSTRFMT = 260,
|
|
+ TK_DEFDOCSTRSIG = 261,
|
|
+ TK_DEFENCODING = 262,
|
|
+ TK_PLUGIN = 263,
|
|
+ TK_VIRTERRORHANDLER = 264,
|
|
+ TK_EXPTYPEHINTCODE = 265,
|
|
+ TK_TYPEHINTCODE = 266,
|
|
+ TK_DOCSTRING = 267,
|
|
+ TK_DOC = 268,
|
|
+ TK_EXPORTEDDOC = 269,
|
|
+ TK_EXTRACT = 270,
|
|
+ TK_MAKEFILE = 271,
|
|
+ TK_ACCESSCODE = 272,
|
|
+ TK_GETCODE = 273,
|
|
+ TK_SETCODE = 274,
|
|
+ TK_PREINITCODE = 275,
|
|
+ TK_INITCODE = 276,
|
|
+ TK_POSTINITCODE = 277,
|
|
+ TK_FINALCODE = 278,
|
|
+ TK_UNITCODE = 279,
|
|
+ TK_UNITPOSTINCLUDECODE = 280,
|
|
+ TK_MODCODE = 281,
|
|
+ TK_TYPECODE = 282,
|
|
+ TK_PREPYCODE = 283,
|
|
+ TK_COPYING = 284,
|
|
+ TK_MAPPEDTYPE = 285,
|
|
+ TK_CODELINE = 286,
|
|
+ TK_IF = 287,
|
|
+ TK_END = 288,
|
|
+ TK_NAME_VALUE = 289,
|
|
+ TK_PATH_VALUE = 290,
|
|
+ TK_STRING_VALUE = 291,
|
|
+ TK_VIRTUALCATCHERCODE = 292,
|
|
+ TK_TRAVERSECODE = 293,
|
|
+ TK_CLEARCODE = 294,
|
|
+ TK_GETBUFFERCODE = 295,
|
|
+ TK_RELEASEBUFFERCODE = 296,
|
|
+ TK_READBUFFERCODE = 297,
|
|
+ TK_WRITEBUFFERCODE = 298,
|
|
+ TK_SEGCOUNTCODE = 299,
|
|
+ TK_CHARBUFFERCODE = 300,
|
|
+ TK_PICKLECODE = 301,
|
|
+ TK_VIRTUALCALLCODE = 302,
|
|
+ TK_METHODCODE = 303,
|
|
+ TK_PREMETHODCODE = 304,
|
|
+ TK_INSTANCECODE = 305,
|
|
+ TK_FROMTYPE = 306,
|
|
+ TK_TOTYPE = 307,
|
|
+ TK_TOSUBCLASS = 308,
|
|
+ TK_INCLUDE = 309,
|
|
+ TK_OPTINCLUDE = 310,
|
|
+ TK_IMPORT = 311,
|
|
+ TK_EXPHEADERCODE = 312,
|
|
+ TK_MODHEADERCODE = 313,
|
|
+ TK_TYPEHEADERCODE = 314,
|
|
+ TK_MODULE = 315,
|
|
+ TK_CMODULE = 316,
|
|
+ TK_CONSMODULE = 317,
|
|
+ TK_COMPOMODULE = 318,
|
|
+ TK_CLASS = 319,
|
|
+ TK_STRUCT = 320,
|
|
+ TK_PUBLIC = 321,
|
|
+ TK_PROTECTED = 322,
|
|
+ TK_PRIVATE = 323,
|
|
+ TK_SIGNALS = 324,
|
|
+ TK_SIGNAL_METHOD = 325,
|
|
+ TK_SLOTS = 326,
|
|
+ TK_SLOT_METHOD = 327,
|
|
+ TK_BOOL = 328,
|
|
+ TK_SHORT = 329,
|
|
+ TK_INT = 330,
|
|
+ TK_LONG = 331,
|
|
+ TK_FLOAT = 332,
|
|
+ TK_DOUBLE = 333,
|
|
+ TK_CHAR = 334,
|
|
+ TK_WCHAR_T = 335,
|
|
+ TK_VOID = 336,
|
|
+ TK_PYOBJECT = 337,
|
|
+ TK_PYTUPLE = 338,
|
|
+ TK_PYLIST = 339,
|
|
+ TK_PYDICT = 340,
|
|
+ TK_PYCALLABLE = 341,
|
|
+ TK_PYSLICE = 342,
|
|
+ TK_PYTYPE = 343,
|
|
+ TK_PYBUFFER = 344,
|
|
+ TK_VIRTUAL = 345,
|
|
+ TK_ENUM = 346,
|
|
+ TK_SIGNED = 347,
|
|
+ TK_UNSIGNED = 348,
|
|
+ TK_SCOPE = 349,
|
|
+ TK_LOGICAL_OR = 350,
|
|
+ TK_CONST = 351,
|
|
+ TK_STATIC = 352,
|
|
+ TK_SIPSIGNAL = 353,
|
|
+ TK_SIPSLOT = 354,
|
|
+ TK_SIPANYSLOT = 355,
|
|
+ TK_SIPRXCON = 356,
|
|
+ TK_SIPRXDIS = 357,
|
|
+ TK_SIPSLOTCON = 358,
|
|
+ TK_SIPSLOTDIS = 359,
|
|
+ TK_SIPSSIZET = 360,
|
|
+ TK_NUMBER_VALUE = 361,
|
|
+ TK_REAL_VALUE = 362,
|
|
+ TK_TYPEDEF = 363,
|
|
+ TK_NAMESPACE = 364,
|
|
+ TK_TIMELINE = 365,
|
|
+ TK_PLATFORMS = 366,
|
|
+ TK_FEATURE = 367,
|
|
+ TK_LICENSE = 368,
|
|
+ TK_QCHAR_VALUE = 369,
|
|
+ TK_TRUE_VALUE = 370,
|
|
+ TK_FALSE_VALUE = 371,
|
|
+ TK_NULL_VALUE = 372,
|
|
+ TK_OPERATOR = 373,
|
|
+ TK_THROW = 374,
|
|
+ TK_QOBJECT = 375,
|
|
+ TK_EXCEPTION = 376,
|
|
+ TK_RAISECODE = 377,
|
|
+ TK_VIRTERRORCODE = 378,
|
|
+ TK_EXPLICIT = 379,
|
|
+ TK_TEMPLATE = 380,
|
|
+ TK_FINAL = 381,
|
|
+ TK_ELLIPSIS = 382,
|
|
+ TK_DEFMETATYPE = 383,
|
|
+ TK_DEFSUPERTYPE = 384,
|
|
+ TK_PROPERTY = 385,
|
|
+ TK_HIDE_NS = 386,
|
|
+ TK_FORMAT = 387,
|
|
+ TK_GET = 388,
|
|
+ TK_ID = 389,
|
|
+ TK_KWARGS = 390,
|
|
+ TK_LANGUAGE = 391,
|
|
+ TK_LICENSEE = 392,
|
|
+ TK_NAME = 393,
|
|
+ TK_OPTIONAL = 394,
|
|
+ TK_ORDER = 395,
|
|
+ TK_REMOVELEADING = 396,
|
|
+ TK_SET = 397,
|
|
+ TK_SIGNATURE = 398,
|
|
+ TK_TIMESTAMP = 399,
|
|
+ TK_TYPE = 400,
|
|
+ TK_USEARGNAMES = 401,
|
|
+ TK_USELIMITEDAPI = 402,
|
|
+ TK_ALLRAISEPYEXC = 403,
|
|
+ TK_CALLSUPERINIT = 404,
|
|
+ TK_DEFERRORHANDLER = 405,
|
|
+ TK_VERSION = 406
|
|
+ };
|
|
+#endif
|
|
+/* Tokens. */
|
|
+#define TK_API 258
|
|
+#define TK_AUTOPYNAME 259
|
|
+#define TK_DEFDOCSTRFMT 260
|
|
+#define TK_DEFDOCSTRSIG 261
|
|
+#define TK_DEFENCODING 262
|
|
+#define TK_PLUGIN 263
|
|
+#define TK_VIRTERRORHANDLER 264
|
|
+#define TK_EXPTYPEHINTCODE 265
|
|
+#define TK_TYPEHINTCODE 266
|
|
+#define TK_DOCSTRING 267
|
|
+#define TK_DOC 268
|
|
+#define TK_EXPORTEDDOC 269
|
|
+#define TK_EXTRACT 270
|
|
+#define TK_MAKEFILE 271
|
|
+#define TK_ACCESSCODE 272
|
|
+#define TK_GETCODE 273
|
|
+#define TK_SETCODE 274
|
|
+#define TK_PREINITCODE 275
|
|
+#define TK_INITCODE 276
|
|
+#define TK_POSTINITCODE 277
|
|
+#define TK_FINALCODE 278
|
|
+#define TK_UNITCODE 279
|
|
+#define TK_UNITPOSTINCLUDECODE 280
|
|
+#define TK_MODCODE 281
|
|
+#define TK_TYPECODE 282
|
|
+#define TK_PREPYCODE 283
|
|
+#define TK_COPYING 284
|
|
+#define TK_MAPPEDTYPE 285
|
|
+#define TK_CODELINE 286
|
|
+#define TK_IF 287
|
|
+#define TK_END 288
|
|
+#define TK_NAME_VALUE 289
|
|
+#define TK_PATH_VALUE 290
|
|
+#define TK_STRING_VALUE 291
|
|
+#define TK_VIRTUALCATCHERCODE 292
|
|
+#define TK_TRAVERSECODE 293
|
|
+#define TK_CLEARCODE 294
|
|
+#define TK_GETBUFFERCODE 295
|
|
+#define TK_RELEASEBUFFERCODE 296
|
|
+#define TK_READBUFFERCODE 297
|
|
+#define TK_WRITEBUFFERCODE 298
|
|
+#define TK_SEGCOUNTCODE 299
|
|
+#define TK_CHARBUFFERCODE 300
|
|
+#define TK_PICKLECODE 301
|
|
+#define TK_VIRTUALCALLCODE 302
|
|
+#define TK_METHODCODE 303
|
|
+#define TK_PREMETHODCODE 304
|
|
+#define TK_INSTANCECODE 305
|
|
+#define TK_FROMTYPE 306
|
|
+#define TK_TOTYPE 307
|
|
+#define TK_TOSUBCLASS 308
|
|
+#define TK_INCLUDE 309
|
|
+#define TK_OPTINCLUDE 310
|
|
+#define TK_IMPORT 311
|
|
+#define TK_EXPHEADERCODE 312
|
|
+#define TK_MODHEADERCODE 313
|
|
+#define TK_TYPEHEADERCODE 314
|
|
+#define TK_MODULE 315
|
|
+#define TK_CMODULE 316
|
|
+#define TK_CONSMODULE 317
|
|
+#define TK_COMPOMODULE 318
|
|
+#define TK_CLASS 319
|
|
+#define TK_STRUCT 320
|
|
+#define TK_PUBLIC 321
|
|
+#define TK_PROTECTED 322
|
|
+#define TK_PRIVATE 323
|
|
+#define TK_SIGNALS 324
|
|
+#define TK_SIGNAL_METHOD 325
|
|
+#define TK_SLOTS 326
|
|
+#define TK_SLOT_METHOD 327
|
|
+#define TK_BOOL 328
|
|
+#define TK_SHORT 329
|
|
+#define TK_INT 330
|
|
+#define TK_LONG 331
|
|
+#define TK_FLOAT 332
|
|
+#define TK_DOUBLE 333
|
|
+#define TK_CHAR 334
|
|
+#define TK_WCHAR_T 335
|
|
+#define TK_VOID 336
|
|
+#define TK_PYOBJECT 337
|
|
+#define TK_PYTUPLE 338
|
|
+#define TK_PYLIST 339
|
|
+#define TK_PYDICT 340
|
|
+#define TK_PYCALLABLE 341
|
|
+#define TK_PYSLICE 342
|
|
+#define TK_PYTYPE 343
|
|
+#define TK_PYBUFFER 344
|
|
+#define TK_VIRTUAL 345
|
|
+#define TK_ENUM 346
|
|
+#define TK_SIGNED 347
|
|
+#define TK_UNSIGNED 348
|
|
+#define TK_SCOPE 349
|
|
+#define TK_LOGICAL_OR 350
|
|
+#define TK_CONST 351
|
|
+#define TK_STATIC 352
|
|
+#define TK_SIPSIGNAL 353
|
|
+#define TK_SIPSLOT 354
|
|
+#define TK_SIPANYSLOT 355
|
|
+#define TK_SIPRXCON 356
|
|
+#define TK_SIPRXDIS 357
|
|
+#define TK_SIPSLOTCON 358
|
|
+#define TK_SIPSLOTDIS 359
|
|
+#define TK_SIPSSIZET 360
|
|
+#define TK_NUMBER_VALUE 361
|
|
+#define TK_REAL_VALUE 362
|
|
+#define TK_TYPEDEF 363
|
|
+#define TK_NAMESPACE 364
|
|
+#define TK_TIMELINE 365
|
|
+#define TK_PLATFORMS 366
|
|
+#define TK_FEATURE 367
|
|
+#define TK_LICENSE 368
|
|
+#define TK_QCHAR_VALUE 369
|
|
+#define TK_TRUE_VALUE 370
|
|
+#define TK_FALSE_VALUE 371
|
|
+#define TK_NULL_VALUE 372
|
|
+#define TK_OPERATOR 373
|
|
+#define TK_THROW 374
|
|
+#define TK_QOBJECT 375
|
|
+#define TK_EXCEPTION 376
|
|
+#define TK_RAISECODE 377
|
|
+#define TK_VIRTERRORCODE 378
|
|
+#define TK_EXPLICIT 379
|
|
+#define TK_TEMPLATE 380
|
|
+#define TK_FINAL 381
|
|
+#define TK_ELLIPSIS 382
|
|
+#define TK_DEFMETATYPE 383
|
|
+#define TK_DEFSUPERTYPE 384
|
|
+#define TK_PROPERTY 385
|
|
+#define TK_HIDE_NS 386
|
|
+#define TK_FORMAT 387
|
|
+#define TK_GET 388
|
|
+#define TK_ID 389
|
|
+#define TK_KWARGS 390
|
|
+#define TK_LANGUAGE 391
|
|
+#define TK_LICENSEE 392
|
|
+#define TK_NAME 393
|
|
+#define TK_OPTIONAL 394
|
|
+#define TK_ORDER 395
|
|
+#define TK_REMOVELEADING 396
|
|
+#define TK_SET 397
|
|
+#define TK_SIGNATURE 398
|
|
+#define TK_TIMESTAMP 399
|
|
+#define TK_TYPE 400
|
|
+#define TK_USEARGNAMES 401
|
|
+#define TK_USELIMITEDAPI 402
|
|
+#define TK_ALLRAISEPYEXC 403
|
|
+#define TK_CALLSUPERINIT 404
|
|
+#define TK_DEFERRORHANDLER 405
|
|
+#define TK_VERSION 406
|
|
+
|
|
+/* Value type. */
|
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
-typedef union YYSTYPE
|
|
-#line 203 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+
|
|
+union YYSTYPE
|
|
{
|
|
+#line 203 "sipgen/metasrc/parser.y" /* yacc.c:355 */
|
|
+
|
|
char qchar;
|
|
char *text;
|
|
long number;
|
|
@@ -621,22 +632,25 @@
|
|
variableCfg variable;
|
|
vehCfg veh;
|
|
int token;
|
|
-}
|
|
-/* Line 193 of yacc.c. */
|
|
-#line 627 "sip-4.19.12/sipgen/parser.c"
|
|
- YYSTYPE;
|
|
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
|
-# define YYSTYPE_IS_DECLARED 1
|
|
+
|
|
+#line 637 "sipgen/parser.c" /* yacc.c:355 */
|
|
+};
|
|
+
|
|
+typedef union YYSTYPE YYSTYPE;
|
|
# define YYSTYPE_IS_TRIVIAL 1
|
|
+# define YYSTYPE_IS_DECLARED 1
|
|
#endif
|
|
|
|
|
|
+extern YYSTYPE yylval;
|
|
|
|
-/* Copy the second part of user declarations. */
|
|
+int yyparse (void);
|
|
|
|
+#endif /* !YY_YY_SIPGEN_PARSER_H_INCLUDED */
|
|
|
|
-/* Line 216 of yacc.c. */
|
|
-#line 640 "sip-4.19.12/sipgen/parser.c"
|
|
+/* Copy the second part of user declarations. */
|
|
+
|
|
+#line 654 "sipgen/parser.c" /* yacc.c:358 */
|
|
|
|
#ifdef short
|
|
# undef short
|
|
@@ -650,11 +664,8 @@
|
|
|
|
#ifdef YYTYPE_INT8
|
|
typedef YYTYPE_INT8 yytype_int8;
|
|
-#elif (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
-typedef signed char yytype_int8;
|
|
#else
|
|
-typedef short int yytype_int8;
|
|
+typedef signed char yytype_int8;
|
|
#endif
|
|
|
|
#ifdef YYTYPE_UINT16
|
|
@@ -674,8 +685,7 @@
|
|
# define YYSIZE_T __SIZE_TYPE__
|
|
# elif defined size_t
|
|
# define YYSIZE_T size_t
|
|
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
+# elif ! defined YYSIZE_T
|
|
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
|
|
# define YYSIZE_T size_t
|
|
# else
|
|
@@ -689,39 +699,68 @@
|
|
# if defined YYENABLE_NLS && YYENABLE_NLS
|
|
# if ENABLE_NLS
|
|
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
|
|
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
|
|
+# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
|
|
# endif
|
|
# endif
|
|
# ifndef YY_
|
|
-# define YY_(msgid) msgid
|
|
+# define YY_(Msgid) Msgid
|
|
+# endif
|
|
+#endif
|
|
+
|
|
+#ifndef YY_ATTRIBUTE
|
|
+# if (defined __GNUC__ \
|
|
+ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
|
|
+ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
|
|
+# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
|
|
+# else
|
|
+# define YY_ATTRIBUTE(Spec) /* empty */
|
|
+# endif
|
|
+#endif
|
|
+
|
|
+#ifndef YY_ATTRIBUTE_PURE
|
|
+# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
|
|
+#endif
|
|
+
|
|
+#ifndef YY_ATTRIBUTE_UNUSED
|
|
+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
|
|
+#endif
|
|
+
|
|
+#if !defined _Noreturn \
|
|
+ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
|
|
+# if defined _MSC_VER && 1200 <= _MSC_VER
|
|
+# define _Noreturn __declspec (noreturn)
|
|
+# else
|
|
+# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
|
|
# endif
|
|
#endif
|
|
|
|
/* Suppress unused-variable warnings by "using" E. */
|
|
#if ! defined lint || defined __GNUC__
|
|
-# define YYUSE(e) ((void) (e))
|
|
+# define YYUSE(E) ((void) (E))
|
|
#else
|
|
-# define YYUSE(e) /* empty */
|
|
+# define YYUSE(E) /* empty */
|
|
#endif
|
|
|
|
-/* Identity function, used to suppress warnings about constant conditions. */
|
|
-#ifndef lint
|
|
-# define YYID(n) (n)
|
|
-#else
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
-static int
|
|
-YYID (int i)
|
|
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
|
+/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
|
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
|
+ _Pragma ("GCC diagnostic push") \
|
|
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
|
|
+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
|
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
|
+ _Pragma ("GCC diagnostic pop")
|
|
#else
|
|
-static int
|
|
-YYID (i)
|
|
- int i;
|
|
+# define YY_INITIAL_VALUE(Value) Value
|
|
#endif
|
|
-{
|
|
- return i;
|
|
-}
|
|
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
|
|
+#endif
|
|
+#ifndef YY_INITIAL_VALUE
|
|
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
|
|
#endif
|
|
|
|
+
|
|
#if ! defined yyoverflow || YYERROR_VERBOSE
|
|
|
|
/* The parser invokes alloca or malloc; define the necessary symbols. */
|
|
@@ -739,11 +778,11 @@
|
|
# define alloca _alloca
|
|
# else
|
|
# define YYSTACK_ALLOC alloca
|
|
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
|
|
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
|
|
-# ifndef _STDLIB_H
|
|
-# define _STDLIB_H 1
|
|
+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
|
|
+# ifndef EXIT_SUCCESS
|
|
+# define EXIT_SUCCESS 0
|
|
# endif
|
|
# endif
|
|
# endif
|
|
@@ -751,8 +790,8 @@
|
|
# endif
|
|
|
|
# ifdef YYSTACK_ALLOC
|
|
- /* Pacify GCC's `empty if-body' warning. */
|
|
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
|
|
+ /* Pacify GCC's 'empty if-body' warning. */
|
|
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
|
|
# ifndef YYSTACK_ALLOC_MAXIMUM
|
|
/* The OS might guarantee only one guard page at the bottom of the stack,
|
|
and a page size can be as small as 4096 bytes. So we cannot safely
|
|
@@ -766,25 +805,23 @@
|
|
# ifndef YYSTACK_ALLOC_MAXIMUM
|
|
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
|
|
# endif
|
|
-# if (defined __cplusplus && ! defined _STDLIB_H \
|
|
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
|
|
&& ! ((defined YYMALLOC || defined malloc) \
|
|
- && (defined YYFREE || defined free)))
|
|
+ && (defined YYFREE || defined free)))
|
|
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
|
|
-# ifndef _STDLIB_H
|
|
-# define _STDLIB_H 1
|
|
+# ifndef EXIT_SUCCESS
|
|
+# define EXIT_SUCCESS 0
|
|
# endif
|
|
# endif
|
|
# ifndef YYMALLOC
|
|
# define YYMALLOC malloc
|
|
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
+# if ! defined malloc && ! defined EXIT_SUCCESS
|
|
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
|
|
# endif
|
|
# endif
|
|
# ifndef YYFREE
|
|
# define YYFREE free
|
|
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
+# if ! defined free && ! defined EXIT_SUCCESS
|
|
void free (void *); /* INFRINGES ON USER NAME SPACE */
|
|
# endif
|
|
# endif
|
|
@@ -794,14 +831,14 @@
|
|
|
|
#if (! defined yyoverflow \
|
|
&& (! defined __cplusplus \
|
|
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
|
|
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
|
|
|
|
/* A type that is properly aligned for any stack member. */
|
|
union yyalloc
|
|
{
|
|
- yytype_int16 yyss;
|
|
- YYSTYPE yyvs;
|
|
- };
|
|
+ yytype_int16 yyss_alloc;
|
|
+ YYSTYPE yyvs_alloc;
|
|
+};
|
|
|
|
/* The size of the maximum gap between one aligned stack and the next. */
|
|
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
|
|
@@ -812,42 +849,46 @@
|
|
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
|
|
+ YYSTACK_GAP_MAXIMUM)
|
|
|
|
-/* Copy COUNT objects from FROM to TO. The source and destination do
|
|
- not overlap. */
|
|
-# ifndef YYCOPY
|
|
-# if defined __GNUC__ && 1 < __GNUC__
|
|
-# define YYCOPY(To, From, Count) \
|
|
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
|
|
-# else
|
|
-# define YYCOPY(To, From, Count) \
|
|
- do \
|
|
- { \
|
|
- YYSIZE_T yyi; \
|
|
- for (yyi = 0; yyi < (Count); yyi++) \
|
|
- (To)[yyi] = (From)[yyi]; \
|
|
- } \
|
|
- while (YYID (0))
|
|
-# endif
|
|
-# endif
|
|
+# define YYCOPY_NEEDED 1
|
|
|
|
/* Relocate STACK from its old location to the new one. The
|
|
local variables YYSIZE and YYSTACKSIZE give the old and new number of
|
|
elements in the stack, and YYPTR gives the new location of the
|
|
stack. Advance YYPTR to a properly aligned location for the next
|
|
stack. */
|
|
-# define YYSTACK_RELOCATE(Stack) \
|
|
- do \
|
|
- { \
|
|
- YYSIZE_T yynewbytes; \
|
|
- YYCOPY (&yyptr->Stack, Stack, yysize); \
|
|
- Stack = &yyptr->Stack; \
|
|
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
|
|
- yyptr += yynewbytes / sizeof (*yyptr); \
|
|
- } \
|
|
- while (YYID (0))
|
|
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
|
|
+ do \
|
|
+ { \
|
|
+ YYSIZE_T yynewbytes; \
|
|
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
|
|
+ Stack = &yyptr->Stack_alloc; \
|
|
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
|
|
+ yyptr += yynewbytes / sizeof (*yyptr); \
|
|
+ } \
|
|
+ while (0)
|
|
|
|
#endif
|
|
|
|
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
|
|
+/* Copy COUNT objects from SRC to DST. The source and destination do
|
|
+ not overlap. */
|
|
+# ifndef YYCOPY
|
|
+# if defined __GNUC__ && 1 < __GNUC__
|
|
+# define YYCOPY(Dst, Src, Count) \
|
|
+ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
|
|
+# else
|
|
+# define YYCOPY(Dst, Src, Count) \
|
|
+ do \
|
|
+ { \
|
|
+ YYSIZE_T yyi; \
|
|
+ for (yyi = 0; yyi < (Count); yyi++) \
|
|
+ (Dst)[yyi] = (Src)[yyi]; \
|
|
+ } \
|
|
+ while (0)
|
|
+# endif
|
|
+# endif
|
|
+#endif /* !YYCOPY_NEEDED */
|
|
+
|
|
/* YYFINAL -- State number of the termination state. */
|
|
#define YYFINAL 4
|
|
/* YYLAST -- Last index in YYTABLE. */
|
|
@@ -859,17 +900,19 @@
|
|
#define YYNNTS 254
|
|
/* YYNRULES -- Number of rules. */
|
|
#define YYNRULES 594
|
|
-/* YYNRULES -- Number of states. */
|
|
+/* YYNSTATES -- Number of states. */
|
|
#define YYNSTATES 1042
|
|
|
|
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
|
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
|
|
+ by yylex, with out-of-bounds checking. */
|
|
#define YYUNDEFTOK 2
|
|
#define YYMAXUTOK 406
|
|
|
|
-#define YYTRANSLATE(YYX) \
|
|
+#define YYTRANSLATE(YYX) \
|
|
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
|
|
|
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
|
|
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
|
|
+ as returned by yylex, without out-of-bounds checking. */
|
|
static const yytype_uint8 yytranslate[] =
|
|
{
|
|
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
@@ -916,250 +959,7 @@
|
|
};
|
|
|
|
#if YYDEBUG
|
|
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
|
|
- YYRHS. */
|
|
-static const yytype_uint16 yyprhs[] =
|
|
-{
|
|
- 0, 0, 3, 5, 8, 9, 12, 14, 16, 18,
|
|
- 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
|
|
- 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
|
|
- 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
|
|
- 80, 82, 84, 86, 88, 90, 92, 94, 96, 98,
|
|
- 100, 102, 104, 106, 108, 110, 112, 115, 117, 121,
|
|
- 123, 127, 131, 134, 136, 140, 142, 146, 150, 153,
|
|
- 155, 159, 161, 165, 169, 172, 174, 178, 180, 184,
|
|
- 188, 192, 194, 198, 200, 204, 208, 211, 214, 218,
|
|
- 220, 224, 228, 232, 238, 239, 243, 248, 250, 253,
|
|
- 255, 257, 259, 261, 264, 265, 271, 272, 279, 284,
|
|
- 286, 289, 291, 293, 295, 297, 300, 303, 305, 307,
|
|
- 309, 324, 325, 331, 332, 336, 338, 341, 342, 348,
|
|
- 350, 353, 355, 358, 360, 364, 366, 370, 374, 375,
|
|
- 381, 383, 386, 388, 389, 395, 397, 400, 404, 409,
|
|
- 411, 415, 417, 421, 422, 424, 428, 430, 434, 438,
|
|
- 442, 446, 450, 453, 455, 459, 461, 465, 469, 472,
|
|
- 474, 478, 480, 484, 488, 491, 493, 497, 499, 503,
|
|
- 507, 511, 513, 517, 519, 523, 527, 528, 533, 535,
|
|
- 538, 540, 542, 544, 548, 550, 554, 556, 560, 564,
|
|
- 565, 570, 572, 575, 577, 579, 581, 585, 589, 590,
|
|
- 594, 598, 600, 604, 608, 612, 616, 620, 624, 628,
|
|
- 632, 636, 640, 641, 646, 648, 651, 653, 655, 657,
|
|
- 659, 661, 663, 664, 666, 669, 671, 675, 677, 681,
|
|
- 685, 689, 692, 695, 697, 701, 703, 707, 711, 712,
|
|
- 715, 716, 719, 720, 723, 726, 729, 732, 735, 738,
|
|
- 741, 744, 747, 750, 753, 756, 759, 762, 765, 768,
|
|
- 771, 774, 777, 780, 783, 786, 789, 792, 795, 798,
|
|
- 801, 804, 807, 810, 814, 816, 820, 824, 828, 829,
|
|
- 831, 835, 837, 841, 845, 849, 850, 852, 856, 858,
|
|
- 862, 864, 868, 872, 876, 881, 884, 886, 889, 890,
|
|
- 900, 901, 903, 905, 906, 908, 909, 911, 912, 914,
|
|
- 916, 919, 921, 923, 928, 929, 931, 932, 935, 936,
|
|
- 939, 941, 945, 947, 949, 951, 953, 955, 957, 958,
|
|
- 960, 962, 964, 966, 968, 970, 974, 975, 979, 982,
|
|
- 984, 986, 990, 992, 994, 996, 998, 1003, 1005, 1007,
|
|
- 1009, 1011, 1013, 1015, 1016, 1018, 1022, 1029, 1042, 1043,
|
|
- 1044, 1053, 1054, 1058, 1063, 1064, 1065, 1074, 1075, 1078,
|
|
- 1080, 1084, 1087, 1088, 1090, 1092, 1094, 1095, 1099, 1100,
|
|
- 1102, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1121,
|
|
- 1123, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1139, 1141,
|
|
- 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161,
|
|
- 1164, 1167, 1170, 1174, 1178, 1182, 1185, 1189, 1193, 1195,
|
|
- 1199, 1203, 1207, 1211, 1212, 1217, 1219, 1222, 1224, 1226,
|
|
- 1228, 1230, 1232, 1233, 1235, 1248, 1249, 1253, 1255, 1267,
|
|
- 1268, 1269, 1276, 1277, 1278, 1286, 1287, 1289, 1307, 1315,
|
|
- 1333, 1350, 1352, 1354, 1356, 1358, 1360, 1362, 1364, 1366,
|
|
- 1369, 1372, 1375, 1378, 1381, 1384, 1387, 1390, 1393, 1396,
|
|
- 1400, 1404, 1406, 1409, 1412, 1414, 1417, 1420, 1423, 1425,
|
|
- 1428, 1429, 1431, 1432, 1434, 1435, 1438, 1439, 1443, 1445,
|
|
- 1449, 1451, 1455, 1457, 1463, 1465, 1467, 1468, 1471, 1472,
|
|
- 1475, 1476, 1479, 1480, 1483, 1485, 1486, 1488, 1492, 1497,
|
|
- 1502, 1507, 1511, 1515, 1522, 1529, 1533, 1536, 1537, 1541,
|
|
- 1542, 1546, 1548, 1549, 1553, 1555, 1557, 1559, 1560, 1564,
|
|
- 1566, 1575, 1576, 1580, 1582, 1585, 1587, 1589, 1592, 1595,
|
|
- 1598, 1603, 1607, 1611, 1612, 1614, 1615, 1619, 1622, 1624,
|
|
- 1629, 1632, 1635, 1637, 1639, 1642, 1644, 1646, 1649, 1652,
|
|
- 1656, 1658, 1660, 1662, 1665, 1668, 1670, 1672, 1674, 1676,
|
|
- 1678, 1680, 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696,
|
|
- 1700, 1701, 1706, 1707, 1709
|
|
-};
|
|
-
|
|
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
|
-static const yytype_int16 yyrhs[] =
|
|
-{
|
|
- 175, 0, -1, 176, -1, 175, 176, -1, -1, 177,
|
|
- 178, -1, 269, -1, 255, -1, 262, -1, 192, -1,
|
|
- 291, -1, 279, -1, 283, -1, 284, -1, 200, -1,
|
|
- 230, -1, 222, -1, 226, -1, 239, -1, 180, -1,
|
|
- 184, -1, 188, -1, 243, -1, 247, -1, 251, -1,
|
|
- 292, -1, 293, -1, 306, -1, 308, -1, 309, -1,
|
|
- 310, -1, 311, -1, 312, -1, 313, -1, 314, -1,
|
|
- 315, -1, 317, -1, 318, -1, 328, -1, 332, -1,
|
|
- 210, -1, 212, -1, 196, -1, 179, -1, 234, -1,
|
|
- 238, -1, 218, -1, 358, -1, 364, -1, 361, -1,
|
|
- 204, -1, 357, -1, 335, -1, 392, -1, 416, -1,
|
|
- 294, -1, 5, 181, -1, 36, -1, 152, 182, 153,
|
|
- -1, 183, -1, 182, 154, 183, -1, 138, 155, 36,
|
|
- -1, 6, 185, -1, 36, -1, 152, 186, 153, -1,
|
|
- 187, -1, 186, 154, 187, -1, 138, 155, 36, -1,
|
|
- 7, 189, -1, 36, -1, 152, 190, 153, -1, 191,
|
|
- -1, 190, 154, 191, -1, 138, 155, 36, -1, 8,
|
|
- 193, -1, 34, -1, 152, 194, 153, -1, 195, -1,
|
|
- 194, 154, 195, -1, 138, 155, 34, -1, 9, 197,
|
|
- 333, -1, 34, -1, 152, 198, 153, -1, 199, -1,
|
|
- 198, 154, 199, -1, 138, 155, 34, -1, 3, 201,
|
|
- -1, 34, 106, -1, 152, 202, 153, -1, 203, -1,
|
|
- 202, 154, 203, -1, 138, 155, 381, -1, 151, 155,
|
|
- 106, -1, 121, 351, 205, 397, 206, -1, -1, 152,
|
|
- 351, 153, -1, 156, 207, 157, 158, -1, 208, -1,
|
|
- 207, 208, -1, 234, -1, 238, -1, 209, -1, 294,
|
|
- -1, 122, 333, -1, -1, 30, 424, 397, 211, 214,
|
|
- -1, -1, 363, 30, 424, 397, 213, 214, -1, 156,
|
|
- 215, 157, 158, -1, 216, -1, 215, 216, -1, 234,
|
|
- -1, 238, -1, 294, -1, 307, -1, 51, 333, -1,
|
|
- 52, 333, -1, 303, -1, 335, -1, 217, -1, 97,
|
|
- 420, 34, 152, 405, 153, 394, 426, 397, 389, 158,
|
|
- 327, 403, 402, -1, -1, 109, 34, 219, 220, 158,
|
|
- -1, -1, 156, 221, 157, -1, 179, -1, 221, 179,
|
|
- -1, -1, 111, 223, 156, 224, 157, -1, 225, -1,
|
|
- 224, 225, -1, 34, -1, 112, 227, -1, 34, -1,
|
|
- 152, 228, 153, -1, 229, -1, 228, 154, 229, -1,
|
|
- 138, 155, 381, -1, -1, 110, 231, 156, 232, 157,
|
|
- -1, 233, -1, 232, 233, -1, 34, -1, -1, 32,
|
|
- 152, 235, 237, 153, -1, 34, -1, 159, 34, -1,
|
|
- 236, 95, 34, -1, 236, 95, 159, 34, -1, 236,
|
|
- -1, 339, 160, 339, -1, 33, -1, 113, 240, 397,
|
|
- -1, -1, 36, -1, 152, 241, 153, -1, 242, -1,
|
|
- 241, 154, 242, -1, 145, 155, 36, -1, 137, 155,
|
|
- 36, -1, 143, 155, 36, -1, 144, 155, 36, -1,
|
|
- 128, 244, -1, 277, -1, 152, 245, 153, -1, 246,
|
|
- -1, 245, 154, 246, -1, 138, 155, 277, -1, 129,
|
|
- 248, -1, 277, -1, 152, 249, 153, -1, 250, -1,
|
|
- 249, 154, 250, -1, 138, 155, 277, -1, 131, 252,
|
|
- -1, 351, -1, 152, 253, 153, -1, 254, -1, 253,
|
|
- 154, 254, -1, 138, 155, 351, -1, 62, 256, 259,
|
|
- -1, 277, -1, 152, 257, 153, -1, 258, -1, 257,
|
|
- 154, 258, -1, 138, 155, 277, -1, -1, 156, 260,
|
|
- 157, 158, -1, 261, -1, 260, 261, -1, 234, -1,
|
|
- 238, -1, 323, -1, 63, 263, 266, -1, 277, -1,
|
|
- 152, 264, 153, -1, 265, -1, 264, 154, 265, -1,
|
|
- 138, 155, 277, -1, -1, 156, 267, 157, 158, -1,
|
|
- 268, -1, 267, 268, -1, 234, -1, 238, -1, 323,
|
|
- -1, 60, 270, 274, -1, 61, 277, 278, -1, -1,
|
|
- 277, 271, 278, -1, 152, 272, 153, -1, 273, -1,
|
|
- 272, 154, 273, -1, 135, 155, 36, -1, 136, 155,
|
|
- 36, -1, 138, 155, 277, -1, 146, 155, 354, -1,
|
|
- 147, 155, 354, -1, 148, 155, 354, -1, 149, 155,
|
|
- 354, -1, 150, 155, 34, -1, 151, 155, 106, -1,
|
|
- -1, 156, 275, 157, 158, -1, 276, -1, 275, 276,
|
|
- -1, 234, -1, 238, -1, 319, -1, 323, -1, 34,
|
|
- -1, 35, -1, -1, 106, -1, 54, 280, -1, 35,
|
|
- -1, 152, 281, 153, -1, 282, -1, 281, 154, 282,
|
|
- -1, 138, 155, 35, -1, 139, 155, 354, -1, 55,
|
|
- 35, -1, 56, 285, -1, 35, -1, 152, 286, 153,
|
|
- -1, 287, -1, 286, 154, 287, -1, 138, 155, 35,
|
|
- -1, -1, 17, 333, -1, -1, 18, 333, -1, -1,
|
|
- 19, 333, -1, 29, 333, -1, 57, 333, -1, 58,
|
|
- 333, -1, 59, 333, -1, 38, 333, -1, 39, 333,
|
|
- -1, 40, 333, -1, 41, 333, -1, 42, 333, -1,
|
|
- 43, 333, -1, 44, 333, -1, 45, 333, -1, 50,
|
|
- 333, -1, 46, 333, -1, 23, 333, -1, 26, 333,
|
|
- -1, 27, 333, -1, 20, 333, -1, 21, 333, -1,
|
|
- 22, 333, -1, 24, 333, -1, 25, 333, -1, 28,
|
|
- 333, -1, 10, 333, -1, 11, 333, -1, 11, 333,
|
|
- -1, 13, 333, -1, 14, 333, -1, 4, 320, -1,
|
|
- 152, 321, 153, -1, 322, -1, 321, 154, 322, -1,
|
|
- 141, 155, 36, -1, 12, 324, 333, -1, -1, 36,
|
|
- -1, 152, 325, 153, -1, 326, -1, 325, 154, 326,
|
|
- -1, 132, 155, 36, -1, 143, 155, 36, -1, -1,
|
|
- 323, -1, 15, 329, 333, -1, 34, -1, 152, 330,
|
|
- 153, -1, 331, -1, 330, 154, 331, -1, 134, 155,
|
|
- 34, -1, 140, 155, 106, -1, 16, 35, 338, 333,
|
|
- -1, 334, 33, -1, 31, -1, 334, 31, -1, -1,
|
|
- 91, 337, 339, 397, 336, 156, 340, 157, 158, -1,
|
|
- -1, 64, -1, 65, -1, -1, 35, -1, -1, 34,
|
|
- -1, -1, 341, -1, 342, -1, 341, 342, -1, 234,
|
|
- -1, 238, -1, 34, 344, 397, 343, -1, -1, 154,
|
|
- -1, -1, 155, 349, -1, -1, 155, 346, -1, 349,
|
|
- -1, 346, 347, 349, -1, 160, -1, 161, -1, 162,
|
|
- -1, 163, -1, 164, -1, 165, -1, -1, 159, -1,
|
|
- 166, -1, 160, -1, 161, -1, 162, -1, 164, -1,
|
|
- 350, 348, 355, -1, -1, 152, 351, 153, -1, 94,
|
|
- 352, -1, 352, -1, 353, -1, 352, 94, 353, -1,
|
|
- 34, -1, 115, -1, 116, -1, 351, -1, 424, 152,
|
|
- 356, 153, -1, 107, -1, 106, -1, 354, -1, 117,
|
|
- -1, 36, -1, 114, -1, -1, 346, -1, 356, 154,
|
|
- 346, -1, 108, 420, 34, 397, 158, 327, -1, 108,
|
|
- 420, 152, 162, 34, 153, 152, 425, 153, 397, 158,
|
|
- 327, -1, -1, -1, 65, 351, 359, 367, 397, 360,
|
|
- 371, 158, -1, -1, 363, 362, 364, -1, 125, 167,
|
|
- 425, 168, -1, -1, -1, 64, 351, 365, 367, 397,
|
|
- 366, 371, 158, -1, -1, 169, 368, -1, 369, -1,
|
|
- 368, 154, 369, -1, 370, 351, -1, -1, 66, -1,
|
|
- 67, -1, 68, -1, -1, 156, 372, 157, -1, -1,
|
|
- 373, -1, 372, 373, -1, 234, -1, 238, -1, 218,
|
|
- -1, 358, -1, 364, -1, 361, -1, 204, -1, 357,
|
|
- -1, 335, -1, 374, -1, 323, -1, 307, -1, 294,
|
|
- -1, 295, -1, 296, -1, 297, -1, 298, -1, 299,
|
|
- -1, 300, -1, 301, -1, 302, -1, 303, -1, 304,
|
|
- -1, 305, -1, 316, -1, 384, -1, 383, -1, 408,
|
|
- -1, 53, 333, -1, 52, 333, -1, 51, 333, -1,
|
|
- 66, 382, 169, -1, 67, 382, 169, -1, 68, 382,
|
|
- 169, -1, 69, 169, -1, 130, 375, 378, -1, 152,
|
|
- 376, 153, -1, 377, -1, 376, 154, 377, -1, 133,
|
|
- 155, 34, -1, 138, 155, 381, -1, 142, 155, 34,
|
|
- -1, -1, 156, 379, 157, 158, -1, 380, -1, 379,
|
|
- 380, -1, 234, -1, 238, -1, 323, -1, 34, -1,
|
|
- 36, -1, -1, 71, -1, 391, 166, 34, 152, 153,
|
|
- 426, 396, 397, 158, 403, 402, 404, -1, -1, 124,
|
|
- 385, 386, -1, 386, -1, 34, 152, 405, 153, 426,
|
|
- 397, 387, 158, 327, 403, 402, -1, -1, -1, 170,
|
|
- 388, 152, 405, 153, 171, -1, -1, -1, 170, 390,
|
|
- 420, 152, 405, 153, 171, -1, -1, 90, -1, 420,
|
|
- 34, 152, 405, 153, 394, 395, 426, 396, 397, 389,
|
|
- 158, 327, 403, 402, 404, 401, -1, 420, 118, 155,
|
|
- 152, 420, 153, 158, -1, 420, 118, 393, 152, 405,
|
|
- 153, 394, 395, 426, 396, 397, 389, 158, 403, 402,
|
|
- 404, 401, -1, 118, 420, 152, 405, 153, 394, 395,
|
|
- 426, 396, 397, 389, 158, 403, 402, 404, 401, -1,
|
|
- 161, -1, 160, -1, 162, -1, 163, -1, 172, -1,
|
|
- 164, -1, 165, -1, 173, -1, 167, 167, -1, 168,
|
|
- 168, -1, 161, 155, -1, 160, 155, -1, 162, 155,
|
|
- -1, 163, 155, -1, 172, 155, -1, 164, 155, -1,
|
|
- 165, 155, -1, 173, 155, -1, 167, 167, 155, -1,
|
|
- 168, 168, 155, -1, 166, -1, 152, 153, -1, 170,
|
|
- 171, -1, 167, -1, 167, 155, -1, 155, 155, -1,
|
|
- 159, 155, -1, 168, -1, 168, 155, -1, -1, 96,
|
|
- -1, -1, 126, -1, -1, 155, 106, -1, -1, 163,
|
|
- 398, 163, -1, 399, -1, 398, 154, 399, -1, 34,
|
|
- -1, 34, 155, 400, -1, 277, -1, 34, 169, 278,
|
|
- 160, 278, -1, 36, -1, 106, -1, -1, 47, 333,
|
|
- -1, -1, 48, 333, -1, -1, 49, 333, -1, -1,
|
|
- 37, 333, -1, 406, -1, -1, 407, -1, 406, 154,
|
|
- 407, -1, 98, 339, 397, 345, -1, 99, 339, 397,
|
|
- 345, -1, 100, 339, 397, 345, -1, 101, 339, 397,
|
|
- -1, 102, 339, 397, -1, 103, 152, 405, 153, 339,
|
|
- 397, -1, 104, 152, 405, 153, 339, 397, -1, 120,
|
|
- 339, 397, -1, 421, 345, -1, -1, 70, 409, 411,
|
|
- -1, -1, 72, 410, 411, -1, 411, -1, -1, 97,
|
|
- 412, 413, -1, 413, -1, 414, -1, 416, -1, -1,
|
|
- 90, 415, 392, -1, 392, -1, 420, 34, 397, 417,
|
|
- 158, 288, 289, 290, -1, -1, 156, 418, 157, -1,
|
|
- 419, -1, 418, 419, -1, 234, -1, 238, -1, 17,
|
|
- 333, -1, 18, 333, -1, 19, 333, -1, 96, 424,
|
|
- 423, 422, -1, 424, 423, 422, -1, 420, 339, 397,
|
|
- -1, -1, 164, -1, -1, 423, 162, 96, -1, 423,
|
|
- 162, -1, 351, -1, 351, 167, 425, 168, -1, 65,
|
|
- 351, -1, 93, 74, -1, 74, -1, 93, -1, 93,
|
|
- 75, -1, 75, -1, 76, -1, 93, 76, -1, 76,
|
|
- 76, -1, 93, 76, 76, -1, 77, -1, 78, -1,
|
|
- 73, -1, 92, 79, -1, 93, 79, -1, 79, -1,
|
|
- 80, -1, 81, -1, 82, -1, 83, -1, 84, -1,
|
|
- 85, -1, 86, -1, 87, -1, 88, -1, 89, -1,
|
|
- 105, -1, 127, -1, 420, -1, 425, 154, 420, -1,
|
|
- -1, 119, 152, 427, 153, -1, -1, 351, -1, 427,
|
|
- 154, 351, -1
|
|
-};
|
|
-
|
|
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
|
+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
|
|
static const yytype_uint16 yyrline[] =
|
|
{
|
|
0, 576, 576, 577, 580, 580, 599, 600, 601, 602,
|
|
@@ -1225,7 +1025,7 @@
|
|
};
|
|
#endif
|
|
|
|
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
|
|
+#if YYDEBUG || YYERROR_VERBOSE || 0
|
|
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
|
|
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
|
|
static const char *const yytname[] =
|
|
@@ -1268,7 +1068,7 @@
|
|
"TK_CALLSUPERINIT", "TK_DEFERRORHANDLER", "TK_VERSION", "'('", "')'",
|
|
"','", "'='", "'{'", "'}'", "';'", "'!'", "'-'", "'+'", "'*'", "'/'",
|
|
"'&'", "'|'", "'~'", "'<'", "'>'", "':'", "'['", "']'", "'%'", "'^'",
|
|
- "$accept", "specification", "statement", "@1", "modstatement",
|
|
+ "$accept", "specification", "statement", "$@1", "modstatement",
|
|
"nsstatement", "defdocstringfmt", "defdocstringfmt_args",
|
|
"defdocstringfmt_arg_list", "defdocstringfmt_arg", "defdocstringsig",
|
|
"defdocstringsig_args", "defdocstringsig_arg_list",
|
|
@@ -1278,13 +1078,13 @@
|
|
"veh_arg_list", "veh_arg", "api", "api_args", "api_arg_list", "api_arg",
|
|
"exception", "baseexception", "exception_body",
|
|
"exception_body_directives", "exception_body_directive", "raisecode",
|
|
- "mappedtype", "@2", "mappedtypetmpl", "@3", "mtdefinition", "mtbody",
|
|
- "mtline", "mtfunction", "namespace", "@4", "optnsbody", "nsbody",
|
|
- "platforms", "@5", "platformlist", "platform", "feature", "feature_args",
|
|
- "feature_arg_list", "feature_arg", "timeline", "@6", "qualifierlist",
|
|
- "qualifiername", "ifstart", "@7", "oredqualifiers", "qualifiers",
|
|
- "ifend", "license", "license_args", "license_arg_list", "license_arg",
|
|
- "defmetatype", "defmetatype_args", "defmetatype_arg_list",
|
|
+ "mappedtype", "$@2", "mappedtypetmpl", "$@3", "mtdefinition", "mtbody",
|
|
+ "mtline", "mtfunction", "namespace", "$@4", "optnsbody", "nsbody",
|
|
+ "platforms", "$@5", "platformlist", "platform", "feature",
|
|
+ "feature_args", "feature_arg_list", "feature_arg", "timeline", "$@6",
|
|
+ "qualifierlist", "qualifiername", "ifstart", "$@7", "oredqualifiers",
|
|
+ "qualifiers", "ifend", "license", "license_args", "license_arg_list",
|
|
+ "license_arg", "defmetatype", "defmetatype_args", "defmetatype_arg_list",
|
|
"defmetatype_arg", "defsupertype", "defsupertype_args",
|
|
"defsupertype_arg_list", "defsupertype_arg", "hiddenns", "hiddenns_args",
|
|
"hiddenns_arg_list", "hiddenns_arg", "consmodule", "consmodule_args",
|
|
@@ -1292,7 +1092,7 @@
|
|
"consmodule_body_directives", "consmodule_body_directive", "compmodule",
|
|
"compmodule_args", "compmodule_arg_list", "compmodule_arg",
|
|
"compmodule_body", "compmodule_body_directives",
|
|
- "compmodule_body_directive", "module", "module_args", "@8",
|
|
+ "compmodule_body_directive", "module", "module_args", "$@8",
|
|
"module_arg_list", "module_arg", "module_body", "module_body_directives",
|
|
"module_body_directive", "dottedname", "optnumber", "include",
|
|
"include_args", "include_arg_list", "include_arg", "optinclude",
|
|
@@ -1307,31 +1107,31 @@
|
|
"autopyname_args", "autopyname_arg_list", "autopyname_arg", "docstring",
|
|
"docstring_args", "docstring_arg_list", "docstring_arg", "optdocstring",
|
|
"extract", "extract_args", "extract_arg_list", "extract_arg", "makefile",
|
|
- "codeblock", "codelines", "enum", "@9", "optenumkey", "optfilename",
|
|
+ "codeblock", "codelines", "enum", "$@9", "optenumkey", "optfilename",
|
|
"optname", "optenumbody", "enumbody", "enumline", "optcomma",
|
|
"optenumassign", "optassign", "expr", "binop", "optunop", "value",
|
|
"optcast", "scopedname", "scopednamehead", "scopepart", "bool_value",
|
|
- "simplevalue", "exprlist", "typedef", "struct", "@10", "@11",
|
|
- "classtmpl", "@12", "template", "class", "@13", "@14", "superclasses",
|
|
+ "simplevalue", "exprlist", "typedef", "struct", "$@10", "$@11",
|
|
+ "classtmpl", "$@12", "template", "class", "$@13", "$@14", "superclasses",
|
|
"superlist", "superclass", "class_access", "optclassbody", "classbody",
|
|
"classline", "property", "property_args", "property_arg_list",
|
|
"property_arg", "property_body", "property_body_directives",
|
|
"property_body_directive", "name_or_string", "optslot", "dtor", "ctor",
|
|
- "@15", "simplector", "optctorsig", "@16", "optsig", "@17", "optvirtual",
|
|
- "function", "operatorname", "optconst", "optfinal", "optabstract",
|
|
- "optflags", "flaglist", "flag", "flagvalue", "virtualcallcode",
|
|
- "methodcode", "premethodcode", "virtualcatchercode", "arglist",
|
|
- "rawarglist", "argvalue", "varmember", "@18", "@19", "simple_varmem",
|
|
- "@20", "varmem", "member", "@21", "variable", "variable_body",
|
|
- "variable_body_directives", "variable_body_directive", "cpptype",
|
|
- "argtype", "optref", "deref", "basetype", "cpptypelist", "optexceptions",
|
|
- "exceptionlist", 0
|
|
+ "$@15", "simplector", "optctorsig", "$@16", "optsig", "$@17",
|
|
+ "optvirtual", "function", "operatorname", "optconst", "optfinal",
|
|
+ "optabstract", "optflags", "flaglist", "flag", "flagvalue",
|
|
+ "virtualcallcode", "methodcode", "premethodcode", "virtualcatchercode",
|
|
+ "arglist", "rawarglist", "argvalue", "varmember", "$@18", "$@19",
|
|
+ "simple_varmem", "$@20", "varmem", "member", "$@21", "variable",
|
|
+ "variable_body", "variable_body_directives", "variable_body_directive",
|
|
+ "cpptype", "argtype", "optref", "deref", "basetype", "cpptypelist",
|
|
+ "optexceptions", "exceptionlist", YY_NULLPTR
|
|
};
|
|
#endif
|
|
|
|
# ifdef YYPRINT
|
|
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
|
|
- token YYLEX-NUM. */
|
|
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
|
|
+ (internal) symbol number NUM (which must be that of a token). */
|
|
static const yytype_uint16 yytoknum[] =
|
|
{
|
|
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
|
|
@@ -1355,282 +1155,18 @@
|
|
};
|
|
# endif
|
|
|
|
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
|
-static const yytype_uint16 yyr1[] =
|
|
-{
|
|
- 0, 174, 175, 175, 177, 176, 178, 178, 178, 178,
|
|
- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
|
|
- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
|
|
- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
|
|
- 178, 178, 178, 178, 179, 179, 179, 179, 179, 179,
|
|
- 179, 179, 179, 179, 179, 179, 180, 181, 181, 182,
|
|
- 182, 183, 184, 185, 185, 186, 186, 187, 188, 189,
|
|
- 189, 190, 190, 191, 192, 193, 193, 194, 194, 195,
|
|
- 196, 197, 197, 198, 198, 199, 200, 201, 201, 202,
|
|
- 202, 203, 203, 204, 205, 205, 206, 207, 207, 208,
|
|
- 208, 208, 208, 209, 211, 210, 213, 212, 214, 215,
|
|
- 215, 216, 216, 216, 216, 216, 216, 216, 216, 216,
|
|
- 217, 219, 218, 220, 220, 221, 221, 223, 222, 224,
|
|
- 224, 225, 226, 227, 227, 228, 228, 229, 231, 230,
|
|
- 232, 232, 233, 235, 234, 236, 236, 236, 236, 237,
|
|
- 237, 238, 239, 240, 240, 240, 241, 241, 242, 242,
|
|
- 242, 242, 243, 244, 244, 245, 245, 246, 247, 248,
|
|
- 248, 249, 249, 250, 251, 252, 252, 253, 253, 254,
|
|
- 255, 256, 256, 257, 257, 258, 259, 259, 260, 260,
|
|
- 261, 261, 261, 262, 263, 263, 264, 264, 265, 266,
|
|
- 266, 267, 267, 268, 268, 268, 269, 269, 271, 270,
|
|
- 270, 272, 272, 273, 273, 273, 273, 273, 273, 273,
|
|
- 273, 273, 274, 274, 275, 275, 276, 276, 276, 276,
|
|
- 277, 277, 278, 278, 279, 280, 280, 281, 281, 282,
|
|
- 282, 283, 284, 285, 285, 286, 286, 287, 288, 288,
|
|
- 289, 289, 290, 290, 291, 292, 293, 294, 295, 296,
|
|
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
|
|
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
|
|
- 317, 318, 319, 320, 321, 321, 322, 323, 324, 324,
|
|
- 324, 325, 325, 326, 326, 327, 327, 328, 329, 329,
|
|
- 330, 330, 331, 331, 332, 333, 334, 334, 336, 335,
|
|
- 337, 337, 337, 338, 338, 339, 339, 340, 340, 341,
|
|
- 341, 342, 342, 342, 343, 343, 344, 344, 345, 345,
|
|
- 346, 346, 347, 347, 347, 347, 347, 347, 348, 348,
|
|
- 348, 348, 348, 348, 348, 349, 350, 350, 351, 351,
|
|
- 352, 352, 353, 354, 354, 355, 355, 355, 355, 355,
|
|
- 355, 355, 355, 356, 356, 356, 357, 357, 359, 360,
|
|
- 358, 362, 361, 363, 365, 366, 364, 367, 367, 368,
|
|
- 368, 369, 370, 370, 370, 370, 371, 371, 372, 372,
|
|
- 372, 373, 373, 373, 373, 373, 373, 373, 373, 373,
|
|
- 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
|
|
- 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
|
|
- 373, 373, 373, 373, 373, 373, 374, 375, 376, 376,
|
|
- 377, 377, 377, 378, 378, 379, 379, 380, 380, 380,
|
|
- 381, 381, 382, 382, 383, 385, 384, 384, 386, 387,
|
|
- 388, 387, 389, 390, 389, 391, 391, 392, 392, 392,
|
|
- 392, 393, 393, 393, 393, 393, 393, 393, 393, 393,
|
|
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
|
|
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
|
|
- 394, 394, 395, 395, 396, 396, 397, 397, 398, 398,
|
|
- 399, 399, 400, 400, 400, 400, 401, 401, 402, 402,
|
|
- 403, 403, 404, 404, 405, 406, 406, 406, 407, 407,
|
|
- 407, 407, 407, 407, 407, 407, 407, 409, 408, 410,
|
|
- 408, 408, 412, 411, 411, 413, 413, 415, 414, 414,
|
|
- 416, 417, 417, 418, 418, 419, 419, 419, 419, 419,
|
|
- 420, 420, 421, 422, 422, 423, 423, 423, 424, 424,
|
|
- 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
|
|
- 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
|
|
- 424, 424, 424, 424, 424, 424, 424, 424, 425, 425,
|
|
- 426, 426, 427, 427, 427
|
|
-};
|
|
+#define YYPACT_NINF -848
|
|
|
|
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
|
-static const yytype_uint8 yyr2[] =
|
|
-{
|
|
- 0, 2, 1, 2, 0, 2, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 2, 1, 3, 1,
|
|
- 3, 3, 2, 1, 3, 1, 3, 3, 2, 1,
|
|
- 3, 1, 3, 3, 2, 1, 3, 1, 3, 3,
|
|
- 3, 1, 3, 1, 3, 3, 2, 2, 3, 1,
|
|
- 3, 3, 3, 5, 0, 3, 4, 1, 2, 1,
|
|
- 1, 1, 1, 2, 0, 5, 0, 6, 4, 1,
|
|
- 2, 1, 1, 1, 1, 2, 2, 1, 1, 1,
|
|
- 14, 0, 5, 0, 3, 1, 2, 0, 5, 1,
|
|
- 2, 1, 2, 1, 3, 1, 3, 3, 0, 5,
|
|
- 1, 2, 1, 0, 5, 1, 2, 3, 4, 1,
|
|
- 3, 1, 3, 0, 1, 3, 1, 3, 3, 3,
|
|
- 3, 3, 2, 1, 3, 1, 3, 3, 2, 1,
|
|
- 3, 1, 3, 3, 2, 1, 3, 1, 3, 3,
|
|
- 3, 1, 3, 1, 3, 3, 0, 4, 1, 2,
|
|
- 1, 1, 1, 3, 1, 3, 1, 3, 3, 0,
|
|
- 4, 1, 2, 1, 1, 1, 3, 3, 0, 3,
|
|
- 3, 1, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
- 3, 3, 0, 4, 1, 2, 1, 1, 1, 1,
|
|
- 1, 1, 0, 1, 2, 1, 3, 1, 3, 3,
|
|
- 3, 2, 2, 1, 3, 1, 3, 3, 0, 2,
|
|
- 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
- 2, 2, 2, 3, 1, 3, 3, 3, 0, 1,
|
|
- 3, 1, 3, 3, 3, 0, 1, 3, 1, 3,
|
|
- 1, 3, 3, 3, 4, 2, 1, 2, 0, 9,
|
|
- 0, 1, 1, 0, 1, 0, 1, 0, 1, 1,
|
|
- 2, 1, 1, 4, 0, 1, 0, 2, 0, 2,
|
|
- 1, 3, 1, 1, 1, 1, 1, 1, 0, 1,
|
|
- 1, 1, 1, 1, 1, 3, 0, 3, 2, 1,
|
|
- 1, 3, 1, 1, 1, 1, 4, 1, 1, 1,
|
|
- 1, 1, 1, 0, 1, 3, 6, 12, 0, 0,
|
|
- 8, 0, 3, 4, 0, 0, 8, 0, 2, 1,
|
|
- 3, 2, 0, 1, 1, 1, 0, 3, 0, 1,
|
|
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
|
|
- 2, 2, 3, 3, 3, 2, 3, 3, 1, 3,
|
|
- 3, 3, 3, 0, 4, 1, 2, 1, 1, 1,
|
|
- 1, 1, 0, 1, 12, 0, 3, 1, 11, 0,
|
|
- 0, 6, 0, 0, 7, 0, 1, 17, 7, 17,
|
|
- 16, 1, 1, 1, 1, 1, 1, 1, 1, 2,
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
|
|
- 3, 1, 2, 2, 1, 2, 2, 2, 1, 2,
|
|
- 0, 1, 0, 1, 0, 2, 0, 3, 1, 3,
|
|
- 1, 3, 1, 5, 1, 1, 0, 2, 0, 2,
|
|
- 0, 2, 0, 2, 1, 0, 1, 3, 4, 4,
|
|
- 4, 3, 3, 6, 6, 3, 2, 0, 3, 0,
|
|
- 3, 1, 0, 3, 1, 1, 1, 0, 3, 1,
|
|
- 8, 0, 3, 1, 2, 1, 1, 2, 2, 2,
|
|
- 4, 3, 3, 0, 1, 0, 3, 2, 1, 4,
|
|
- 2, 2, 1, 1, 2, 1, 1, 2, 2, 3,
|
|
- 1, 1, 1, 2, 2, 1, 1, 1, 1, 1,
|
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
|
|
- 0, 4, 0, 1, 3
|
|
-};
|
|
+#define yypact_value_is_default(Yystate) \
|
|
+ (!!((Yystate) == (-848)))
|
|
|
|
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
|
|
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
|
|
- means the default is an error. */
|
|
-static const yytype_uint16 yydefact[] =
|
|
-{
|
|
- 4, 4, 2, 0, 1, 3, 0, 0, 0, 0,
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 151, 352,
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
- 0, 0, 572, 562, 565, 566, 570, 571, 575, 576,
|
|
- 577, 578, 579, 580, 581, 582, 583, 584, 585, 310,
|
|
- 0, 563, 0, 0, 586, 0, 0, 138, 127, 0,
|
|
- 153, 0, 0, 0, 587, 0, 0, 0, 5, 43,
|
|
- 19, 20, 21, 9, 42, 14, 50, 40, 41, 46,
|
|
- 16, 17, 15, 44, 45, 18, 22, 23, 24, 7,
|
|
- 8, 6, 11, 12, 13, 10, 25, 26, 55, 27,
|
|
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
|
|
- 38, 39, 52, 558, 349, 350, 51, 47, 49, 371,
|
|
- 48, 53, 54, 0, 555, 0, 0, 86, 57, 0,
|
|
- 56, 63, 0, 62, 69, 0, 68, 75, 0, 74,
|
|
- 81, 0, 0, 306, 277, 0, 278, 280, 281, 298,
|
|
- 0, 0, 313, 271, 272, 273, 274, 275, 269, 276,
|
|
- 254, 0, 496, 143, 235, 0, 234, 241, 243, 0,
|
|
- 242, 255, 256, 257, 230, 231, 0, 222, 208, 232,
|
|
- 0, 186, 181, 0, 199, 194, 374, 368, 568, 311,
|
|
- 312, 315, 573, 561, 564, 567, 574, 348, 555, 0,
|
|
- 121, 0, 0, 133, 0, 132, 154, 0, 496, 0,
|
|
- 94, 0, 0, 162, 163, 0, 168, 169, 0, 174,
|
|
- 175, 0, 0, 0, 0, 496, 0, 553, 87, 0,
|
|
- 0, 0, 89, 0, 0, 59, 0, 0, 65, 0,
|
|
- 0, 71, 0, 0, 77, 0, 0, 83, 80, 307,
|
|
- 305, 0, 0, 0, 300, 297, 314, 0, 560, 0,
|
|
- 104, 315, 0, 0, 0, 237, 0, 0, 245, 0,
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 211,
|
|
- 0, 206, 232, 233, 207, 0, 0, 183, 0, 180,
|
|
- 0, 0, 196, 0, 193, 377, 377, 316, 496, 569,
|
|
- 553, 496, 0, 123, 0, 0, 0, 0, 135, 0,
|
|
- 0, 0, 0, 0, 156, 152, 515, 0, 496, 588,
|
|
- 0, 0, 0, 165, 0, 0, 171, 0, 0, 177,
|
|
- 0, 351, 496, 372, 515, 541, 0, 0, 0, 462,
|
|
- 461, 463, 464, 466, 467, 481, 484, 488, 0, 465,
|
|
- 468, 0, 557, 554, 551, 0, 0, 88, 0, 0,
|
|
- 58, 0, 0, 64, 0, 0, 70, 0, 0, 76,
|
|
- 0, 0, 82, 0, 0, 0, 299, 0, 304, 500,
|
|
- 0, 498, 0, 145, 0, 149, 0, 0, 0, 0,
|
|
- 236, 0, 0, 244, 0, 0, 0, 0, 0, 0,
|
|
- 0, 0, 0, 0, 210, 0, 0, 288, 226, 227,
|
|
- 0, 224, 228, 229, 209, 0, 182, 0, 190, 191,
|
|
- 0, 188, 192, 0, 195, 0, 203, 204, 0, 201,
|
|
- 205, 382, 496, 496, 308, 550, 0, 0, 0, 0,
|
|
- 142, 0, 140, 131, 0, 129, 0, 134, 0, 0,
|
|
- 0, 0, 0, 155, 0, 315, 315, 315, 315, 315,
|
|
- 0, 0, 315, 0, 514, 516, 315, 328, 0, 0,
|
|
- 0, 373, 0, 164, 0, 0, 170, 0, 0, 176,
|
|
- 0, 559, 106, 0, 0, 0, 482, 0, 486, 487,
|
|
- 472, 471, 473, 474, 476, 477, 485, 469, 489, 470,
|
|
- 483, 475, 478, 515, 556, 440, 441, 91, 92, 90,
|
|
- 61, 60, 67, 66, 73, 72, 79, 78, 85, 84,
|
|
- 302, 303, 301, 0, 0, 497, 0, 105, 146, 0,
|
|
- 144, 315, 239, 353, 354, 240, 238, 247, 246, 213,
|
|
- 214, 215, 216, 217, 218, 219, 220, 221, 212, 0,
|
|
- 282, 289, 0, 0, 0, 225, 185, 184, 0, 189,
|
|
- 198, 197, 0, 202, 383, 384, 385, 378, 379, 0,
|
|
- 375, 369, 0, 295, 0, 125, 0, 371, 122, 139,
|
|
- 141, 128, 130, 137, 136, 159, 160, 161, 158, 157,
|
|
- 496, 496, 496, 496, 496, 515, 515, 496, 490, 0,
|
|
- 496, 346, 526, 95, 0, 93, 589, 167, 166, 173,
|
|
- 172, 179, 178, 0, 490, 0, 0, 0, 545, 546,
|
|
- 0, 543, 248, 0, 479, 480, 0, 230, 504, 505,
|
|
- 502, 501, 499, 0, 0, 0, 0, 0, 0, 109,
|
|
- 119, 111, 112, 113, 117, 114, 118, 147, 0, 150,
|
|
- 0, 0, 284, 0, 0, 0, 291, 287, 223, 187,
|
|
- 200, 382, 381, 386, 386, 317, 296, 366, 0, 124,
|
|
- 126, 328, 328, 328, 521, 522, 0, 0, 525, 491,
|
|
- 492, 517, 552, 0, 329, 330, 338, 0, 0, 97,
|
|
- 101, 99, 100, 102, 107, 492, 547, 548, 549, 542,
|
|
- 544, 0, 250, 0, 490, 232, 270, 266, 115, 116,
|
|
- 0, 0, 110, 148, 0, 283, 0, 0, 0, 290,
|
|
- 0, 380, 388, 0, 0, 326, 321, 322, 0, 318,
|
|
- 319, 0, 518, 519, 520, 315, 315, 493, 590, 0,
|
|
- 332, 333, 334, 335, 336, 337, 346, 339, 341, 342,
|
|
- 343, 344, 340, 0, 103, 0, 98, 590, 249, 0,
|
|
- 252, 458, 492, 0, 0, 108, 286, 285, 293, 294,
|
|
- 292, 0, 0, 352, 0, 0, 0, 0, 0, 0,
|
|
- 0, 0, 0, 0, 0, 0, 442, 442, 442, 0,
|
|
- 527, 529, 537, 532, 445, 0, 397, 393, 391, 392,
|
|
- 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
|
|
- 413, 414, 402, 415, 401, 399, 398, 394, 396, 395,
|
|
- 455, 389, 400, 417, 416, 447, 0, 539, 418, 531,
|
|
- 534, 535, 536, 376, 370, 346, 496, 0, 320, 0,
|
|
- 496, 496, 0, 494, 347, 331, 361, 358, 357, 362,
|
|
- 360, 355, 359, 345, 0, 96, 494, 251, 0, 540,
|
|
- 590, 232, 515, 279, 268, 515, 258, 259, 260, 261,
|
|
- 262, 263, 264, 265, 267, 421, 420, 419, 443, 0,
|
|
- 0, 0, 425, 0, 0, 0, 0, 0, 0, 433,
|
|
- 387, 390, 0, 327, 324, 309, 496, 523, 524, 592,
|
|
- 0, 496, 346, 496, 253, 494, 503, 0, 0, 422,
|
|
- 423, 424, 537, 528, 530, 538, 0, 533, 0, 446,
|
|
- 0, 0, 0, 0, 428, 0, 426, 0, 325, 323,
|
|
- 0, 593, 0, 495, 452, 364, 0, 452, 496, 490,
|
|
- 590, 0, 0, 0, 0, 427, 0, 437, 438, 439,
|
|
- 0, 435, 0, 295, 591, 0, 453, 0, 356, 346,
|
|
- 0, 452, 590, 496, 430, 431, 432, 429, 0, 436,
|
|
- 590, 367, 594, 0, 510, 365, 295, 0, 496, 449,
|
|
- 434, 494, 0, 0, 508, 510, 510, 452, 450, 0,
|
|
- 496, 515, 511, 0, 512, 508, 508, 0, 0, 295,
|
|
- 0, 0, 509, 0, 506, 512, 512, 295, 515, 510,
|
|
- 510, 0, 513, 0, 460, 506, 506, 510, 0, 508,
|
|
- 508, 454, 507, 457, 459, 508, 0, 448, 512, 120,
|
|
- 451, 444
|
|
-};
|
|
+#define YYTABLE_NINF -561
|
|
|
|
-/* YYDEFGOTO[NTERM-NUM]. */
|
|
-static const yytype_int16 yydefgoto[] =
|
|
-{
|
|
- -1, 1, 2, 3, 78, 79, 80, 140, 244, 245,
|
|
- 81, 143, 247, 248, 82, 146, 250, 251, 83, 149,
|
|
- 253, 254, 84, 152, 256, 257, 85, 137, 241, 242,
|
|
- 86, 328, 615, 698, 699, 700, 87, 392, 88, 623,
|
|
- 537, 648, 649, 650, 89, 313, 449, 586, 90, 212,
|
|
- 454, 455, 91, 215, 317, 318, 92, 211, 451, 452,
|
|
- 93, 271, 395, 396, 94, 95, 218, 323, 324, 96,
|
|
- 223, 332, 333, 97, 226, 335, 336, 98, 229, 338,
|
|
- 339, 99, 191, 296, 297, 299, 430, 431, 100, 194,
|
|
- 301, 302, 304, 438, 439, 101, 187, 292, 288, 289,
|
|
- 291, 420, 421, 188, 294, 102, 176, 274, 275, 103,
|
|
- 104, 180, 277, 278, 712, 770, 869, 105, 106, 107,
|
|
- 108, 811, 812, 813, 814, 815, 816, 817, 818, 654,
|
|
- 820, 821, 109, 655, 110, 111, 112, 113, 114, 115,
|
|
- 116, 117, 823, 118, 119, 422, 560, 661, 662, 676,
|
|
- 563, 665, 666, 677, 120, 161, 263, 264, 121, 154,
|
|
- 155, 122, 582, 201, 267, 308, 738, 739, 740, 939,
|
|
- 846, 612, 694, 756, 763, 695, 696, 123, 124, 125,
|
|
- 545, 863, 946, 126, 127, 306, 674, 128, 234, 587,
|
|
- 130, 305, 673, 442, 577, 578, 579, 733, 830, 831,
|
|
- 832, 899, 933, 934, 936, 960, 961, 517, 889, 833,
|
|
- 834, 897, 835, 999, 1008, 967, 983, 836, 837, 361,
|
|
- 690, 748, 911, 270, 390, 391, 641, 1024, 1004, 994,
|
|
- 1014, 473, 474, 475, 838, 893, 894, 839, 896, 840,
|
|
- 841, 895, 842, 495, 630, 631, 476, 477, 364, 237,
|
|
- 134, 330, 853, 942
|
|
-};
|
|
+#define yytable_value_is_error(Yytable_value) \
|
|
+ 0
|
|
|
|
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
|
- STATE-NUM. */
|
|
-#define YYPACT_NINF -848
|
|
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
|
+ STATE-NUM. */
|
|
static const yytype_int16 yypact[] =
|
|
{
|
|
-848, 264, -848, 1011, -848, -848, 67, 30, 64, 89,
|
|
@@ -1740,7 +1276,119 @@
|
|
-848, -848
|
|
};
|
|
|
|
-/* YYPGOTO[NTERM-NUM]. */
|
|
+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
|
|
+ Performed when YYTABLE does not specify something else to do. Zero
|
|
+ means the default is an error. */
|
|
+static const yytype_uint16 yydefact[] =
|
|
+{
|
|
+ 4, 4, 2, 0, 1, 3, 0, 0, 0, 0,
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 151, 352,
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
+ 0, 0, 572, 562, 565, 566, 570, 571, 575, 576,
|
|
+ 577, 578, 579, 580, 581, 582, 583, 584, 585, 310,
|
|
+ 0, 563, 0, 0, 586, 0, 0, 138, 127, 0,
|
|
+ 153, 0, 0, 0, 587, 0, 0, 0, 5, 43,
|
|
+ 19, 20, 21, 9, 42, 14, 50, 40, 41, 46,
|
|
+ 16, 17, 15, 44, 45, 18, 22, 23, 24, 7,
|
|
+ 8, 6, 11, 12, 13, 10, 25, 26, 55, 27,
|
|
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
|
|
+ 38, 39, 52, 558, 349, 350, 51, 47, 49, 371,
|
|
+ 48, 53, 54, 0, 555, 0, 0, 86, 57, 0,
|
|
+ 56, 63, 0, 62, 69, 0, 68, 75, 0, 74,
|
|
+ 81, 0, 0, 306, 277, 0, 278, 280, 281, 298,
|
|
+ 0, 0, 313, 271, 272, 273, 274, 275, 269, 276,
|
|
+ 254, 0, 496, 143, 235, 0, 234, 241, 243, 0,
|
|
+ 242, 255, 256, 257, 230, 231, 0, 222, 208, 232,
|
|
+ 0, 186, 181, 0, 199, 194, 374, 368, 568, 311,
|
|
+ 312, 315, 573, 561, 564, 567, 574, 348, 555, 0,
|
|
+ 121, 0, 0, 133, 0, 132, 154, 0, 496, 0,
|
|
+ 94, 0, 0, 162, 163, 0, 168, 169, 0, 174,
|
|
+ 175, 0, 0, 0, 0, 496, 0, 553, 87, 0,
|
|
+ 0, 0, 89, 0, 0, 59, 0, 0, 65, 0,
|
|
+ 0, 71, 0, 0, 77, 0, 0, 83, 80, 307,
|
|
+ 305, 0, 0, 0, 300, 297, 314, 0, 560, 0,
|
|
+ 104, 315, 0, 0, 0, 237, 0, 0, 245, 0,
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 211,
|
|
+ 0, 206, 232, 233, 207, 0, 0, 183, 0, 180,
|
|
+ 0, 0, 196, 0, 193, 377, 377, 316, 496, 569,
|
|
+ 553, 496, 0, 123, 0, 0, 0, 0, 135, 0,
|
|
+ 0, 0, 0, 0, 156, 152, 515, 0, 496, 588,
|
|
+ 0, 0, 0, 165, 0, 0, 171, 0, 0, 177,
|
|
+ 0, 351, 496, 372, 515, 541, 0, 0, 0, 462,
|
|
+ 461, 463, 464, 466, 467, 481, 484, 488, 0, 465,
|
|
+ 468, 0, 557, 554, 551, 0, 0, 88, 0, 0,
|
|
+ 58, 0, 0, 64, 0, 0, 70, 0, 0, 76,
|
|
+ 0, 0, 82, 0, 0, 0, 299, 0, 304, 500,
|
|
+ 0, 498, 0, 145, 0, 149, 0, 0, 0, 0,
|
|
+ 236, 0, 0, 244, 0, 0, 0, 0, 0, 0,
|
|
+ 0, 0, 0, 0, 210, 0, 0, 288, 226, 227,
|
|
+ 0, 224, 228, 229, 209, 0, 182, 0, 190, 191,
|
|
+ 0, 188, 192, 0, 195, 0, 203, 204, 0, 201,
|
|
+ 205, 382, 496, 496, 308, 550, 0, 0, 0, 0,
|
|
+ 142, 0, 140, 131, 0, 129, 0, 134, 0, 0,
|
|
+ 0, 0, 0, 155, 0, 315, 315, 315, 315, 315,
|
|
+ 0, 0, 315, 0, 514, 516, 315, 328, 0, 0,
|
|
+ 0, 373, 0, 164, 0, 0, 170, 0, 0, 176,
|
|
+ 0, 559, 106, 0, 0, 0, 482, 0, 486, 487,
|
|
+ 472, 471, 473, 474, 476, 477, 485, 469, 489, 470,
|
|
+ 483, 475, 478, 515, 556, 440, 441, 91, 92, 90,
|
|
+ 61, 60, 67, 66, 73, 72, 79, 78, 85, 84,
|
|
+ 302, 303, 301, 0, 0, 497, 0, 105, 146, 0,
|
|
+ 144, 315, 239, 353, 354, 240, 238, 247, 246, 213,
|
|
+ 214, 215, 216, 217, 218, 219, 220, 221, 212, 0,
|
|
+ 282, 289, 0, 0, 0, 225, 185, 184, 0, 189,
|
|
+ 198, 197, 0, 202, 383, 384, 385, 378, 379, 0,
|
|
+ 375, 369, 0, 295, 0, 125, 0, 371, 122, 139,
|
|
+ 141, 128, 130, 137, 136, 159, 160, 161, 158, 157,
|
|
+ 496, 496, 496, 496, 496, 515, 515, 496, 490, 0,
|
|
+ 496, 346, 526, 95, 0, 93, 589, 167, 166, 173,
|
|
+ 172, 179, 178, 0, 490, 0, 0, 0, 545, 546,
|
|
+ 0, 543, 248, 0, 479, 480, 0, 230, 504, 505,
|
|
+ 502, 501, 499, 0, 0, 0, 0, 0, 0, 109,
|
|
+ 119, 111, 112, 113, 117, 114, 118, 147, 0, 150,
|
|
+ 0, 0, 284, 0, 0, 0, 291, 287, 223, 187,
|
|
+ 200, 382, 381, 386, 386, 317, 296, 366, 0, 124,
|
|
+ 126, 328, 328, 328, 521, 522, 0, 0, 525, 491,
|
|
+ 492, 517, 552, 0, 329, 330, 338, 0, 0, 97,
|
|
+ 101, 99, 100, 102, 107, 492, 547, 548, 549, 542,
|
|
+ 544, 0, 250, 0, 490, 232, 270, 266, 115, 116,
|
|
+ 0, 0, 110, 148, 0, 283, 0, 0, 0, 290,
|
|
+ 0, 380, 388, 0, 0, 326, 321, 322, 0, 318,
|
|
+ 319, 0, 518, 519, 520, 315, 315, 493, 590, 0,
|
|
+ 332, 333, 334, 335, 336, 337, 346, 339, 341, 342,
|
|
+ 343, 344, 340, 0, 103, 0, 98, 590, 249, 0,
|
|
+ 252, 458, 492, 0, 0, 108, 286, 285, 293, 294,
|
|
+ 292, 0, 0, 352, 0, 0, 0, 0, 0, 0,
|
|
+ 0, 0, 0, 0, 0, 0, 442, 442, 442, 0,
|
|
+ 527, 529, 537, 532, 445, 0, 397, 393, 391, 392,
|
|
+ 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
|
|
+ 413, 414, 402, 415, 401, 399, 398, 394, 396, 395,
|
|
+ 455, 389, 400, 417, 416, 447, 0, 539, 418, 531,
|
|
+ 534, 535, 536, 376, 370, 346, 496, 0, 320, 0,
|
|
+ 496, 496, 0, 494, 347, 331, 361, 358, 357, 362,
|
|
+ 360, 355, 359, 345, 0, 96, 494, 251, 0, 540,
|
|
+ 590, 232, 515, 279, 268, 515, 258, 259, 260, 261,
|
|
+ 262, 263, 264, 265, 267, 421, 420, 419, 443, 0,
|
|
+ 0, 0, 425, 0, 0, 0, 0, 0, 0, 433,
|
|
+ 387, 390, 0, 327, 324, 309, 496, 523, 524, 592,
|
|
+ 0, 496, 346, 496, 253, 494, 503, 0, 0, 422,
|
|
+ 423, 424, 537, 528, 530, 538, 0, 533, 0, 446,
|
|
+ 0, 0, 0, 0, 428, 0, 426, 0, 325, 323,
|
|
+ 0, 593, 0, 495, 452, 364, 0, 452, 496, 490,
|
|
+ 590, 0, 0, 0, 0, 427, 0, 437, 438, 439,
|
|
+ 0, 435, 0, 295, 591, 0, 453, 0, 356, 346,
|
|
+ 0, 452, 590, 496, 430, 431, 432, 429, 0, 436,
|
|
+ 590, 367, 594, 0, 510, 365, 295, 0, 496, 449,
|
|
+ 434, 494, 0, 0, 508, 510, 510, 452, 450, 0,
|
|
+ 496, 515, 511, 0, 512, 508, 508, 0, 0, 295,
|
|
+ 0, 0, 509, 0, 506, 512, 512, 295, 515, 510,
|
|
+ 510, 0, 513, 0, 460, 506, 506, 510, 0, 508,
|
|
+ 508, 454, 507, 457, 459, 508, 0, 448, 512, 120,
|
|
+ 451, 444
|
|
+};
|
|
+
|
|
+ /* YYPGOTO[NTERM-NUM]. */
|
|
static const yytype_int16 yypgoto[] =
|
|
{
|
|
-848, -848, 761, -848, -848, -397, -848, -848, -848, 427,
|
|
@@ -1771,11 +1419,40 @@
|
|
-10, -204, -732, -848
|
|
};
|
|
|
|
-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
|
|
- positive, shift that token. If negative, reduce the rule which
|
|
- number is the opposite. If zero, do what YYDEFACT says.
|
|
- If YYTABLE_NINF, syntax error. */
|
|
-#define YYTABLE_NINF -561
|
|
+ /* YYDEFGOTO[NTERM-NUM]. */
|
|
+static const yytype_int16 yydefgoto[] =
|
|
+{
|
|
+ -1, 1, 2, 3, 78, 79, 80, 140, 244, 245,
|
|
+ 81, 143, 247, 248, 82, 146, 250, 251, 83, 149,
|
|
+ 253, 254, 84, 152, 256, 257, 85, 137, 241, 242,
|
|
+ 86, 328, 615, 698, 699, 700, 87, 392, 88, 623,
|
|
+ 537, 648, 649, 650, 89, 313, 449, 586, 90, 212,
|
|
+ 454, 455, 91, 215, 317, 318, 92, 211, 451, 452,
|
|
+ 93, 271, 395, 396, 94, 95, 218, 323, 324, 96,
|
|
+ 223, 332, 333, 97, 226, 335, 336, 98, 229, 338,
|
|
+ 339, 99, 191, 296, 297, 299, 430, 431, 100, 194,
|
|
+ 301, 302, 304, 438, 439, 101, 187, 292, 288, 289,
|
|
+ 291, 420, 421, 188, 294, 102, 176, 274, 275, 103,
|
|
+ 104, 180, 277, 278, 712, 770, 869, 105, 106, 107,
|
|
+ 108, 811, 812, 813, 814, 815, 816, 817, 818, 654,
|
|
+ 820, 821, 109, 655, 110, 111, 112, 113, 114, 115,
|
|
+ 116, 117, 823, 118, 119, 422, 560, 661, 662, 676,
|
|
+ 563, 665, 666, 677, 120, 161, 263, 264, 121, 154,
|
|
+ 155, 122, 582, 201, 267, 308, 738, 739, 740, 939,
|
|
+ 846, 612, 694, 756, 763, 695, 696, 123, 124, 125,
|
|
+ 545, 863, 946, 126, 127, 306, 674, 128, 234, 587,
|
|
+ 130, 305, 673, 442, 577, 578, 579, 733, 830, 831,
|
|
+ 832, 899, 933, 934, 936, 960, 961, 517, 889, 833,
|
|
+ 834, 897, 835, 999, 1008, 967, 983, 836, 837, 361,
|
|
+ 690, 748, 911, 270, 390, 391, 641, 1024, 1004, 994,
|
|
+ 1014, 473, 474, 475, 838, 893, 894, 839, 896, 840,
|
|
+ 841, 895, 842, 495, 630, 631, 476, 477, 364, 237,
|
|
+ 134, 330, 853, 942
|
|
+};
|
|
+
|
|
+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
|
|
+ positive, shift that token. If negative, reduce the rule whose
|
|
+ number is the opposite. If YYTABLE_NINF, syntax error. */
|
|
static const yytype_int16 yytable[] =
|
|
{
|
|
156, 157, 158, 133, 493, 163, 164, 165, 166, 167,
|
|
@@ -2108,8 +1785,8 @@
|
|
-1, 127
|
|
};
|
|
|
|
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
|
- symbol of state STATE-NUM. */
|
|
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
|
+ symbol of state STATE-NUM. */
|
|
static const yytype_uint16 yystos[] =
|
|
{
|
|
0, 175, 176, 177, 0, 176, 3, 5, 6, 7,
|
|
@@ -2219,95 +1896,171 @@
|
|
171, 404
|
|
};
|
|
|
|
-#define yyerrok (yyerrstatus = 0)
|
|
-#define yyclearin (yychar = YYEMPTY)
|
|
-#define YYEMPTY (-2)
|
|
-#define YYEOF 0
|
|
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
|
+static const yytype_uint16 yyr1[] =
|
|
+{
|
|
+ 0, 174, 175, 175, 177, 176, 178, 178, 178, 178,
|
|
+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
|
|
+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
|
|
+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
|
|
+ 178, 178, 178, 178, 179, 179, 179, 179, 179, 179,
|
|
+ 179, 179, 179, 179, 179, 179, 180, 181, 181, 182,
|
|
+ 182, 183, 184, 185, 185, 186, 186, 187, 188, 189,
|
|
+ 189, 190, 190, 191, 192, 193, 193, 194, 194, 195,
|
|
+ 196, 197, 197, 198, 198, 199, 200, 201, 201, 202,
|
|
+ 202, 203, 203, 204, 205, 205, 206, 207, 207, 208,
|
|
+ 208, 208, 208, 209, 211, 210, 213, 212, 214, 215,
|
|
+ 215, 216, 216, 216, 216, 216, 216, 216, 216, 216,
|
|
+ 217, 219, 218, 220, 220, 221, 221, 223, 222, 224,
|
|
+ 224, 225, 226, 227, 227, 228, 228, 229, 231, 230,
|
|
+ 232, 232, 233, 235, 234, 236, 236, 236, 236, 237,
|
|
+ 237, 238, 239, 240, 240, 240, 241, 241, 242, 242,
|
|
+ 242, 242, 243, 244, 244, 245, 245, 246, 247, 248,
|
|
+ 248, 249, 249, 250, 251, 252, 252, 253, 253, 254,
|
|
+ 255, 256, 256, 257, 257, 258, 259, 259, 260, 260,
|
|
+ 261, 261, 261, 262, 263, 263, 264, 264, 265, 266,
|
|
+ 266, 267, 267, 268, 268, 268, 269, 269, 271, 270,
|
|
+ 270, 272, 272, 273, 273, 273, 273, 273, 273, 273,
|
|
+ 273, 273, 274, 274, 275, 275, 276, 276, 276, 276,
|
|
+ 277, 277, 278, 278, 279, 280, 280, 281, 281, 282,
|
|
+ 282, 283, 284, 285, 285, 286, 286, 287, 288, 288,
|
|
+ 289, 289, 290, 290, 291, 292, 293, 294, 295, 296,
|
|
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
|
|
+ 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
|
|
+ 317, 318, 319, 320, 321, 321, 322, 323, 324, 324,
|
|
+ 324, 325, 325, 326, 326, 327, 327, 328, 329, 329,
|
|
+ 330, 330, 331, 331, 332, 333, 334, 334, 336, 335,
|
|
+ 337, 337, 337, 338, 338, 339, 339, 340, 340, 341,
|
|
+ 341, 342, 342, 342, 343, 343, 344, 344, 345, 345,
|
|
+ 346, 346, 347, 347, 347, 347, 347, 347, 348, 348,
|
|
+ 348, 348, 348, 348, 348, 349, 350, 350, 351, 351,
|
|
+ 352, 352, 353, 354, 354, 355, 355, 355, 355, 355,
|
|
+ 355, 355, 355, 356, 356, 356, 357, 357, 359, 360,
|
|
+ 358, 362, 361, 363, 365, 366, 364, 367, 367, 368,
|
|
+ 368, 369, 370, 370, 370, 370, 371, 371, 372, 372,
|
|
+ 372, 373, 373, 373, 373, 373, 373, 373, 373, 373,
|
|
+ 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
|
|
+ 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
|
|
+ 373, 373, 373, 373, 373, 373, 374, 375, 376, 376,
|
|
+ 377, 377, 377, 378, 378, 379, 379, 380, 380, 380,
|
|
+ 381, 381, 382, 382, 383, 385, 384, 384, 386, 387,
|
|
+ 388, 387, 389, 390, 389, 391, 391, 392, 392, 392,
|
|
+ 392, 393, 393, 393, 393, 393, 393, 393, 393, 393,
|
|
+ 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
|
|
+ 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
|
|
+ 394, 394, 395, 395, 396, 396, 397, 397, 398, 398,
|
|
+ 399, 399, 400, 400, 400, 400, 401, 401, 402, 402,
|
|
+ 403, 403, 404, 404, 405, 406, 406, 406, 407, 407,
|
|
+ 407, 407, 407, 407, 407, 407, 407, 409, 408, 410,
|
|
+ 408, 408, 412, 411, 411, 413, 413, 415, 414, 414,
|
|
+ 416, 417, 417, 418, 418, 419, 419, 419, 419, 419,
|
|
+ 420, 420, 421, 422, 422, 423, 423, 423, 424, 424,
|
|
+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
|
|
+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
|
|
+ 424, 424, 424, 424, 424, 424, 424, 424, 425, 425,
|
|
+ 426, 426, 427, 427, 427
|
|
+};
|
|
|
|
-#define YYACCEPT goto yyacceptlab
|
|
-#define YYABORT goto yyabortlab
|
|
-#define YYERROR goto yyerrorlab
|
|
+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
|
|
+static const yytype_uint8 yyr2[] =
|
|
+{
|
|
+ 0, 2, 1, 2, 0, 2, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 2, 1, 3, 1,
|
|
+ 3, 3, 2, 1, 3, 1, 3, 3, 2, 1,
|
|
+ 3, 1, 3, 3, 2, 1, 3, 1, 3, 3,
|
|
+ 3, 1, 3, 1, 3, 3, 2, 2, 3, 1,
|
|
+ 3, 3, 3, 5, 0, 3, 4, 1, 2, 1,
|
|
+ 1, 1, 1, 2, 0, 5, 0, 6, 4, 1,
|
|
+ 2, 1, 1, 1, 1, 2, 2, 1, 1, 1,
|
|
+ 14, 0, 5, 0, 3, 1, 2, 0, 5, 1,
|
|
+ 2, 1, 2, 1, 3, 1, 3, 3, 0, 5,
|
|
+ 1, 2, 1, 0, 5, 1, 2, 3, 4, 1,
|
|
+ 3, 1, 3, 0, 1, 3, 1, 3, 3, 3,
|
|
+ 3, 3, 2, 1, 3, 1, 3, 3, 2, 1,
|
|
+ 3, 1, 3, 3, 2, 1, 3, 1, 3, 3,
|
|
+ 3, 1, 3, 1, 3, 3, 0, 4, 1, 2,
|
|
+ 1, 1, 1, 3, 1, 3, 1, 3, 3, 0,
|
|
+ 4, 1, 2, 1, 1, 1, 3, 3, 0, 3,
|
|
+ 3, 1, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
+ 3, 3, 0, 4, 1, 2, 1, 1, 1, 1,
|
|
+ 1, 1, 0, 1, 2, 1, 3, 1, 3, 3,
|
|
+ 3, 2, 2, 1, 3, 1, 3, 3, 0, 2,
|
|
+ 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
+ 2, 2, 2, 3, 1, 3, 3, 3, 0, 1,
|
|
+ 3, 1, 3, 3, 3, 0, 1, 3, 1, 3,
|
|
+ 1, 3, 3, 3, 4, 2, 1, 2, 0, 9,
|
|
+ 0, 1, 1, 0, 1, 0, 1, 0, 1, 1,
|
|
+ 2, 1, 1, 4, 0, 1, 0, 2, 0, 2,
|
|
+ 1, 3, 1, 1, 1, 1, 1, 1, 0, 1,
|
|
+ 1, 1, 1, 1, 1, 3, 0, 3, 2, 1,
|
|
+ 1, 3, 1, 1, 1, 1, 4, 1, 1, 1,
|
|
+ 1, 1, 1, 0, 1, 3, 6, 12, 0, 0,
|
|
+ 8, 0, 3, 4, 0, 0, 8, 0, 2, 1,
|
|
+ 3, 2, 0, 1, 1, 1, 0, 3, 0, 1,
|
|
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
|
|
+ 2, 2, 3, 3, 3, 2, 3, 3, 1, 3,
|
|
+ 3, 3, 3, 0, 4, 1, 2, 1, 1, 1,
|
|
+ 1, 1, 0, 1, 12, 0, 3, 1, 11, 0,
|
|
+ 0, 6, 0, 0, 7, 0, 1, 17, 7, 17,
|
|
+ 16, 1, 1, 1, 1, 1, 1, 1, 1, 2,
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
|
|
+ 3, 1, 2, 2, 1, 2, 2, 2, 1, 2,
|
|
+ 0, 1, 0, 1, 0, 2, 0, 3, 1, 3,
|
|
+ 1, 3, 1, 5, 1, 1, 0, 2, 0, 2,
|
|
+ 0, 2, 0, 2, 1, 0, 1, 3, 4, 4,
|
|
+ 4, 3, 3, 6, 6, 3, 2, 0, 3, 0,
|
|
+ 3, 1, 0, 3, 1, 1, 1, 0, 3, 1,
|
|
+ 8, 0, 3, 1, 2, 1, 1, 2, 2, 2,
|
|
+ 4, 3, 3, 0, 1, 0, 3, 2, 1, 4,
|
|
+ 2, 2, 1, 1, 2, 1, 1, 2, 2, 3,
|
|
+ 1, 1, 1, 2, 2, 1, 1, 1, 1, 1,
|
|
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
|
|
+ 0, 4, 0, 1, 3
|
|
+};
|
|
|
|
|
|
-/* Like YYERROR except do call yyerror. This remains here temporarily
|
|
- to ease the transition to the new meaning of YYERROR, for GCC.
|
|
- Once GCC version 2 has supplanted version 1, this can go. */
|
|
+#define yyerrok (yyerrstatus = 0)
|
|
+#define yyclearin (yychar = YYEMPTY)
|
|
+#define YYEMPTY (-2)
|
|
+#define YYEOF 0
|
|
+
|
|
+#define YYACCEPT goto yyacceptlab
|
|
+#define YYABORT goto yyabortlab
|
|
+#define YYERROR goto yyerrorlab
|
|
|
|
-#define YYFAIL goto yyerrlab
|
|
|
|
#define YYRECOVERING() (!!yyerrstatus)
|
|
|
|
-#define YYBACKUP(Token, Value) \
|
|
-do \
|
|
- if (yychar == YYEMPTY && yylen == 1) \
|
|
- { \
|
|
- yychar = (Token); \
|
|
- yylval = (Value); \
|
|
- yytoken = YYTRANSLATE (yychar); \
|
|
- YYPOPSTACK (1); \
|
|
- goto yybackup; \
|
|
- } \
|
|
- else \
|
|
- { \
|
|
+#define YYBACKUP(Token, Value) \
|
|
+do \
|
|
+ if (yychar == YYEMPTY) \
|
|
+ { \
|
|
+ yychar = (Token); \
|
|
+ yylval = (Value); \
|
|
+ YYPOPSTACK (yylen); \
|
|
+ yystate = *yyssp; \
|
|
+ goto yybackup; \
|
|
+ } \
|
|
+ else \
|
|
+ { \
|
|
yyerror (YY_("syntax error: cannot back up")); \
|
|
- YYERROR; \
|
|
- } \
|
|
-while (YYID (0))
|
|
-
|
|
-
|
|
-#define YYTERROR 1
|
|
-#define YYERRCODE 256
|
|
-
|
|
-
|
|
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
|
|
- If N is 0, then set CURRENT to the empty location which ends
|
|
- the previous symbol: RHS[0] (always defined). */
|
|
-
|
|
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
|
|
-#ifndef YYLLOC_DEFAULT
|
|
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
|
- do \
|
|
- if (YYID (N)) \
|
|
- { \
|
|
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
|
|
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
|
|
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
|
|
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
|
|
- } \
|
|
- else \
|
|
- { \
|
|
- (Current).first_line = (Current).last_line = \
|
|
- YYRHSLOC (Rhs, 0).last_line; \
|
|
- (Current).first_column = (Current).last_column = \
|
|
- YYRHSLOC (Rhs, 0).last_column; \
|
|
- } \
|
|
- while (YYID (0))
|
|
-#endif
|
|
-
|
|
-
|
|
-/* YY_LOCATION_PRINT -- Print the location on the stream.
|
|
- This macro was not mandated originally: define only if we know
|
|
- we won't break user code: when these are the locations we know. */
|
|
-
|
|
-#ifndef YY_LOCATION_PRINT
|
|
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
|
|
-# define YY_LOCATION_PRINT(File, Loc) \
|
|
- fprintf (File, "%d.%d-%d.%d", \
|
|
- (Loc).first_line, (Loc).first_column, \
|
|
- (Loc).last_line, (Loc).last_column)
|
|
-# else
|
|
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
|
|
-# endif
|
|
-#endif
|
|
+ YYERROR; \
|
|
+ } \
|
|
+while (0)
|
|
|
|
+/* Error token number */
|
|
+#define YYTERROR 1
|
|
+#define YYERRCODE 256
|
|
|
|
-/* YYLEX -- calling `yylex' with the right arguments. */
|
|
|
|
-#ifdef YYLEX_PARAM
|
|
-# define YYLEX yylex (YYLEX_PARAM)
|
|
-#else
|
|
-# define YYLEX yylex ()
|
|
-#endif
|
|
|
|
/* Enable debugging if requested. */
|
|
#if YYDEBUG
|
|
@@ -2317,54 +2070,46 @@
|
|
# define YYFPRINTF fprintf
|
|
# endif
|
|
|
|
-# define YYDPRINTF(Args) \
|
|
-do { \
|
|
- if (yydebug) \
|
|
- YYFPRINTF Args; \
|
|
-} while (YYID (0))
|
|
+# define YYDPRINTF(Args) \
|
|
+do { \
|
|
+ if (yydebug) \
|
|
+ YYFPRINTF Args; \
|
|
+} while (0)
|
|
|
|
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
|
|
-do { \
|
|
- if (yydebug) \
|
|
- { \
|
|
- YYFPRINTF (stderr, "%s ", Title); \
|
|
- yy_symbol_print (stderr, \
|
|
- Type, Value); \
|
|
- YYFPRINTF (stderr, "\n"); \
|
|
- } \
|
|
-} while (YYID (0))
|
|
+/* This macro is provided for backward compatibility. */
|
|
+#ifndef YY_LOCATION_PRINT
|
|
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
|
|
+#endif
|
|
|
|
|
|
-/*--------------------------------.
|
|
-| Print this symbol on YYOUTPUT. |
|
|
-`--------------------------------*/
|
|
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
|
|
+do { \
|
|
+ if (yydebug) \
|
|
+ { \
|
|
+ YYFPRINTF (stderr, "%s ", Title); \
|
|
+ yy_symbol_print (stderr, \
|
|
+ Type, Value); \
|
|
+ YYFPRINTF (stderr, "\n"); \
|
|
+ } \
|
|
+} while (0)
|
|
+
|
|
+
|
|
+/*----------------------------------------.
|
|
+| Print this symbol's value on YYOUTPUT. |
|
|
+`----------------------------------------*/
|
|
|
|
-/*ARGSUSED*/
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
static void
|
|
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
|
|
-#else
|
|
-static void
|
|
-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
|
|
- FILE *yyoutput;
|
|
- int yytype;
|
|
- YYSTYPE const * const yyvaluep;
|
|
-#endif
|
|
{
|
|
+ FILE *yyo = yyoutput;
|
|
+ YYUSE (yyo);
|
|
if (!yyvaluep)
|
|
return;
|
|
# ifdef YYPRINT
|
|
if (yytype < YYNTOKENS)
|
|
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
|
|
-# else
|
|
- YYUSE (yyoutput);
|
|
# endif
|
|
- switch (yytype)
|
|
- {
|
|
- default:
|
|
- break;
|
|
- }
|
|
+ YYUSE (yytype);
|
|
}
|
|
|
|
|
|
@@ -2372,22 +2117,11 @@
|
|
| Print this symbol on YYOUTPUT. |
|
|
`--------------------------------*/
|
|
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
static void
|
|
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
|
|
-#else
|
|
-static void
|
|
-yy_symbol_print (yyoutput, yytype, yyvaluep)
|
|
- FILE *yyoutput;
|
|
- int yytype;
|
|
- YYSTYPE const * const yyvaluep;
|
|
-#endif
|
|
{
|
|
- if (yytype < YYNTOKENS)
|
|
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
|
|
- else
|
|
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
|
|
+ YYFPRINTF (yyoutput, "%s %s (",
|
|
+ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
|
|
|
|
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
|
|
YYFPRINTF (yyoutput, ")");
|
|
@@ -2398,66 +2132,54 @@
|
|
| TOP (included). |
|
|
`------------------------------------------------------------------*/
|
|
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
-static void
|
|
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
|
|
-#else
|
|
static void
|
|
-yy_stack_print (bottom, top)
|
|
- yytype_int16 *bottom;
|
|
- yytype_int16 *top;
|
|
-#endif
|
|
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
|
|
{
|
|
YYFPRINTF (stderr, "Stack now");
|
|
- for (; bottom <= top; ++bottom)
|
|
- YYFPRINTF (stderr, " %d", *bottom);
|
|
+ for (; yybottom <= yytop; yybottom++)
|
|
+ {
|
|
+ int yybot = *yybottom;
|
|
+ YYFPRINTF (stderr, " %d", yybot);
|
|
+ }
|
|
YYFPRINTF (stderr, "\n");
|
|
}
|
|
|
|
-# define YY_STACK_PRINT(Bottom, Top) \
|
|
-do { \
|
|
- if (yydebug) \
|
|
- yy_stack_print ((Bottom), (Top)); \
|
|
-} while (YYID (0))
|
|
+# define YY_STACK_PRINT(Bottom, Top) \
|
|
+do { \
|
|
+ if (yydebug) \
|
|
+ yy_stack_print ((Bottom), (Top)); \
|
|
+} while (0)
|
|
|
|
|
|
/*------------------------------------------------.
|
|
| Report that the YYRULE is going to be reduced. |
|
|
`------------------------------------------------*/
|
|
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
static void
|
|
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
|
|
-#else
|
|
-static void
|
|
-yy_reduce_print (yyvsp, yyrule)
|
|
- YYSTYPE *yyvsp;
|
|
- int yyrule;
|
|
-#endif
|
|
+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
|
|
{
|
|
+ unsigned long int yylno = yyrline[yyrule];
|
|
int yynrhs = yyr2[yyrule];
|
|
int yyi;
|
|
- unsigned long int yylno = yyrline[yyrule];
|
|
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
|
|
- yyrule - 1, yylno);
|
|
+ yyrule - 1, yylno);
|
|
/* The symbols being reduced. */
|
|
for (yyi = 0; yyi < yynrhs; yyi++)
|
|
{
|
|
- fprintf (stderr, " $%d = ", yyi + 1);
|
|
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
|
|
- &(yyvsp[(yyi + 1) - (yynrhs)])
|
|
- );
|
|
- fprintf (stderr, "\n");
|
|
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
|
|
+ yy_symbol_print (stderr,
|
|
+ yystos[yyssp[yyi + 1 - yynrhs]],
|
|
+ &(yyvsp[(yyi + 1) - (yynrhs)])
|
|
+ );
|
|
+ YYFPRINTF (stderr, "\n");
|
|
}
|
|
}
|
|
|
|
-# define YY_REDUCE_PRINT(Rule) \
|
|
-do { \
|
|
- if (yydebug) \
|
|
- yy_reduce_print (yyvsp, Rule); \
|
|
-} while (YYID (0))
|
|
+# define YY_REDUCE_PRINT(Rule) \
|
|
+do { \
|
|
+ if (yydebug) \
|
|
+ yy_reduce_print (yyssp, yyvsp, Rule); \
|
|
+} while (0)
|
|
|
|
/* Nonzero means print parse trace. It is left uninitialized so that
|
|
multiple parsers can coexist. */
|
|
@@ -2471,7 +2193,7 @@
|
|
|
|
|
|
/* YYINITDEPTH -- initial size of the parser's stacks. */
|
|
-#ifndef YYINITDEPTH
|
|
+#ifndef YYINITDEPTH
|
|
# define YYINITDEPTH 200
|
|
#endif
|
|
|
|
@@ -2486,7 +2208,6 @@
|
|
# define YYMAXDEPTH 10000
|
|
#endif
|
|
|
|
-
|
|
|
|
#if YYERROR_VERBOSE
|
|
|
|
@@ -2495,15 +2216,8 @@
|
|
# define yystrlen strlen
|
|
# else
|
|
/* Return the length of YYSTR. */
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
static YYSIZE_T
|
|
yystrlen (const char *yystr)
|
|
-#else
|
|
-static YYSIZE_T
|
|
-yystrlen (yystr)
|
|
- const char *yystr;
|
|
-#endif
|
|
{
|
|
YYSIZE_T yylen;
|
|
for (yylen = 0; yystr[yylen]; yylen++)
|
|
@@ -2519,16 +2233,8 @@
|
|
# else
|
|
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
|
|
YYDEST. */
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
static char *
|
|
yystpcpy (char *yydest, const char *yysrc)
|
|
-#else
|
|
-static char *
|
|
-yystpcpy (yydest, yysrc)
|
|
- char *yydest;
|
|
- const char *yysrc;
|
|
-#endif
|
|
{
|
|
char *yyd = yydest;
|
|
const char *yys = yysrc;
|
|
@@ -2558,27 +2264,27 @@
|
|
char const *yyp = yystr;
|
|
|
|
for (;;)
|
|
- switch (*++yyp)
|
|
- {
|
|
- case '\'':
|
|
- case ',':
|
|
- goto do_not_strip_quotes;
|
|
+ switch (*++yyp)
|
|
+ {
|
|
+ case '\'':
|
|
+ case ',':
|
|
+ goto do_not_strip_quotes;
|
|
|
|
- case '\\':
|
|
- if (*++yyp != '\\')
|
|
- goto do_not_strip_quotes;
|
|
- /* Fall through. */
|
|
- default:
|
|
- if (yyres)
|
|
- yyres[yyn] = *yyp;
|
|
- yyn++;
|
|
- break;
|
|
+ case '\\':
|
|
+ if (*++yyp != '\\')
|
|
+ goto do_not_strip_quotes;
|
|
+ /* Fall through. */
|
|
+ default:
|
|
+ if (yyres)
|
|
+ yyres[yyn] = *yyp;
|
|
+ yyn++;
|
|
+ break;
|
|
|
|
- case '"':
|
|
- if (yyres)
|
|
- yyres[yyn] = '\0';
|
|
- return yyn;
|
|
- }
|
|
+ case '"':
|
|
+ if (yyres)
|
|
+ yyres[yyn] = '\0';
|
|
+ return yyn;
|
|
+ }
|
|
do_not_strip_quotes: ;
|
|
}
|
|
|
|
@@ -2589,211 +2295,209 @@
|
|
}
|
|
# endif
|
|
|
|
-/* Copy into YYRESULT an error message about the unexpected token
|
|
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
|
|
- including the terminating null byte. If YYRESULT is null, do not
|
|
- copy anything; just return the number of bytes that would be
|
|
- copied. As a special case, return 0 if an ordinary "syntax error"
|
|
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
|
|
- size calculation. */
|
|
-static YYSIZE_T
|
|
-yysyntax_error (char *yyresult, int yystate, int yychar)
|
|
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
|
|
+ about the unexpected token YYTOKEN for the state stack whose top is
|
|
+ YYSSP.
|
|
+
|
|
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
|
|
+ not large enough to hold the message. In that case, also set
|
|
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
|
|
+ required number of bytes is too large to store. */
|
|
+static int
|
|
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
|
|
+ yytype_int16 *yyssp, int yytoken)
|
|
{
|
|
- int yyn = yypact[yystate];
|
|
+ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
|
|
+ YYSIZE_T yysize = yysize0;
|
|
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
|
|
+ /* Internationalized format string. */
|
|
+ const char *yyformat = YY_NULLPTR;
|
|
+ /* Arguments of yyformat. */
|
|
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
|
|
+ /* Number of reported tokens (one for the "unexpected", one per
|
|
+ "expected"). */
|
|
+ int yycount = 0;
|
|
|
|
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
|
|
- return 0;
|
|
- else
|
|
+ /* There are many possibilities here to consider:
|
|
+ - If this state is a consistent state with a default action, then
|
|
+ the only way this function was invoked is if the default action
|
|
+ is an error action. In that case, don't check for expected
|
|
+ tokens because there are none.
|
|
+ - The only way there can be no lookahead present (in yychar) is if
|
|
+ this state is a consistent state with a default action. Thus,
|
|
+ detecting the absence of a lookahead is sufficient to determine
|
|
+ that there is no unexpected or expected token to report. In that
|
|
+ case, just report a simple "syntax error".
|
|
+ - Don't assume there isn't a lookahead just because this state is a
|
|
+ consistent state with a default action. There might have been a
|
|
+ previous inconsistent state, consistent state with a non-default
|
|
+ action, or user semantic action that manipulated yychar.
|
|
+ - Of course, the expected token list depends on states to have
|
|
+ correct lookahead information, and it depends on the parser not
|
|
+ to perform extra reductions after fetching a lookahead from the
|
|
+ scanner and before detecting a syntax error. Thus, state merging
|
|
+ (from LALR or IELR) and default reductions corrupt the expected
|
|
+ token list. However, the list is correct for canonical LR with
|
|
+ one exception: it will still contain any token that will not be
|
|
+ accepted due to an error action in a later state.
|
|
+ */
|
|
+ if (yytoken != YYEMPTY)
|
|
{
|
|
- int yytype = YYTRANSLATE (yychar);
|
|
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
|
|
- YYSIZE_T yysize = yysize0;
|
|
- YYSIZE_T yysize1;
|
|
- int yysize_overflow = 0;
|
|
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
|
|
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
|
|
- int yyx;
|
|
-
|
|
-# if 0
|
|
- /* This is so xgettext sees the translatable formats that are
|
|
- constructed on the fly. */
|
|
- YY_("syntax error, unexpected %s");
|
|
- YY_("syntax error, unexpected %s, expecting %s");
|
|
- YY_("syntax error, unexpected %s, expecting %s or %s");
|
|
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
|
|
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
|
|
-# endif
|
|
- char *yyfmt;
|
|
- char const *yyf;
|
|
- static char const yyunexpected[] = "syntax error, unexpected %s";
|
|
- static char const yyexpecting[] = ", expecting %s";
|
|
- static char const yyor[] = " or %s";
|
|
- char yyformat[sizeof yyunexpected
|
|
- + sizeof yyexpecting - 1
|
|
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
|
|
- * (sizeof yyor - 1))];
|
|
- char const *yyprefix = yyexpecting;
|
|
-
|
|
- /* Start YYX at -YYN if negative to avoid negative indexes in
|
|
- YYCHECK. */
|
|
- int yyxbegin = yyn < 0 ? -yyn : 0;
|
|
-
|
|
- /* Stay within bounds of both yycheck and yytname. */
|
|
- int yychecklim = YYLAST - yyn + 1;
|
|
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
|
- int yycount = 1;
|
|
-
|
|
- yyarg[0] = yytname[yytype];
|
|
- yyfmt = yystpcpy (yyformat, yyunexpected);
|
|
+ int yyn = yypact[*yyssp];
|
|
+ yyarg[yycount++] = yytname[yytoken];
|
|
+ if (!yypact_value_is_default (yyn))
|
|
+ {
|
|
+ /* Start YYX at -YYN if negative to avoid negative indexes in
|
|
+ YYCHECK. In other words, skip the first -YYN actions for
|
|
+ this state because they are default actions. */
|
|
+ int yyxbegin = yyn < 0 ? -yyn : 0;
|
|
+ /* Stay within bounds of both yycheck and yytname. */
|
|
+ int yychecklim = YYLAST - yyn + 1;
|
|
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
|
+ int yyx;
|
|
|
|
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
|
|
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
|
|
- {
|
|
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
|
|
- {
|
|
- yycount = 1;
|
|
- yysize = yysize0;
|
|
- yyformat[sizeof yyunexpected - 1] = '\0';
|
|
- break;
|
|
- }
|
|
- yyarg[yycount++] = yytname[yyx];
|
|
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
|
|
- yysize_overflow |= (yysize1 < yysize);
|
|
- yysize = yysize1;
|
|
- yyfmt = yystpcpy (yyfmt, yyprefix);
|
|
- yyprefix = yyor;
|
|
- }
|
|
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
|
|
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
|
|
+ && !yytable_value_is_error (yytable[yyx + yyn]))
|
|
+ {
|
|
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
|
|
+ {
|
|
+ yycount = 1;
|
|
+ yysize = yysize0;
|
|
+ break;
|
|
+ }
|
|
+ yyarg[yycount++] = yytname[yyx];
|
|
+ {
|
|
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
|
|
+ if (! (yysize <= yysize1
|
|
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
|
|
+ return 2;
|
|
+ yysize = yysize1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
|
|
- yyf = YY_(yyformat);
|
|
- yysize1 = yysize + yystrlen (yyf);
|
|
- yysize_overflow |= (yysize1 < yysize);
|
|
- yysize = yysize1;
|
|
+ switch (yycount)
|
|
+ {
|
|
+# define YYCASE_(N, S) \
|
|
+ case N: \
|
|
+ yyformat = S; \
|
|
+ break
|
|
+ YYCASE_(0, YY_("syntax error"));
|
|
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
|
|
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
|
|
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
|
|
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
|
|
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
|
|
+# undef YYCASE_
|
|
+ }
|
|
|
|
- if (yysize_overflow)
|
|
- return YYSIZE_MAXIMUM;
|
|
+ {
|
|
+ YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
|
|
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
|
|
+ return 2;
|
|
+ yysize = yysize1;
|
|
+ }
|
|
|
|
- if (yyresult)
|
|
- {
|
|
- /* Avoid sprintf, as that infringes on the user's name space.
|
|
- Don't have undefined behavior even if the translation
|
|
- produced a string with the wrong number of "%s"s. */
|
|
- char *yyp = yyresult;
|
|
- int yyi = 0;
|
|
- while ((*yyp = *yyf) != '\0')
|
|
- {
|
|
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
|
|
- {
|
|
- yyp += yytnamerr (yyp, yyarg[yyi++]);
|
|
- yyf += 2;
|
|
- }
|
|
- else
|
|
- {
|
|
- yyp++;
|
|
- yyf++;
|
|
- }
|
|
- }
|
|
- }
|
|
- return yysize;
|
|
+ if (*yymsg_alloc < yysize)
|
|
+ {
|
|
+ *yymsg_alloc = 2 * yysize;
|
|
+ if (! (yysize <= *yymsg_alloc
|
|
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
|
|
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
|
|
+ return 1;
|
|
}
|
|
+
|
|
+ /* Avoid sprintf, as that infringes on the user's name space.
|
|
+ Don't have undefined behavior even if the translation
|
|
+ produced a string with the wrong number of "%s"s. */
|
|
+ {
|
|
+ char *yyp = *yymsg;
|
|
+ int yyi = 0;
|
|
+ while ((*yyp = *yyformat) != '\0')
|
|
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
|
|
+ {
|
|
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
|
|
+ yyformat += 2;
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ yyp++;
|
|
+ yyformat++;
|
|
+ }
|
|
+ }
|
|
+ return 0;
|
|
}
|
|
#endif /* YYERROR_VERBOSE */
|
|
-
|
|
|
|
/*-----------------------------------------------.
|
|
| Release the memory associated to this symbol. |
|
|
`-----------------------------------------------*/
|
|
|
|
-/*ARGSUSED*/
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
static void
|
|
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
|
|
-#else
|
|
-static void
|
|
-yydestruct (yymsg, yytype, yyvaluep)
|
|
- const char *yymsg;
|
|
- int yytype;
|
|
- YYSTYPE *yyvaluep;
|
|
-#endif
|
|
{
|
|
YYUSE (yyvaluep);
|
|
-
|
|
if (!yymsg)
|
|
yymsg = "Deleting";
|
|
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
|
|
|
|
- switch (yytype)
|
|
- {
|
|
-
|
|
- default:
|
|
- break;
|
|
- }
|
|
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
+ YYUSE (yytype);
|
|
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
|
|
}
|
|
-
|
|
-
|
|
-/* Prevent warnings from -Wmissing-prototypes. */
|
|
|
|
-#ifdef YYPARSE_PARAM
|
|
-#if defined __STDC__ || defined __cplusplus
|
|
-int yyparse (void *YYPARSE_PARAM);
|
|
-#else
|
|
-int yyparse ();
|
|
-#endif
|
|
-#else /* ! YYPARSE_PARAM */
|
|
-#if defined __STDC__ || defined __cplusplus
|
|
-int yyparse (void);
|
|
-#else
|
|
-int yyparse ();
|
|
-#endif
|
|
-#endif /* ! YYPARSE_PARAM */
|
|
|
|
|
|
|
|
-/* The look-ahead symbol. */
|
|
+/* The lookahead symbol. */
|
|
int yychar;
|
|
|
|
-/* The semantic value of the look-ahead symbol. */
|
|
+/* The semantic value of the lookahead symbol. */
|
|
YYSTYPE yylval;
|
|
-
|
|
/* Number of syntax errors so far. */
|
|
int yynerrs;
|
|
|
|
|
|
-
|
|
/*----------.
|
|
| yyparse. |
|
|
`----------*/
|
|
|
|
-#ifdef YYPARSE_PARAM
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
-int
|
|
-yyparse (void *YYPARSE_PARAM)
|
|
-#else
|
|
-int
|
|
-yyparse (YYPARSE_PARAM)
|
|
- void *YYPARSE_PARAM;
|
|
-#endif
|
|
-#else /* ! YYPARSE_PARAM */
|
|
-#if (defined __STDC__ || defined __C99__FUNC__ \
|
|
- || defined __cplusplus || defined _MSC_VER)
|
|
int
|
|
yyparse (void)
|
|
-#else
|
|
-int
|
|
-yyparse ()
|
|
-
|
|
-#endif
|
|
-#endif
|
|
{
|
|
-
|
|
- int yystate;
|
|
+ int yystate;
|
|
+ /* Number of tokens to shift before error messages enabled. */
|
|
+ int yyerrstatus;
|
|
+
|
|
+ /* The stacks and their tools:
|
|
+ 'yyss': related to states.
|
|
+ 'yyvs': related to semantic values.
|
|
+
|
|
+ Refer to the stacks through separate pointers, to allow yyoverflow
|
|
+ to reallocate them elsewhere. */
|
|
+
|
|
+ /* The state stack. */
|
|
+ yytype_int16 yyssa[YYINITDEPTH];
|
|
+ yytype_int16 *yyss;
|
|
+ yytype_int16 *yyssp;
|
|
+
|
|
+ /* The semantic value stack. */
|
|
+ YYSTYPE yyvsa[YYINITDEPTH];
|
|
+ YYSTYPE *yyvs;
|
|
+ YYSTYPE *yyvsp;
|
|
+
|
|
+ YYSIZE_T yystacksize;
|
|
+
|
|
int yyn;
|
|
int yyresult;
|
|
- /* Number of tokens to shift before error messages enabled. */
|
|
- int yyerrstatus;
|
|
- /* Look-ahead token as an internal (translated) token number. */
|
|
+ /* Lookahead token as an internal (translated) token number. */
|
|
int yytoken = 0;
|
|
+ /* The variables used to return semantic value and location from the
|
|
+ action routines. */
|
|
+ YYSTYPE yyval;
|
|
+
|
|
#if YYERROR_VERBOSE
|
|
/* Buffer for error messages, and its allocated size. */
|
|
char yymsgbuf[128];
|
|
@@ -2801,54 +2505,22 @@
|
|
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
|
|
#endif
|
|
|
|
- /* Three stacks and their tools:
|
|
- `yyss': related to states,
|
|
- `yyvs': related to semantic values,
|
|
- `yyls': related to locations.
|
|
-
|
|
- Refer to the stacks thru separate pointers, to allow yyoverflow
|
|
- to reallocate them elsewhere. */
|
|
-
|
|
- /* The state stack. */
|
|
- yytype_int16 yyssa[YYINITDEPTH];
|
|
- yytype_int16 *yyss = yyssa;
|
|
- yytype_int16 *yyssp;
|
|
-
|
|
- /* The semantic value stack. */
|
|
- YYSTYPE yyvsa[YYINITDEPTH];
|
|
- YYSTYPE *yyvs = yyvsa;
|
|
- YYSTYPE *yyvsp;
|
|
-
|
|
-
|
|
-
|
|
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
|
|
|
|
- YYSIZE_T yystacksize = YYINITDEPTH;
|
|
-
|
|
- /* The variables used to return semantic value and location from the
|
|
- action routines. */
|
|
- YYSTYPE yyval;
|
|
-
|
|
-
|
|
/* The number of symbols on the RHS of the reduced rule.
|
|
Keep to zero when no symbol should be popped. */
|
|
int yylen = 0;
|
|
|
|
+ yyssp = yyss = yyssa;
|
|
+ yyvsp = yyvs = yyvsa;
|
|
+ yystacksize = YYINITDEPTH;
|
|
+
|
|
YYDPRINTF ((stderr, "Starting parse\n"));
|
|
|
|
yystate = 0;
|
|
yyerrstatus = 0;
|
|
yynerrs = 0;
|
|
- yychar = YYEMPTY; /* Cause a token to be read. */
|
|
-
|
|
- /* Initialize stack pointers.
|
|
- Waste one element of value and location stack
|
|
- so that they stay on the same level as the state stack.
|
|
- The wasted elements are never initialized. */
|
|
-
|
|
- yyssp = yyss;
|
|
- yyvsp = yyvs;
|
|
-
|
|
+ yychar = YYEMPTY; /* Cause a token to be read. */
|
|
goto yysetstate;
|
|
|
|
/*------------------------------------------------------------.
|
|
@@ -2869,25 +2541,23 @@
|
|
|
|
#ifdef yyoverflow
|
|
{
|
|
- /* Give user a chance to reallocate the stack. Use copies of
|
|
- these so that the &'s don't force the real ones into
|
|
- memory. */
|
|
- YYSTYPE *yyvs1 = yyvs;
|
|
- yytype_int16 *yyss1 = yyss;
|
|
-
|
|
-
|
|
- /* Each stack pointer address is followed by the size of the
|
|
- data in use in that stack, in bytes. This used to be a
|
|
- conditional around just the two extra args, but that might
|
|
- be undefined if yyoverflow is a macro. */
|
|
- yyoverflow (YY_("memory exhausted"),
|
|
- &yyss1, yysize * sizeof (*yyssp),
|
|
- &yyvs1, yysize * sizeof (*yyvsp),
|
|
+ /* Give user a chance to reallocate the stack. Use copies of
|
|
+ these so that the &'s don't force the real ones into
|
|
+ memory. */
|
|
+ YYSTYPE *yyvs1 = yyvs;
|
|
+ yytype_int16 *yyss1 = yyss;
|
|
|
|
- &yystacksize);
|
|
+ /* Each stack pointer address is followed by the size of the
|
|
+ data in use in that stack, in bytes. This used to be a
|
|
+ conditional around just the two extra args, but that might
|
|
+ be undefined if yyoverflow is a macro. */
|
|
+ yyoverflow (YY_("memory exhausted"),
|
|
+ &yyss1, yysize * sizeof (*yyssp),
|
|
+ &yyvs1, yysize * sizeof (*yyvsp),
|
|
+ &yystacksize);
|
|
|
|
- yyss = yyss1;
|
|
- yyvs = yyvs1;
|
|
+ yyss = yyss1;
|
|
+ yyvs = yyvs1;
|
|
}
|
|
#else /* no yyoverflow */
|
|
# ifndef YYSTACK_RELOCATE
|
|
@@ -2895,23 +2565,22 @@
|
|
# else
|
|
/* Extend the stack our own way. */
|
|
if (YYMAXDEPTH <= yystacksize)
|
|
- goto yyexhaustedlab;
|
|
+ goto yyexhaustedlab;
|
|
yystacksize *= 2;
|
|
if (YYMAXDEPTH < yystacksize)
|
|
- yystacksize = YYMAXDEPTH;
|
|
+ yystacksize = YYMAXDEPTH;
|
|
|
|
{
|
|
- yytype_int16 *yyss1 = yyss;
|
|
- union yyalloc *yyptr =
|
|
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
|
|
- if (! yyptr)
|
|
- goto yyexhaustedlab;
|
|
- YYSTACK_RELOCATE (yyss);
|
|
- YYSTACK_RELOCATE (yyvs);
|
|
-
|
|
+ yytype_int16 *yyss1 = yyss;
|
|
+ union yyalloc *yyptr =
|
|
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
|
|
+ if (! yyptr)
|
|
+ goto yyexhaustedlab;
|
|
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
|
|
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
|
|
# undef YYSTACK_RELOCATE
|
|
- if (yyss1 != yyssa)
|
|
- YYSTACK_FREE (yyss1);
|
|
+ if (yyss1 != yyssa)
|
|
+ YYSTACK_FREE (yyss1);
|
|
}
|
|
# endif
|
|
#endif /* no yyoverflow */
|
|
@@ -2919,16 +2588,18 @@
|
|
yyssp = yyss + yysize - 1;
|
|
yyvsp = yyvs + yysize - 1;
|
|
|
|
-
|
|
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
|
|
- (unsigned long int) yystacksize));
|
|
+ (unsigned long int) yystacksize));
|
|
|
|
if (yyss + yystacksize - 1 <= yyssp)
|
|
- YYABORT;
|
|
+ YYABORT;
|
|
}
|
|
|
|
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
|
|
|
|
+ if (yystate == YYFINAL)
|
|
+ YYACCEPT;
|
|
+
|
|
goto yybackup;
|
|
|
|
/*-----------.
|
|
@@ -2937,20 +2608,20 @@
|
|
yybackup:
|
|
|
|
/* Do appropriate processing given the current state. Read a
|
|
- look-ahead token if we need one and don't already have one. */
|
|
+ lookahead token if we need one and don't already have one. */
|
|
|
|
- /* First try to decide what to do without reference to look-ahead token. */
|
|
+ /* First try to decide what to do without reference to lookahead token. */
|
|
yyn = yypact[yystate];
|
|
- if (yyn == YYPACT_NINF)
|
|
+ if (yypact_value_is_default (yyn))
|
|
goto yydefault;
|
|
|
|
- /* Not known => get a look-ahead token if don't already have one. */
|
|
+ /* Not known => get a lookahead token if don't already have one. */
|
|
|
|
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
|
|
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
|
|
if (yychar == YYEMPTY)
|
|
{
|
|
YYDPRINTF ((stderr, "Reading a token: "));
|
|
- yychar = YYLEX;
|
|
+ yychar = yylex ();
|
|
}
|
|
|
|
if (yychar <= YYEOF)
|
|
@@ -2972,29 +2643,27 @@
|
|
yyn = yytable[yyn];
|
|
if (yyn <= 0)
|
|
{
|
|
- if (yyn == 0 || yyn == YYTABLE_NINF)
|
|
- goto yyerrlab;
|
|
+ if (yytable_value_is_error (yyn))
|
|
+ goto yyerrlab;
|
|
yyn = -yyn;
|
|
goto yyreduce;
|
|
}
|
|
|
|
- if (yyn == YYFINAL)
|
|
- YYACCEPT;
|
|
-
|
|
/* Count tokens shifted since error; after three, turn off error
|
|
status. */
|
|
if (yyerrstatus)
|
|
yyerrstatus--;
|
|
|
|
- /* Shift the look-ahead token. */
|
|
+ /* Shift the lookahead token. */
|
|
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
|
|
|
|
- /* Discard the shifted token unless it is eof. */
|
|
- if (yychar != YYEOF)
|
|
- yychar = YYEMPTY;
|
|
+ /* Discard the shifted token. */
|
|
+ yychar = YYEMPTY;
|
|
|
|
yystate = yyn;
|
|
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
*++yyvsp = yylval;
|
|
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
|
|
|
|
goto yynewstate;
|
|
|
|
@@ -3017,7 +2686,7 @@
|
|
yylen = yyr2[yyn];
|
|
|
|
/* If YYLEN is nonzero, implement the default value of the action:
|
|
- `$$ = $1'.
|
|
+ '$$ = $1'.
|
|
|
|
Otherwise, the following line sets YYVAL to garbage.
|
|
This behavior is undocumented and Bison
|
|
@@ -3031,7 +2700,7 @@
|
|
switch (yyn)
|
|
{
|
|
case 4:
|
|
-#line 580 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 580 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/*
|
|
* We don't do these in parserEOF() because the parser is reading
|
|
@@ -3049,10 +2718,11 @@
|
|
previousFile = NULL;
|
|
}
|
|
}
|
|
+#line 2722 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 55:
|
|
-#line 650 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 650 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -3061,151 +2731,167 @@
|
|
if (scope == NULL)
|
|
yyerror("%TypeHeaderCode can only be used in a namespace, class or mapped type");
|
|
|
|
- appendCodeBlock(&scope->iff->hdrcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->iff->hdrcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 2738 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 56:
|
|
-#line 663 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 663 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- currentModule->defdocstringfmt = convertFormat((yyvsp[(2) - (2)].defdocstringfmt).name);
|
|
+ currentModule->defdocstringfmt = convertFormat((yyvsp[0].defdocstringfmt).name);
|
|
}
|
|
+#line 2747 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 57:
|
|
-#line 669 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 669 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.defdocstringfmt).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.defdocstringfmt).name = (yyvsp[0].text);
|
|
}
|
|
+#line 2757 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 58:
|
|
-#line 674 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 674 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defdocstringfmt) = (yyvsp[(2) - (3)].defdocstringfmt);
|
|
+ (yyval.defdocstringfmt) = (yyvsp[-1].defdocstringfmt);
|
|
}
|
|
+#line 2765 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 60:
|
|
-#line 680 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 680 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defdocstringfmt) = (yyvsp[(1) - (3)].defdocstringfmt);
|
|
+ (yyval.defdocstringfmt) = (yyvsp[-2].defdocstringfmt);
|
|
|
|
- switch ((yyvsp[(3) - (3)].defdocstringfmt).token)
|
|
+ switch ((yyvsp[0].defdocstringfmt).token)
|
|
{
|
|
- case TK_NAME: (yyval.defdocstringfmt).name = (yyvsp[(3) - (3)].defdocstringfmt).name; break;
|
|
+ case TK_NAME: (yyval.defdocstringfmt).name = (yyvsp[0].defdocstringfmt).name; break;
|
|
}
|
|
}
|
|
+#line 2778 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 61:
|
|
-#line 690 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 690 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.defdocstringfmt).token = TK_NAME;
|
|
|
|
- (yyval.defdocstringfmt).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.defdocstringfmt).name = (yyvsp[0].text);
|
|
}
|
|
+#line 2788 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 62:
|
|
-#line 697 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 697 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- currentModule->defdocstringsig = convertSignature((yyvsp[(2) - (2)].defdocstringsig).name);
|
|
+ currentModule->defdocstringsig = convertSignature((yyvsp[0].defdocstringsig).name);
|
|
}
|
|
+#line 2797 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 63:
|
|
-#line 703 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 703 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.defdocstringsig).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.defdocstringsig).name = (yyvsp[0].text);
|
|
}
|
|
+#line 2807 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 64:
|
|
-#line 708 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 708 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defdocstringsig) = (yyvsp[(2) - (3)].defdocstringsig);
|
|
+ (yyval.defdocstringsig) = (yyvsp[-1].defdocstringsig);
|
|
}
|
|
+#line 2815 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 66:
|
|
-#line 714 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 714 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defdocstringsig) = (yyvsp[(1) - (3)].defdocstringsig);
|
|
+ (yyval.defdocstringsig) = (yyvsp[-2].defdocstringsig);
|
|
|
|
- switch ((yyvsp[(3) - (3)].defdocstringsig).token)
|
|
+ switch ((yyvsp[0].defdocstringsig).token)
|
|
{
|
|
- case TK_NAME: (yyval.defdocstringsig).name = (yyvsp[(3) - (3)].defdocstringsig).name; break;
|
|
+ case TK_NAME: (yyval.defdocstringsig).name = (yyvsp[0].defdocstringsig).name; break;
|
|
}
|
|
}
|
|
+#line 2828 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 67:
|
|
-#line 724 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 724 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.defdocstringsig).token = TK_NAME;
|
|
|
|
- (yyval.defdocstringsig).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.defdocstringsig).name = (yyvsp[0].text);
|
|
}
|
|
+#line 2838 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 68:
|
|
-#line 731 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 731 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
- if ((currentModule->encoding = convertEncoding((yyvsp[(2) - (2)].defencoding).name)) == no_type)
|
|
+ if ((currentModule->encoding = convertEncoding((yyvsp[0].defencoding).name)) == no_type)
|
|
yyerror("The %DefaultEncoding name must be one of \"ASCII\", \"Latin-1\", \"UTF-8\" or \"None\"");
|
|
}
|
|
}
|
|
+#line 2850 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 69:
|
|
-#line 740 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 740 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.defencoding).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.defencoding).name = (yyvsp[0].text);
|
|
}
|
|
+#line 2860 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 70:
|
|
-#line 745 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 745 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defencoding) = (yyvsp[(2) - (3)].defencoding);
|
|
+ (yyval.defencoding) = (yyvsp[-1].defencoding);
|
|
}
|
|
+#line 2868 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 72:
|
|
-#line 751 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 751 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defencoding) = (yyvsp[(1) - (3)].defencoding);
|
|
+ (yyval.defencoding) = (yyvsp[-2].defencoding);
|
|
|
|
- switch ((yyvsp[(3) - (3)].defencoding).token)
|
|
+ switch ((yyvsp[0].defencoding).token)
|
|
{
|
|
- case TK_NAME: (yyval.defencoding).name = (yyvsp[(3) - (3)].defencoding).name; break;
|
|
+ case TK_NAME: (yyval.defencoding).name = (yyvsp[0].defencoding).name; break;
|
|
}
|
|
}
|
|
+#line 2881 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 73:
|
|
-#line 761 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 761 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.defencoding).token = TK_NAME;
|
|
|
|
- (yyval.defencoding).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.defencoding).name = (yyvsp[0].text);
|
|
}
|
|
+#line 2891 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 74:
|
|
-#line 768 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 768 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/*
|
|
* Note that %Plugin is internal in SIP v4. The current thinking
|
|
@@ -3213,51 +2899,56 @@
|
|
*/
|
|
|
|
if (notSkipping())
|
|
- appendString(¤tSpec->plugins, (yyvsp[(2) - (2)].plugin).name);
|
|
+ appendString(¤tSpec->plugins, (yyvsp[0].plugin).name);
|
|
}
|
|
+#line 2905 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 75:
|
|
-#line 779 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 779 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.plugin).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.plugin).name = (yyvsp[0].text);
|
|
}
|
|
+#line 2915 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 76:
|
|
-#line 784 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 784 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.plugin) = (yyvsp[(2) - (3)].plugin);
|
|
+ (yyval.plugin) = (yyvsp[-1].plugin);
|
|
}
|
|
+#line 2923 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 78:
|
|
-#line 790 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 790 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.plugin) = (yyvsp[(1) - (3)].plugin);
|
|
+ (yyval.plugin) = (yyvsp[-2].plugin);
|
|
|
|
- switch ((yyvsp[(3) - (3)].plugin).token)
|
|
+ switch ((yyvsp[0].plugin).token)
|
|
{
|
|
- case TK_NAME: (yyval.plugin).name = (yyvsp[(3) - (3)].plugin).name; break;
|
|
+ case TK_NAME: (yyval.plugin).name = (yyvsp[0].plugin).name; break;
|
|
}
|
|
}
|
|
+#line 2936 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 79:
|
|
-#line 800 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 800 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.plugin).token = TK_NAME;
|
|
|
|
- (yyval.plugin).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.plugin).name = (yyvsp[0].text);
|
|
}
|
|
+#line 2946 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 80:
|
|
-#line 807 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 807 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if ((yyvsp[(2) - (3)].veh).name == NULL)
|
|
+ if ((yyvsp[-1].veh).name == NULL)
|
|
yyerror("%VirtualErrorHandler must have a 'name' argument");
|
|
|
|
if (notSkipping())
|
|
@@ -3266,7 +2957,7 @@
|
|
|
|
/* Check there isn't already a handler with the same name. */
|
|
for (tailp = ¤tSpec->errorhandlers; (veh = *tailp) != NULL; tailp = &veh->next)
|
|
- if (strcmp(veh->name, (yyvsp[(2) - (3)].veh).name) == 0)
|
|
+ if (strcmp(veh->name, (yyvsp[-1].veh).name) == 0)
|
|
break;
|
|
|
|
if (veh != NULL)
|
|
@@ -3274,8 +2965,8 @@
|
|
|
|
veh = sipMalloc(sizeof (virtErrorHandler));
|
|
|
|
- veh->name = (yyvsp[(2) - (3)].veh).name;
|
|
- appendCodeBlock(&veh->code, (yyvsp[(3) - (3)].codeb));
|
|
+ veh->name = (yyvsp[-1].veh).name;
|
|
+ appendCodeBlock(&veh->code, (yyvsp[0].codeb));
|
|
veh->mod = currentModule;
|
|
veh->index = -1;
|
|
veh->next = NULL;
|
|
@@ -3283,62 +2974,67 @@
|
|
*tailp = veh;
|
|
}
|
|
}
|
|
+#line 2978 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 81:
|
|
-#line 836 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 836 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.veh).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.veh).name = (yyvsp[0].text);
|
|
}
|
|
+#line 2988 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 82:
|
|
-#line 841 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 841 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.veh) = (yyvsp[(2) - (3)].veh);
|
|
+ (yyval.veh) = (yyvsp[-1].veh);
|
|
}
|
|
+#line 2996 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 84:
|
|
-#line 847 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 847 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.veh) = (yyvsp[(1) - (3)].veh);
|
|
+ (yyval.veh) = (yyvsp[-2].veh);
|
|
|
|
- switch ((yyvsp[(3) - (3)].veh).token)
|
|
+ switch ((yyvsp[0].veh).token)
|
|
{
|
|
- case TK_NAME: (yyval.veh).name = (yyvsp[(3) - (3)].veh).name; break;
|
|
+ case TK_NAME: (yyval.veh).name = (yyvsp[0].veh).name; break;
|
|
}
|
|
}
|
|
+#line 3009 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 85:
|
|
-#line 857 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 857 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.veh).token = TK_NAME;
|
|
|
|
- (yyval.veh).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.veh).name = (yyvsp[0].text);
|
|
}
|
|
+#line 3019 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 86:
|
|
-#line 864 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 864 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
apiVersionRangeDef *avd;
|
|
|
|
- if (findAPI(currentSpec, (yyvsp[(2) - (2)].api).name) != NULL)
|
|
+ if (findAPI(currentSpec, (yyvsp[0].api).name) != NULL)
|
|
yyerror("The API name in the %API directive has already been defined");
|
|
|
|
- if ((yyvsp[(2) - (2)].api).version < 1)
|
|
+ if ((yyvsp[0].api).version < 1)
|
|
yyerror("The version number in the %API directive must be greater than or equal to 1");
|
|
|
|
avd = sipMalloc(sizeof (apiVersionRangeDef));
|
|
|
|
- avd->api_name = cacheName(currentSpec, (yyvsp[(2) - (2)].api).name);
|
|
- avd->from = (yyvsp[(2) - (2)].api).version;
|
|
+ avd->api_name = cacheName(currentSpec, (yyvsp[0].api).name);
|
|
+ avd->from = (yyvsp[0].api).version;
|
|
avd->to = -1;
|
|
|
|
avd->next = currentModule->api_versions;
|
|
@@ -3348,62 +3044,68 @@
|
|
setIsUsedName(avd->api_name);
|
|
}
|
|
}
|
|
+#line 3048 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 87:
|
|
-#line 890 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 890 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
deprecated("%API name and version number should be specified using the 'name' and 'version' arguments");
|
|
|
|
- (yyval.api).name = (yyvsp[(1) - (2)].text);
|
|
- (yyval.api).version = (yyvsp[(2) - (2)].number);
|
|
+ (yyval.api).name = (yyvsp[-1].text);
|
|
+ (yyval.api).version = (yyvsp[0].number);
|
|
}
|
|
+#line 3061 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 88:
|
|
-#line 898 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 898 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.api) = (yyvsp[(2) - (3)].api);
|
|
+ (yyval.api) = (yyvsp[-1].api);
|
|
}
|
|
+#line 3069 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 90:
|
|
-#line 904 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 904 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.api) = (yyvsp[(1) - (3)].api);
|
|
+ (yyval.api) = (yyvsp[-2].api);
|
|
|
|
- switch ((yyvsp[(3) - (3)].api).token)
|
|
+ switch ((yyvsp[0].api).token)
|
|
{
|
|
- case TK_NAME: (yyval.api).name = (yyvsp[(3) - (3)].api).name; break;
|
|
- case TK_VERSION: (yyval.api).version = (yyvsp[(3) - (3)].api).version; break;
|
|
+ case TK_NAME: (yyval.api).name = (yyvsp[0].api).name; break;
|
|
+ case TK_VERSION: (yyval.api).version = (yyvsp[0].api).version; break;
|
|
}
|
|
}
|
|
+#line 3083 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 91:
|
|
-#line 915 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 915 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.api).token = TK_NAME;
|
|
|
|
- (yyval.api).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.api).name = (yyvsp[0].text);
|
|
(yyval.api).version = 0;
|
|
}
|
|
+#line 3094 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 92:
|
|
-#line 921 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 921 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.api).token = TK_VERSION;
|
|
|
|
(yyval.api).name = NULL;
|
|
- (yyval.api).version = (yyvsp[(3) - (3)].number);
|
|
+ (yyval.api).version = (yyvsp[0].number);
|
|
}
|
|
+#line 3105 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 93:
|
|
-#line 929 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 929 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -3416,20 +3118,20 @@
|
|
exceptionDef *xd;
|
|
const char *pyname;
|
|
|
|
- checkAnnos(&(yyvsp[(4) - (5)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[-1].optflags), annos);
|
|
|
|
if (currentSpec->genc)
|
|
yyerror("%Exception not allowed in a C module");
|
|
|
|
- if ((yyvsp[(5) - (5)].exception).raise_code == NULL)
|
|
+ if ((yyvsp[0].exception).raise_code == NULL)
|
|
yyerror("%Exception must have a %RaiseCode sub-directive");
|
|
|
|
- pyname = getPythonName(currentModule, &(yyvsp[(4) - (5)].optflags), scopedNameTail((yyvsp[(2) - (5)].scpvalp)));
|
|
+ pyname = getPythonName(currentModule, &(yyvsp[-1].optflags), scopedNameTail((yyvsp[-3].scpvalp)));
|
|
|
|
checkAttributes(currentSpec, currentModule, NULL, NULL,
|
|
pyname, FALSE);
|
|
|
|
- xd = findException(currentSpec, (yyvsp[(2) - (5)].scpvalp), TRUE);
|
|
+ xd = findException(currentSpec, (yyvsp[-3].scpvalp), TRUE);
|
|
|
|
if (xd->cd != NULL)
|
|
yyerror("%Exception name has already been seen as a class name - it must be defined before being used");
|
|
@@ -3439,28 +3141,30 @@
|
|
|
|
/* Complete the definition. */
|
|
xd->iff->module = currentModule;
|
|
- appendCodeBlock(&xd->iff->hdrcode, (yyvsp[(5) - (5)].exception).type_header_code);
|
|
+ appendCodeBlock(&xd->iff->hdrcode, (yyvsp[0].exception).type_header_code);
|
|
xd->pyname = pyname;
|
|
- xd->bibase = (yyvsp[(3) - (5)].exceptionbase).bibase;
|
|
- xd->base = (yyvsp[(3) - (5)].exceptionbase).base;
|
|
- appendCodeBlock(&xd->raisecode, (yyvsp[(5) - (5)].exception).raise_code);
|
|
+ xd->bibase = (yyvsp[-2].exceptionbase).bibase;
|
|
+ xd->base = (yyvsp[-2].exceptionbase).base;
|
|
+ appendCodeBlock(&xd->raisecode, (yyvsp[0].exception).raise_code);
|
|
|
|
- if (getOptFlag(&(yyvsp[(4) - (5)].optflags), "Default", bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[-1].optflags), "Default", bool_flag) != NULL)
|
|
currentModule->defexception = xd;
|
|
}
|
|
}
|
|
+#line 3155 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 94:
|
|
-#line 976 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 976 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.exceptionbase).bibase = NULL;
|
|
(yyval.exceptionbase).base = NULL;
|
|
}
|
|
+#line 3164 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 95:
|
|
-#line 980 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 980 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
exceptionDef *xd;
|
|
|
|
@@ -3469,13 +3173,13 @@
|
|
|
|
/* See if it is a defined exception. */
|
|
for (xd = currentSpec->exceptions; xd != NULL; xd = xd->next)
|
|
- if (compareScopedNames(xd->iff->fqcname, (yyvsp[(2) - (3)].scpvalp)) == 0)
|
|
+ if (compareScopedNames(xd->iff->fqcname, (yyvsp[-1].scpvalp)) == 0)
|
|
{
|
|
(yyval.exceptionbase).base = xd;
|
|
break;
|
|
}
|
|
|
|
- if (xd == NULL && (yyvsp[(2) - (3)].scpvalp)->next == NULL && strncmp((yyvsp[(2) - (3)].scpvalp)->name, "SIP_", 4) == 0)
|
|
+ if (xd == NULL && (yyvsp[-1].scpvalp)->next == NULL && strncmp((yyvsp[-1].scpvalp)->name, "SIP_", 4) == 0)
|
|
{
|
|
/* See if it is a builtin exception. */
|
|
|
|
@@ -3556,7 +3260,7 @@
|
|
char **cp;
|
|
|
|
for (cp = builtins; *cp != NULL; ++cp)
|
|
- if (strcmp((yyvsp[(2) - (3)].scpvalp)->name + 4, *cp) == 0)
|
|
+ if (strcmp((yyvsp[-1].scpvalp)->name + 4, *cp) == 0)
|
|
{
|
|
(yyval.exceptionbase).bibase = *cp;
|
|
break;
|
|
@@ -3566,49 +3270,54 @@
|
|
if ((yyval.exceptionbase).bibase == NULL && (yyval.exceptionbase).base == NULL)
|
|
yyerror("Unknown exception base type");
|
|
}
|
|
+#line 3274 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 96:
|
|
-#line 1087 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1087 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.exception) = (yyvsp[(2) - (4)].exception);
|
|
+ (yyval.exception) = (yyvsp[-2].exception);
|
|
}
|
|
+#line 3282 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 98:
|
|
-#line 1093 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1093 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.exception) = (yyvsp[(1) - (2)].exception);
|
|
+ (yyval.exception) = (yyvsp[-1].exception);
|
|
|
|
- switch ((yyvsp[(2) - (2)].exception).token)
|
|
+ switch ((yyvsp[0].exception).token)
|
|
{
|
|
- case TK_RAISECODE: (yyval.exception).raise_code = (yyvsp[(2) - (2)].exception).raise_code; break;
|
|
- case TK_TYPEHEADERCODE: (yyval.exception).type_header_code = (yyvsp[(2) - (2)].exception).type_header_code; break;
|
|
+ case TK_RAISECODE: (yyval.exception).raise_code = (yyvsp[0].exception).raise_code; break;
|
|
+ case TK_TYPEHEADERCODE: (yyval.exception).type_header_code = (yyvsp[0].exception).type_header_code; break;
|
|
}
|
|
}
|
|
+#line 3296 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 99:
|
|
-#line 1104 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1104 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.exception).token = TK_IF;
|
|
}
|
|
+#line 3304 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 100:
|
|
-#line 1107 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1107 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.exception).token = TK_END;
|
|
}
|
|
+#line 3312 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 101:
|
|
-#line 1110 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1110 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
(yyval.exception).token = TK_RAISECODE;
|
|
- (yyval.exception).raise_code = (yyvsp[(1) - (1)].codeb);
|
|
+ (yyval.exception).raise_code = (yyvsp[0].codeb);
|
|
}
|
|
else
|
|
{
|
|
@@ -3618,15 +3327,16 @@
|
|
|
|
(yyval.exception).type_header_code = NULL;
|
|
}
|
|
+#line 3331 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 102:
|
|
-#line 1124 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1124 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
(yyval.exception).token = TK_TYPEHEADERCODE;
|
|
- (yyval.exception).type_header_code = (yyvsp[(1) - (1)].codeb);
|
|
+ (yyval.exception).type_header_code = (yyvsp[0].codeb);
|
|
}
|
|
else
|
|
{
|
|
@@ -3636,17 +3346,19 @@
|
|
|
|
(yyval.exception).raise_code = NULL;
|
|
}
|
|
+#line 3350 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 103:
|
|
-#line 1140 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1140 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 3358 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 104:
|
|
-#line 1145 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1145 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -3663,15 +3375,16 @@
|
|
NULL
|
|
};
|
|
|
|
- checkAnnos(&(yyvsp[(3) - (3)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[0].optflags), annos);
|
|
|
|
- currentMappedType = newMappedType(currentSpec, &(yyvsp[(2) - (3)].memArg), &(yyvsp[(3) - (3)].optflags));
|
|
+ currentMappedType = newMappedType(currentSpec, &(yyvsp[-1].memArg), &(yyvsp[0].optflags));
|
|
}
|
|
}
|
|
+#line 3384 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 106:
|
|
-#line 1168 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1168 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -3690,7 +3403,7 @@
|
|
mappedTypeTmplDef *mtt;
|
|
ifaceFileDef *iff;
|
|
|
|
- checkAnnos(&(yyvsp[(4) - (4)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[0].optflags), annos);
|
|
|
|
if (currentSpec->genc)
|
|
yyerror("%MappedType templates not allowed in a C module");
|
|
@@ -3699,32 +3412,32 @@
|
|
* Check the template arguments are basic types or simple
|
|
* names.
|
|
*/
|
|
- for (a = 0; a < (yyvsp[(1) - (4)].signature).nrArgs; ++a)
|
|
+ for (a = 0; a < (yyvsp[-3].signature).nrArgs; ++a)
|
|
{
|
|
- argDef *ad = &(yyvsp[(1) - (4)].signature).args[a];
|
|
+ argDef *ad = &(yyvsp[-3].signature).args[a];
|
|
|
|
if (ad->atype == defined_type && ad->u.snd->next != NULL)
|
|
yyerror("%MappedType template arguments must be simple names");
|
|
}
|
|
|
|
- if ((yyvsp[(3) - (4)].memArg).atype != template_type)
|
|
+ if ((yyvsp[-1].memArg).atype != template_type)
|
|
yyerror("%MappedType template must map a template type");
|
|
|
|
- (yyvsp[(3) - (4)].memArg).u.td->fqname = fullyQualifiedName((yyvsp[(3) - (4)].memArg).u.td->fqname);
|
|
+ (yyvsp[-1].memArg).u.td->fqname = fullyQualifiedName((yyvsp[-1].memArg).u.td->fqname);
|
|
|
|
/* Check a template hasn't already been provided. */
|
|
for (mtt = currentSpec->mappedtypetemplates; mtt != NULL; mtt = mtt->next)
|
|
- if (compareScopedNames(mtt->mt->type.u.td->fqname, (yyvsp[(3) - (4)].memArg).u.td->fqname ) == 0 && sameTemplateSignature(&mtt->mt->type.u.td->types, &(yyvsp[(3) - (4)].memArg).u.td->types, TRUE))
|
|
+ if (compareScopedNames(mtt->mt->type.u.td->fqname, (yyvsp[-1].memArg).u.td->fqname ) == 0 && sameTemplateSignature(&mtt->mt->type.u.td->types, &(yyvsp[-1].memArg).u.td->types, TRUE))
|
|
yyerror("%MappedType template for this type has already been defined");
|
|
|
|
- (yyvsp[(3) - (4)].memArg).nrderefs = 0;
|
|
- (yyvsp[(3) - (4)].memArg).argflags = 0;
|
|
+ (yyvsp[-1].memArg).nrderefs = 0;
|
|
+ (yyvsp[-1].memArg).argflags = 0;
|
|
|
|
mtt = sipMalloc(sizeof (mappedTypeTmplDef));
|
|
|
|
- mtt->sig = (yyvsp[(1) - (4)].signature);
|
|
- mtt->mt = allocMappedType(currentSpec, &(yyvsp[(3) - (4)].memArg));
|
|
- mappedTypeAnnos(mtt->mt, &(yyvsp[(4) - (4)].optflags));
|
|
+ mtt->sig = (yyvsp[-3].signature);
|
|
+ mtt->mt = allocMappedType(currentSpec, &(yyvsp[-1].memArg));
|
|
+ mappedTypeAnnos(mtt->mt, &(yyvsp[0].optflags));
|
|
mtt->next = currentSpec->mappedtypetemplates;
|
|
|
|
currentSpec->mappedtypetemplates = mtt;
|
|
@@ -3737,10 +3450,11 @@
|
|
mtt->mt->iff = iff;
|
|
}
|
|
}
|
|
+#line 3454 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 108:
|
|
-#line 1235 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1235 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -3753,82 +3467,89 @@
|
|
currentMappedType = NULL;
|
|
}
|
|
}
|
|
+#line 3471 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 113:
|
|
-#line 1255 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1255 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tMappedType->iff->hdrcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(¤tMappedType->iff->hdrcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 3480 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 114:
|
|
-#line 1259 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1259 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tMappedType->typecode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(¤tMappedType->typecode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 3489 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 115:
|
|
-#line 1263 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1263 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
if (currentMappedType->convfromcode != NULL)
|
|
yyerror("%MappedType has more than one %ConvertFromTypeCode directive");
|
|
|
|
- appendCodeBlock(¤tMappedType->convfromcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tMappedType->convfromcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 3503 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 116:
|
|
-#line 1272 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1272 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
if (currentMappedType->convtocode != NULL)
|
|
yyerror("%MappedType has more than one %ConvertToTypeCode directive");
|
|
|
|
- appendCodeBlock(¤tMappedType->convtocode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tMappedType->convtocode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 3517 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 117:
|
|
-#line 1281 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1281 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
if (currentMappedType->instancecode != NULL)
|
|
yyerror("%MappedType has more than one %InstanceCode directive");
|
|
|
|
- appendCodeBlock(¤tMappedType->instancecode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(¤tMappedType->instancecode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 3531 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 120:
|
|
-#line 1294 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1294 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
- applyTypeFlags(currentModule, &(yyvsp[(2) - (14)].memArg), &(yyvsp[(9) - (14)].optflags));
|
|
+ applyTypeFlags(currentModule, &(yyvsp[-12].memArg), &(yyvsp[-5].optflags));
|
|
|
|
- (yyvsp[(5) - (14)].signature).result = (yyvsp[(2) - (14)].memArg);
|
|
+ (yyvsp[-9].signature).result = (yyvsp[-12].memArg);
|
|
|
|
newFunction(currentSpec, currentModule, NULL, NULL,
|
|
- currentMappedType, 0, TRUE, FALSE, FALSE, FALSE, (yyvsp[(3) - (14)].text),
|
|
- &(yyvsp[(5) - (14)].signature), (yyvsp[(7) - (14)].number), FALSE, &(yyvsp[(9) - (14)].optflags), (yyvsp[(14) - (14)].codeb), NULL, NULL, (yyvsp[(8) - (14)].throwlist), (yyvsp[(10) - (14)].optsignature), (yyvsp[(12) - (14)].docstr),
|
|
- FALSE, (yyvsp[(13) - (14)].codeb));
|
|
+ currentMappedType, 0, TRUE, FALSE, FALSE, FALSE, (yyvsp[-11].text),
|
|
+ &(yyvsp[-9].signature), (yyvsp[-7].number), FALSE, &(yyvsp[-5].optflags), (yyvsp[0].codeb), NULL, NULL, (yyvsp[-6].throwlist), (yyvsp[-4].optsignature), (yyvsp[-2].docstr),
|
|
+ FALSE, (yyvsp[-1].codeb));
|
|
}
|
|
}
|
|
+#line 3549 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 121:
|
|
-#line 1309 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1309 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec -> genc)
|
|
yyerror("namespace definition not allowed in a C module");
|
|
@@ -3844,17 +3565,18 @@
|
|
scope = NULL;
|
|
|
|
ns = newClass(currentSpec, namespace_iface, NULL,
|
|
- text2scopedName(scope, (yyvsp[(2) - (2)].text)), NULL, NULL, NULL, NULL);
|
|
+ text2scopedName(scope, (yyvsp[0].text)), NULL, NULL, NULL, NULL);
|
|
|
|
pushScope(ns);
|
|
|
|
sectionFlags = 0;
|
|
}
|
|
}
|
|
+#line 3576 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 122:
|
|
-#line 1330 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1330 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -3869,10 +3591,11 @@
|
|
popScope();
|
|
}
|
|
}
|
|
+#line 3595 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 127:
|
|
-#line 1354 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1354 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -3883,10 +3606,11 @@
|
|
yyerror("%Platforms has already been defined for this module");
|
|
}
|
|
}
|
|
+#line 3610 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 128:
|
|
-#line 1364 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1364 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -3904,70 +3628,78 @@
|
|
yyerror("No more than one of these %Platforms must be specified with the -t flag");
|
|
}
|
|
}
|
|
+#line 3632 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 131:
|
|
-#line 1387 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1387 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[(1) - (1)].text),
|
|
+ newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[0].text),
|
|
platform_qualifier);
|
|
}
|
|
+#line 3641 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 132:
|
|
-#line 1393 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1393 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[(2) - (2)].feature).name,
|
|
+ newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[0].feature).name,
|
|
feature_qualifier);
|
|
}
|
|
+#line 3650 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 133:
|
|
-#line 1399 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1399 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.feature).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.feature).name = (yyvsp[0].text);
|
|
}
|
|
+#line 3660 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 134:
|
|
-#line 1404 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1404 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.feature) = (yyvsp[(2) - (3)].feature);
|
|
+ (yyval.feature) = (yyvsp[-1].feature);
|
|
}
|
|
+#line 3668 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 136:
|
|
-#line 1410 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1410 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.feature) = (yyvsp[(1) - (3)].feature);
|
|
+ (yyval.feature) = (yyvsp[-2].feature);
|
|
|
|
- switch ((yyvsp[(3) - (3)].feature).token)
|
|
+ switch ((yyvsp[0].feature).token)
|
|
{
|
|
- case TK_NAME: (yyval.feature).name = (yyvsp[(3) - (3)].feature).name; break;
|
|
+ case TK_NAME: (yyval.feature).name = (yyvsp[0].feature).name; break;
|
|
}
|
|
}
|
|
+#line 3681 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 137:
|
|
-#line 1420 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1420 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.feature).token = TK_NAME;
|
|
|
|
- (yyval.feature).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.feature).name = (yyvsp[0].text);
|
|
}
|
|
+#line 3691 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 138:
|
|
-#line 1427 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1427 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
currentTimelineOrder = 0;
|
|
}
|
|
+#line 3699 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 139:
|
|
-#line 1430 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1430 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -3989,25 +3721,28 @@
|
|
currentModule->nrtimelines++;
|
|
}
|
|
}
|
|
+#line 3725 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 142:
|
|
-#line 1457 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1457 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
newQualifier(currentModule, currentModule->nrtimelines,
|
|
- currentTimelineOrder++, TRUE, (yyvsp[(1) - (1)].text), time_qualifier);
|
|
+ currentTimelineOrder++, TRUE, (yyvsp[0].text), time_qualifier);
|
|
}
|
|
+#line 3734 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 143:
|
|
-#line 1463 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1463 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
currentPlatforms = NULL;
|
|
}
|
|
+#line 3742 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 144:
|
|
-#line 1465 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1465 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (stackPtr >= MAX_NESTED_IF)
|
|
yyerror("Internal error: increase the value of MAX_NESTED_IF");
|
|
@@ -4015,102 +3750,110 @@
|
|
/* Nested %Ifs are implicit logical ands. */
|
|
|
|
if (stackPtr > 0)
|
|
- (yyvsp[(4) - (5)].boolean) = ((yyvsp[(4) - (5)].boolean) && skipStack[stackPtr - 1]);
|
|
+ (yyvsp[-1].boolean) = ((yyvsp[-1].boolean) && skipStack[stackPtr - 1]);
|
|
|
|
- skipStack[stackPtr] = (yyvsp[(4) - (5)].boolean);
|
|
+ skipStack[stackPtr] = (yyvsp[-1].boolean);
|
|
|
|
platformStack[stackPtr] = currentPlatforms;
|
|
|
|
++stackPtr;
|
|
}
|
|
+#line 3762 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 145:
|
|
-#line 1482 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1482 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.boolean) = platOrFeature((yyvsp[(1) - (1)].text), FALSE);
|
|
+ (yyval.boolean) = platOrFeature((yyvsp[0].text), FALSE);
|
|
}
|
|
+#line 3770 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 146:
|
|
-#line 1485 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1485 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.boolean) = platOrFeature((yyvsp[(2) - (2)].text), TRUE);
|
|
+ (yyval.boolean) = platOrFeature((yyvsp[0].text), TRUE);
|
|
}
|
|
+#line 3778 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 147:
|
|
-#line 1488 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1488 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.boolean) = (platOrFeature((yyvsp[(3) - (3)].text), FALSE) || (yyvsp[(1) - (3)].boolean));
|
|
+ (yyval.boolean) = (platOrFeature((yyvsp[0].text), FALSE) || (yyvsp[-2].boolean));
|
|
}
|
|
+#line 3786 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 148:
|
|
-#line 1491 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1491 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.boolean) = (platOrFeature((yyvsp[(4) - (4)].text), TRUE) || (yyvsp[(1) - (4)].boolean));
|
|
+ (yyval.boolean) = (platOrFeature((yyvsp[0].text), TRUE) || (yyvsp[-3].boolean));
|
|
}
|
|
+#line 3794 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 150:
|
|
-#line 1497 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1497 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.boolean) = timePeriod((yyvsp[(1) - (3)].text), (yyvsp[(3) - (3)].text));
|
|
+ (yyval.boolean) = timePeriod((yyvsp[-2].text), (yyvsp[0].text));
|
|
}
|
|
+#line 3802 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 151:
|
|
-#line 1502 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1502 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (stackPtr-- <= 0)
|
|
yyerror("Too many %End directives");
|
|
|
|
currentPlatforms = (stackPtr == 0 ? NULL : platformStack[stackPtr - 1]);
|
|
}
|
|
+#line 3813 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 152:
|
|
-#line 1510 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1510 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
optFlag *of;
|
|
|
|
- if ((yyvsp[(3) - (3)].optflags).nrFlags != 0)
|
|
+ if ((yyvsp[0].optflags).nrFlags != 0)
|
|
deprecated("%License annotations are deprecated, use arguments instead");
|
|
|
|
- if ((yyvsp[(2) - (3)].license).type == NULL)
|
|
- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Type", string_flag)) != NULL)
|
|
- (yyvsp[(2) - (3)].license).type = of->fvalue.sval;
|
|
+ if ((yyvsp[-1].license).type == NULL)
|
|
+ if ((of = getOptFlag(&(yyvsp[0].optflags), "Type", string_flag)) != NULL)
|
|
+ (yyvsp[-1].license).type = of->fvalue.sval;
|
|
|
|
- if ((yyvsp[(2) - (3)].license).licensee == NULL)
|
|
- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Licensee", string_flag)) != NULL)
|
|
- (yyvsp[(2) - (3)].license).licensee = of->fvalue.sval;
|
|
+ if ((yyvsp[-1].license).licensee == NULL)
|
|
+ if ((of = getOptFlag(&(yyvsp[0].optflags), "Licensee", string_flag)) != NULL)
|
|
+ (yyvsp[-1].license).licensee = of->fvalue.sval;
|
|
|
|
- if ((yyvsp[(2) - (3)].license).signature == NULL)
|
|
- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Signature", string_flag)) != NULL)
|
|
- (yyvsp[(2) - (3)].license).signature = of->fvalue.sval;
|
|
+ if ((yyvsp[-1].license).signature == NULL)
|
|
+ if ((of = getOptFlag(&(yyvsp[0].optflags), "Signature", string_flag)) != NULL)
|
|
+ (yyvsp[-1].license).signature = of->fvalue.sval;
|
|
|
|
- if ((yyvsp[(2) - (3)].license).timestamp == NULL)
|
|
- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Timestamp", string_flag)) != NULL)
|
|
- (yyvsp[(2) - (3)].license).timestamp = of->fvalue.sval;
|
|
+ if ((yyvsp[-1].license).timestamp == NULL)
|
|
+ if ((of = getOptFlag(&(yyvsp[0].optflags), "Timestamp", string_flag)) != NULL)
|
|
+ (yyvsp[-1].license).timestamp = of->fvalue.sval;
|
|
|
|
- if ((yyvsp[(2) - (3)].license).type == NULL)
|
|
+ if ((yyvsp[-1].license).type == NULL)
|
|
yyerror("%License must have a 'type' argument");
|
|
|
|
if (notSkipping())
|
|
{
|
|
currentModule->license = sipMalloc(sizeof (licenseDef));
|
|
|
|
- currentModule->license->type = (yyvsp[(2) - (3)].license).type;
|
|
- currentModule->license->licensee = (yyvsp[(2) - (3)].license).licensee;
|
|
- currentModule->license->sig = (yyvsp[(2) - (3)].license).signature;
|
|
- currentModule->license->timestamp = (yyvsp[(2) - (3)].license).timestamp;
|
|
+ currentModule->license->type = (yyvsp[-1].license).type;
|
|
+ currentModule->license->licensee = (yyvsp[-1].license).licensee;
|
|
+ currentModule->license->sig = (yyvsp[-1].license).signature;
|
|
+ currentModule->license->timestamp = (yyvsp[-1].license).timestamp;
|
|
}
|
|
}
|
|
+#line 3853 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 153:
|
|
-#line 1547 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1547 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
@@ -4119,241 +3862,264 @@
|
|
(yyval.license).signature = NULL;
|
|
(yyval.license).timestamp = NULL;
|
|
}
|
|
+#line 3866 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 154:
|
|
-#line 1555 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.license).type = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.license).type = (yyvsp[0].text);
|
|
(yyval.license).licensee = NULL;
|
|
(yyval.license).signature = NULL;
|
|
(yyval.license).timestamp = NULL;
|
|
}
|
|
+#line 3877 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 155:
|
|
-#line 1561 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1561 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.license) = (yyvsp[(2) - (3)].license);
|
|
+ (yyval.license) = (yyvsp[-1].license);
|
|
}
|
|
+#line 3885 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 157:
|
|
-#line 1567 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1567 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.license) = (yyvsp[(1) - (3)].license);
|
|
+ (yyval.license) = (yyvsp[-2].license);
|
|
|
|
- switch ((yyvsp[(3) - (3)].license).token)
|
|
+ switch ((yyvsp[0].license).token)
|
|
{
|
|
- case TK_TYPE: (yyval.license).type = (yyvsp[(3) - (3)].license).type; break;
|
|
- case TK_LICENSEE: (yyval.license).licensee = (yyvsp[(3) - (3)].license).licensee; break;
|
|
- case TK_SIGNATURE: (yyval.license).signature = (yyvsp[(3) - (3)].license).signature; break;
|
|
- case TK_TIMESTAMP: (yyval.license).timestamp = (yyvsp[(3) - (3)].license).timestamp; break;
|
|
+ case TK_TYPE: (yyval.license).type = (yyvsp[0].license).type; break;
|
|
+ case TK_LICENSEE: (yyval.license).licensee = (yyvsp[0].license).licensee; break;
|
|
+ case TK_SIGNATURE: (yyval.license).signature = (yyvsp[0].license).signature; break;
|
|
+ case TK_TIMESTAMP: (yyval.license).timestamp = (yyvsp[0].license).timestamp; break;
|
|
}
|
|
}
|
|
+#line 3901 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 158:
|
|
-#line 1580 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1580 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.license).token = TK_NAME;
|
|
|
|
- (yyval.license).type = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.license).type = (yyvsp[0].text);
|
|
(yyval.license).licensee = NULL;
|
|
(yyval.license).signature = NULL;
|
|
(yyval.license).timestamp = NULL;
|
|
}
|
|
+#line 3914 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 159:
|
|
-#line 1588 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1588 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.license).token = TK_LICENSEE;
|
|
|
|
(yyval.license).type = NULL;
|
|
- (yyval.license).licensee = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.license).licensee = (yyvsp[0].text);
|
|
(yyval.license).signature = NULL;
|
|
(yyval.license).timestamp = NULL;
|
|
}
|
|
+#line 3927 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 160:
|
|
-#line 1596 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1596 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.license).token = TK_SIGNATURE;
|
|
|
|
(yyval.license).type = NULL;
|
|
(yyval.license).licensee = NULL;
|
|
- (yyval.license).signature = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.license).signature = (yyvsp[0].text);
|
|
(yyval.license).timestamp = NULL;
|
|
}
|
|
+#line 3940 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 161:
|
|
-#line 1604 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1604 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.license).token = TK_TIMESTAMP;
|
|
|
|
(yyval.license).type = NULL;
|
|
(yyval.license).licensee = NULL;
|
|
(yyval.license).signature = NULL;
|
|
- (yyval.license).timestamp = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.license).timestamp = (yyvsp[0].text);
|
|
}
|
|
+#line 3953 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 162:
|
|
-#line 1614 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1614 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
if (currentModule->defmetatype != NULL)
|
|
yyerror("%DefaultMetatype has already been defined for this module");
|
|
|
|
- currentModule->defmetatype = cacheName(currentSpec, (yyvsp[(2) - (2)].defmetatype).name);
|
|
+ currentModule->defmetatype = cacheName(currentSpec, (yyvsp[0].defmetatype).name);
|
|
}
|
|
}
|
|
+#line 3967 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 163:
|
|
-#line 1625 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1625 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.defmetatype).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.defmetatype).name = (yyvsp[0].text);
|
|
}
|
|
+#line 3977 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 164:
|
|
-#line 1630 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1630 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defmetatype) = (yyvsp[(2) - (3)].defmetatype);
|
|
+ (yyval.defmetatype) = (yyvsp[-1].defmetatype);
|
|
}
|
|
+#line 3985 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 166:
|
|
-#line 1636 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1636 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defmetatype) = (yyvsp[(1) - (3)].defmetatype);
|
|
+ (yyval.defmetatype) = (yyvsp[-2].defmetatype);
|
|
|
|
- switch ((yyvsp[(3) - (3)].defmetatype).token)
|
|
+ switch ((yyvsp[0].defmetatype).token)
|
|
{
|
|
- case TK_NAME: (yyval.defmetatype).name = (yyvsp[(3) - (3)].defmetatype).name; break;
|
|
+ case TK_NAME: (yyval.defmetatype).name = (yyvsp[0].defmetatype).name; break;
|
|
}
|
|
}
|
|
+#line 3998 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 167:
|
|
-#line 1646 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1646 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.defmetatype).token = TK_NAME;
|
|
|
|
- (yyval.defmetatype).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.defmetatype).name = (yyvsp[0].text);
|
|
}
|
|
+#line 4008 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 168:
|
|
-#line 1653 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1653 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
if (currentModule->defsupertype != NULL)
|
|
yyerror("%DefaultSupertype has already been defined for this module");
|
|
|
|
- currentModule->defsupertype = cacheName(currentSpec, (yyvsp[(2) - (2)].defsupertype).name);
|
|
+ currentModule->defsupertype = cacheName(currentSpec, (yyvsp[0].defsupertype).name);
|
|
}
|
|
}
|
|
+#line 4022 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 169:
|
|
-#line 1664 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1664 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.defsupertype).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.defsupertype).name = (yyvsp[0].text);
|
|
}
|
|
+#line 4032 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 170:
|
|
-#line 1669 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1669 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defsupertype) = (yyvsp[(2) - (3)].defsupertype);
|
|
+ (yyval.defsupertype) = (yyvsp[-1].defsupertype);
|
|
}
|
|
+#line 4040 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 172:
|
|
-#line 1675 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1675 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.defsupertype) = (yyvsp[(1) - (3)].defsupertype);
|
|
+ (yyval.defsupertype) = (yyvsp[-2].defsupertype);
|
|
|
|
- switch ((yyvsp[(3) - (3)].defsupertype).token)
|
|
+ switch ((yyvsp[0].defsupertype).token)
|
|
{
|
|
- case TK_NAME: (yyval.defsupertype).name = (yyvsp[(3) - (3)].defsupertype).name; break;
|
|
+ case TK_NAME: (yyval.defsupertype).name = (yyvsp[0].defsupertype).name; break;
|
|
}
|
|
}
|
|
+#line 4053 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 173:
|
|
-#line 1685 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1685 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.defsupertype).token = TK_NAME;
|
|
|
|
- (yyval.defsupertype).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.defsupertype).name = (yyvsp[0].text);
|
|
}
|
|
+#line 4063 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 174:
|
|
-#line 1692 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1692 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
classDef *ns;
|
|
|
|
ns = newClass(currentSpec, namespace_iface, NULL,
|
|
- fullyQualifiedName((yyvsp[(2) - (2)].hiddenns).name), NULL, NULL, NULL, NULL);
|
|
+ fullyQualifiedName((yyvsp[0].hiddenns).name), NULL, NULL, NULL, NULL);
|
|
setHiddenNamespace(ns);
|
|
}
|
|
}
|
|
+#line 4078 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 175:
|
|
-#line 1704 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1704 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.hiddenns).name = (yyvsp[(1) - (1)].scpvalp);
|
|
+ (yyval.hiddenns).name = (yyvsp[0].scpvalp);
|
|
}
|
|
+#line 4088 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 176:
|
|
-#line 1709 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1709 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.hiddenns) = (yyvsp[(2) - (3)].hiddenns);
|
|
+ (yyval.hiddenns) = (yyvsp[-1].hiddenns);
|
|
}
|
|
+#line 4096 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 178:
|
|
-#line 1715 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1715 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.hiddenns) = (yyvsp[(1) - (3)].hiddenns);
|
|
+ (yyval.hiddenns) = (yyvsp[-2].hiddenns);
|
|
|
|
- switch ((yyvsp[(3) - (3)].hiddenns).token)
|
|
+ switch ((yyvsp[0].hiddenns).token)
|
|
{
|
|
- case TK_NAME: (yyval.hiddenns).name = (yyvsp[(3) - (3)].hiddenns).name; break;
|
|
+ case TK_NAME: (yyval.hiddenns).name = (yyvsp[0].hiddenns).name; break;
|
|
}
|
|
}
|
|
+#line 4109 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 179:
|
|
-#line 1725 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1725 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.hiddenns).token = TK_NAME;
|
|
|
|
- (yyval.hiddenns).name = (yyvsp[(3) - (3)].scpvalp);
|
|
+ (yyval.hiddenns).name = (yyvsp[0].scpvalp);
|
|
}
|
|
+#line 4119 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 180:
|
|
-#line 1732 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1732 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("%ConsolidatedModule is deprecated and will not be supported by SIP v5");
|
|
|
|
@@ -4366,99 +4132,109 @@
|
|
if (currentModule->fullname != NULL)
|
|
yyerror("%ConsolidatedModule must appear before any %Module or %CModule directive");
|
|
|
|
- setModuleName(currentSpec, currentModule, (yyvsp[(2) - (3)].consmodule).name);
|
|
- currentModule->docstring = (yyvsp[(3) - (3)].consmodule).docstring;
|
|
+ setModuleName(currentSpec, currentModule, (yyvsp[-1].consmodule).name);
|
|
+ currentModule->docstring = (yyvsp[0].consmodule).docstring;
|
|
|
|
setIsConsolidated(currentModule);
|
|
}
|
|
}
|
|
+#line 4142 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 181:
|
|
-#line 1752 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1752 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.consmodule).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.consmodule).name = (yyvsp[0].text);
|
|
}
|
|
+#line 4152 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 182:
|
|
-#line 1757 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1757 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.consmodule) = (yyvsp[(2) - (3)].consmodule);
|
|
+ (yyval.consmodule) = (yyvsp[-1].consmodule);
|
|
}
|
|
+#line 4160 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 184:
|
|
-#line 1763 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1763 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.consmodule) = (yyvsp[(1) - (3)].consmodule);
|
|
+ (yyval.consmodule) = (yyvsp[-2].consmodule);
|
|
|
|
- switch ((yyvsp[(3) - (3)].consmodule).token)
|
|
+ switch ((yyvsp[0].consmodule).token)
|
|
{
|
|
- case TK_NAME: (yyval.consmodule).name = (yyvsp[(3) - (3)].consmodule).name; break;
|
|
+ case TK_NAME: (yyval.consmodule).name = (yyvsp[0].consmodule).name; break;
|
|
}
|
|
}
|
|
+#line 4173 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 185:
|
|
-#line 1773 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1773 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.consmodule).token = TK_NAME;
|
|
|
|
- (yyval.consmodule).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.consmodule).name = (yyvsp[0].text);
|
|
}
|
|
+#line 4183 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 186:
|
|
-#line 1780 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1780 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.consmodule).token = 0;
|
|
(yyval.consmodule).docstring = NULL;
|
|
}
|
|
+#line 4192 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 187:
|
|
-#line 1784 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1784 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.consmodule) = (yyvsp[(2) - (4)].consmodule);
|
|
+ (yyval.consmodule) = (yyvsp[-2].consmodule);
|
|
}
|
|
+#line 4200 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 189:
|
|
-#line 1790 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1790 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.consmodule) = (yyvsp[(1) - (2)].consmodule);
|
|
+ (yyval.consmodule) = (yyvsp[-1].consmodule);
|
|
|
|
- switch ((yyvsp[(2) - (2)].consmodule).token)
|
|
+ switch ((yyvsp[0].consmodule).token)
|
|
{
|
|
- case TK_DOCSTRING: (yyval.consmodule).docstring = (yyvsp[(2) - (2)].consmodule).docstring; break;
|
|
+ case TK_DOCSTRING: (yyval.consmodule).docstring = (yyvsp[0].consmodule).docstring; break;
|
|
}
|
|
}
|
|
+#line 4213 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 190:
|
|
-#line 1800 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1800 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.consmodule).token = TK_IF;
|
|
}
|
|
+#line 4221 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 191:
|
|
-#line 1803 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1803 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.consmodule).token = TK_END;
|
|
}
|
|
+#line 4229 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 192:
|
|
-#line 1806 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1806 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
(yyval.consmodule).token = TK_DOCSTRING;
|
|
- (yyval.consmodule).docstring = (yyvsp[(1) - (1)].docstr);
|
|
+ (yyval.consmodule).docstring = (yyvsp[0].docstr);
|
|
}
|
|
else
|
|
{
|
|
@@ -4466,10 +4242,11 @@
|
|
(yyval.consmodule).docstring = NULL;
|
|
}
|
|
}
|
|
+#line 4246 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 193:
|
|
-#line 1820 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1820 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -4480,99 +4257,109 @@
|
|
if (currentModule->fullname != NULL)
|
|
yyerror("%CompositeModule must appear before any %Module directive");
|
|
|
|
- setModuleName(currentSpec, currentModule, (yyvsp[(2) - (3)].compmodule).name);
|
|
- currentModule->docstring = (yyvsp[(3) - (3)].compmodule).docstring;
|
|
+ setModuleName(currentSpec, currentModule, (yyvsp[-1].compmodule).name);
|
|
+ currentModule->docstring = (yyvsp[0].compmodule).docstring;
|
|
|
|
setIsComposite(currentModule);
|
|
}
|
|
}
|
|
+#line 4267 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 194:
|
|
-#line 1838 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1838 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.compmodule).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.compmodule).name = (yyvsp[0].text);
|
|
}
|
|
+#line 4277 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 195:
|
|
-#line 1843 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1843 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.compmodule) = (yyvsp[(2) - (3)].compmodule);
|
|
+ (yyval.compmodule) = (yyvsp[-1].compmodule);
|
|
}
|
|
+#line 4285 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 197:
|
|
-#line 1849 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1849 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.compmodule) = (yyvsp[(1) - (3)].compmodule);
|
|
+ (yyval.compmodule) = (yyvsp[-2].compmodule);
|
|
|
|
- switch ((yyvsp[(3) - (3)].compmodule).token)
|
|
+ switch ((yyvsp[0].compmodule).token)
|
|
{
|
|
- case TK_NAME: (yyval.compmodule).name = (yyvsp[(3) - (3)].compmodule).name; break;
|
|
+ case TK_NAME: (yyval.compmodule).name = (yyvsp[0].compmodule).name; break;
|
|
}
|
|
}
|
|
+#line 4298 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 198:
|
|
-#line 1859 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1859 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.compmodule).token = TK_NAME;
|
|
|
|
- (yyval.compmodule).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.compmodule).name = (yyvsp[0].text);
|
|
}
|
|
+#line 4308 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 199:
|
|
-#line 1866 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1866 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.compmodule).token = 0;
|
|
(yyval.compmodule).docstring = NULL;
|
|
}
|
|
+#line 4317 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 200:
|
|
-#line 1870 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1870 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.compmodule) = (yyvsp[(2) - (4)].compmodule);
|
|
+ (yyval.compmodule) = (yyvsp[-2].compmodule);
|
|
}
|
|
+#line 4325 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 202:
|
|
-#line 1876 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1876 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.compmodule) = (yyvsp[(1) - (2)].compmodule);
|
|
+ (yyval.compmodule) = (yyvsp[-1].compmodule);
|
|
|
|
- switch ((yyvsp[(2) - (2)].compmodule).token)
|
|
+ switch ((yyvsp[0].compmodule).token)
|
|
{
|
|
- case TK_DOCSTRING: (yyval.compmodule).docstring = (yyvsp[(2) - (2)].compmodule).docstring; break;
|
|
+ case TK_DOCSTRING: (yyval.compmodule).docstring = (yyvsp[0].compmodule).docstring; break;
|
|
}
|
|
}
|
|
+#line 4338 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 203:
|
|
-#line 1886 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1886 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.compmodule).token = TK_IF;
|
|
}
|
|
+#line 4346 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 204:
|
|
-#line 1889 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1889 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.compmodule).token = TK_END;
|
|
}
|
|
+#line 4354 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 205:
|
|
-#line 1892 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1892 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
(yyval.compmodule).token = TK_DOCSTRING;
|
|
- (yyval.compmodule).docstring = (yyvsp[(1) - (1)].docstr);
|
|
+ (yyval.compmodule).docstring = (yyvsp[0].docstr);
|
|
}
|
|
else
|
|
{
|
|
@@ -4580,90 +4367,97 @@
|
|
(yyval.compmodule).docstring = NULL;
|
|
}
|
|
}
|
|
+#line 4371 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 206:
|
|
-#line 1906 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1906 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if ((yyvsp[(2) - (3)].module).name == NULL)
|
|
+ if ((yyvsp[-1].module).name == NULL)
|
|
yyerror("%Module must have a 'name' argument");
|
|
|
|
if (notSkipping())
|
|
currentModule = configureModule(currentSpec, currentModule,
|
|
- currentContext.filename, (yyvsp[(2) - (3)].module).name, (yyvsp[(2) - (3)].module).c_module,
|
|
- (yyvsp[(2) - (3)].module).kwargs, (yyvsp[(2) - (3)].module).use_arg_names, (yyvsp[(2) - (3)].module).use_limited_api,
|
|
- (yyvsp[(2) - (3)].module).call_super_init, (yyvsp[(2) - (3)].module).all_raise_py_exc,
|
|
- (yyvsp[(2) - (3)].module).def_error_handler, (yyvsp[(3) - (3)].module).docstring);
|
|
+ currentContext.filename, (yyvsp[-1].module).name, (yyvsp[-1].module).c_module,
|
|
+ (yyvsp[-1].module).kwargs, (yyvsp[-1].module).use_arg_names, (yyvsp[-1].module).use_limited_api,
|
|
+ (yyvsp[-1].module).call_super_init, (yyvsp[-1].module).all_raise_py_exc,
|
|
+ (yyvsp[-1].module).def_error_handler, (yyvsp[0].module).docstring);
|
|
}
|
|
+#line 4387 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 207:
|
|
-#line 1917 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1917 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("%CModule is deprecated, use %Module and the 'language' argument instead");
|
|
|
|
if (notSkipping())
|
|
currentModule = configureModule(currentSpec, currentModule,
|
|
- currentContext.filename, (yyvsp[(2) - (3)].text), TRUE, defaultKwArgs,
|
|
+ currentContext.filename, (yyvsp[-1].text), TRUE, defaultKwArgs,
|
|
FALSE, FALSE, -1, FALSE, NULL, NULL);
|
|
}
|
|
+#line 4400 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 208:
|
|
-#line 1927 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1927 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{resetLexerState();}
|
|
+#line 4406 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 209:
|
|
-#line 1927 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1927 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if ((yyvsp[(3) - (3)].number) >= 0)
|
|
+ if ((yyvsp[0].number) >= 0)
|
|
deprecated("%Module version number should be specified using the 'version' argument");
|
|
|
|
(yyval.module).c_module = FALSE;
|
|
(yyval.module).kwargs = defaultKwArgs;
|
|
- (yyval.module).name = (yyvsp[(1) - (3)].text);
|
|
+ (yyval.module).name = (yyvsp[-2].text);
|
|
(yyval.module).use_arg_names = FALSE;
|
|
(yyval.module).use_limited_api = FALSE;
|
|
(yyval.module).all_raise_py_exc = FALSE;
|
|
(yyval.module).call_super_init = -1;
|
|
(yyval.module).def_error_handler = NULL;
|
|
}
|
|
+#line 4424 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 210:
|
|
-#line 1940 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1940 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.module) = (yyvsp[(2) - (3)].module);
|
|
+ (yyval.module) = (yyvsp[-1].module);
|
|
}
|
|
+#line 4432 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 212:
|
|
-#line 1946 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1946 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.module) = (yyvsp[(1) - (3)].module);
|
|
+ (yyval.module) = (yyvsp[-2].module);
|
|
|
|
- switch ((yyvsp[(3) - (3)].module).token)
|
|
+ switch ((yyvsp[0].module).token)
|
|
{
|
|
- case TK_KWARGS: (yyval.module).kwargs = (yyvsp[(3) - (3)].module).kwargs; break;
|
|
- case TK_LANGUAGE: (yyval.module).c_module = (yyvsp[(3) - (3)].module).c_module; break;
|
|
- case TK_NAME: (yyval.module).name = (yyvsp[(3) - (3)].module).name; break;
|
|
- case TK_USEARGNAMES: (yyval.module).use_arg_names = (yyvsp[(3) - (3)].module).use_arg_names; break;
|
|
- case TK_USELIMITEDAPI: (yyval.module).use_limited_api = (yyvsp[(3) - (3)].module).use_limited_api; break;
|
|
- case TK_ALLRAISEPYEXC: (yyval.module).all_raise_py_exc = (yyvsp[(3) - (3)].module).all_raise_py_exc; break;
|
|
- case TK_CALLSUPERINIT: (yyval.module).call_super_init = (yyvsp[(3) - (3)].module).call_super_init; break;
|
|
- case TK_DEFERRORHANDLER: (yyval.module).def_error_handler = (yyvsp[(3) - (3)].module).def_error_handler; break;
|
|
+ case TK_KWARGS: (yyval.module).kwargs = (yyvsp[0].module).kwargs; break;
|
|
+ case TK_LANGUAGE: (yyval.module).c_module = (yyvsp[0].module).c_module; break;
|
|
+ case TK_NAME: (yyval.module).name = (yyvsp[0].module).name; break;
|
|
+ case TK_USEARGNAMES: (yyval.module).use_arg_names = (yyvsp[0].module).use_arg_names; break;
|
|
+ case TK_USELIMITEDAPI: (yyval.module).use_limited_api = (yyvsp[0].module).use_limited_api; break;
|
|
+ case TK_ALLRAISEPYEXC: (yyval.module).all_raise_py_exc = (yyvsp[0].module).all_raise_py_exc; break;
|
|
+ case TK_CALLSUPERINIT: (yyval.module).call_super_init = (yyvsp[0].module).call_super_init; break;
|
|
+ case TK_DEFERRORHANDLER: (yyval.module).def_error_handler = (yyvsp[0].module).def_error_handler; break;
|
|
}
|
|
}
|
|
+#line 4452 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 213:
|
|
-#line 1963 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1963 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_KWARGS;
|
|
|
|
(yyval.module).c_module = FALSE;
|
|
- (yyval.module).kwargs = convertKwArgs((yyvsp[(3) - (3)].text));
|
|
+ (yyval.module).kwargs = convertKwArgs((yyvsp[0].text));
|
|
(yyval.module).name = NULL;
|
|
(yyval.module).use_arg_names = FALSE;
|
|
(yyval.module).use_limited_api = FALSE;
|
|
@@ -4671,16 +4465,17 @@
|
|
(yyval.module).call_super_init = -1;
|
|
(yyval.module).def_error_handler = NULL;
|
|
}
|
|
+#line 4469 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 214:
|
|
-#line 1975 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1975 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_LANGUAGE;
|
|
|
|
- if (strcmp((yyvsp[(3) - (3)].text), "C++") == 0)
|
|
+ if (strcmp((yyvsp[0].text), "C++") == 0)
|
|
(yyval.module).c_module = FALSE;
|
|
- else if (strcmp((yyvsp[(3) - (3)].text), "C") == 0)
|
|
+ else if (strcmp((yyvsp[0].text), "C") == 0)
|
|
(yyval.module).c_module = TRUE;
|
|
else
|
|
yyerror("%Module 'language' argument must be either \"C++\" or \"C\"");
|
|
@@ -4693,42 +4488,45 @@
|
|
(yyval.module).call_super_init = -1;
|
|
(yyval.module).def_error_handler = NULL;
|
|
}
|
|
+#line 4492 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 215:
|
|
-#line 1993 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 1993 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_NAME;
|
|
|
|
(yyval.module).c_module = FALSE;
|
|
(yyval.module).kwargs = defaultKwArgs;
|
|
- (yyval.module).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.module).name = (yyvsp[0].text);
|
|
(yyval.module).use_arg_names = FALSE;
|
|
(yyval.module).use_limited_api = FALSE;
|
|
(yyval.module).all_raise_py_exc = FALSE;
|
|
(yyval.module).call_super_init = -1;
|
|
(yyval.module).def_error_handler = NULL;
|
|
}
|
|
+#line 4509 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 216:
|
|
-#line 2005 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2005 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_USEARGNAMES;
|
|
|
|
(yyval.module).c_module = FALSE;
|
|
(yyval.module).kwargs = defaultKwArgs;
|
|
(yyval.module).name = NULL;
|
|
- (yyval.module).use_arg_names = (yyvsp[(3) - (3)].boolean);
|
|
+ (yyval.module).use_arg_names = (yyvsp[0].boolean);
|
|
(yyval.module).use_limited_api = FALSE;
|
|
(yyval.module).all_raise_py_exc = FALSE;
|
|
(yyval.module).call_super_init = -1;
|
|
(yyval.module).def_error_handler = NULL;
|
|
}
|
|
+#line 4526 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 217:
|
|
-#line 2017 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2017 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_USELIMITEDAPI;
|
|
|
|
@@ -4736,15 +4534,16 @@
|
|
(yyval.module).kwargs = defaultKwArgs;
|
|
(yyval.module).name = NULL;
|
|
(yyval.module).use_arg_names = FALSE;
|
|
- (yyval.module).use_limited_api = (yyvsp[(3) - (3)].boolean);
|
|
+ (yyval.module).use_limited_api = (yyvsp[0].boolean);
|
|
(yyval.module).all_raise_py_exc = FALSE;
|
|
(yyval.module).call_super_init = -1;
|
|
(yyval.module).def_error_handler = NULL;
|
|
}
|
|
+#line 4543 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 218:
|
|
-#line 2029 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2029 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_ALLRAISEPYEXC;
|
|
|
|
@@ -4753,14 +4552,15 @@
|
|
(yyval.module).name = NULL;
|
|
(yyval.module).use_arg_names = FALSE;
|
|
(yyval.module).use_limited_api = FALSE;
|
|
- (yyval.module).all_raise_py_exc = (yyvsp[(3) - (3)].boolean);
|
|
+ (yyval.module).all_raise_py_exc = (yyvsp[0].boolean);
|
|
(yyval.module).call_super_init = -1;
|
|
(yyval.module).def_error_handler = NULL;
|
|
}
|
|
+#line 4560 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 219:
|
|
-#line 2041 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2041 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_CALLSUPERINIT;
|
|
|
|
@@ -4770,13 +4570,14 @@
|
|
(yyval.module).use_arg_names = FALSE;
|
|
(yyval.module).use_limited_api = FALSE;
|
|
(yyval.module).all_raise_py_exc = FALSE;
|
|
- (yyval.module).call_super_init = (yyvsp[(3) - (3)].boolean);
|
|
+ (yyval.module).call_super_init = (yyvsp[0].boolean);
|
|
(yyval.module).def_error_handler = NULL;
|
|
}
|
|
+#line 4577 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 220:
|
|
-#line 2053 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2053 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_DEFERRORHANDLER;
|
|
|
|
@@ -4787,16 +4588,17 @@
|
|
(yyval.module).use_limited_api = FALSE;
|
|
(yyval.module).all_raise_py_exc = FALSE;
|
|
(yyval.module).call_super_init = -1;
|
|
- (yyval.module).def_error_handler = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.module).def_error_handler = (yyvsp[0].text);
|
|
}
|
|
+#line 4594 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 221:
|
|
-#line 2065 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2065 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("%Module version numbers are deprecated and ignored");
|
|
|
|
- if ((yyvsp[(3) - (3)].number) < 0)
|
|
+ if ((yyvsp[0].number) < 0)
|
|
yyerror("%Module 'version' argument cannot be negative");
|
|
|
|
(yyval.module).token = TK_VERSION;
|
|
@@ -4810,63 +4612,70 @@
|
|
(yyval.module).call_super_init = -1;
|
|
(yyval.module).def_error_handler = NULL;
|
|
}
|
|
+#line 4616 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 222:
|
|
-#line 2084 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2084 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = 0;
|
|
(yyval.module).docstring = NULL;
|
|
}
|
|
+#line 4625 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 223:
|
|
-#line 2088 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2088 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.module) = (yyvsp[(2) - (4)].module);
|
|
+ (yyval.module) = (yyvsp[-2].module);
|
|
}
|
|
+#line 4633 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 225:
|
|
-#line 2094 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2094 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.module) = (yyvsp[(1) - (2)].module);
|
|
+ (yyval.module) = (yyvsp[-1].module);
|
|
|
|
- switch ((yyvsp[(2) - (2)].module).token)
|
|
+ switch ((yyvsp[0].module).token)
|
|
{
|
|
- case TK_DOCSTRING: (yyval.module).docstring = (yyvsp[(2) - (2)].module).docstring; break;
|
|
+ case TK_DOCSTRING: (yyval.module).docstring = (yyvsp[0].module).docstring; break;
|
|
}
|
|
}
|
|
+#line 4646 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 226:
|
|
-#line 2104 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2104 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_IF;
|
|
}
|
|
+#line 4654 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 227:
|
|
-#line 2107 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2107 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_END;
|
|
}
|
|
+#line 4662 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 228:
|
|
-#line 2110 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2110 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.module).token = TK_AUTOPYNAME;
|
|
}
|
|
+#line 4670 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 229:
|
|
-#line 2113 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2113 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
(yyval.module).token = TK_DOCSTRING;
|
|
- (yyval.module).docstring = (yyvsp[(1) - (1)].docstr);
|
|
+ (yyval.module).docstring = (yyvsp[0].docstr);
|
|
}
|
|
else
|
|
{
|
|
@@ -4874,10 +4683,11 @@
|
|
(yyval.module).docstring = NULL;
|
|
}
|
|
}
|
|
+#line 4687 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 231:
|
|
-#line 2128 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2128 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/*
|
|
* The grammar design is a bit broken and this is the easiest way
|
|
@@ -4886,435 +4696,487 @@
|
|
|
|
char *cp;
|
|
|
|
- for (cp = (yyvsp[(1) - (1)].text); *cp != '\0'; ++cp)
|
|
+ for (cp = (yyvsp[0].text); *cp != '\0'; ++cp)
|
|
if (*cp != '.' && *cp != '_' && !isalnum(*cp))
|
|
yyerror("Invalid character in name");
|
|
|
|
- (yyval.text) = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.text) = (yyvsp[0].text);
|
|
}
|
|
+#line 4706 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 232:
|
|
-#line 2144 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2144 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = -1;
|
|
}
|
|
+#line 4714 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 234:
|
|
-#line 2150 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2150 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if ((yyvsp[(2) - (2)].include).name == NULL)
|
|
+ if ((yyvsp[0].include).name == NULL)
|
|
yyerror("%Include must have a 'name' argument");
|
|
|
|
if (notSkipping())
|
|
- parseFile(NULL, (yyvsp[(2) - (2)].include).name, NULL, (yyvsp[(2) - (2)].include).optional);
|
|
+ parseFile(NULL, (yyvsp[0].include).name, NULL, (yyvsp[0].include).optional);
|
|
}
|
|
+#line 4726 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 235:
|
|
-#line 2159 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2159 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.include).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.include).name = (yyvsp[0].text);
|
|
(yyval.include).optional = FALSE;
|
|
}
|
|
+#line 4737 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 236:
|
|
-#line 2165 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2165 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.include) = (yyvsp[(2) - (3)].include);
|
|
+ (yyval.include) = (yyvsp[-1].include);
|
|
}
|
|
+#line 4745 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 238:
|
|
-#line 2171 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2171 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.include) = (yyvsp[(1) - (3)].include);
|
|
+ (yyval.include) = (yyvsp[-2].include);
|
|
|
|
- switch ((yyvsp[(3) - (3)].include).token)
|
|
+ switch ((yyvsp[0].include).token)
|
|
{
|
|
- case TK_NAME: (yyval.include).name = (yyvsp[(3) - (3)].include).name; break;
|
|
- case TK_OPTIONAL: (yyval.include).optional = (yyvsp[(3) - (3)].include).optional; break;
|
|
+ case TK_NAME: (yyval.include).name = (yyvsp[0].include).name; break;
|
|
+ case TK_OPTIONAL: (yyval.include).optional = (yyvsp[0].include).optional; break;
|
|
}
|
|
}
|
|
+#line 4759 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 239:
|
|
-#line 2182 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2182 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.include).token = TK_NAME;
|
|
|
|
- (yyval.include).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.include).name = (yyvsp[0].text);
|
|
(yyval.include).optional = FALSE;
|
|
}
|
|
+#line 4770 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 240:
|
|
-#line 2188 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2188 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.include).token = TK_OPTIONAL;
|
|
|
|
(yyval.include).name = NULL;
|
|
- (yyval.include).optional = (yyvsp[(3) - (3)].boolean);
|
|
+ (yyval.include).optional = (yyvsp[0].boolean);
|
|
}
|
|
+#line 4781 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 241:
|
|
-#line 2196 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2196 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("%OptionalInclude is deprecated, use %Include and the 'optional' argument instead");
|
|
|
|
if (notSkipping())
|
|
- parseFile(NULL, (yyvsp[(2) - (2)].text), NULL, TRUE);
|
|
+ parseFile(NULL, (yyvsp[0].text), NULL, TRUE);
|
|
}
|
|
+#line 4792 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 242:
|
|
-#line 2204 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2204 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- newImport((yyvsp[(2) - (2)].import).name);
|
|
+ newImport((yyvsp[0].import).name);
|
|
}
|
|
+#line 4801 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 243:
|
|
-#line 2210 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2210 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.import).name = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.import).name = (yyvsp[0].text);
|
|
}
|
|
+#line 4811 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 244:
|
|
-#line 2215 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2215 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.import) = (yyvsp[(2) - (3)].import);
|
|
+ (yyval.import) = (yyvsp[-1].import);
|
|
}
|
|
+#line 4819 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 246:
|
|
-#line 2221 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2221 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.import) = (yyvsp[(1) - (3)].import);
|
|
+ (yyval.import) = (yyvsp[-2].import);
|
|
|
|
- switch ((yyvsp[(3) - (3)].import).token)
|
|
+ switch ((yyvsp[0].import).token)
|
|
{
|
|
- case TK_NAME: (yyval.import).name = (yyvsp[(3) - (3)].import).name; break;
|
|
+ case TK_NAME: (yyval.import).name = (yyvsp[0].import).name; break;
|
|
}
|
|
}
|
|
+#line 4832 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 247:
|
|
-#line 2231 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2231 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.import).token = TK_NAME;
|
|
|
|
- (yyval.import).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.import).name = (yyvsp[0].text);
|
|
}
|
|
+#line 4842 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 248:
|
|
-#line 2238 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2238 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.codeb) = NULL;
|
|
}
|
|
+#line 4850 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 249:
|
|
-#line 2241 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2241 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4858 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 250:
|
|
-#line 2246 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2246 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.codeb) = NULL;
|
|
}
|
|
+#line 4866 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 251:
|
|
-#line 2249 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2249 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4874 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 252:
|
|
-#line 2254 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2254 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.codeb) = NULL;
|
|
}
|
|
+#line 4882 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 253:
|
|
-#line 2257 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2257 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4890 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 254:
|
|
-#line 2262 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2262 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tModule->copying, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tModule->copying, (yyvsp[0].codeb));
|
|
}
|
|
+#line 4899 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 255:
|
|
-#line 2268 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2268 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tSpec->exphdrcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tSpec->exphdrcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 4908 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 256:
|
|
-#line 2274 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2274 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tModule->hdrcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tModule->hdrcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 4917 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 257:
|
|
-#line 2280 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2280 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4925 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 258:
|
|
-#line 2285 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2285 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4933 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 259:
|
|
-#line 2290 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2290 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4941 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 260:
|
|
-#line 2295 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2295 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4949 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 261:
|
|
-#line 2300 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2300 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4957 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 262:
|
|
-#line 2305 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2305 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4965 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 263:
|
|
-#line 2310 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2310 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4973 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 264:
|
|
-#line 2315 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2315 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4981 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 265:
|
|
-#line 2320 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2320 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4989 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 266:
|
|
-#line 2325 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2325 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 4997 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 267:
|
|
-#line 2330 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2330 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 5005 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 268:
|
|
-#line 2335 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2335 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 5013 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 269:
|
|
-#line 2340 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2340 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tModule->cppcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tModule->cppcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5022 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 270:
|
|
-#line 2346 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2346 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 5030 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 271:
|
|
-#line 2351 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2351 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tModule->preinitcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tModule->preinitcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5039 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 272:
|
|
-#line 2357 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2357 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tModule->initcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tModule->initcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5048 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 273:
|
|
-#line 2363 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2363 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tModule->postinitcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tModule->postinitcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5057 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 274:
|
|
-#line 2369 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2369 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tModule->unitcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tModule->unitcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5066 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 275:
|
|
-#line 2375 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2375 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tModule->unitpostinccode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tModule->unitpostinccode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5075 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 276:
|
|
-#line 2381 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2381 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Deprecated. */
|
|
}
|
|
+#line 5083 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 277:
|
|
-#line 2386 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2386 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping() && !inMainModule())
|
|
- appendCodeBlock(¤tSpec->exptypehintcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tSpec->exptypehintcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5092 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 278:
|
|
-#line 2392 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2392 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tModule->typehintcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tModule->typehintcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5101 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 279:
|
|
-#line 2398 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2398 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 5109 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 280:
|
|
-#line 2403 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2403 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping() && inMainModule())
|
|
- appendCodeBlock(¤tSpec->docs, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tSpec->docs, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5118 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 281:
|
|
-#line 2409 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2409 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tSpec->docs, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(¤tSpec->docs, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5127 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 282:
|
|
-#line 2415 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2415 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- addAutoPyName(currentModule, (yyvsp[(2) - (2)].autopyname).remove_leading);
|
|
+ addAutoPyName(currentModule, (yyvsp[0].autopyname).remove_leading);
|
|
}
|
|
+#line 5136 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 283:
|
|
-#line 2421 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2421 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.autopyname) = (yyvsp[(2) - (3)].autopyname);
|
|
+ (yyval.autopyname) = (yyvsp[-1].autopyname);
|
|
}
|
|
+#line 5144 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 285:
|
|
-#line 2427 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2427 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.autopyname) = (yyvsp[(1) - (3)].autopyname);
|
|
+ (yyval.autopyname) = (yyvsp[-2].autopyname);
|
|
|
|
- switch ((yyvsp[(3) - (3)].autopyname).token)
|
|
+ switch ((yyvsp[0].autopyname).token)
|
|
{
|
|
- case TK_REMOVELEADING: (yyval.autopyname).remove_leading = (yyvsp[(3) - (3)].autopyname).remove_leading; break;
|
|
+ case TK_REMOVELEADING: (yyval.autopyname).remove_leading = (yyvsp[0].autopyname).remove_leading; break;
|
|
}
|
|
}
|
|
+#line 5157 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 286:
|
|
-#line 2437 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2437 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.autopyname).token = TK_REMOVELEADING;
|
|
|
|
- (yyval.autopyname).remove_leading = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.autopyname).remove_leading = (yyvsp[0].text);
|
|
}
|
|
+#line 5167 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 287:
|
|
-#line 2444 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2444 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.docstr) = sipMalloc(sizeof(docstringDef));
|
|
|
|
- (yyval.docstr)->signature = (yyvsp[(2) - (3)].docstring).signature;
|
|
- (yyval.docstr)->text = (yyvsp[(3) - (3)].codeb)->frag;
|
|
- free((yyvsp[(3) - (3)].codeb));
|
|
+ (yyval.docstr)->signature = (yyvsp[-1].docstring).signature;
|
|
+ (yyval.docstr)->text = (yyvsp[0].codeb)->frag;
|
|
+ free((yyvsp[0].codeb));
|
|
|
|
/* Format the docstring. */
|
|
- if ((yyvsp[(2) - (3)].docstring).format == deindented)
|
|
+ if ((yyvsp[-1].docstring).format == deindented)
|
|
{
|
|
const char *cp;
|
|
char *dp;
|
|
@@ -5388,158 +5250,174 @@
|
|
*dp = '\0';
|
|
}
|
|
}
|
|
+#line 5254 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 288:
|
|
-#line 2528 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2528 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.docstring).format = currentModule->defdocstringfmt;
|
|
(yyval.docstring).signature = currentModule->defdocstringsig;
|
|
}
|
|
+#line 5263 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 289:
|
|
-#line 2532 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2532 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.docstring).format = convertFormat((yyvsp[(1) - (1)].text));
|
|
+ (yyval.docstring).format = convertFormat((yyvsp[0].text));
|
|
(yyval.docstring).signature = currentModule->defdocstringsig;
|
|
}
|
|
+#line 5274 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 290:
|
|
-#line 2538 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2538 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.docstring) = (yyvsp[(2) - (3)].docstring);
|
|
+ (yyval.docstring) = (yyvsp[-1].docstring);
|
|
}
|
|
+#line 5282 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 292:
|
|
-#line 2544 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2544 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.docstring) = (yyvsp[(1) - (3)].docstring);
|
|
+ (yyval.docstring) = (yyvsp[-2].docstring);
|
|
|
|
- switch ((yyvsp[(3) - (3)].docstring).token)
|
|
+ switch ((yyvsp[0].docstring).token)
|
|
{
|
|
- case TK_FORMAT: (yyval.docstring).format = (yyvsp[(3) - (3)].docstring).format; break;
|
|
- case TK_SIGNATURE: (yyval.docstring).signature = (yyvsp[(3) - (3)].docstring).signature; break;
|
|
+ case TK_FORMAT: (yyval.docstring).format = (yyvsp[0].docstring).format; break;
|
|
+ case TK_SIGNATURE: (yyval.docstring).signature = (yyvsp[0].docstring).signature; break;
|
|
}
|
|
}
|
|
+#line 5296 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 293:
|
|
-#line 2555 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.docstring).token = TK_FORMAT;
|
|
|
|
- (yyval.docstring).format = convertFormat((yyvsp[(3) - (3)].text));
|
|
+ (yyval.docstring).format = convertFormat((yyvsp[0].text));
|
|
(yyval.docstring).signature = currentModule->defdocstringsig;
|
|
}
|
|
+#line 5307 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 294:
|
|
-#line 2561 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2561 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.docstring).token = TK_SIGNATURE;
|
|
|
|
(yyval.docstring).format = currentModule->defdocstringfmt;
|
|
- (yyval.docstring).signature = convertSignature((yyvsp[(3) - (3)].text));
|
|
+ (yyval.docstring).signature = convertSignature((yyvsp[0].text));
|
|
}
|
|
+#line 5318 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 295:
|
|
-#line 2569 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2569 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.docstr) = NULL;
|
|
}
|
|
+#line 5326 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 297:
|
|
-#line 2575 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2575 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if ((yyvsp[(2) - (3)].extract).id == NULL)
|
|
+ if ((yyvsp[-1].extract).id == NULL)
|
|
yyerror("%Extract must have an 'id' argument");
|
|
|
|
if (notSkipping())
|
|
- addExtractPart(currentSpec, (yyvsp[(2) - (3)].extract).id, (yyvsp[(2) - (3)].extract).order, (yyvsp[(3) - (3)].codeb));
|
|
+ addExtractPart(currentSpec, (yyvsp[-1].extract).id, (yyvsp[-1].extract).order, (yyvsp[0].codeb));
|
|
}
|
|
+#line 5338 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 298:
|
|
-#line 2584 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2584 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
resetLexerState();
|
|
|
|
- (yyval.extract).id = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.extract).id = (yyvsp[0].text);
|
|
(yyval.extract).order = -1;
|
|
}
|
|
+#line 5349 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 299:
|
|
-#line 2590 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2590 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.extract) = (yyvsp[(2) - (3)].extract);
|
|
+ (yyval.extract) = (yyvsp[-1].extract);
|
|
}
|
|
+#line 5357 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 301:
|
|
-#line 2596 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2596 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.extract) = (yyvsp[(1) - (3)].extract);
|
|
+ (yyval.extract) = (yyvsp[-2].extract);
|
|
|
|
- switch ((yyvsp[(3) - (3)].extract).token)
|
|
+ switch ((yyvsp[0].extract).token)
|
|
{
|
|
- case TK_ID: (yyval.extract).id = (yyvsp[(3) - (3)].extract).id; break;
|
|
- case TK_ORDER: (yyval.extract).order = (yyvsp[(3) - (3)].extract).order; break;
|
|
+ case TK_ID: (yyval.extract).id = (yyvsp[0].extract).id; break;
|
|
+ case TK_ORDER: (yyval.extract).order = (yyvsp[0].extract).order; break;
|
|
}
|
|
}
|
|
+#line 5371 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 302:
|
|
-#line 2607 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2607 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.extract).token = TK_ID;
|
|
|
|
- (yyval.extract).id = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.extract).id = (yyvsp[0].text);
|
|
(yyval.extract).order = -1;
|
|
}
|
|
+#line 5382 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 303:
|
|
-#line 2613 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2613 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.extract).token = TK_ORDER;
|
|
|
|
- if ((yyvsp[(3) - (3)].number) < 0)
|
|
+ if ((yyvsp[0].number) < 0)
|
|
yyerror("The 'order' of an %Extract directive must not be negative");
|
|
|
|
(yyval.extract).id = NULL;
|
|
- (yyval.extract).order = (yyvsp[(3) - (3)].number);
|
|
+ (yyval.extract).order = (yyvsp[0].number);
|
|
}
|
|
+#line 5396 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 304:
|
|
-#line 2624 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2624 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Deprecated. */
|
|
}
|
|
+#line 5404 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 307:
|
|
-#line 2633 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2633 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(1) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[-1].codeb);
|
|
|
|
- append(&(yyval.codeb)->frag, (yyvsp[(2) - (2)].codeb)->frag);
|
|
+ append(&(yyval.codeb)->frag, (yyvsp[0].codeb)->frag);
|
|
|
|
- free((yyvsp[(2) - (2)].codeb)->frag);
|
|
- free((yyvsp[(2) - (2)].codeb));
|
|
+ free((yyvsp[0].codeb)->frag);
|
|
+ free((yyvsp[0].codeb));
|
|
}
|
|
+#line 5417 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 308:
|
|
-#line 2643 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2643 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -5550,71 +5428,79 @@
|
|
NULL
|
|
};
|
|
|
|
- checkAnnos(&(yyvsp[(4) - (4)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[0].optflags), annos);
|
|
|
|
if (sectionFlags != 0 && (sectionFlags & ~(SECT_IS_PUBLIC | SECT_IS_PROT)) != 0)
|
|
yyerror("Class enums must be in the public or protected sections");
|
|
|
|
- if (currentSpec->genc && (yyvsp[(2) - (4)].boolean))
|
|
+ if (currentSpec->genc && (yyvsp[-2].boolean))
|
|
yyerror("Scoped enums not allowed in a C module");
|
|
|
|
currentEnum = newEnum(currentSpec, currentModule,
|
|
- currentMappedType, (yyvsp[(3) - (4)].text), &(yyvsp[(4) - (4)].optflags), sectionFlags, (yyvsp[(2) - (4)].boolean));
|
|
+ currentMappedType, (yyvsp[-1].text), &(yyvsp[0].optflags), sectionFlags, (yyvsp[-2].boolean));
|
|
}
|
|
}
|
|
+#line 5444 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 310:
|
|
-#line 2667 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2667 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.boolean) = FALSE;
|
|
}
|
|
+#line 5452 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 311:
|
|
-#line 2670 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2670 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.boolean) = TRUE;
|
|
}
|
|
+#line 5460 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 312:
|
|
-#line 2673 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2673 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.boolean) = TRUE;
|
|
}
|
|
+#line 5468 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 313:
|
|
-#line 2678 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2678 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.text) = NULL;
|
|
}
|
|
+#line 5476 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 314:
|
|
-#line 2681 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2681 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.text) = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.text) = (yyvsp[0].text);
|
|
}
|
|
+#line 5484 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 315:
|
|
-#line 2686 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2686 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.text) = NULL;
|
|
}
|
|
+#line 5492 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 316:
|
|
-#line 2689 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2689 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.text) = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.text) = (yyvsp[0].text);
|
|
}
|
|
+#line 5500 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 323:
|
|
-#line 2704 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2704 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -5626,15 +5512,15 @@
|
|
|
|
enumMemberDef *emd, **tail;
|
|
|
|
- checkAnnos(&(yyvsp[(3) - (4)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[-1].optflags), annos);
|
|
|
|
/* Note that we don't use the assigned value. */
|
|
emd = sipMalloc(sizeof (enumMemberDef));
|
|
|
|
emd->pyname = cacheName(currentSpec,
|
|
- getPythonName(currentModule, &(yyvsp[(3) - (4)].optflags), (yyvsp[(1) - (4)].text)));
|
|
- emd->cname = (yyvsp[(1) - (4)].text);
|
|
- emd->no_typehint = getNoTypeHint(&(yyvsp[(3) - (4)].optflags));
|
|
+ getPythonName(currentModule, &(yyvsp[-1].optflags), (yyvsp[-3].text)));
|
|
+ emd->cname = (yyvsp[-3].text);
|
|
+ emd->no_typehint = getNoTypeHint(&(yyvsp[-1].optflags));
|
|
emd->ed = currentEnum;
|
|
emd->platforms = currentPlatforms;
|
|
emd->next = NULL;
|
|
@@ -5652,207 +5538,232 @@
|
|
setIsUsedName(emd->pyname);
|
|
}
|
|
}
|
|
+#line 5542 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 328:
|
|
-#line 2751 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2751 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.valp) = NULL;
|
|
}
|
|
+#line 5550 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 329:
|
|
-#line 2754 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2754 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.valp) = (yyvsp[(2) - (2)].valp);
|
|
+ (yyval.valp) = (yyvsp[0].valp);
|
|
}
|
|
+#line 5558 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 331:
|
|
-#line 2760 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2760 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
valueDef *vd;
|
|
|
|
- if ((yyvsp[(1) - (3)].valp) -> vtype == string_value || (yyvsp[(3) - (3)].valp) -> vtype == string_value)
|
|
+ if ((yyvsp[-2].valp) -> vtype == string_value || (yyvsp[0].valp) -> vtype == string_value)
|
|
yyerror("Invalid binary operator for string");
|
|
|
|
/* Find the last value in the existing expression. */
|
|
|
|
- for (vd = (yyvsp[(1) - (3)].valp); vd -> next != NULL; vd = vd -> next)
|
|
+ for (vd = (yyvsp[-2].valp); vd -> next != NULL; vd = vd -> next)
|
|
;
|
|
|
|
- vd -> vbinop = (yyvsp[(2) - (3)].qchar);
|
|
- vd -> next = (yyvsp[(3) - (3)].valp);
|
|
+ vd -> vbinop = (yyvsp[-1].qchar);
|
|
+ vd -> next = (yyvsp[0].valp);
|
|
|
|
- (yyval.valp) = (yyvsp[(1) - (3)].valp);
|
|
+ (yyval.valp) = (yyvsp[-2].valp);
|
|
}
|
|
+#line 5579 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 332:
|
|
-#line 2778 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2778 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '-';
|
|
}
|
|
+#line 5587 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 333:
|
|
-#line 2781 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2781 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '+';
|
|
}
|
|
+#line 5595 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 334:
|
|
-#line 2784 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2784 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '*';
|
|
}
|
|
+#line 5603 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 335:
|
|
-#line 2787 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2787 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '/';
|
|
}
|
|
+#line 5611 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 336:
|
|
-#line 2790 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2790 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '&';
|
|
}
|
|
+#line 5619 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 337:
|
|
-#line 2793 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2793 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '|';
|
|
}
|
|
+#line 5627 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 338:
|
|
-#line 2798 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2798 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '\0';
|
|
}
|
|
+#line 5635 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 339:
|
|
-#line 2801 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2801 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '!';
|
|
}
|
|
+#line 5643 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 340:
|
|
-#line 2804 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2804 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '~';
|
|
}
|
|
+#line 5651 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 341:
|
|
-#line 2807 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2807 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '-';
|
|
}
|
|
+#line 5659 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 342:
|
|
-#line 2810 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2810 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '+';
|
|
}
|
|
+#line 5667 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 343:
|
|
-#line 2813 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2813 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '*';
|
|
}
|
|
+#line 5675 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 344:
|
|
-#line 2816 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2816 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.qchar) = '&';
|
|
}
|
|
+#line 5683 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 345:
|
|
-#line 2821 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2821 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if ((yyvsp[(2) - (3)].qchar) != '\0' && (yyvsp[(3) - (3)].value).vtype == string_value)
|
|
+ if ((yyvsp[-1].qchar) != '\0' && (yyvsp[0].value).vtype == string_value)
|
|
yyerror("Invalid unary operator for string");
|
|
|
|
/* Convert the value to a simple expression on the heap. */
|
|
(yyval.valp) = sipMalloc(sizeof (valueDef));
|
|
|
|
- *(yyval.valp) = (yyvsp[(3) - (3)].value);
|
|
- (yyval.valp)->vunop = (yyvsp[(2) - (3)].qchar);
|
|
+ *(yyval.valp) = (yyvsp[0].value);
|
|
+ (yyval.valp)->vunop = (yyvsp[-1].qchar);
|
|
(yyval.valp)->vbinop = '\0';
|
|
- (yyval.valp)->cast = (yyvsp[(1) - (3)].scpvalp);
|
|
+ (yyval.valp)->cast = (yyvsp[-2].scpvalp);
|
|
(yyval.valp)->next = NULL;
|
|
}
|
|
+#line 5701 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 346:
|
|
-#line 2836 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2836 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.scpvalp) = NULL;
|
|
}
|
|
+#line 5709 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 347:
|
|
-#line 2839 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2839 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.scpvalp) = (yyvsp[(2) - (3)].scpvalp);
|
|
+ (yyval.scpvalp) = (yyvsp[-1].scpvalp);
|
|
}
|
|
+#line 5717 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 348:
|
|
-#line 2844 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2844 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec->genc)
|
|
yyerror("Scoped names are not allowed in a C module");
|
|
|
|
- (yyval.scpvalp) = scopeScopedName(NULL, (yyvsp[(2) - (2)].scpvalp));
|
|
+ (yyval.scpvalp) = scopeScopedName(NULL, (yyvsp[0].scpvalp));
|
|
}
|
|
+#line 5728 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 351:
|
|
-#line 2854 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2854 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec->genc)
|
|
yyerror("Scoped names are not allowed in a C module");
|
|
|
|
- appendScopedName(&(yyvsp[(1) - (3)].scpvalp), (yyvsp[(3) - (3)].scpvalp));
|
|
+ appendScopedName(&(yyvsp[-2].scpvalp), (yyvsp[0].scpvalp));
|
|
}
|
|
+#line 5739 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 352:
|
|
-#line 2862 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2862 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.scpvalp) = text2scopePart((yyvsp[(1) - (1)].text));
|
|
+ (yyval.scpvalp) = text2scopePart((yyvsp[0].text));
|
|
}
|
|
+#line 5747 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 353:
|
|
-#line 2867 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2867 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.boolean) = TRUE;
|
|
}
|
|
+#line 5755 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 354:
|
|
-#line 2870 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2870 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.boolean) = FALSE;
|
|
}
|
|
+#line 5763 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 355:
|
|
-#line 2875 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2875 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/*
|
|
* We let the C++ compiler decide if the value is a valid one - no
|
|
@@ -5860,93 +5771,103 @@
|
|
*/
|
|
|
|
(yyval.value).vtype = scoped_value;
|
|
- (yyval.value).u.vscp = (yyvsp[(1) - (1)].scpvalp);
|
|
+ (yyval.value).u.vscp = (yyvsp[0].scpvalp);
|
|
}
|
|
+#line 5777 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 356:
|
|
-#line 2884 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2884 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
fcallDef *fcd;
|
|
|
|
fcd = sipMalloc(sizeof (fcallDef));
|
|
- *fcd = (yyvsp[(3) - (4)].fcall);
|
|
- fcd -> type = (yyvsp[(1) - (4)].memArg);
|
|
+ *fcd = (yyvsp[-1].fcall);
|
|
+ fcd -> type = (yyvsp[-3].memArg);
|
|
|
|
(yyval.value).vtype = fcall_value;
|
|
(yyval.value).u.fcd = fcd;
|
|
}
|
|
+#line 5792 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 357:
|
|
-#line 2894 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2894 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.value).vtype = real_value;
|
|
- (yyval.value).u.vreal = (yyvsp[(1) - (1)].real);
|
|
+ (yyval.value).u.vreal = (yyvsp[0].real);
|
|
}
|
|
+#line 5801 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 358:
|
|
-#line 2898 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2898 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.value).vtype = numeric_value;
|
|
- (yyval.value).u.vnum = (yyvsp[(1) - (1)].number);
|
|
+ (yyval.value).u.vnum = (yyvsp[0].number);
|
|
}
|
|
+#line 5810 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 359:
|
|
-#line 2902 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2902 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.value).vtype = numeric_value;
|
|
- (yyval.value).u.vnum = (yyvsp[(1) - (1)].boolean);
|
|
+ (yyval.value).u.vnum = (yyvsp[0].boolean);
|
|
}
|
|
+#line 5819 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 360:
|
|
-#line 2906 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2906 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.value).vtype = numeric_value;
|
|
(yyval.value).u.vnum = 0;
|
|
}
|
|
+#line 5828 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 361:
|
|
-#line 2910 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2910 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.value).vtype = string_value;
|
|
- (yyval.value).u.vstr = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.value).u.vstr = (yyvsp[0].text);
|
|
}
|
|
+#line 5837 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 362:
|
|
-#line 2914 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2914 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.value).vtype = qchar_value;
|
|
- (yyval.value).u.vqchar = (yyvsp[(1) - (1)].qchar);
|
|
+ (yyval.value).u.vqchar = (yyvsp[0].qchar);
|
|
}
|
|
+#line 5846 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 363:
|
|
-#line 2920 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2920 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* No values. */
|
|
|
|
(yyval.fcall).nrArgs = 0;
|
|
}
|
|
+#line 5856 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 364:
|
|
-#line 2925 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2925 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* The single or first expression. */
|
|
|
|
- (yyval.fcall).args[0] = (yyvsp[(1) - (1)].valp);
|
|
+ (yyval.fcall).args[0] = (yyvsp[0].valp);
|
|
(yyval.fcall).nrArgs = 1;
|
|
}
|
|
+#line 5867 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 365:
|
|
-#line 2931 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2931 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Check that it wasn't ...(,expression...). */
|
|
|
|
@@ -5955,18 +5876,19 @@
|
|
|
|
/* Check there is room. */
|
|
|
|
- if ((yyvsp[(1) - (3)].fcall).nrArgs == MAX_NR_ARGS)
|
|
+ if ((yyvsp[-2].fcall).nrArgs == MAX_NR_ARGS)
|
|
yyerror("Internal error - increase the value of MAX_NR_ARGS");
|
|
|
|
- (yyval.fcall) = (yyvsp[(1) - (3)].fcall);
|
|
+ (yyval.fcall) = (yyvsp[-2].fcall);
|
|
|
|
- (yyval.fcall).args[(yyval.fcall).nrArgs] = (yyvsp[(3) - (3)].valp);
|
|
+ (yyval.fcall).args[(yyval.fcall).nrArgs] = (yyvsp[0].valp);
|
|
(yyval.fcall).nrArgs++;
|
|
}
|
|
+#line 5888 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 366:
|
|
-#line 2949 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2949 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -5983,16 +5905,17 @@
|
|
NULL
|
|
};
|
|
|
|
- checkAnnos(&(yyvsp[(4) - (6)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[-2].optflags), annos);
|
|
|
|
- applyTypeFlags(currentModule, &(yyvsp[(2) - (6)].memArg), &(yyvsp[(4) - (6)].optflags));
|
|
- newTypedef(currentSpec, currentModule, (yyvsp[(3) - (6)].text), &(yyvsp[(2) - (6)].memArg), &(yyvsp[(4) - (6)].optflags), (yyvsp[(6) - (6)].docstr));
|
|
+ applyTypeFlags(currentModule, &(yyvsp[-4].memArg), &(yyvsp[-2].optflags));
|
|
+ newTypedef(currentSpec, currentModule, (yyvsp[-3].text), &(yyvsp[-4].memArg), &(yyvsp[-2].optflags), (yyvsp[0].docstr));
|
|
}
|
|
}
|
|
+#line 5915 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 367:
|
|
-#line 2971 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 2971 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6011,40 +5934,42 @@
|
|
signatureDef *sig;
|
|
argDef ftype;
|
|
|
|
- checkAnnos(&(yyvsp[(10) - (12)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[-2].optflags), annos);
|
|
|
|
- applyTypeFlags(currentModule, &(yyvsp[(2) - (12)].memArg), &(yyvsp[(10) - (12)].optflags));
|
|
+ applyTypeFlags(currentModule, &(yyvsp[-10].memArg), &(yyvsp[-2].optflags));
|
|
|
|
memset(&ftype, 0, sizeof (argDef));
|
|
|
|
/* Create the full signature on the heap. */
|
|
sig = sipMalloc(sizeof (signatureDef));
|
|
- *sig = (yyvsp[(8) - (12)].signature);
|
|
- sig->result = (yyvsp[(2) - (12)].memArg);
|
|
+ *sig = (yyvsp[-4].signature);
|
|
+ sig->result = (yyvsp[-10].memArg);
|
|
|
|
/* Create the full type. */
|
|
ftype.atype = function_type;
|
|
ftype.nrderefs = 1;
|
|
ftype.u.sa = sig;
|
|
|
|
- newTypedef(currentSpec, currentModule, (yyvsp[(5) - (12)].text), &ftype, &(yyvsp[(10) - (12)].optflags), (yyvsp[(12) - (12)].docstr));
|
|
+ newTypedef(currentSpec, currentModule, (yyvsp[-7].text), &ftype, &(yyvsp[-2].optflags), (yyvsp[0].docstr));
|
|
}
|
|
}
|
|
+#line 5957 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 368:
|
|
-#line 3010 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3010 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if (currentSpec -> genc && (yyvsp[(2) - (2)].scpvalp)->next != NULL)
|
|
+ if (currentSpec -> genc && (yyvsp[0].scpvalp)->next != NULL)
|
|
yyerror("Namespaces not allowed in a C module");
|
|
|
|
if (notSkipping())
|
|
currentSupers = NULL;
|
|
}
|
|
+#line 5969 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 369:
|
|
-#line 3016 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3016 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6074,32 +5999,35 @@
|
|
NULL
|
|
};
|
|
|
|
- checkAnnos(&(yyvsp[(5) - (5)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[0].optflags), annos);
|
|
|
|
if (currentSpec->genc && currentSupers != NULL)
|
|
yyerror("Super-classes not allowed in a C module struct");
|
|
|
|
- defineClass((yyvsp[(2) - (5)].scpvalp), currentSupers, &(yyvsp[(5) - (5)].optflags));
|
|
+ defineClass((yyvsp[-3].scpvalp), currentSupers, &(yyvsp[0].optflags));
|
|
sectionFlags = SECT_IS_PUBLIC;
|
|
}
|
|
}
|
|
+#line 6012 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 370:
|
|
-#line 3053 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3053 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- completeClass((yyvsp[(2) - (8)].scpvalp), &(yyvsp[(5) - (8)].optflags), (yyvsp[(7) - (8)].boolean));
|
|
+ completeClass((yyvsp[-6].scpvalp), &(yyvsp[-3].optflags), (yyvsp[-1].boolean));
|
|
}
|
|
+#line 6021 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 371:
|
|
-#line 3059 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3059 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{currentIsTemplate = TRUE;}
|
|
+#line 6027 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 372:
|
|
-#line 3059 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3059 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec->genc)
|
|
yyerror("Class templates not allowed in a C module");
|
|
@@ -6111,12 +6039,12 @@
|
|
/*
|
|
* Make sure there is room for the extra class name argument.
|
|
*/
|
|
- if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS)
|
|
+ if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS)
|
|
yyerror("Internal error - increase the value of MAX_NR_ARGS");
|
|
|
|
tcd = sipMalloc(sizeof (classTmplDef));
|
|
- tcd->sig = (yyvsp[(1) - (3)].signature);
|
|
- tcd->cd = (yyvsp[(3) - (3)].klass);
|
|
+ tcd->sig = (yyvsp[-2].signature);
|
|
+ tcd->cd = (yyvsp[0].klass);
|
|
tcd->next = currentSpec->classtemplates;
|
|
|
|
currentSpec->classtemplates = tcd;
|
|
@@ -6124,17 +6052,19 @@
|
|
|
|
currentIsTemplate = FALSE;
|
|
}
|
|
+#line 6056 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 373:
|
|
-#line 3085 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3085 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.signature) = (yyvsp[(3) - (4)].signature);
|
|
+ (yyval.signature) = (yyvsp[-1].signature);
|
|
}
|
|
+#line 6064 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 374:
|
|
-#line 3090 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3090 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec->genc)
|
|
yyerror("Class definition not allowed in a C module");
|
|
@@ -6142,10 +6072,11 @@
|
|
if (notSkipping())
|
|
currentSupers = NULL;
|
|
}
|
|
+#line 6076 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 375:
|
|
-#line 3096 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3096 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6174,30 +6105,32 @@
|
|
NULL
|
|
};
|
|
|
|
- checkAnnos(&(yyvsp[(5) - (5)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[0].optflags), annos);
|
|
|
|
- defineClass((yyvsp[(2) - (5)].scpvalp), currentSupers, &(yyvsp[(5) - (5)].optflags));
|
|
+ defineClass((yyvsp[-3].scpvalp), currentSupers, &(yyvsp[0].optflags));
|
|
sectionFlags = SECT_IS_PRIVATE;
|
|
}
|
|
}
|
|
+#line 6115 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 376:
|
|
-#line 3129 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3129 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- (yyval.klass) = completeClass((yyvsp[(2) - (8)].scpvalp), &(yyvsp[(5) - (8)].optflags), (yyvsp[(7) - (8)].boolean));
|
|
+ (yyval.klass) = completeClass((yyvsp[-6].scpvalp), &(yyvsp[-3].optflags), (yyvsp[-1].boolean));
|
|
}
|
|
+#line 6124 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 381:
|
|
-#line 3143 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3143 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if (notSkipping() && (yyvsp[(1) - (2)].token) == TK_PUBLIC)
|
|
+ if (notSkipping() && (yyvsp[-1].token) == TK_PUBLIC)
|
|
{
|
|
argDef ad;
|
|
classDef *super;
|
|
- scopedNameDef *snd = (yyvsp[(2) - (2)].scpvalp);
|
|
+ scopedNameDef *snd = (yyvsp[0].scpvalp);
|
|
|
|
/*
|
|
* This is a hack to allow typedef'ed classes to be used before
|
|
@@ -6242,52 +6175,59 @@
|
|
appendToClassList(¤tSupers, super);
|
|
}
|
|
}
|
|
+#line 6179 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 382:
|
|
-#line 3195 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3195 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.token) = TK_PUBLIC;
|
|
}
|
|
+#line 6187 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 383:
|
|
-#line 3198 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3198 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.token) = TK_PUBLIC;
|
|
}
|
|
+#line 6195 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 384:
|
|
-#line 3201 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3201 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.token) = TK_PROTECTED;
|
|
}
|
|
+#line 6203 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 385:
|
|
-#line 3204 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3204 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.token) = TK_PRIVATE;
|
|
}
|
|
+#line 6211 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 386:
|
|
-#line 3209 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3209 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.boolean) = FALSE;
|
|
}
|
|
+#line 6219 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 387:
|
|
-#line 3212 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3212 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.boolean) = TRUE;
|
|
}
|
|
+#line 6227 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 401:
|
|
-#line 3232 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3232 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6296,29 +6236,32 @@
|
|
if (scope->docstring != NULL)
|
|
yyerror("%Docstring already given for class");
|
|
|
|
- scope->docstring = (yyvsp[(1) - (1)].docstr);
|
|
+ scope->docstring = (yyvsp[0].docstr);
|
|
}
|
|
}
|
|
+#line 6243 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 402:
|
|
-#line 3243 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3243 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tScope()->cppcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(¤tScope()->cppcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 6252 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 403:
|
|
-#line 3247 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3247 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
- appendCodeBlock(¤tScope()->iff->hdrcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(¤tScope()->iff->hdrcode, (yyvsp[0].codeb));
|
|
}
|
|
+#line 6261 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 404:
|
|
-#line 3251 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3251 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6327,13 +6270,14 @@
|
|
if (scope->travcode != NULL)
|
|
yyerror("%GCTraverseCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->travcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->travcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6277 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 405:
|
|
-#line 3262 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3262 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6342,13 +6286,14 @@
|
|
if (scope->clearcode != NULL)
|
|
yyerror("%GCClearCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->clearcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->clearcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6293 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 406:
|
|
-#line 3273 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3273 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6357,13 +6302,14 @@
|
|
if (scope->getbufcode != NULL)
|
|
yyerror("%BIGetBufferCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->getbufcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->getbufcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6309 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 407:
|
|
-#line 3284 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3284 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6372,13 +6318,14 @@
|
|
if (scope->releasebufcode != NULL)
|
|
yyerror("%BIReleaseBufferCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->releasebufcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->releasebufcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6325 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 408:
|
|
-#line 3295 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3295 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6387,13 +6334,14 @@
|
|
if (scope->readbufcode != NULL)
|
|
yyerror("%BIGetReadBufferCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->readbufcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->readbufcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6341 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 409:
|
|
-#line 3306 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3306 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6402,13 +6350,14 @@
|
|
if (scope->writebufcode != NULL)
|
|
yyerror("%BIGetWriteBufferCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->writebufcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->writebufcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6357 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 410:
|
|
-#line 3317 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3317 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6417,13 +6366,14 @@
|
|
if (scope->segcountcode != NULL)
|
|
yyerror("%BIGetSegCountCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->segcountcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->segcountcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6373 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 411:
|
|
-#line 3328 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3328 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6432,13 +6382,14 @@
|
|
if (scope->charbufcode != NULL)
|
|
yyerror("%BIGetCharBufferCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->charbufcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->charbufcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6389 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 412:
|
|
-#line 3339 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3339 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6447,13 +6398,14 @@
|
|
if (scope->instancecode != NULL)
|
|
yyerror("%InstanceCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->instancecode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->instancecode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6405 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 413:
|
|
-#line 3350 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3350 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6462,13 +6414,14 @@
|
|
if (scope->picklecode != NULL)
|
|
yyerror("%PickleCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->picklecode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->picklecode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6421 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 414:
|
|
-#line 3361 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3361 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6477,13 +6430,14 @@
|
|
if (scope->finalcode != NULL)
|
|
yyerror("%FinalisationCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->finalcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->finalcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6437 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 415:
|
|
-#line 3372 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3372 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6492,13 +6446,14 @@
|
|
if (scope->typehintcode != NULL)
|
|
yyerror("%TypeHintCode already given for class");
|
|
|
|
- appendCodeBlock(&scope->typehintcode, (yyvsp[(1) - (1)].codeb));
|
|
+ appendCodeBlock(&scope->typehintcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6453 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 419:
|
|
-#line 3386 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3386 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6507,13 +6462,14 @@
|
|
if (scope->convtosubcode != NULL)
|
|
yyerror("Class has more than one %ConvertToSubClassCode directive");
|
|
|
|
- appendCodeBlock(&scope->convtosubcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(&scope->convtosubcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6469 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 420:
|
|
-#line 3397 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3397 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6522,13 +6478,14 @@
|
|
if (scope->convtocode != NULL)
|
|
yyerror("Class has more than one %ConvertToTypeCode directive");
|
|
|
|
- appendCodeBlock(&scope->convtocode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(&scope->convtocode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6485 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 421:
|
|
-#line 3408 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3408 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6537,46 +6494,50 @@
|
|
if (scope->convfromcode != NULL)
|
|
yyerror("Class has more than one %ConvertFromTypeCode directive");
|
|
|
|
- appendCodeBlock(&scope->convfromcode, (yyvsp[(2) - (2)].codeb));
|
|
+ appendCodeBlock(&scope->convfromcode, (yyvsp[0].codeb));
|
|
}
|
|
}
|
|
+#line 6501 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 422:
|
|
-#line 3419 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3419 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec -> genc)
|
|
yyerror("public section not allowed in a C module");
|
|
|
|
if (notSkipping())
|
|
- sectionFlags = SECT_IS_PUBLIC | (yyvsp[(2) - (3)].number);
|
|
+ sectionFlags = SECT_IS_PUBLIC | (yyvsp[-1].number);
|
|
}
|
|
+#line 6513 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 423:
|
|
-#line 3426 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3426 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec -> genc)
|
|
yyerror("protected section not allowed in a C module");
|
|
|
|
if (notSkipping())
|
|
- sectionFlags = SECT_IS_PROT | (yyvsp[(2) - (3)].number);
|
|
+ sectionFlags = SECT_IS_PROT | (yyvsp[-1].number);
|
|
}
|
|
+#line 6525 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 424:
|
|
-#line 3433 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3433 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec -> genc)
|
|
yyerror("private section not allowed in a C module");
|
|
|
|
if (notSkipping())
|
|
- sectionFlags = SECT_IS_PRIVATE | (yyvsp[(2) - (3)].number);
|
|
+ sectionFlags = SECT_IS_PRIVATE | (yyvsp[-1].number);
|
|
}
|
|
+#line 6537 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 425:
|
|
-#line 3440 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3440 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec -> genc)
|
|
yyerror("signals section not allowed in a C module");
|
|
@@ -6584,125 +6545,137 @@
|
|
if (notSkipping())
|
|
sectionFlags = SECT_IS_SIGNAL;
|
|
}
|
|
+#line 6549 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 426:
|
|
-#line 3449 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3449 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if ((yyvsp[(2) - (3)].property).name == NULL)
|
|
+ if ((yyvsp[-1].property).name == NULL)
|
|
yyerror("A %Property directive must have a 'name' argument");
|
|
|
|
- if ((yyvsp[(2) - (3)].property).get == NULL)
|
|
+ if ((yyvsp[-1].property).get == NULL)
|
|
yyerror("A %Property directive must have a 'get' argument");
|
|
|
|
if (notSkipping())
|
|
addProperty(currentSpec, currentModule, currentScope(),
|
|
- (yyvsp[(2) - (3)].property).name, (yyvsp[(2) - (3)].property).get, (yyvsp[(2) - (3)].property).set, (yyvsp[(3) - (3)].property).docstring);
|
|
+ (yyvsp[-1].property).name, (yyvsp[-1].property).get, (yyvsp[-1].property).set, (yyvsp[0].property).docstring);
|
|
}
|
|
+#line 6565 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 427:
|
|
-#line 3462 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3462 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.property) = (yyvsp[(2) - (3)].property);
|
|
+ (yyval.property) = (yyvsp[-1].property);
|
|
}
|
|
+#line 6573 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 429:
|
|
-#line 3468 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3468 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.property) = (yyvsp[(1) - (3)].property);
|
|
+ (yyval.property) = (yyvsp[-2].property);
|
|
|
|
- switch ((yyvsp[(3) - (3)].property).token)
|
|
+ switch ((yyvsp[0].property).token)
|
|
{
|
|
- case TK_GET: (yyval.property).get = (yyvsp[(3) - (3)].property).get; break;
|
|
- case TK_NAME: (yyval.property).name = (yyvsp[(3) - (3)].property).name; break;
|
|
- case TK_SET: (yyval.property).set = (yyvsp[(3) - (3)].property).set; break;
|
|
+ case TK_GET: (yyval.property).get = (yyvsp[0].property).get; break;
|
|
+ case TK_NAME: (yyval.property).name = (yyvsp[0].property).name; break;
|
|
+ case TK_SET: (yyval.property).set = (yyvsp[0].property).set; break;
|
|
}
|
|
}
|
|
+#line 6588 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 430:
|
|
-#line 3480 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3480 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.property).token = TK_GET;
|
|
|
|
- (yyval.property).get = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.property).get = (yyvsp[0].text);
|
|
(yyval.property).name = NULL;
|
|
(yyval.property).set = NULL;
|
|
}
|
|
+#line 6600 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 431:
|
|
-#line 3487 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3487 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.property).token = TK_NAME;
|
|
|
|
(yyval.property).get = NULL;
|
|
- (yyval.property).name = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.property).name = (yyvsp[0].text);
|
|
(yyval.property).set = NULL;
|
|
}
|
|
+#line 6612 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 432:
|
|
-#line 3494 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3494 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.property).token = TK_SET;
|
|
|
|
(yyval.property).get = NULL;
|
|
(yyval.property).name = NULL;
|
|
- (yyval.property).set = (yyvsp[(3) - (3)].text);
|
|
+ (yyval.property).set = (yyvsp[0].text);
|
|
}
|
|
+#line 6624 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 433:
|
|
-#line 3503 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3503 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.property).token = 0;
|
|
(yyval.property).docstring = NULL;
|
|
}
|
|
+#line 6633 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 434:
|
|
-#line 3507 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3507 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.property) = (yyvsp[(2) - (4)].property);
|
|
+ (yyval.property) = (yyvsp[-2].property);
|
|
}
|
|
+#line 6641 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 436:
|
|
-#line 3513 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3513 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.property) = (yyvsp[(1) - (2)].property);
|
|
+ (yyval.property) = (yyvsp[-1].property);
|
|
|
|
- switch ((yyvsp[(2) - (2)].property).token)
|
|
+ switch ((yyvsp[0].property).token)
|
|
{
|
|
- case TK_DOCSTRING: (yyval.property).docstring = (yyvsp[(2) - (2)].property).docstring; break;
|
|
+ case TK_DOCSTRING: (yyval.property).docstring = (yyvsp[0].property).docstring; break;
|
|
}
|
|
}
|
|
+#line 6654 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 437:
|
|
-#line 3523 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3523 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.property).token = TK_IF;
|
|
}
|
|
+#line 6662 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 438:
|
|
-#line 3526 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3526 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.property).token = TK_END;
|
|
}
|
|
+#line 6670 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 439:
|
|
-#line 3529 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3529 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
(yyval.property).token = TK_DOCSTRING;
|
|
- (yyval.property).docstring = (yyvsp[(1) - (1)].docstr);
|
|
+ (yyval.property).docstring = (yyvsp[0].docstr);
|
|
}
|
|
else
|
|
{
|
|
@@ -6710,24 +6683,27 @@
|
|
(yyval.property).docstring = NULL;
|
|
}
|
|
}
|
|
+#line 6687 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 442:
|
|
-#line 3547 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3547 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = 0;
|
|
}
|
|
+#line 6695 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 443:
|
|
-#line 3550 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3550 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = SECT_IS_SLOT;
|
|
}
|
|
+#line 6703 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 444:
|
|
-#line 3555 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Note that we allow non-virtual dtors in C modules. */
|
|
|
|
@@ -6741,22 +6717,22 @@
|
|
|
|
classDef *cd = currentScope();
|
|
|
|
- checkAnnos(&(yyvsp[(8) - (12)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[-4].optflags), annos);
|
|
|
|
- if (strcmp(classBaseName(cd),(yyvsp[(3) - (12)].text)) != 0)
|
|
+ if (strcmp(classBaseName(cd),(yyvsp[-9].text)) != 0)
|
|
yyerror("Destructor doesn't have the same name as its class");
|
|
|
|
if (isDtor(cd))
|
|
yyerror("Destructor has already been defined");
|
|
|
|
- if (currentSpec -> genc && (yyvsp[(10) - (12)].codeb) == NULL)
|
|
+ if (currentSpec -> genc && (yyvsp[-2].codeb) == NULL)
|
|
yyerror("Destructor in C modules must include %MethodCode");
|
|
|
|
|
|
- appendCodeBlock(&cd->dealloccode, (yyvsp[(10) - (12)].codeb)); /* premethodcode */
|
|
- appendCodeBlock(&cd->dealloccode, (yyvsp[(11) - (12)].codeb)); /* methodcode */
|
|
- appendCodeBlock(&cd->dtorcode, (yyvsp[(12) - (12)].codeb));
|
|
- cd -> dtorexceptions = (yyvsp[(6) - (12)].throwlist);
|
|
+ appendCodeBlock(&cd->dealloccode, (yyvsp[-2].codeb)); /* premethodcode */
|
|
+ appendCodeBlock(&cd->dealloccode, (yyvsp[-1].codeb)); /* methodcode */
|
|
+ appendCodeBlock(&cd->dtorcode, (yyvsp[0].codeb));
|
|
+ cd -> dtorexceptions = (yyvsp[-6].throwlist);
|
|
|
|
/*
|
|
* Note that we don't apply the protected/public hack to dtors
|
|
@@ -6764,9 +6740,9 @@
|
|
*/
|
|
cd->classflags |= sectionFlags;
|
|
|
|
- if ((yyvsp[(7) - (12)].number))
|
|
+ if ((yyvsp[-5].number))
|
|
{
|
|
- if (!(yyvsp[(1) - (12)].number))
|
|
+ if (!(yyvsp[-11].number))
|
|
yyerror("Abstract destructor must be virtual");
|
|
|
|
setIsAbstractClass(cd);
|
|
@@ -6776,7 +6752,7 @@
|
|
* The class has a shadow if we have a virtual dtor or some
|
|
* dtor code.
|
|
*/
|
|
- if ((yyvsp[(1) - (12)].number) || (yyvsp[(11) - (12)].codeb) != NULL)
|
|
+ if ((yyvsp[-11].number) || (yyvsp[-1].codeb) != NULL)
|
|
{
|
|
if (currentSpec -> genc)
|
|
yyerror("Virtual destructor or %VirtualCatcherCode not allowed in a C module");
|
|
@@ -6784,21 +6760,23 @@
|
|
setNeedsShadow(cd);
|
|
}
|
|
|
|
- if (getReleaseGIL(&(yyvsp[(8) - (12)].optflags)))
|
|
+ if (getReleaseGIL(&(yyvsp[-4].optflags)))
|
|
setIsReleaseGILDtor(cd);
|
|
- else if (getHoldGIL(&(yyvsp[(8) - (12)].optflags)))
|
|
+ else if (getHoldGIL(&(yyvsp[-4].optflags)))
|
|
setIsHoldGILDtor(cd);
|
|
}
|
|
}
|
|
+#line 6770 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 445:
|
|
-#line 3619 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3619 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{currentCtorIsExplicit = TRUE;}
|
|
+#line 6776 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 448:
|
|
-#line 3623 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3623 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Note that we allow ctors in C modules. */
|
|
|
|
@@ -6821,11 +6799,11 @@
|
|
NULL
|
|
};
|
|
|
|
- checkAnnos(&(yyvsp[(6) - (11)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[-5].optflags), annos);
|
|
|
|
if (currentSpec -> genc)
|
|
{
|
|
- if ((yyvsp[(10) - (11)].codeb) == NULL && (yyvsp[(3) - (11)].signature).nrArgs != 0)
|
|
+ if ((yyvsp[-1].codeb) == NULL && (yyvsp[-8].signature).nrArgs != 0)
|
|
yyerror("Constructors with arguments in C modules must include %MethodCode");
|
|
|
|
if (currentCtorIsExplicit)
|
|
@@ -6835,94 +6813,103 @@
|
|
if ((sectionFlags & (SECT_IS_PUBLIC | SECT_IS_PROT | SECT_IS_PRIVATE)) == 0)
|
|
yyerror("Constructor must be in the public, private or protected sections");
|
|
|
|
- newCtor(currentModule, (yyvsp[(1) - (11)].text), sectionFlags, &(yyvsp[(3) - (11)].signature), &(yyvsp[(6) - (11)].optflags), (yyvsp[(11) - (11)].codeb), (yyvsp[(5) - (11)].throwlist), (yyvsp[(7) - (11)].optsignature),
|
|
- currentCtorIsExplicit, (yyvsp[(9) - (11)].docstr), (yyvsp[(10) - (11)].codeb));
|
|
+ newCtor(currentModule, (yyvsp[-10].text), sectionFlags, &(yyvsp[-8].signature), &(yyvsp[-5].optflags), (yyvsp[0].codeb), (yyvsp[-6].throwlist), (yyvsp[-4].optsignature),
|
|
+ currentCtorIsExplicit, (yyvsp[-2].docstr), (yyvsp[-1].codeb));
|
|
}
|
|
|
|
- free((yyvsp[(1) - (11)].text));
|
|
+ free((yyvsp[-10].text));
|
|
|
|
currentCtorIsExplicit = FALSE;
|
|
}
|
|
+#line 6825 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 449:
|
|
-#line 3669 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3669 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.optsignature) = NULL;
|
|
}
|
|
+#line 6833 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 450:
|
|
-#line 3672 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3672 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
parsingCSignature = TRUE;
|
|
}
|
|
+#line 6841 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 451:
|
|
-#line 3674 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3674 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.optsignature) = sipMalloc(sizeof (signatureDef));
|
|
|
|
- *(yyval.optsignature) = (yyvsp[(4) - (6)].signature);
|
|
+ *(yyval.optsignature) = (yyvsp[-2].signature);
|
|
|
|
parsingCSignature = FALSE;
|
|
}
|
|
+#line 6853 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 452:
|
|
-#line 3683 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3683 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.optsignature) = NULL;
|
|
}
|
|
+#line 6861 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 453:
|
|
-#line 3686 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3686 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
parsingCSignature = TRUE;
|
|
}
|
|
+#line 6869 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 454:
|
|
-#line 3688 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3688 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.optsignature) = sipMalloc(sizeof (signatureDef));
|
|
|
|
- *(yyval.optsignature) = (yyvsp[(5) - (7)].signature);
|
|
- (yyval.optsignature)->result = (yyvsp[(3) - (7)].memArg);
|
|
+ *(yyval.optsignature) = (yyvsp[-2].signature);
|
|
+ (yyval.optsignature)->result = (yyvsp[-4].memArg);
|
|
|
|
parsingCSignature = FALSE;
|
|
}
|
|
+#line 6882 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 455:
|
|
-#line 3698 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3698 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = FALSE;
|
|
}
|
|
+#line 6890 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 456:
|
|
-#line 3701 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3701 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = TRUE;
|
|
}
|
|
+#line 6898 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 457:
|
|
-#line 3706 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3706 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
- applyTypeFlags(currentModule, &(yyvsp[(1) - (17)].memArg), &(yyvsp[(10) - (17)].optflags));
|
|
+ applyTypeFlags(currentModule, &(yyvsp[-16].memArg), &(yyvsp[-7].optflags));
|
|
|
|
- (yyvsp[(4) - (17)].signature).result = (yyvsp[(1) - (17)].memArg);
|
|
+ (yyvsp[-13].signature).result = (yyvsp[-16].memArg);
|
|
|
|
newFunction(currentSpec, currentModule, currentScope(), NULL,
|
|
NULL, sectionFlags, currentIsStatic, currentIsSignal,
|
|
- currentIsSlot, currentOverIsVirt, (yyvsp[(2) - (17)].text), &(yyvsp[(4) - (17)].signature), (yyvsp[(6) - (17)].number), (yyvsp[(9) - (17)].number),
|
|
- &(yyvsp[(10) - (17)].optflags), (yyvsp[(15) - (17)].codeb), (yyvsp[(16) - (17)].codeb), (yyvsp[(17) - (17)].codeb), (yyvsp[(8) - (17)].throwlist), (yyvsp[(11) - (17)].optsignature), (yyvsp[(13) - (17)].docstr), (yyvsp[(7) - (17)].number), (yyvsp[(14) - (17)].codeb));
|
|
+ currentIsSlot, currentOverIsVirt, (yyvsp[-15].text), &(yyvsp[-13].signature), (yyvsp[-11].number), (yyvsp[-8].number),
|
|
+ &(yyvsp[-7].optflags), (yyvsp[-2].codeb), (yyvsp[-1].codeb), (yyvsp[0].codeb), (yyvsp[-9].throwlist), (yyvsp[-6].optsignature), (yyvsp[-4].docstr), (yyvsp[-10].number), (yyvsp[-3].codeb));
|
|
}
|
|
|
|
currentIsStatic = FALSE;
|
|
@@ -6930,10 +6917,11 @@
|
|
currentIsSlot = FALSE;
|
|
currentOverIsVirt = FALSE;
|
|
}
|
|
+#line 6921 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 458:
|
|
-#line 3724 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3724 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/*
|
|
* It looks like an assignment operator (though we don't bother to
|
|
@@ -6954,10 +6942,11 @@
|
|
currentIsSlot = FALSE;
|
|
currentOverIsVirt = FALSE;
|
|
}
|
|
+#line 6946 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 459:
|
|
-#line 3744 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3744 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -6978,23 +6967,23 @@
|
|
ns_scope = NULL;
|
|
}
|
|
|
|
- applyTypeFlags(currentModule, &(yyvsp[(1) - (17)].memArg), &(yyvsp[(11) - (17)].optflags));
|
|
+ applyTypeFlags(currentModule, &(yyvsp[-16].memArg), &(yyvsp[-6].optflags));
|
|
|
|
/* Handle the unary '+' and '-' operators. */
|
|
- if ((cd != NULL && (yyvsp[(5) - (17)].signature).nrArgs == 0) || (cd == NULL && (yyvsp[(5) - (17)].signature).nrArgs == 1))
|
|
+ if ((cd != NULL && (yyvsp[-12].signature).nrArgs == 0) || (cd == NULL && (yyvsp[-12].signature).nrArgs == 1))
|
|
{
|
|
- if (strcmp((yyvsp[(3) - (17)].text), "__add__") == 0)
|
|
- (yyvsp[(3) - (17)].text) = "__pos__";
|
|
- else if (strcmp((yyvsp[(3) - (17)].text), "__sub__") == 0)
|
|
- (yyvsp[(3) - (17)].text) = "__neg__";
|
|
+ if (strcmp((yyvsp[-14].text), "__add__") == 0)
|
|
+ (yyvsp[-14].text) = "__pos__";
|
|
+ else if (strcmp((yyvsp[-14].text), "__sub__") == 0)
|
|
+ (yyvsp[-14].text) = "__neg__";
|
|
}
|
|
|
|
- (yyvsp[(5) - (17)].signature).result = (yyvsp[(1) - (17)].memArg);
|
|
+ (yyvsp[-12].signature).result = (yyvsp[-16].memArg);
|
|
|
|
newFunction(currentSpec, currentModule, cd, ns_scope, NULL,
|
|
sectionFlags, currentIsStatic, currentIsSignal,
|
|
- currentIsSlot, currentOverIsVirt, (yyvsp[(3) - (17)].text), &(yyvsp[(5) - (17)].signature), (yyvsp[(7) - (17)].number), (yyvsp[(10) - (17)].number),
|
|
- &(yyvsp[(11) - (17)].optflags), (yyvsp[(15) - (17)].codeb), (yyvsp[(16) - (17)].codeb), (yyvsp[(17) - (17)].codeb), (yyvsp[(9) - (17)].throwlist), (yyvsp[(12) - (17)].optsignature), NULL, (yyvsp[(8) - (17)].number), (yyvsp[(14) - (17)].codeb));
|
|
+ currentIsSlot, currentOverIsVirt, (yyvsp[-14].text), &(yyvsp[-12].signature), (yyvsp[-10].number), (yyvsp[-7].number),
|
|
+ &(yyvsp[-6].optflags), (yyvsp[-2].codeb), (yyvsp[-1].codeb), (yyvsp[0].codeb), (yyvsp[-8].throwlist), (yyvsp[-5].optsignature), NULL, (yyvsp[-9].number), (yyvsp[-3].codeb));
|
|
}
|
|
|
|
currentIsStatic = FALSE;
|
|
@@ -7002,22 +6991,23 @@
|
|
currentIsSlot = FALSE;
|
|
currentOverIsVirt = FALSE;
|
|
}
|
|
+#line 6995 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 460:
|
|
-#line 3788 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3788 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
char *sname;
|
|
classDef *scope = currentScope();
|
|
|
|
- if (scope == NULL || (yyvsp[(4) - (16)].signature).nrArgs != 0)
|
|
+ if (scope == NULL || (yyvsp[-12].signature).nrArgs != 0)
|
|
yyerror("Operator casts must be specified in a class and have no arguments");
|
|
|
|
- applyTypeFlags(currentModule, &(yyvsp[(2) - (16)].memArg), &(yyvsp[(10) - (16)].optflags));
|
|
+ applyTypeFlags(currentModule, &(yyvsp[-14].memArg), &(yyvsp[-6].optflags));
|
|
|
|
- switch ((yyvsp[(2) - (16)].memArg).atype)
|
|
+ switch ((yyvsp[-14].memArg).atype)
|
|
{
|
|
case defined_type:
|
|
sname = NULL;
|
|
@@ -7056,12 +7046,12 @@
|
|
|
|
if (sname != NULL)
|
|
{
|
|
- (yyvsp[(4) - (16)].signature).result = (yyvsp[(2) - (16)].memArg);
|
|
+ (yyvsp[-12].signature).result = (yyvsp[-14].memArg);
|
|
|
|
newFunction(currentSpec, currentModule, scope, NULL, NULL,
|
|
sectionFlags, currentIsStatic, currentIsSignal,
|
|
- currentIsSlot, currentOverIsVirt, sname, &(yyvsp[(4) - (16)].signature), (yyvsp[(6) - (16)].number),
|
|
- (yyvsp[(9) - (16)].number), &(yyvsp[(10) - (16)].optflags), (yyvsp[(14) - (16)].codeb), (yyvsp[(15) - (16)].codeb), (yyvsp[(16) - (16)].codeb), (yyvsp[(8) - (16)].throwlist), (yyvsp[(11) - (16)].optsignature), NULL, (yyvsp[(7) - (16)].number), (yyvsp[(13) - (16)].codeb));
|
|
+ currentIsSlot, currentOverIsVirt, sname, &(yyvsp[-12].signature), (yyvsp[-10].number),
|
|
+ (yyvsp[-7].number), &(yyvsp[-6].optflags), (yyvsp[-2].codeb), (yyvsp[-1].codeb), (yyvsp[0].codeb), (yyvsp[-8].throwlist), (yyvsp[-5].optsignature), NULL, (yyvsp[-9].number), (yyvsp[-3].codeb));
|
|
}
|
|
else
|
|
{
|
|
@@ -7069,11 +7059,11 @@
|
|
|
|
/* Check it doesn't already exist. */
|
|
for (al = scope->casts; al != NULL; al = al->next)
|
|
- if (compareScopedNames((yyvsp[(2) - (16)].memArg).u.snd, al->arg.u.snd) == 0)
|
|
+ if (compareScopedNames((yyvsp[-14].memArg).u.snd, al->arg.u.snd) == 0)
|
|
yyerror("This operator cast has already been specified in this class");
|
|
|
|
al = sipMalloc(sizeof (argList));
|
|
- al->arg = (yyvsp[(2) - (16)].memArg);
|
|
+ al->arg = (yyvsp[-14].memArg);
|
|
al->next = scope->casts;
|
|
|
|
scope->casts = al;
|
|
@@ -7085,260 +7075,303 @@
|
|
currentIsSlot = FALSE;
|
|
currentOverIsVirt = FALSE;
|
|
}
|
|
+#line 7079 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 461:
|
|
-#line 3869 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3869 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__add__";}
|
|
+#line 7085 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 462:
|
|
-#line 3870 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3870 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__sub__";}
|
|
+#line 7091 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 463:
|
|
-#line 3871 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3871 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__mul__";}
|
|
+#line 7097 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 464:
|
|
-#line 3872 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3872 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__div__";}
|
|
+#line 7103 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 465:
|
|
-#line 3873 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3873 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__mod__";}
|
|
+#line 7109 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 466:
|
|
-#line 3874 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3874 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__and__";}
|
|
+#line 7115 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 467:
|
|
-#line 3875 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3875 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__or__";}
|
|
+#line 7121 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 468:
|
|
-#line 3876 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3876 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__xor__";}
|
|
+#line 7127 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 469:
|
|
-#line 3877 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3877 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__lshift__";}
|
|
+#line 7133 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 470:
|
|
-#line 3878 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3878 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__rshift__";}
|
|
+#line 7139 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 471:
|
|
-#line 3879 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3879 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__iadd__";}
|
|
+#line 7145 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 472:
|
|
-#line 3880 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3880 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__isub__";}
|
|
+#line 7151 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 473:
|
|
-#line 3881 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3881 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__imul__";}
|
|
+#line 7157 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 474:
|
|
-#line 3882 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3882 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__idiv__";}
|
|
+#line 7163 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 475:
|
|
-#line 3883 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3883 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__imod__";}
|
|
+#line 7169 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 476:
|
|
-#line 3884 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3884 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__iand__";}
|
|
+#line 7175 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 477:
|
|
-#line 3885 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3885 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__ior__";}
|
|
+#line 7181 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 478:
|
|
-#line 3886 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3886 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__ixor__";}
|
|
+#line 7187 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 479:
|
|
-#line 3887 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3887 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__ilshift__";}
|
|
+#line 7193 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 480:
|
|
-#line 3888 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3888 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__irshift__";}
|
|
+#line 7199 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 481:
|
|
-#line 3889 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3889 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__invert__";}
|
|
+#line 7205 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 482:
|
|
-#line 3890 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3890 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__call__";}
|
|
+#line 7211 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 483:
|
|
-#line 3891 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3891 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__getitem__";}
|
|
+#line 7217 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 484:
|
|
-#line 3892 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3892 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__lt__";}
|
|
+#line 7223 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 485:
|
|
-#line 3893 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3893 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__le__";}
|
|
+#line 7229 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 486:
|
|
-#line 3894 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3894 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__eq__";}
|
|
+#line 7235 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 487:
|
|
-#line 3895 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3895 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__ne__";}
|
|
+#line 7241 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 488:
|
|
-#line 3896 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3896 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__gt__";}
|
|
+#line 7247 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 489:
|
|
-#line 3897 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3897 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{(yyval.text) = "__ge__";}
|
|
+#line 7253 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 490:
|
|
-#line 3900 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3900 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = FALSE;
|
|
}
|
|
+#line 7261 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 491:
|
|
-#line 3903 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3903 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = TRUE;
|
|
}
|
|
+#line 7269 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 492:
|
|
-#line 3908 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3908 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = FALSE;
|
|
}
|
|
+#line 7277 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 493:
|
|
-#line 3911 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3911 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = TRUE;
|
|
}
|
|
+#line 7285 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 494:
|
|
-#line 3916 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3916 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = 0;
|
|
}
|
|
+#line 7293 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 495:
|
|
-#line 3919 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3919 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- if ((yyvsp[(2) - (2)].number) != 0)
|
|
+ if ((yyvsp[0].number) != 0)
|
|
yyerror("Abstract virtual function '= 0' expected");
|
|
|
|
(yyval.number) = TRUE;
|
|
}
|
|
+#line 7304 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 496:
|
|
-#line 3927 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3927 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.optflags).nrFlags = 0;
|
|
}
|
|
+#line 7312 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 497:
|
|
-#line 3930 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3930 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.optflags) = (yyvsp[(2) - (3)].optflags);
|
|
+ (yyval.optflags) = (yyvsp[-1].optflags);
|
|
}
|
|
+#line 7320 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 498:
|
|
-#line 3936 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3936 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.optflags).flags[0] = (yyvsp[(1) - (1)].flag);
|
|
+ (yyval.optflags).flags[0] = (yyvsp[0].flag);
|
|
(yyval.optflags).nrFlags = 1;
|
|
}
|
|
+#line 7329 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 499:
|
|
-#line 3940 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3940 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Check there is room. */
|
|
|
|
- if ((yyvsp[(1) - (3)].optflags).nrFlags == MAX_NR_FLAGS)
|
|
+ if ((yyvsp[-2].optflags).nrFlags == MAX_NR_FLAGS)
|
|
yyerror("Too many optional flags");
|
|
|
|
- (yyval.optflags) = (yyvsp[(1) - (3)].optflags);
|
|
+ (yyval.optflags) = (yyvsp[-2].optflags);
|
|
|
|
- (yyval.optflags).flags[(yyval.optflags).nrFlags++] = (yyvsp[(3) - (3)].flag);
|
|
+ (yyval.optflags).flags[(yyval.optflags).nrFlags++] = (yyvsp[0].flag);
|
|
}
|
|
+#line 7344 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 500:
|
|
-#line 3952 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3952 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.flag).ftype = bool_flag;
|
|
- (yyval.flag).fname = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.flag).fname = (yyvsp[0].text);
|
|
}
|
|
+#line 7353 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 501:
|
|
-#line 3956 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3956 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.flag) = (yyvsp[(3) - (3)].flag);
|
|
- (yyval.flag).fname = (yyvsp[(1) - (3)].text);
|
|
+ (yyval.flag) = (yyvsp[0].flag);
|
|
+ (yyval.flag).fname = (yyvsp[-2].text);
|
|
}
|
|
+#line 7362 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 502:
|
|
-#line 3962 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3962 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.flag).ftype = (strchr((yyvsp[(1) - (1)].text), '.') != NULL) ? dotted_name_flag : name_flag;
|
|
- (yyval.flag).fvalue.sval = (yyvsp[(1) - (1)].text);
|
|
+ (yyval.flag).ftype = (strchr((yyvsp[0].text), '.') != NULL) ? dotted_name_flag : name_flag;
|
|
+ (yyval.flag).fvalue.sval = (yyvsp[0].text);
|
|
}
|
|
+#line 7371 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 503:
|
|
-#line 3966 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3966 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
apiVersionRangeDef *avd;
|
|
int from, to;
|
|
@@ -7346,106 +7379,117 @@
|
|
(yyval.flag).ftype = api_range_flag;
|
|
|
|
/* Check that the API is known. */
|
|
- if ((avd = findAPI(currentSpec, (yyvsp[(1) - (5)].text))) == NULL)
|
|
+ if ((avd = findAPI(currentSpec, (yyvsp[-4].text))) == NULL)
|
|
yyerror("unknown API name in API annotation");
|
|
|
|
if (inMainModule())
|
|
setIsUsedName(avd->api_name);
|
|
|
|
/* Unbounded values are represented by 0. */
|
|
- if ((from = (yyvsp[(3) - (5)].number)) < 0)
|
|
+ if ((from = (yyvsp[-2].number)) < 0)
|
|
from = 0;
|
|
|
|
- if ((to = (yyvsp[(5) - (5)].number)) < 0)
|
|
+ if ((to = (yyvsp[0].number)) < 0)
|
|
to = 0;
|
|
|
|
(yyval.flag).fvalue.aval = convertAPIRange(currentModule, avd->api_name,
|
|
from, to);
|
|
}
|
|
+#line 7399 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 504:
|
|
-#line 3989 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3989 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.flag).ftype = string_flag;
|
|
- (yyval.flag).fvalue.sval = convertFeaturedString((yyvsp[(1) - (1)].text));
|
|
+ (yyval.flag).fvalue.sval = convertFeaturedString((yyvsp[0].text));
|
|
}
|
|
+#line 7408 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 505:
|
|
-#line 3993 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3993 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.flag).ftype = integer_flag;
|
|
- (yyval.flag).fvalue.ival = (yyvsp[(1) - (1)].number);
|
|
+ (yyval.flag).fvalue.ival = (yyvsp[0].number);
|
|
}
|
|
+#line 7417 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 506:
|
|
-#line 3999 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 3999 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.codeb) = NULL;
|
|
}
|
|
+#line 7425 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 507:
|
|
-#line 4002 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4002 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 7433 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 508:
|
|
-#line 4007 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4007 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.codeb) = NULL;
|
|
}
|
|
+#line 7441 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 509:
|
|
-#line 4010 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4010 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 7449 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 510:
|
|
-#line 4015 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4015 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.codeb) = NULL;
|
|
}
|
|
+#line 7457 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 511:
|
|
-#line 4018 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4018 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 7465 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 512:
|
|
-#line 4023 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4023 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.codeb) = NULL;
|
|
}
|
|
+#line 7473 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 513:
|
|
-#line 4026 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4026 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.codeb) = (yyvsp[0].codeb);
|
|
}
|
|
+#line 7481 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 514:
|
|
-#line 4031 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4031 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
int a, nrrxcon, nrrxdis, nrslotcon, nrslotdis, nrarray, nrarraysize;
|
|
|
|
nrrxcon = nrrxdis = nrslotcon = nrslotdis = nrarray = nrarraysize = 0;
|
|
|
|
- for (a = 0; a < (yyvsp[(1) - (1)].signature).nrArgs; ++a)
|
|
+ for (a = 0; a < (yyvsp[0].signature).nrArgs; ++a)
|
|
{
|
|
- argDef *ad = &(yyvsp[(1) - (1)].signature).args[a];
|
|
+ argDef *ad = &(yyvsp[0].signature).args[a];
|
|
|
|
switch (ad -> atype)
|
|
{
|
|
@@ -7486,104 +7530,111 @@
|
|
if (nrarray != nrarraysize || nrarray > 1)
|
|
yyerror("/Array/ and /ArraySize/ must both be given and at most once");
|
|
|
|
- (yyval.signature) = (yyvsp[(1) - (1)].signature);
|
|
+ (yyval.signature) = (yyvsp[0].signature);
|
|
}
|
|
+#line 7536 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 515:
|
|
-#line 4083 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4083 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* No arguments. */
|
|
|
|
(yyval.signature).nrArgs = 0;
|
|
}
|
|
+#line 7546 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 516:
|
|
-#line 4088 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4088 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* The single or first argument. */
|
|
|
|
- (yyval.signature).args[0] = (yyvsp[(1) - (1)].memArg);
|
|
+ (yyval.signature).args[0] = (yyvsp[0].memArg);
|
|
(yyval.signature).nrArgs = 1;
|
|
}
|
|
+#line 7557 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 517:
|
|
-#line 4094 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4094 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Check that it wasn't ...(,arg...). */
|
|
- if ((yyvsp[(1) - (3)].signature).nrArgs == 0)
|
|
+ if ((yyvsp[-2].signature).nrArgs == 0)
|
|
yyerror("First argument of the list is missing");
|
|
|
|
/*
|
|
* If this argument has no default value, then the
|
|
* previous one mustn't either.
|
|
*/
|
|
- if ((yyvsp[(3) - (3)].memArg).defval == NULL && (yyvsp[(1) - (3)].signature).args[(yyvsp[(1) - (3)].signature).nrArgs - 1].defval != NULL)
|
|
+ if ((yyvsp[0].memArg).defval == NULL && (yyvsp[-2].signature).args[(yyvsp[-2].signature).nrArgs - 1].defval != NULL)
|
|
yyerror("Compulsory argument given after optional argument");
|
|
|
|
/* Check there is room. */
|
|
- if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS)
|
|
+ if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS)
|
|
yyerror("Internal error - increase the value of MAX_NR_ARGS");
|
|
|
|
- (yyval.signature) = (yyvsp[(1) - (3)].signature);
|
|
+ (yyval.signature) = (yyvsp[-2].signature);
|
|
|
|
- (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[(3) - (3)].memArg);
|
|
+ (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[0].memArg);
|
|
(yyval.signature).nrArgs++;
|
|
}
|
|
+#line 7583 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 518:
|
|
-#line 4117 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4117 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("SIP_SIGNAL is deprecated\n");
|
|
- checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_SIGNAL has no annotations");
|
|
+ checkNoAnnos(&(yyvsp[-1].optflags), "SIP_SIGNAL has no annotations");
|
|
|
|
(yyval.memArg).atype = signal_type;
|
|
(yyval.memArg).argflags = ARG_IS_CONST;
|
|
(yyval.memArg).nrderefs = 0;
|
|
- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text));
|
|
- (yyval.memArg).defval = (yyvsp[(4) - (4)].valp);
|
|
+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text));
|
|
+ (yyval.memArg).defval = (yyvsp[0].valp);
|
|
|
|
currentSpec -> sigslots = TRUE;
|
|
}
|
|
+#line 7600 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 519:
|
|
-#line 4129 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4129 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("SIP_SLOT is deprecated\n");
|
|
- checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_SLOT has no annotations");
|
|
+ checkNoAnnos(&(yyvsp[-1].optflags), "SIP_SLOT has no annotations");
|
|
|
|
(yyval.memArg).atype = slot_type;
|
|
(yyval.memArg).argflags = ARG_IS_CONST;
|
|
(yyval.memArg).nrderefs = 0;
|
|
- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text));
|
|
- (yyval.memArg).defval = (yyvsp[(4) - (4)].valp);
|
|
+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text));
|
|
+ (yyval.memArg).defval = (yyvsp[0].valp);
|
|
|
|
currentSpec -> sigslots = TRUE;
|
|
}
|
|
+#line 7617 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 520:
|
|
-#line 4141 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4141 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("SIP_ANYSLOT is deprecated\n");
|
|
- checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_ANYSLOT has no annotations");
|
|
+ checkNoAnnos(&(yyvsp[-1].optflags), "SIP_ANYSLOT has no annotations");
|
|
|
|
(yyval.memArg).atype = anyslot_type;
|
|
(yyval.memArg).argflags = ARG_IS_CONST;
|
|
(yyval.memArg).nrderefs = 0;
|
|
- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text));
|
|
- (yyval.memArg).defval = (yyvsp[(4) - (4)].valp);
|
|
+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text));
|
|
+ (yyval.memArg).defval = (yyvsp[0].valp);
|
|
|
|
currentSpec -> sigslots = TRUE;
|
|
}
|
|
+#line 7634 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 521:
|
|
-#line 4153 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4153 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
const char *annos[] = {
|
|
"SingleShot",
|
|
@@ -7591,120 +7642,130 @@
|
|
};
|
|
|
|
deprecated("SIP_RXOBJ_CON is deprecated\n");
|
|
- checkAnnos(&(yyvsp[(3) - (3)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[0].optflags), annos);
|
|
|
|
(yyval.memArg).atype = rxcon_type;
|
|
(yyval.memArg).argflags = 0;
|
|
(yyval.memArg).nrderefs = 0;
|
|
- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text));
|
|
+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "SingleShot", bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags), "SingleShot", bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_SINGLE_SHOT;
|
|
|
|
currentSpec -> sigslots = TRUE;
|
|
}
|
|
+#line 7658 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 522:
|
|
-#line 4172 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4172 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("SIP_RXOBJ_DIS is deprecated\n");
|
|
- checkNoAnnos(&(yyvsp[(3) - (3)].optflags), "SIP_RXOBJ_DIS has no annotations");
|
|
+ checkNoAnnos(&(yyvsp[0].optflags), "SIP_RXOBJ_DIS has no annotations");
|
|
|
|
(yyval.memArg).atype = rxdis_type;
|
|
(yyval.memArg).argflags = 0;
|
|
(yyval.memArg).nrderefs = 0;
|
|
- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text));
|
|
+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
|
|
|
|
currentSpec -> sigslots = TRUE;
|
|
}
|
|
+#line 7674 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 523:
|
|
-#line 4183 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4183 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("SIP_SLOT_CON is deprecated\n");
|
|
- checkNoAnnos(&(yyvsp[(6) - (6)].optflags), "SIP_SLOT_CON has no annotations");
|
|
+ checkNoAnnos(&(yyvsp[0].optflags), "SIP_SLOT_CON has no annotations");
|
|
|
|
(yyval.memArg).atype = slotcon_type;
|
|
(yyval.memArg).argflags = ARG_IS_CONST;
|
|
(yyval.memArg).nrderefs = 0;
|
|
- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(5) - (6)].text));
|
|
+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
|
|
|
|
- memset(&(yyvsp[(3) - (6)].signature).result, 0, sizeof (argDef));
|
|
- (yyvsp[(3) - (6)].signature).result.atype = void_type;
|
|
+ memset(&(yyvsp[-3].signature).result, 0, sizeof (argDef));
|
|
+ (yyvsp[-3].signature).result.atype = void_type;
|
|
|
|
(yyval.memArg).u.sa = sipMalloc(sizeof (signatureDef));
|
|
- *(yyval.memArg).u.sa = (yyvsp[(3) - (6)].signature);
|
|
+ *(yyval.memArg).u.sa = (yyvsp[-3].signature);
|
|
|
|
currentSpec -> sigslots = TRUE;
|
|
}
|
|
+#line 7696 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 524:
|
|
-#line 4200 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4200 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("SIP_SLOT_DIS is deprecated\n");
|
|
- checkNoAnnos(&(yyvsp[(6) - (6)].optflags), "SIP_SLOT_DIS has no annotations");
|
|
+ checkNoAnnos(&(yyvsp[0].optflags), "SIP_SLOT_DIS has no annotations");
|
|
|
|
(yyval.memArg).atype = slotdis_type;
|
|
(yyval.memArg).argflags = ARG_IS_CONST;
|
|
(yyval.memArg).nrderefs = 0;
|
|
- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(5) - (6)].text));
|
|
+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
|
|
|
|
- memset(&(yyvsp[(3) - (6)].signature).result, 0, sizeof (argDef));
|
|
- (yyvsp[(3) - (6)].signature).result.atype = void_type;
|
|
+ memset(&(yyvsp[-3].signature).result, 0, sizeof (argDef));
|
|
+ (yyvsp[-3].signature).result.atype = void_type;
|
|
|
|
(yyval.memArg).u.sa = sipMalloc(sizeof (signatureDef));
|
|
- *(yyval.memArg).u.sa = (yyvsp[(3) - (6)].signature);
|
|
+ *(yyval.memArg).u.sa = (yyvsp[-3].signature);
|
|
|
|
currentSpec -> sigslots = TRUE;
|
|
}
|
|
+#line 7718 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 525:
|
|
-#line 4217 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4217 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
deprecated("SIP_QOBJECT is deprecated\n");
|
|
- checkNoAnnos(&(yyvsp[(3) - (3)].optflags), "SIP_QOBJECT has no annotations");
|
|
+ checkNoAnnos(&(yyvsp[0].optflags), "SIP_QOBJECT has no annotations");
|
|
|
|
(yyval.memArg).atype = qobject_type;
|
|
(yyval.memArg).argflags = 0;
|
|
(yyval.memArg).nrderefs = 0;
|
|
- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text));
|
|
+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
|
|
}
|
|
+#line 7732 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 526:
|
|
-#line 4226 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4226 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.memArg) = (yyvsp[(1) - (2)].memArg);
|
|
- (yyval.memArg).defval = (yyvsp[(2) - (2)].valp);
|
|
+ (yyval.memArg) = (yyvsp[-1].memArg);
|
|
+ (yyval.memArg).defval = (yyvsp[0].valp);
|
|
}
|
|
+#line 7741 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 527:
|
|
-#line 4233 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4233 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{currentIsSignal = TRUE;}
|
|
+#line 7747 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 529:
|
|
-#line 4234 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4234 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{currentIsSlot = TRUE;}
|
|
+#line 7753 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 532:
|
|
-#line 4239 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4239 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{currentIsStatic = TRUE;}
|
|
+#line 7759 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 537:
|
|
-#line 4249 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4249 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{currentOverIsVirt = TRUE;}
|
|
+#line 7765 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 540:
|
|
-#line 4253 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4253 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
@@ -7719,99 +7780,105 @@
|
|
NULL
|
|
};
|
|
|
|
- checkAnnos(&(yyvsp[(3) - (8)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[-5].optflags), annos);
|
|
|
|
- if ((yyvsp[(6) - (8)].codeb) != NULL)
|
|
+ if ((yyvsp[-2].codeb) != NULL)
|
|
{
|
|
- if ((yyvsp[(4) - (8)].variable).access_code != NULL)
|
|
+ if ((yyvsp[-4].variable).access_code != NULL)
|
|
yyerror("%AccessCode already defined");
|
|
|
|
- (yyvsp[(4) - (8)].variable).access_code = (yyvsp[(6) - (8)].codeb);
|
|
+ (yyvsp[-4].variable).access_code = (yyvsp[-2].codeb);
|
|
|
|
deprecated("%AccessCode should be used as a sub-directive");
|
|
}
|
|
|
|
- if ((yyvsp[(7) - (8)].codeb) != NULL)
|
|
+ if ((yyvsp[-1].codeb) != NULL)
|
|
{
|
|
- if ((yyvsp[(4) - (8)].variable).get_code != NULL)
|
|
+ if ((yyvsp[-4].variable).get_code != NULL)
|
|
yyerror("%GetCode already defined");
|
|
|
|
- (yyvsp[(4) - (8)].variable).get_code = (yyvsp[(7) - (8)].codeb);
|
|
+ (yyvsp[-4].variable).get_code = (yyvsp[-1].codeb);
|
|
|
|
deprecated("%GetCode should be used as a sub-directive");
|
|
}
|
|
|
|
- if ((yyvsp[(8) - (8)].codeb) != NULL)
|
|
+ if ((yyvsp[0].codeb) != NULL)
|
|
{
|
|
- if ((yyvsp[(4) - (8)].variable).set_code != NULL)
|
|
+ if ((yyvsp[-4].variable).set_code != NULL)
|
|
yyerror("%SetCode already defined");
|
|
|
|
- (yyvsp[(4) - (8)].variable).set_code = (yyvsp[(8) - (8)].codeb);
|
|
+ (yyvsp[-4].variable).set_code = (yyvsp[0].codeb);
|
|
|
|
deprecated("%SetCode should be used as a sub-directive");
|
|
}
|
|
|
|
- newVar(currentSpec, currentModule, (yyvsp[(2) - (8)].text), currentIsStatic, &(yyvsp[(1) - (8)].memArg),
|
|
- &(yyvsp[(3) - (8)].optflags), (yyvsp[(4) - (8)].variable).access_code, (yyvsp[(4) - (8)].variable).get_code, (yyvsp[(4) - (8)].variable).set_code,
|
|
+ newVar(currentSpec, currentModule, (yyvsp[-6].text), currentIsStatic, &(yyvsp[-7].memArg),
|
|
+ &(yyvsp[-5].optflags), (yyvsp[-4].variable).access_code, (yyvsp[-4].variable).get_code, (yyvsp[-4].variable).set_code,
|
|
sectionFlags);
|
|
}
|
|
|
|
currentIsStatic = FALSE;
|
|
}
|
|
+#line 7823 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 541:
|
|
-#line 4308 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4308 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.variable).token = 0;
|
|
(yyval.variable).access_code = NULL;
|
|
(yyval.variable).get_code = NULL;
|
|
(yyval.variable).set_code = NULL;
|
|
}
|
|
+#line 7834 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 542:
|
|
-#line 4314 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4314 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.variable) = (yyvsp[(2) - (3)].variable);
|
|
+ (yyval.variable) = (yyvsp[-1].variable);
|
|
}
|
|
+#line 7842 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 544:
|
|
-#line 4320 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4320 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.variable) = (yyvsp[(1) - (2)].variable);
|
|
+ (yyval.variable) = (yyvsp[-1].variable);
|
|
|
|
- switch ((yyvsp[(2) - (2)].variable).token)
|
|
+ switch ((yyvsp[0].variable).token)
|
|
{
|
|
- case TK_ACCESSCODE: (yyval.variable).access_code = (yyvsp[(2) - (2)].variable).access_code; break;
|
|
- case TK_GETCODE: (yyval.variable).get_code = (yyvsp[(2) - (2)].variable).get_code; break;
|
|
- case TK_SETCODE: (yyval.variable).set_code = (yyvsp[(2) - (2)].variable).set_code; break;
|
|
+ case TK_ACCESSCODE: (yyval.variable).access_code = (yyvsp[0].variable).access_code; break;
|
|
+ case TK_GETCODE: (yyval.variable).get_code = (yyvsp[0].variable).get_code; break;
|
|
+ case TK_SETCODE: (yyval.variable).set_code = (yyvsp[0].variable).set_code; break;
|
|
}
|
|
}
|
|
+#line 7857 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 545:
|
|
-#line 4332 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4332 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.variable).token = TK_IF;
|
|
}
|
|
+#line 7865 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 546:
|
|
-#line 4335 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4335 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.variable).token = TK_END;
|
|
}
|
|
+#line 7873 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 547:
|
|
-#line 4338 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4338 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
(yyval.variable).token = TK_ACCESSCODE;
|
|
- (yyval.variable).access_code = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.variable).access_code = (yyvsp[0].codeb);
|
|
}
|
|
else
|
|
{
|
|
@@ -7822,15 +7889,16 @@
|
|
(yyval.variable).get_code = NULL;
|
|
(yyval.variable).set_code = NULL;
|
|
}
|
|
+#line 7893 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 548:
|
|
-#line 4353 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4353 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
(yyval.variable).token = TK_GETCODE;
|
|
- (yyval.variable).get_code = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.variable).get_code = (yyvsp[0].codeb);
|
|
}
|
|
else
|
|
{
|
|
@@ -7841,15 +7909,16 @@
|
|
(yyval.variable).access_code = NULL;
|
|
(yyval.variable).set_code = NULL;
|
|
}
|
|
+#line 7913 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 549:
|
|
-#line 4368 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4368 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (notSkipping())
|
|
{
|
|
(yyval.variable).token = TK_SETCODE;
|
|
- (yyval.variable).set_code = (yyvsp[(2) - (2)].codeb);
|
|
+ (yyval.variable).set_code = (yyvsp[0].codeb);
|
|
}
|
|
else
|
|
{
|
|
@@ -7860,35 +7929,38 @@
|
|
(yyval.variable).access_code = NULL;
|
|
(yyval.variable).get_code = NULL;
|
|
}
|
|
+#line 7933 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 550:
|
|
-#line 4385 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4385 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.memArg) = (yyvsp[(2) - (4)].memArg);
|
|
- add_derefs(&(yyval.memArg), &(yyvsp[(3) - (4)].memArg));
|
|
- (yyval.memArg).argflags |= ARG_IS_CONST | (yyvsp[(4) - (4)].number);
|
|
+ (yyval.memArg) = (yyvsp[-2].memArg);
|
|
+ add_derefs(&(yyval.memArg), &(yyvsp[-1].memArg));
|
|
+ (yyval.memArg).argflags |= ARG_IS_CONST | (yyvsp[0].number);
|
|
}
|
|
+#line 7943 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 551:
|
|
-#line 4390 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4390 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- (yyval.memArg) = (yyvsp[(1) - (3)].memArg);
|
|
- add_derefs(&(yyval.memArg), &(yyvsp[(2) - (3)].memArg));
|
|
- (yyval.memArg).argflags |= (yyvsp[(3) - (3)].number);
|
|
+ (yyval.memArg) = (yyvsp[-2].memArg);
|
|
+ add_derefs(&(yyval.memArg), &(yyvsp[-1].memArg));
|
|
+ (yyval.memArg).argflags |= (yyvsp[0].number);
|
|
|
|
/* PyObject * is a synonym for SIP_PYOBJECT. */
|
|
- if ((yyvsp[(1) - (3)].memArg).atype == defined_type && strcmp((yyvsp[(1) - (3)].memArg).u.snd->name, "PyObject") == 0 && (yyvsp[(1) - (3)].memArg).u.snd->next == NULL && (yyvsp[(2) - (3)].memArg).nrderefs == 1 && (yyvsp[(3) - (3)].number) == 0)
|
|
+ if ((yyvsp[-2].memArg).atype == defined_type && strcmp((yyvsp[-2].memArg).u.snd->name, "PyObject") == 0 && (yyvsp[-2].memArg).u.snd->next == NULL && (yyvsp[-1].memArg).nrderefs == 1 && (yyvsp[0].number) == 0)
|
|
{
|
|
(yyval.memArg).atype = pyobject_type;
|
|
(yyval.memArg).nrderefs = 0;
|
|
}
|
|
}
|
|
+#line 7960 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 552:
|
|
-#line 4404 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4404 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
const char *annos[] = {
|
|
"AllowNone",
|
|
@@ -7919,54 +7991,54 @@
|
|
|
|
optFlag *of;
|
|
|
|
- checkAnnos(&(yyvsp[(3) - (3)].optflags), annos);
|
|
+ checkAnnos(&(yyvsp[0].optflags), annos);
|
|
|
|
- (yyval.memArg) = (yyvsp[(1) - (3)].memArg);
|
|
- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text));
|
|
+ (yyval.memArg) = (yyvsp[-2].memArg);
|
|
+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
|
|
|
|
- handleKeepReference(&(yyvsp[(3) - (3)].optflags), &(yyval.memArg), currentModule);
|
|
+ handleKeepReference(&(yyvsp[0].optflags), &(yyval.memArg), currentModule);
|
|
|
|
- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "ScopesStripped", opt_integer_flag)) != NULL)
|
|
+ if ((of = getOptFlag(&(yyvsp[0].optflags), "ScopesStripped", opt_integer_flag)) != NULL)
|
|
if (((yyval.memArg).scopes_stripped = of->fvalue.ival) <= 0)
|
|
yyerror("/ScopesStripped/ must be greater than 0");
|
|
|
|
- if (getAllowNone(&(yyvsp[(3) - (3)].optflags)))
|
|
+ if (getAllowNone(&(yyvsp[0].optflags)))
|
|
(yyval.memArg).argflags |= ARG_ALLOW_NONE;
|
|
|
|
- if (getDisallowNone(&(yyvsp[(3) - (3)].optflags)))
|
|
+ if (getDisallowNone(&(yyvsp[0].optflags)))
|
|
(yyval.memArg).argflags |= ARG_DISALLOW_NONE;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"GetWrapper",bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags),"GetWrapper",bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_GET_WRAPPER;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Array",bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags),"Array",bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_ARRAY;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"ArraySize",bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags),"ArraySize",bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_ARRAY_SIZE;
|
|
|
|
- if (getTransfer(&(yyvsp[(3) - (3)].optflags)))
|
|
+ if (getTransfer(&(yyvsp[0].optflags)))
|
|
(yyval.memArg).argflags |= ARG_XFERRED;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"TransferThis",bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags),"TransferThis",bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_THIS_XFERRED;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"TransferBack",bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags),"TransferBack",bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_XFERRED_BACK;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"In",bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags),"In",bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_IN;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Out",bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags),"Out",bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_OUT;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "ResultSize", bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags), "ResultSize", bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_RESULT_SIZE;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "NoCopy", bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags), "NoCopy", bool_flag) != NULL)
|
|
(yyval.memArg).argflags |= ARG_NO_COPY;
|
|
|
|
- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Constrained",bool_flag) != NULL)
|
|
+ if (getOptFlag(&(yyvsp[0].optflags),"Constrained",bool_flag) != NULL)
|
|
{
|
|
(yyval.memArg).argflags |= ARG_CONSTRAINED;
|
|
|
|
@@ -7994,78 +8066,86 @@
|
|
}
|
|
}
|
|
|
|
- applyTypeFlags(currentModule, &(yyval.memArg), &(yyvsp[(3) - (3)].optflags));
|
|
- (yyval.memArg).typehint_value = getTypeHintValue(&(yyvsp[(3) - (3)].optflags));
|
|
+ applyTypeFlags(currentModule, &(yyval.memArg), &(yyvsp[0].optflags));
|
|
+ (yyval.memArg).typehint_value = getTypeHintValue(&(yyvsp[0].optflags));
|
|
}
|
|
+#line 8073 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 553:
|
|
-#line 4514 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4514 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.number) = 0;
|
|
}
|
|
+#line 8081 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 554:
|
|
-#line 4517 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4517 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec -> genc)
|
|
yyerror("References not allowed in a C module");
|
|
|
|
(yyval.number) = ARG_IS_REF;
|
|
}
|
|
+#line 8092 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 555:
|
|
-#line 4525 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4525 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.memArg).nrderefs = 0;
|
|
}
|
|
+#line 8100 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 556:
|
|
-#line 4528 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4528 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- add_new_deref(&(yyval.memArg), &(yyvsp[(1) - (3)].memArg), TRUE);
|
|
+ add_new_deref(&(yyval.memArg), &(yyvsp[-2].memArg), TRUE);
|
|
}
|
|
+#line 8108 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 557:
|
|
-#line 4531 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4531 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
- add_new_deref(&(yyval.memArg), &(yyvsp[(1) - (2)].memArg), FALSE);
|
|
+ add_new_deref(&(yyval.memArg), &(yyvsp[-1].memArg), FALSE);
|
|
}
|
|
+#line 8116 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 558:
|
|
-#line 4536 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4536 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = defined_type;
|
|
- (yyval.memArg).u.snd = (yyvsp[(1) - (1)].scpvalp);
|
|
+ (yyval.memArg).u.snd = (yyvsp[0].scpvalp);
|
|
|
|
/* Try and resolve typedefs as early as possible. */
|
|
resolveAnyTypedef(currentSpec, &(yyval.memArg));
|
|
}
|
|
+#line 8129 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 559:
|
|
-#line 4544 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4544 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
templateDef *td;
|
|
|
|
td = sipMalloc(sizeof(templateDef));
|
|
- td->fqname = (yyvsp[(1) - (4)].scpvalp);
|
|
- td->types = (yyvsp[(3) - (4)].signature);
|
|
+ td->fqname = (yyvsp[-3].scpvalp);
|
|
+ td->types = (yyvsp[-1].signature);
|
|
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = template_type;
|
|
(yyval.memArg).u.td = td;
|
|
}
|
|
+#line 8145 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 560:
|
|
-#line 4555 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
|
|
@@ -8073,321 +8153,366 @@
|
|
if (currentSpec -> genc)
|
|
{
|
|
(yyval.memArg).atype = defined_type;
|
|
- (yyval.memArg).u.snd = (yyvsp[(2) - (2)].scpvalp);
|
|
+ (yyval.memArg).u.snd = (yyvsp[0].scpvalp);
|
|
}
|
|
else
|
|
{
|
|
(yyval.memArg).atype = struct_type;
|
|
- (yyval.memArg).u.sname = (yyvsp[(2) - (2)].scpvalp);
|
|
+ (yyval.memArg).u.sname = (yyvsp[0].scpvalp);
|
|
}
|
|
}
|
|
+#line 8165 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 561:
|
|
-#line 4570 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4570 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = ushort_type;
|
|
}
|
|
+#line 8174 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 562:
|
|
-#line 4574 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4574 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = short_type;
|
|
}
|
|
+#line 8183 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 563:
|
|
-#line 4578 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4578 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = uint_type;
|
|
}
|
|
+#line 8192 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 564:
|
|
-#line 4582 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4582 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = uint_type;
|
|
}
|
|
+#line 8201 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 565:
|
|
-#line 4586 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4586 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = int_type;
|
|
}
|
|
+#line 8210 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 566:
|
|
-#line 4590 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4590 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = long_type;
|
|
}
|
|
+#line 8219 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 567:
|
|
-#line 4594 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4594 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = ulong_type;
|
|
}
|
|
+#line 8228 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 568:
|
|
-#line 4598 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4598 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = longlong_type;
|
|
}
|
|
+#line 8237 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 569:
|
|
-#line 4602 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4602 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = ulonglong_type;
|
|
}
|
|
+#line 8246 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 570:
|
|
-#line 4606 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4606 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = float_type;
|
|
}
|
|
+#line 8255 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 571:
|
|
-#line 4610 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4610 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = double_type;
|
|
}
|
|
+#line 8264 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 572:
|
|
-#line 4614 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4614 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = bool_type;
|
|
}
|
|
+#line 8273 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 573:
|
|
-#line 4618 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4618 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = sstring_type;
|
|
}
|
|
+#line 8282 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 574:
|
|
-#line 4622 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4622 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = ustring_type;
|
|
}
|
|
+#line 8291 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 575:
|
|
-#line 4626 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4626 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = string_type;
|
|
}
|
|
+#line 8300 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 576:
|
|
-#line 4630 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4630 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = wstring_type;
|
|
}
|
|
+#line 8309 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 577:
|
|
-#line 4634 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4634 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = void_type;
|
|
}
|
|
+#line 8318 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 578:
|
|
-#line 4638 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4638 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = pyobject_type;
|
|
}
|
|
+#line 8327 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 579:
|
|
-#line 4642 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4642 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = pytuple_type;
|
|
}
|
|
+#line 8336 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 580:
|
|
-#line 4646 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4646 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = pylist_type;
|
|
}
|
|
+#line 8345 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 581:
|
|
-#line 4650 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4650 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = pydict_type;
|
|
}
|
|
+#line 8354 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 582:
|
|
-#line 4654 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4654 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = pycallable_type;
|
|
}
|
|
+#line 8363 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 583:
|
|
-#line 4658 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4658 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = pyslice_type;
|
|
}
|
|
+#line 8372 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 584:
|
|
-#line 4662 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4662 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = pytype_type;
|
|
}
|
|
+#line 8381 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 585:
|
|
-#line 4666 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4666 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = pybuffer_type;
|
|
}
|
|
+#line 8390 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 586:
|
|
-#line 4670 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4670 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = ssize_type;
|
|
}
|
|
+#line 8399 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 587:
|
|
-#line 4674 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4674 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
memset(&(yyval.memArg), 0, sizeof (argDef));
|
|
(yyval.memArg).atype = ellipsis_type;
|
|
}
|
|
+#line 8408 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 588:
|
|
-#line 4680 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4680 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* The single or first type. */
|
|
|
|
- (yyval.signature).args[0] = (yyvsp[(1) - (1)].memArg);
|
|
+ (yyval.signature).args[0] = (yyvsp[0].memArg);
|
|
(yyval.signature).nrArgs = 1;
|
|
}
|
|
+#line 8419 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 589:
|
|
-#line 4686 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4686 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Check there is nothing after an ellipsis. */
|
|
- if ((yyvsp[(1) - (3)].signature).args[(yyvsp[(1) - (3)].signature).nrArgs - 1].atype == ellipsis_type)
|
|
+ if ((yyvsp[-2].signature).args[(yyvsp[-2].signature).nrArgs - 1].atype == ellipsis_type)
|
|
yyerror("An ellipsis must be at the end of the argument list");
|
|
|
|
/* Check there is room. */
|
|
- if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS)
|
|
+ if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS)
|
|
yyerror("Internal error - increase the value of MAX_NR_ARGS");
|
|
|
|
- (yyval.signature) = (yyvsp[(1) - (3)].signature);
|
|
+ (yyval.signature) = (yyvsp[-2].signature);
|
|
|
|
- (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[(3) - (3)].memArg);
|
|
+ (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[0].memArg);
|
|
(yyval.signature).nrArgs++;
|
|
}
|
|
+#line 8438 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 590:
|
|
-#line 4702 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4702 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
(yyval.throwlist) = NULL;
|
|
}
|
|
+#line 8446 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 591:
|
|
-#line 4705 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4705 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
if (currentSpec->genc)
|
|
yyerror("Exceptions not allowed in a C module");
|
|
|
|
- (yyval.throwlist) = (yyvsp[(3) - (4)].throwlist);
|
|
+ (yyval.throwlist) = (yyvsp[-1].throwlist);
|
|
}
|
|
+#line 8457 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 592:
|
|
-#line 4713 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4713 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Empty list so use a blank. */
|
|
|
|
(yyval.throwlist) = sipMalloc(sizeof (throwArgs));
|
|
(yyval.throwlist) -> nrArgs = 0;
|
|
}
|
|
+#line 8468 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 593:
|
|
-#line 4719 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4719 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* The only or first exception. */
|
|
|
|
(yyval.throwlist) = sipMalloc(sizeof (throwArgs));
|
|
(yyval.throwlist) -> nrArgs = 1;
|
|
- (yyval.throwlist) -> args[0] = findException(currentSpec, (yyvsp[(1) - (1)].scpvalp), FALSE);
|
|
+ (yyval.throwlist) -> args[0] = findException(currentSpec, (yyvsp[0].scpvalp), FALSE);
|
|
}
|
|
+#line 8480 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
case 594:
|
|
-#line 4726 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4726 "sipgen/metasrc/parser.y" /* yacc.c:1646 */
|
|
{
|
|
/* Check that it wasn't ...(,arg...). */
|
|
|
|
- if ((yyvsp[(1) - (3)].throwlist) -> nrArgs == 0)
|
|
+ if ((yyvsp[-2].throwlist) -> nrArgs == 0)
|
|
yyerror("First exception of throw specifier is missing");
|
|
|
|
/* Check there is room. */
|
|
|
|
- if ((yyvsp[(1) - (3)].throwlist) -> nrArgs == MAX_NR_ARGS)
|
|
+ if ((yyvsp[-2].throwlist) -> nrArgs == MAX_NR_ARGS)
|
|
yyerror("Internal error - increase the value of MAX_NR_ARGS");
|
|
|
|
- (yyval.throwlist) = (yyvsp[(1) - (3)].throwlist);
|
|
- (yyval.throwlist) -> args[(yyval.throwlist) -> nrArgs++] = findException(currentSpec, (yyvsp[(3) - (3)].scpvalp), FALSE);
|
|
+ (yyval.throwlist) = (yyvsp[-2].throwlist);
|
|
+ (yyval.throwlist) -> args[(yyval.throwlist) -> nrArgs++] = findException(currentSpec, (yyvsp[0].scpvalp), FALSE);
|
|
}
|
|
+#line 8499 "sipgen/parser.c" /* yacc.c:1646 */
|
|
break;
|
|
|
|
|
|
-/* Line 1267 of yacc.c. */
|
|
-#line 8389 "sip-4.19.12/sipgen/parser.c"
|
|
+#line 8503 "sipgen/parser.c" /* yacc.c:1646 */
|
|
default: break;
|
|
}
|
|
+ /* User semantic actions sometimes alter yychar, and that requires
|
|
+ that yytoken be updated with the new translation. We take the
|
|
+ approach of translating immediately before every use of yytoken.
|
|
+ One alternative is translating here after every semantic action,
|
|
+ but that translation would be missed if the semantic action invokes
|
|
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
|
|
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
|
|
+ incorrect destructor might then be invoked immediately. In the
|
|
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
|
|
+ to an incorrect destructor call or verbose syntax error message
|
|
+ before the lookahead is translated. */
|
|
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
|
|
|
|
YYPOPSTACK (yylen);
|
|
@@ -8396,8 +8521,7 @@
|
|
|
|
*++yyvsp = yyval;
|
|
|
|
-
|
|
- /* Now `shift' the result of the reduction. Determine what state
|
|
+ /* Now 'shift' the result of the reduction. Determine what state
|
|
that goes to, based on the state we popped back to and the rule
|
|
number reduced by. */
|
|
|
|
@@ -8412,10 +8536,14 @@
|
|
goto yynewstate;
|
|
|
|
|
|
-/*------------------------------------.
|
|
-| yyerrlab -- here on detecting error |
|
|
-`------------------------------------*/
|
|
+/*--------------------------------------.
|
|
+| yyerrlab -- here on detecting error. |
|
|
+`--------------------------------------*/
|
|
yyerrlab:
|
|
+ /* Make sure we have latest lookahead translation. See comments at
|
|
+ user semantic actions for why this is necessary. */
|
|
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
|
|
+
|
|
/* If not already recovering from an error, report this error. */
|
|
if (!yyerrstatus)
|
|
{
|
|
@@ -8423,37 +8551,36 @@
|
|
#if ! YYERROR_VERBOSE
|
|
yyerror (YY_("syntax error"));
|
|
#else
|
|
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
|
|
+ yyssp, yytoken)
|
|
{
|
|
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
|
|
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
|
|
- {
|
|
- YYSIZE_T yyalloc = 2 * yysize;
|
|
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
|
|
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
|
|
- if (yymsg != yymsgbuf)
|
|
- YYSTACK_FREE (yymsg);
|
|
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
|
|
- if (yymsg)
|
|
- yymsg_alloc = yyalloc;
|
|
- else
|
|
- {
|
|
- yymsg = yymsgbuf;
|
|
- yymsg_alloc = sizeof yymsgbuf;
|
|
- }
|
|
- }
|
|
-
|
|
- if (0 < yysize && yysize <= yymsg_alloc)
|
|
- {
|
|
- (void) yysyntax_error (yymsg, yystate, yychar);
|
|
- yyerror (yymsg);
|
|
- }
|
|
- else
|
|
- {
|
|
- yyerror (YY_("syntax error"));
|
|
- if (yysize != 0)
|
|
- goto yyexhaustedlab;
|
|
- }
|
|
+ char const *yymsgp = YY_("syntax error");
|
|
+ int yysyntax_error_status;
|
|
+ yysyntax_error_status = YYSYNTAX_ERROR;
|
|
+ if (yysyntax_error_status == 0)
|
|
+ yymsgp = yymsg;
|
|
+ else if (yysyntax_error_status == 1)
|
|
+ {
|
|
+ if (yymsg != yymsgbuf)
|
|
+ YYSTACK_FREE (yymsg);
|
|
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
|
|
+ if (!yymsg)
|
|
+ {
|
|
+ yymsg = yymsgbuf;
|
|
+ yymsg_alloc = sizeof yymsgbuf;
|
|
+ yysyntax_error_status = 2;
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ yysyntax_error_status = YYSYNTAX_ERROR;
|
|
+ yymsgp = yymsg;
|
|
+ }
|
|
+ }
|
|
+ yyerror (yymsgp);
|
|
+ if (yysyntax_error_status == 2)
|
|
+ goto yyexhaustedlab;
|
|
}
|
|
+# undef YYSYNTAX_ERROR
|
|
#endif
|
|
}
|
|
|
|
@@ -8461,24 +8588,24 @@
|
|
|
|
if (yyerrstatus == 3)
|
|
{
|
|
- /* If just tried and failed to reuse look-ahead token after an
|
|
- error, discard it. */
|
|
+ /* If just tried and failed to reuse lookahead token after an
|
|
+ error, discard it. */
|
|
|
|
if (yychar <= YYEOF)
|
|
- {
|
|
- /* Return failure if at end of input. */
|
|
- if (yychar == YYEOF)
|
|
- YYABORT;
|
|
- }
|
|
+ {
|
|
+ /* Return failure if at end of input. */
|
|
+ if (yychar == YYEOF)
|
|
+ YYABORT;
|
|
+ }
|
|
else
|
|
- {
|
|
- yydestruct ("Error: discarding",
|
|
- yytoken, &yylval);
|
|
- yychar = YYEMPTY;
|
|
- }
|
|
+ {
|
|
+ yydestruct ("Error: discarding",
|
|
+ yytoken, &yylval);
|
|
+ yychar = YYEMPTY;
|
|
+ }
|
|
}
|
|
|
|
- /* Else will try to reuse look-ahead token after shifting the error
|
|
+ /* Else will try to reuse lookahead token after shifting the error
|
|
token. */
|
|
goto yyerrlab1;
|
|
|
|
@@ -8494,7 +8621,7 @@
|
|
if (/*CONSTCOND*/ 0)
|
|
goto yyerrorlab;
|
|
|
|
- /* Do not reclaim the symbols of the rule which action triggered
|
|
+ /* Do not reclaim the symbols of the rule whose action triggered
|
|
this YYERROR. */
|
|
YYPOPSTACK (yylen);
|
|
yylen = 0;
|
|
@@ -8507,38 +8634,37 @@
|
|
| yyerrlab1 -- common code for both syntax error and YYERROR. |
|
|
`-------------------------------------------------------------*/
|
|
yyerrlab1:
|
|
- yyerrstatus = 3; /* Each real token shifted decrements this. */
|
|
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
|
|
|
|
for (;;)
|
|
{
|
|
yyn = yypact[yystate];
|
|
- if (yyn != YYPACT_NINF)
|
|
- {
|
|
- yyn += YYTERROR;
|
|
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
|
|
- {
|
|
- yyn = yytable[yyn];
|
|
- if (0 < yyn)
|
|
- break;
|
|
- }
|
|
- }
|
|
+ if (!yypact_value_is_default (yyn))
|
|
+ {
|
|
+ yyn += YYTERROR;
|
|
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
|
|
+ {
|
|
+ yyn = yytable[yyn];
|
|
+ if (0 < yyn)
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
|
|
/* Pop the current state because it cannot handle the error token. */
|
|
if (yyssp == yyss)
|
|
- YYABORT;
|
|
+ YYABORT;
|
|
|
|
|
|
yydestruct ("Error: popping",
|
|
- yystos[yystate], yyvsp);
|
|
+ yystos[yystate], yyvsp);
|
|
YYPOPSTACK (1);
|
|
yystate = *yyssp;
|
|
YY_STACK_PRINT (yyss, yyssp);
|
|
}
|
|
|
|
- if (yyn == YYFINAL)
|
|
- YYACCEPT;
|
|
-
|
|
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
|
*++yyvsp = yylval;
|
|
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
|
|
|
|
|
|
/* Shift the error token. */
|
|
@@ -8562,7 +8688,7 @@
|
|
yyresult = 1;
|
|
goto yyreturn;
|
|
|
|
-#ifndef yyoverflow
|
|
+#if !defined yyoverflow || YYERROR_VERBOSE
|
|
/*-------------------------------------------------.
|
|
| yyexhaustedlab -- memory exhaustion comes here. |
|
|
`-------------------------------------------------*/
|
|
@@ -8573,17 +8699,22 @@
|
|
#endif
|
|
|
|
yyreturn:
|
|
- if (yychar != YYEOF && yychar != YYEMPTY)
|
|
- yydestruct ("Cleanup: discarding lookahead",
|
|
- yytoken, &yylval);
|
|
- /* Do not reclaim the symbols of the rule which action triggered
|
|
+ if (yychar != YYEMPTY)
|
|
+ {
|
|
+ /* Make sure we have latest lookahead translation. See comments at
|
|
+ user semantic actions for why this is necessary. */
|
|
+ yytoken = YYTRANSLATE (yychar);
|
|
+ yydestruct ("Cleanup: discarding lookahead",
|
|
+ yytoken, &yylval);
|
|
+ }
|
|
+ /* Do not reclaim the symbols of the rule whose action triggered
|
|
this YYABORT or YYACCEPT. */
|
|
YYPOPSTACK (yylen);
|
|
YY_STACK_PRINT (yyss, yyssp);
|
|
while (yyssp != yyss)
|
|
{
|
|
yydestruct ("Cleanup: popping",
|
|
- yystos[*yyssp], yyvsp);
|
|
+ yystos[*yyssp], yyvsp);
|
|
YYPOPSTACK (1);
|
|
}
|
|
#ifndef yyoverflow
|
|
@@ -8594,12 +8725,9 @@
|
|
if (yymsg != yymsgbuf)
|
|
YYSTACK_FREE (yymsg);
|
|
#endif
|
|
- /* Make sure YYID is used. */
|
|
- return YYID (yyresult);
|
|
+ return yyresult;
|
|
}
|
|
-
|
|
-
|
|
-#line 4742 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+#line 4742 "sipgen/metasrc/parser.y" /* yacc.c:1906 */
|
|
|
|
|
|
|
|
@@ -13483,4 +13611,3 @@
|
|
if (sd->args[a].atype == ellipsis_type && a < sd->nrArgs - 1)
|
|
yyerror("An ellipsis must be at the end of the argument list if /NoArgParser/ is not specified");
|
|
}
|
|
-
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/parser.h sip/sipgen/parser.h
|
|
--- ./sip-4.19.12.orig/sipgen/parser.h 2018-07-05 05:55:19.000000000 -0400
|
|
+++ sip/sipgen/parser.h 2018-09-18 18:12:23.642053256 -0400
|
|
@@ -1,14 +1,13 @@
|
|
-/* A Bison parser, made by GNU Bison 2.3. */
|
|
+/* A Bison parser, made by GNU Bison 3.0.4. */
|
|
|
|
-/* Skeleton interface for Bison's Yacc-like parsers in C
|
|
+/* Bison interface for Yacc-like parsers in C
|
|
|
|
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
|
- Free Software Foundation, Inc.
|
|
+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
|
|
|
|
- This program is free software; you can redistribute it and/or modify
|
|
+ This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
- the Free Software Foundation; either version 2, or (at your option)
|
|
- any later version.
|
|
+ the Free Software Foundation, either version 3 of the License, or
|
|
+ (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
@@ -16,9 +15,7 @@
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
- along with this program; if not, write to the Free Software
|
|
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
- Boston, MA 02110-1301, USA. */
|
|
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
/* As a special exception, you may create a larger work that contains
|
|
part or all of the Bison parser skeleton and distribute that work
|
|
@@ -33,162 +30,171 @@
|
|
This special exception was added by the Free Software Foundation in
|
|
version 2.2 of Bison. */
|
|
|
|
-/* Tokens. */
|
|
+#ifndef YY_YY_SIPGEN_PARSER_H_INCLUDED
|
|
+# define YY_YY_SIPGEN_PARSER_H_INCLUDED
|
|
+/* Debug traces. */
|
|
+#ifndef YYDEBUG
|
|
+# define YYDEBUG 0
|
|
+#endif
|
|
+#if YYDEBUG
|
|
+extern int yydebug;
|
|
+#endif
|
|
+
|
|
+/* Token type. */
|
|
#ifndef YYTOKENTYPE
|
|
# define YYTOKENTYPE
|
|
- /* Put the tokens into the symbol table, so that GDB and other debuggers
|
|
- know about them. */
|
|
- enum yytokentype {
|
|
- TK_API = 258,
|
|
- TK_AUTOPYNAME = 259,
|
|
- TK_DEFDOCSTRFMT = 260,
|
|
- TK_DEFDOCSTRSIG = 261,
|
|
- TK_DEFENCODING = 262,
|
|
- TK_PLUGIN = 263,
|
|
- TK_VIRTERRORHANDLER = 264,
|
|
- TK_EXPTYPEHINTCODE = 265,
|
|
- TK_TYPEHINTCODE = 266,
|
|
- TK_DOCSTRING = 267,
|
|
- TK_DOC = 268,
|
|
- TK_EXPORTEDDOC = 269,
|
|
- TK_EXTRACT = 270,
|
|
- TK_MAKEFILE = 271,
|
|
- TK_ACCESSCODE = 272,
|
|
- TK_GETCODE = 273,
|
|
- TK_SETCODE = 274,
|
|
- TK_PREINITCODE = 275,
|
|
- TK_INITCODE = 276,
|
|
- TK_POSTINITCODE = 277,
|
|
- TK_FINALCODE = 278,
|
|
- TK_UNITCODE = 279,
|
|
- TK_UNITPOSTINCLUDECODE = 280,
|
|
- TK_MODCODE = 281,
|
|
- TK_TYPECODE = 282,
|
|
- TK_PREPYCODE = 283,
|
|
- TK_COPYING = 284,
|
|
- TK_MAPPEDTYPE = 285,
|
|
- TK_CODELINE = 286,
|
|
- TK_IF = 287,
|
|
- TK_END = 288,
|
|
- TK_NAME_VALUE = 289,
|
|
- TK_PATH_VALUE = 290,
|
|
- TK_STRING_VALUE = 291,
|
|
- TK_VIRTUALCATCHERCODE = 292,
|
|
- TK_TRAVERSECODE = 293,
|
|
- TK_CLEARCODE = 294,
|
|
- TK_GETBUFFERCODE = 295,
|
|
- TK_RELEASEBUFFERCODE = 296,
|
|
- TK_READBUFFERCODE = 297,
|
|
- TK_WRITEBUFFERCODE = 298,
|
|
- TK_SEGCOUNTCODE = 299,
|
|
- TK_CHARBUFFERCODE = 300,
|
|
- TK_PICKLECODE = 301,
|
|
- TK_VIRTUALCALLCODE = 302,
|
|
- TK_METHODCODE = 303,
|
|
- TK_PREMETHODCODE = 304,
|
|
- TK_INSTANCECODE = 305,
|
|
- TK_FROMTYPE = 306,
|
|
- TK_TOTYPE = 307,
|
|
- TK_TOSUBCLASS = 308,
|
|
- TK_INCLUDE = 309,
|
|
- TK_OPTINCLUDE = 310,
|
|
- TK_IMPORT = 311,
|
|
- TK_EXPHEADERCODE = 312,
|
|
- TK_MODHEADERCODE = 313,
|
|
- TK_TYPEHEADERCODE = 314,
|
|
- TK_MODULE = 315,
|
|
- TK_CMODULE = 316,
|
|
- TK_CONSMODULE = 317,
|
|
- TK_COMPOMODULE = 318,
|
|
- TK_CLASS = 319,
|
|
- TK_STRUCT = 320,
|
|
- TK_PUBLIC = 321,
|
|
- TK_PROTECTED = 322,
|
|
- TK_PRIVATE = 323,
|
|
- TK_SIGNALS = 324,
|
|
- TK_SIGNAL_METHOD = 325,
|
|
- TK_SLOTS = 326,
|
|
- TK_SLOT_METHOD = 327,
|
|
- TK_BOOL = 328,
|
|
- TK_SHORT = 329,
|
|
- TK_INT = 330,
|
|
- TK_LONG = 331,
|
|
- TK_FLOAT = 332,
|
|
- TK_DOUBLE = 333,
|
|
- TK_CHAR = 334,
|
|
- TK_WCHAR_T = 335,
|
|
- TK_VOID = 336,
|
|
- TK_PYOBJECT = 337,
|
|
- TK_PYTUPLE = 338,
|
|
- TK_PYLIST = 339,
|
|
- TK_PYDICT = 340,
|
|
- TK_PYCALLABLE = 341,
|
|
- TK_PYSLICE = 342,
|
|
- TK_PYTYPE = 343,
|
|
- TK_PYBUFFER = 344,
|
|
- TK_VIRTUAL = 345,
|
|
- TK_ENUM = 346,
|
|
- TK_SIGNED = 347,
|
|
- TK_UNSIGNED = 348,
|
|
- TK_SCOPE = 349,
|
|
- TK_LOGICAL_OR = 350,
|
|
- TK_CONST = 351,
|
|
- TK_STATIC = 352,
|
|
- TK_SIPSIGNAL = 353,
|
|
- TK_SIPSLOT = 354,
|
|
- TK_SIPANYSLOT = 355,
|
|
- TK_SIPRXCON = 356,
|
|
- TK_SIPRXDIS = 357,
|
|
- TK_SIPSLOTCON = 358,
|
|
- TK_SIPSLOTDIS = 359,
|
|
- TK_SIPSSIZET = 360,
|
|
- TK_NUMBER_VALUE = 361,
|
|
- TK_REAL_VALUE = 362,
|
|
- TK_TYPEDEF = 363,
|
|
- TK_NAMESPACE = 364,
|
|
- TK_TIMELINE = 365,
|
|
- TK_PLATFORMS = 366,
|
|
- TK_FEATURE = 367,
|
|
- TK_LICENSE = 368,
|
|
- TK_QCHAR_VALUE = 369,
|
|
- TK_TRUE_VALUE = 370,
|
|
- TK_FALSE_VALUE = 371,
|
|
- TK_NULL_VALUE = 372,
|
|
- TK_OPERATOR = 373,
|
|
- TK_THROW = 374,
|
|
- TK_QOBJECT = 375,
|
|
- TK_EXCEPTION = 376,
|
|
- TK_RAISECODE = 377,
|
|
- TK_VIRTERRORCODE = 378,
|
|
- TK_EXPLICIT = 379,
|
|
- TK_TEMPLATE = 380,
|
|
- TK_FINAL = 381,
|
|
- TK_ELLIPSIS = 382,
|
|
- TK_DEFMETATYPE = 383,
|
|
- TK_DEFSUPERTYPE = 384,
|
|
- TK_PROPERTY = 385,
|
|
- TK_HIDE_NS = 386,
|
|
- TK_FORMAT = 387,
|
|
- TK_GET = 388,
|
|
- TK_ID = 389,
|
|
- TK_KWARGS = 390,
|
|
- TK_LANGUAGE = 391,
|
|
- TK_LICENSEE = 392,
|
|
- TK_NAME = 393,
|
|
- TK_OPTIONAL = 394,
|
|
- TK_ORDER = 395,
|
|
- TK_REMOVELEADING = 396,
|
|
- TK_SET = 397,
|
|
- TK_SIGNATURE = 398,
|
|
- TK_TIMESTAMP = 399,
|
|
- TK_TYPE = 400,
|
|
- TK_USEARGNAMES = 401,
|
|
- TK_USELIMITEDAPI = 402,
|
|
- TK_ALLRAISEPYEXC = 403,
|
|
- TK_CALLSUPERINIT = 404,
|
|
- TK_DEFERRORHANDLER = 405,
|
|
- TK_VERSION = 406
|
|
- };
|
|
+ enum yytokentype
|
|
+ {
|
|
+ TK_API = 258,
|
|
+ TK_AUTOPYNAME = 259,
|
|
+ TK_DEFDOCSTRFMT = 260,
|
|
+ TK_DEFDOCSTRSIG = 261,
|
|
+ TK_DEFENCODING = 262,
|
|
+ TK_PLUGIN = 263,
|
|
+ TK_VIRTERRORHANDLER = 264,
|
|
+ TK_EXPTYPEHINTCODE = 265,
|
|
+ TK_TYPEHINTCODE = 266,
|
|
+ TK_DOCSTRING = 267,
|
|
+ TK_DOC = 268,
|
|
+ TK_EXPORTEDDOC = 269,
|
|
+ TK_EXTRACT = 270,
|
|
+ TK_MAKEFILE = 271,
|
|
+ TK_ACCESSCODE = 272,
|
|
+ TK_GETCODE = 273,
|
|
+ TK_SETCODE = 274,
|
|
+ TK_PREINITCODE = 275,
|
|
+ TK_INITCODE = 276,
|
|
+ TK_POSTINITCODE = 277,
|
|
+ TK_FINALCODE = 278,
|
|
+ TK_UNITCODE = 279,
|
|
+ TK_UNITPOSTINCLUDECODE = 280,
|
|
+ TK_MODCODE = 281,
|
|
+ TK_TYPECODE = 282,
|
|
+ TK_PREPYCODE = 283,
|
|
+ TK_COPYING = 284,
|
|
+ TK_MAPPEDTYPE = 285,
|
|
+ TK_CODELINE = 286,
|
|
+ TK_IF = 287,
|
|
+ TK_END = 288,
|
|
+ TK_NAME_VALUE = 289,
|
|
+ TK_PATH_VALUE = 290,
|
|
+ TK_STRING_VALUE = 291,
|
|
+ TK_VIRTUALCATCHERCODE = 292,
|
|
+ TK_TRAVERSECODE = 293,
|
|
+ TK_CLEARCODE = 294,
|
|
+ TK_GETBUFFERCODE = 295,
|
|
+ TK_RELEASEBUFFERCODE = 296,
|
|
+ TK_READBUFFERCODE = 297,
|
|
+ TK_WRITEBUFFERCODE = 298,
|
|
+ TK_SEGCOUNTCODE = 299,
|
|
+ TK_CHARBUFFERCODE = 300,
|
|
+ TK_PICKLECODE = 301,
|
|
+ TK_VIRTUALCALLCODE = 302,
|
|
+ TK_METHODCODE = 303,
|
|
+ TK_PREMETHODCODE = 304,
|
|
+ TK_INSTANCECODE = 305,
|
|
+ TK_FROMTYPE = 306,
|
|
+ TK_TOTYPE = 307,
|
|
+ TK_TOSUBCLASS = 308,
|
|
+ TK_INCLUDE = 309,
|
|
+ TK_OPTINCLUDE = 310,
|
|
+ TK_IMPORT = 311,
|
|
+ TK_EXPHEADERCODE = 312,
|
|
+ TK_MODHEADERCODE = 313,
|
|
+ TK_TYPEHEADERCODE = 314,
|
|
+ TK_MODULE = 315,
|
|
+ TK_CMODULE = 316,
|
|
+ TK_CONSMODULE = 317,
|
|
+ TK_COMPOMODULE = 318,
|
|
+ TK_CLASS = 319,
|
|
+ TK_STRUCT = 320,
|
|
+ TK_PUBLIC = 321,
|
|
+ TK_PROTECTED = 322,
|
|
+ TK_PRIVATE = 323,
|
|
+ TK_SIGNALS = 324,
|
|
+ TK_SIGNAL_METHOD = 325,
|
|
+ TK_SLOTS = 326,
|
|
+ TK_SLOT_METHOD = 327,
|
|
+ TK_BOOL = 328,
|
|
+ TK_SHORT = 329,
|
|
+ TK_INT = 330,
|
|
+ TK_LONG = 331,
|
|
+ TK_FLOAT = 332,
|
|
+ TK_DOUBLE = 333,
|
|
+ TK_CHAR = 334,
|
|
+ TK_WCHAR_T = 335,
|
|
+ TK_VOID = 336,
|
|
+ TK_PYOBJECT = 337,
|
|
+ TK_PYTUPLE = 338,
|
|
+ TK_PYLIST = 339,
|
|
+ TK_PYDICT = 340,
|
|
+ TK_PYCALLABLE = 341,
|
|
+ TK_PYSLICE = 342,
|
|
+ TK_PYTYPE = 343,
|
|
+ TK_PYBUFFER = 344,
|
|
+ TK_VIRTUAL = 345,
|
|
+ TK_ENUM = 346,
|
|
+ TK_SIGNED = 347,
|
|
+ TK_UNSIGNED = 348,
|
|
+ TK_SCOPE = 349,
|
|
+ TK_LOGICAL_OR = 350,
|
|
+ TK_CONST = 351,
|
|
+ TK_STATIC = 352,
|
|
+ TK_SIPSIGNAL = 353,
|
|
+ TK_SIPSLOT = 354,
|
|
+ TK_SIPANYSLOT = 355,
|
|
+ TK_SIPRXCON = 356,
|
|
+ TK_SIPRXDIS = 357,
|
|
+ TK_SIPSLOTCON = 358,
|
|
+ TK_SIPSLOTDIS = 359,
|
|
+ TK_SIPSSIZET = 360,
|
|
+ TK_NUMBER_VALUE = 361,
|
|
+ TK_REAL_VALUE = 362,
|
|
+ TK_TYPEDEF = 363,
|
|
+ TK_NAMESPACE = 364,
|
|
+ TK_TIMELINE = 365,
|
|
+ TK_PLATFORMS = 366,
|
|
+ TK_FEATURE = 367,
|
|
+ TK_LICENSE = 368,
|
|
+ TK_QCHAR_VALUE = 369,
|
|
+ TK_TRUE_VALUE = 370,
|
|
+ TK_FALSE_VALUE = 371,
|
|
+ TK_NULL_VALUE = 372,
|
|
+ TK_OPERATOR = 373,
|
|
+ TK_THROW = 374,
|
|
+ TK_QOBJECT = 375,
|
|
+ TK_EXCEPTION = 376,
|
|
+ TK_RAISECODE = 377,
|
|
+ TK_VIRTERRORCODE = 378,
|
|
+ TK_EXPLICIT = 379,
|
|
+ TK_TEMPLATE = 380,
|
|
+ TK_FINAL = 381,
|
|
+ TK_ELLIPSIS = 382,
|
|
+ TK_DEFMETATYPE = 383,
|
|
+ TK_DEFSUPERTYPE = 384,
|
|
+ TK_PROPERTY = 385,
|
|
+ TK_HIDE_NS = 386,
|
|
+ TK_FORMAT = 387,
|
|
+ TK_GET = 388,
|
|
+ TK_ID = 389,
|
|
+ TK_KWARGS = 390,
|
|
+ TK_LANGUAGE = 391,
|
|
+ TK_LICENSEE = 392,
|
|
+ TK_NAME = 393,
|
|
+ TK_OPTIONAL = 394,
|
|
+ TK_ORDER = 395,
|
|
+ TK_REMOVELEADING = 396,
|
|
+ TK_SET = 397,
|
|
+ TK_SIGNATURE = 398,
|
|
+ TK_TIMESTAMP = 399,
|
|
+ TK_TYPE = 400,
|
|
+ TK_USEARGNAMES = 401,
|
|
+ TK_USELIMITEDAPI = 402,
|
|
+ TK_ALLRAISEPYEXC = 403,
|
|
+ TK_CALLSUPERINIT = 404,
|
|
+ TK_DEFERRORHANDLER = 405,
|
|
+ TK_VERSION = 406
|
|
+ };
|
|
#endif
|
|
/* Tokens. */
|
|
#define TK_API 258
|
|
@@ -341,13 +347,13 @@
|
|
#define TK_DEFERRORHANDLER 405
|
|
#define TK_VERSION 406
|
|
|
|
-
|
|
-
|
|
-
|
|
+/* Value type. */
|
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
-typedef union YYSTYPE
|
|
-#line 203 "sip-4.19.12/sipgen/metasrc/parser.y"
|
|
+
|
|
+union YYSTYPE
|
|
{
|
|
+#line 203 "sipgen/metasrc/parser.y" /* yacc.c:1909 */
|
|
+
|
|
char qchar;
|
|
char *text;
|
|
long number;
|
|
@@ -390,14 +396,18 @@
|
|
variableCfg variable;
|
|
vehCfg veh;
|
|
int token;
|
|
-}
|
|
-/* Line 1529 of yacc.c. */
|
|
-#line 396 "sip-4.19.12/sipgen/parser.h"
|
|
- YYSTYPE;
|
|
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
|
-# define YYSTYPE_IS_DECLARED 1
|
|
+
|
|
+#line 401 "sipgen/parser.h" /* yacc.c:1909 */
|
|
+};
|
|
+
|
|
+typedef union YYSTYPE YYSTYPE;
|
|
# define YYSTYPE_IS_TRIVIAL 1
|
|
+# define YYSTYPE_IS_DECLARED 1
|
|
#endif
|
|
|
|
+
|
|
extern YYSTYPE yylval;
|
|
|
|
+int yyparse (void);
|
|
+
|
|
+#endif /* !YY_YY_SIPGEN_PARSER_H_INCLUDED */
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/sip.h sip/sipgen/sip.h
|
|
--- ./sip-4.19.12.orig/sipgen/sip.h 2018-07-05 05:55:19.000000000 -0400
|
|
+++ sip/sipgen/sip.h 2018-09-18 18:12:23.643053242 -0400
|
|
@@ -27,8 +27,8 @@
|
|
/*
|
|
* Define the SIP version number.
|
|
*/
|
|
-#define SIP_VERSION 0x04130c
|
|
-#define SIP_VERSION_STR "4.19.12"
|
|
+#define SIP_VERSION 0x04ffff
|
|
+#define SIP_VERSION_STR "4.255.255"
|
|
|
|
|
|
#ifdef TRUE
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/sip.h.in sip/sipgen/sip.h.in
|
|
--- ./sip-4.19.12.orig/sipgen/sip.h.in 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/sipgen/sip.h.in 2018-09-24 13:12:20.674276069 -0400
|
|
@@ -0,0 +1,1653 @@
|
|
+/*
|
|
+ * The main header file for SIP.
|
|
+ *
|
|
+ * Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com>
|
|
+ *
|
|
+ * This file is part of SIP.
|
|
+ *
|
|
+ * This copy of SIP is licensed for use under the terms of the SIP License
|
|
+ * Agreement. See the file LICENSE for more details.
|
|
+ *
|
|
+ * This copy of SIP may also used under the terms of the GNU General Public
|
|
+ * License v2 or v3 as published by the Free Software Foundation which can be
|
|
+ * found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package.
|
|
+ *
|
|
+ * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
+ */
|
|
+
|
|
+
|
|
+#ifndef SIP_H
|
|
+#define SIP_H
|
|
+
|
|
+#include <stdio.h>
|
|
+#include <sys/types.h>
|
|
+
|
|
+
|
|
+/*
|
|
+ * Define the SIP version number.
|
|
+ */
|
|
+#define SIP_VERSION 0x@RM_HEXVERSION@
|
|
+#define SIP_VERSION_STR "@RM_RELEASE@"
|
|
+
|
|
+
|
|
+#ifdef TRUE
|
|
+#undef TRUE
|
|
+#endif
|
|
+
|
|
+#ifdef FALSE
|
|
+#undef FALSE
|
|
+#endif
|
|
+
|
|
+#define TRUE 1
|
|
+#define FALSE 0
|
|
+
|
|
+
|
|
+/* Some convenient compiler extensions. */
|
|
+
|
|
+#if defined(__GNUC__)
|
|
+#define SIP_NORETURN __attribute__((__noreturn__))
|
|
+#define SIP_UNUSED __attribute__((__unused__))
|
|
+#elif defined(_MSC_VER)
|
|
+#define SIP_NORETURN __declspec(noreturn)
|
|
+#endif
|
|
+
|
|
+#if !defined(SIP_NORETURN)
|
|
+#define SIP_NORETURN
|
|
+#endif
|
|
+#if !defined(SIP_UNUSED)
|
|
+#define SIP_UNUSED
|
|
+#endif
|
|
+
|
|
+
|
|
+#define DEFAULT_OFILE_EXT ".o" /* Default object file extension. */
|
|
+
|
|
+#define MAX_NR_ARGS 20 /* Max. nr. args. to a function or template. */
|
|
+#define MAX_NR_DEREFS 5 /* Max. nr. type derefences. */
|
|
+
|
|
+
|
|
+/* For convenience. */
|
|
+
|
|
+#define classBaseName(cd) scopedNameTail((cd)->iff->fqcname)
|
|
+#define classFQCName(cd) ((cd)->iff->fqcname)
|
|
+
|
|
+/* Return the Python scope corresponding to a C/C++ scope. */
|
|
+#define pyScope(c) ((c) != NULL && isHiddenNamespace(c) ? NULL : (c))
|
|
+
|
|
+
|
|
+/* Handle module flags. */
|
|
+
|
|
+#define MOD_HAS_DELAYED_DTORS 0x0001 /* It has a class with a delayed dtor. */
|
|
+#define MOD_IS_CONSOLIDATED 0x0002 /* It is a consolidated module. */
|
|
+#define MOD_IS_COMPOSITE 0x0004 /* It is a composite module. */
|
|
+#define MOD_IS_TRANSFORMED 0x0008 /* It's types have been transformed. */
|
|
+#define MOD_USE_ARG_NAMES 0x0010 /* Use real argument names. */
|
|
+#define MOD_USE_LIMITED_API 0x0020 /* Use the limited API. */
|
|
+#define MOD_ALL_RAISE_PY_EXC 0x0040 /* All callable raise a Python exception. */
|
|
+#define MOD_SUPER_INIT_NO 0x0080 /* Don't call super().__init__(). */
|
|
+#define MOD_SUPER_INIT_YES 0x0100 /* Call super().__init__(). */
|
|
+#define MOD_SUPER_INIT_UNDEF 0x0000 /* Calling super().__init__() is undefined. */
|
|
+#define MOD_SUPER_INIT_MASK 0x0180 /* The mask for the above flags. */
|
|
+#define MOD_SETTING_IMPORTS 0x0200 /* Imports are being set. */
|
|
+
|
|
+#define hasDelayedDtors(m) ((m)->modflags & MOD_HAS_DELAYED_DTORS)
|
|
+#define setHasDelayedDtors(m) ((m)->modflags |= MOD_HAS_DELAYED_DTORS)
|
|
+#define isConsolidated(m) ((m)->modflags & MOD_IS_CONSOLIDATED)
|
|
+#define setIsConsolidated(m) ((m)->modflags |= MOD_IS_CONSOLIDATED)
|
|
+#define isComposite(m) ((m)->modflags & MOD_IS_COMPOSITE)
|
|
+#define setIsComposite(m) ((m)->modflags |= MOD_IS_COMPOSITE)
|
|
+#define isContainer(m) ((m)->modflags & (MOD_IS_CONSOLIDATED | MOD_IS_COMPOSITE))
|
|
+#define setIsTransformed(m) ((m)->modflags |= MOD_IS_TRANSFORMED)
|
|
+#define isTransformed(m) ((m)->modflags & MOD_IS_TRANSFORMED)
|
|
+#define setUseArgNames(m) ((m)->modflags |= MOD_USE_ARG_NAMES)
|
|
+#define useArgNames(m) ((m)->modflags & MOD_USE_ARG_NAMES)
|
|
+#define setUseLimitedAPI(m) ((m)->modflags |= MOD_USE_LIMITED_API)
|
|
+#define useLimitedAPI(m) ((m)->modflags & MOD_USE_LIMITED_API)
|
|
+#define setAllRaisePyException(m) ((m)->modflags |= MOD_ALL_RAISE_PY_EXC)
|
|
+#define allRaisePyException(m) ((m)->modflags & MOD_ALL_RAISE_PY_EXC)
|
|
+#define setCallSuperInitNo(m) ((m)->modflags = ((m)->modflags & ~MOD_SUPER_INIT_MASK) | MOD_SUPER_INIT_NO)
|
|
+#define setCallSuperInitYes(m) ((m)->modflags = ((m)->modflags & ~MOD_SUPER_INIT_MASK) | MOD_SUPER_INIT_YES)
|
|
+#define isCallSuperInitYes(m) (((m)->modflags & MOD_SUPER_INIT_MASK) == MOD_SUPER_INIT_YES)
|
|
+#define isCallSuperInitUndefined(m) (((m)->modflags & MOD_SUPER_INIT_MASK) == MOD_SUPER_INIT_UNDEF)
|
|
+#define settingImports(m) ((m)->modflags & MOD_SETTING_IMPORTS)
|
|
+#define setSettingImports(m) ((m)->modflags |= MOD_SETTING_IMPORTS)
|
|
+#define resetSettingImports(m) ((m)->modflags &= ~MOD_SETTING_IMPORTS)
|
|
+
|
|
+
|
|
+/* Handle section flags. */
|
|
+
|
|
+#define SECT_IS_PUBLIC 0x01 /* It is public. */
|
|
+#define SECT_IS_PROT 0x02 /* It is protected. */
|
|
+#define SECT_IS_PRIVATE 0x04 /* It is private. */
|
|
+#define SECT_IS_SLOT 0x08 /* It is a slot. */
|
|
+#define SECT_IS_SIGNAL 0x10 /* It is a signal. */
|
|
+#define SECT_MASK 0x1f /* The mask of all flags. */
|
|
+
|
|
+
|
|
+/* Handle class flags. These are combined with the section flags. */
|
|
+
|
|
+#define CLASS_HAS_SIGSLOTS 0x00000200 /* It has signals or slots. */
|
|
+#define CLASS_IS_ABSTRACT 0x00000400 /* It is an abstract class. */
|
|
+#define CLASS_HAS_SHADOW 0x00000800 /* It is has a shadow class. */
|
|
+#define CLASS_IS_OPAQUE 0x00001000 /* It is opaque. */
|
|
+#define CLASS_HAS_VAR_HANDLERS 0x00002000 /* It has variable handlers. */
|
|
+#define CLASS_DTOR_RELEASE_GIL 0x00004000 /* The dtor releases the GIL. */
|
|
+#define CLASS_IS_PROTECTED 0x00008000 /* It is protected. */
|
|
+#define CLASS_IS_PROTECTED_SAV 0x00010000 /* It is protected (saved). */
|
|
+#define CLASS_IS_INCOMPLETE 0x00020000 /* The specification is incomplete. */
|
|
+#define CLASS_CAN_CREATE 0x00040000 /* It has usable ctors. */
|
|
+#define CLASS_IS_EXTERNAL 0x00080000 /* It is external. */
|
|
+#define CLASS_IS_DELAYED_DTOR 0x00100000 /* The dtor is delayed. */
|
|
+#define CLASS_NO_DEFAULT_CTORS 0x00200000 /* Don't create default ctors. */
|
|
+#define CLASS_QOBJECT_SUB 0x00400000 /* It is derived from QObject. */
|
|
+#define CLASS_DTOR_HOLD_GIL 0x00800000 /* The dtor holds the GIL. */
|
|
+#define CLASS_ASSIGN_HELPER 0x01000000 /* Generate an assignment helper. */
|
|
+#define CLASS_NO_QMETAOBJECT 0x02000000 /* It has no QMetaObject. */
|
|
+#define CLASS_IS_TEMPLATE 0x04000000 /* It is a template class. */
|
|
+#define CLASS_IS_DEPRECATED 0x08000000 /* It is deprecated. */
|
|
+#define CLASS_CANNOT_COPY 0x10000000 /* It cannot be copied. */
|
|
+#define CLASS_CANNOT_ASSIGN 0x20000000 /* It cannot be assigned. */
|
|
+#define CLASS_ALLOW_NONE 0x40000000 /* The class will handle None. */
|
|
+#define CLASS_HAS_NONLAZY 0x80000000 /* The class has non-lazy methods. */
|
|
+
|
|
+#define hasSigSlots(cd) ((cd)->classflags & CLASS_HAS_SIGSLOTS)
|
|
+#define setHasSigSlots(cd) ((cd)->classflags |= CLASS_HAS_SIGSLOTS)
|
|
+#define isAbstractClass(cd) ((cd)->classflags & CLASS_IS_ABSTRACT)
|
|
+#define setIsAbstractClass(cd) ((cd)->classflags |= CLASS_IS_ABSTRACT)
|
|
+#define hasShadow(cd) ((cd)->classflags & CLASS_HAS_SHADOW)
|
|
+#define setHasShadow(cd) ((cd)->classflags |= CLASS_HAS_SHADOW)
|
|
+#define resetHasShadow(cd) ((cd)->classflags &= ~CLASS_HAS_SHADOW)
|
|
+#define isOpaque(cd) ((cd)->classflags & CLASS_IS_OPAQUE)
|
|
+#define setIsOpaque(cd) ((cd)->classflags |= CLASS_IS_OPAQUE)
|
|
+#define hasVarHandlers(cd) ((cd)->classflags & CLASS_HAS_VAR_HANDLERS)
|
|
+#define setHasVarHandlers(cd) ((cd)->classflags |= CLASS_HAS_VAR_HANDLERS)
|
|
+#define isProtectedClass(cd) ((cd)->classflags & CLASS_IS_PROTECTED)
|
|
+#define setIsProtectedClass(cd) ((cd)->classflags |= CLASS_IS_PROTECTED)
|
|
+#define resetIsProtectedClass(cd) ((cd)->classflags &= ~CLASS_IS_PROTECTED)
|
|
+#define wasProtectedClass(cd) ((cd)->classflags & CLASS_IS_PROTECTED_SAV)
|
|
+#define setWasProtectedClass(cd) ((cd)->classflags |= CLASS_IS_PROTECTED_SAV)
|
|
+#define resetWasProtectedClass(cd) ((cd)->classflags &= ~CLASS_IS_PROTECTED_SAV)
|
|
+#define isReleaseGILDtor(cd) ((cd)->classflags & CLASS_DTOR_RELEASE_GIL)
|
|
+#define setIsReleaseGILDtor(cd) ((cd)->classflags |= CLASS_DTOR_RELEASE_GIL)
|
|
+#define isIncomplete(cd) ((cd)->classflags & CLASS_IS_INCOMPLETE)
|
|
+#define setIsIncomplete(cd) ((cd)->classflags |= CLASS_IS_INCOMPLETE)
|
|
+#define canCreate(cd) ((cd)->classflags & CLASS_CAN_CREATE)
|
|
+#define setCanCreate(cd) ((cd)->classflags |= CLASS_CAN_CREATE)
|
|
+#define resetCanCreate(cd) ((cd)->classflags &= ~CLASS_CAN_CREATE)
|
|
+#define isExternal(cd) ((cd)->classflags & CLASS_IS_EXTERNAL)
|
|
+#define setIsExternal(cd) ((cd)->classflags |= CLASS_IS_EXTERNAL)
|
|
+#define isDelayedDtor(cd) ((cd)->classflags & CLASS_IS_DELAYED_DTOR)
|
|
+#define setIsDelayedDtor(cd) ((cd)->classflags |= CLASS_IS_DELAYED_DTOR)
|
|
+#define noDefaultCtors(cd) ((cd)->classflags & CLASS_NO_DEFAULT_CTORS)
|
|
+#define setNoDefaultCtors(cd) ((cd)->classflags |= CLASS_NO_DEFAULT_CTORS)
|
|
+#define isQObjectSubClass(cd) ((cd)->classflags & CLASS_QOBJECT_SUB)
|
|
+#define setIsQObjectSubClass(cd) ((cd)->classflags |= CLASS_QOBJECT_SUB)
|
|
+#define isHoldGILDtor(cd) ((cd)->classflags & CLASS_DTOR_HOLD_GIL)
|
|
+#define setIsHoldGILDtor(cd) ((cd)->classflags |= CLASS_DTOR_HOLD_GIL)
|
|
+#define assignmentHelper(cd) ((cd)->classflags & CLASS_ASSIGN_HELPER)
|
|
+#define setAssignmentHelper(cd) ((cd)->classflags |= CLASS_ASSIGN_HELPER)
|
|
+#define noPyQtQMetaObject(cd) ((cd)->classflags & CLASS_NO_QMETAOBJECT)
|
|
+#define setPyQtNoQMetaObject(cd) ((cd)->classflags |= CLASS_NO_QMETAOBJECT)
|
|
+#define isTemplateClass(cd) ((cd)->classflags & CLASS_IS_TEMPLATE)
|
|
+#define setIsTemplateClass(cd) ((cd)->classflags |= CLASS_IS_TEMPLATE)
|
|
+#define resetIsTemplateClass(cd) ((cd)->classflags &= ~CLASS_IS_TEMPLATE)
|
|
+#define isDeprecatedClass(cd) ((cd)->classflags & CLASS_IS_DEPRECATED)
|
|
+#define setIsDeprecatedClass(cd) ((cd)->classflags |= CLASS_IS_DEPRECATED)
|
|
+#define cannotCopy(cd) ((cd)->classflags & CLASS_CANNOT_COPY)
|
|
+#define setCannotCopy(cd) ((cd)->classflags |= CLASS_CANNOT_COPY)
|
|
+#define cannotAssign(cd) ((cd)->classflags & CLASS_CANNOT_ASSIGN)
|
|
+#define setCannotAssign(cd) ((cd)->classflags |= CLASS_CANNOT_ASSIGN)
|
|
+#define classHandlesNone(cd) ((cd)->classflags & CLASS_ALLOW_NONE)
|
|
+#define setClassHandlesNone(cd) ((cd)->classflags |= CLASS_ALLOW_NONE)
|
|
+#define hasNonlazyMethod(cd) ((cd)->classflags & CLASS_HAS_NONLAZY)
|
|
+#define setHasNonlazyMethod(cd) ((cd)->classflags |= CLASS_HAS_NONLAZY)
|
|
+
|
|
+#define isPublicDtor(cd) ((cd)->classflags & SECT_IS_PUBLIC)
|
|
+#define setIsPublicDtor(cd) ((cd)->classflags |= SECT_IS_PUBLIC)
|
|
+#define isProtectedDtor(cd) ((cd)->classflags & SECT_IS_PROT)
|
|
+#define isPrivateDtor(cd) ((cd)->classflags & SECT_IS_PRIVATE)
|
|
+
|
|
+#define isDtor(cd) ((cd)->classflags & (SECT_IS_PUBLIC | SECT_IS_PROT | SECT_IS_PRIVATE))
|
|
+
|
|
+
|
|
+/* Handle the second group of class flags. */
|
|
+
|
|
+#define CLASS2_TMPL_ARG 0x01 /* The class is a template argument. */
|
|
+#define CLASS2_MIXIN 0x02 /* The class is a mixin. */
|
|
+#define CLASS2_EXPORT_DERIVED 0x04 /* Export the derived class declaration. */
|
|
+#define CLASS2_HIDDEN_NS 0x08 /* The namespace is hidden. */
|
|
+#define CLASS2_USE_TMPL_NAME 0x10 /* Use the template name. */
|
|
+#define CLASS2_NEEDS_SHADOW 0x20 /* The class needs a shadow class. */
|
|
+
|
|
+#define isTemplateArg(cd) ((cd)->classflags2 & CLASS2_TMPL_ARG)
|
|
+#define setTemplateArg(cd) ((cd)->classflags2 |= CLASS2_TMPL_ARG)
|
|
+#define resetTemplateArg(cd) ((cd)->classflags2 &= ~CLASS2_TMPL_ARG)
|
|
+#define isMixin(cd) ((cd)->classflags2 & CLASS2_MIXIN)
|
|
+#define setMixin(cd) ((cd)->classflags2 |= CLASS2_MIXIN)
|
|
+#define isExportDerived(cd) ((cd)->classflags2 & CLASS2_EXPORT_DERIVED)
|
|
+#define setExportDerived(cd) ((cd)->classflags2 |= CLASS2_EXPORT_DERIVED)
|
|
+#define isHiddenNamespace(cd) ((cd)->classflags2 & CLASS2_HIDDEN_NS)
|
|
+#define setHiddenNamespace(cd) ((cd)->classflags2 |= CLASS2_HIDDEN_NS)
|
|
+#define useTemplateName(cd) ((cd)->classflags2 & CLASS2_USE_TMPL_NAME)
|
|
+#define setUseTemplateName(cd) ((cd)->classflags2 |= CLASS2_USE_TMPL_NAME)
|
|
+#define needsShadow(cd) ((cd)->classflags & CLASS2_NEEDS_SHADOW)
|
|
+#define setNeedsShadow(cd) ((cd)->classflags |= CLASS2_NEEDS_SHADOW)
|
|
+
|
|
+
|
|
+/* Handle ctor flags. These are combined with the section flags. */
|
|
+
|
|
+#define CTOR_RELEASE_GIL 0x00000100 /* The ctor releases the GIL. */
|
|
+#define CTOR_EXPLICIT 0x00000200 /* The ctor is explicit. */
|
|
+#define CTOR_CAST 0x00000400 /* The ctor is a cast. */
|
|
+#define CTOR_HOLD_GIL 0x00000800 /* The ctor holds the GIL. */
|
|
+#define CTOR_XFERRED 0x00001000 /* Ownership is transferred. */
|
|
+#define CTOR_IS_DEPRECATED 0x00002000 /* The ctor is deprecated. */
|
|
+#define CTOR_RAISES_PY_EXC 0x00004000 /* It raises a Python exception. */
|
|
+
|
|
+#define isPublicCtor(c) ((c)->ctorflags & SECT_IS_PUBLIC)
|
|
+#define setIsPublicCtor(c) ((c)->ctorflags |= SECT_IS_PUBLIC)
|
|
+#define isProtectedCtor(c) ((c)->ctorflags & SECT_IS_PROT)
|
|
+#define setIsProtectedCtor(c) ((c)->ctorflags |= SECT_IS_PROT)
|
|
+#define isPrivateCtor(c) ((c)->ctorflags & SECT_IS_PRIVATE)
|
|
+#define setIsPrivateCtor(c) ((c)->ctorflags |= SECT_IS_PRIVATE)
|
|
+
|
|
+#define isReleaseGILCtor(c) ((c)->ctorflags & CTOR_RELEASE_GIL)
|
|
+#define setIsReleaseGILCtor(c) ((c)->ctorflags |= CTOR_RELEASE_GIL)
|
|
+#define isExplicitCtor(c) ((c)->ctorflags & CTOR_EXPLICIT)
|
|
+#define setIsExplicitCtor(c) ((c)->ctorflags |= CTOR_EXPLICIT)
|
|
+#define isCastCtor(c) ((c)->ctorflags & CTOR_CAST)
|
|
+#define isHoldGILCtor(c) ((c)->ctorflags & CTOR_HOLD_GIL)
|
|
+#define setIsHoldGILCtor(c) ((c)->ctorflags |= CTOR_HOLD_GIL)
|
|
+#define isResultTransferredCtor(c) ((c)->ctorflags & CTOR_XFERRED)
|
|
+#define setIsResultTransferredCtor(c) ((c)->ctorflags |= CTOR_XFERRED)
|
|
+#define isDeprecatedCtor(c) ((c)->ctorflags & CTOR_IS_DEPRECATED)
|
|
+#define setIsDeprecatedCtor(c) ((c)->ctorflags |= CTOR_IS_DEPRECATED)
|
|
+#define raisesPyExceptionCtor(c) ((c)->ctorflags & CTOR_RAISES_PY_EXC)
|
|
+#define setRaisesPyExceptionCtor(c) ((c)->ctorflags |= CTOR_RAISES_PY_EXC)
|
|
+
|
|
+
|
|
+/* Handle member flags. */
|
|
+
|
|
+#define MEMBR_NUMERIC 0x0001 /* It is a numeric slot. */
|
|
+#define MEMBR_SEQUENCE 0x0002 /* It is a sequnce slot. */
|
|
+#define MEMBR_NO_ARG_PARSER 0x0004 /* Don't generate an argument parser. */
|
|
+#define MEMBR_NOT_VERSIONED 0x0008 /* There is an unversioned overload. */
|
|
+#define MEMBR_KEYWORD_ARGS 0x0010 /* It allows keyword arguments. */
|
|
+#define MEMBR_HAS_PROTECTED 0x0011 /* It has a protected overload. */
|
|
+
|
|
+#define isNumeric(m) ((m)->memberflags & MEMBR_NUMERIC)
|
|
+#define setIsNumeric(m) ((m)->memberflags |= MEMBR_NUMERIC)
|
|
+#define isSequence(m) ((m)->memberflags & MEMBR_SEQUENCE)
|
|
+#define setIsSequence(m) ((m)->memberflags |= MEMBR_SEQUENCE)
|
|
+#define noArgParser(m) ((m)->memberflags & MEMBR_NO_ARG_PARSER)
|
|
+#define setNoArgParser(m) ((m)->memberflags |= MEMBR_NO_ARG_PARSER)
|
|
+#define notVersioned(m) ((m)->memberflags & MEMBR_NOT_VERSIONED)
|
|
+#define setNotVersioned(m) ((m)->memberflags |= MEMBR_NOT_VERSIONED)
|
|
+#define useKeywordArgs(m) ((m)->memberflags & MEMBR_KEYWORD_ARGS)
|
|
+#define setUseKeywordArgs(m) ((m)->memberflags |= MEMBR_KEYWORD_ARGS)
|
|
+#define hasProtected(m) ((m)->memberflags & MEMBR_HAS_PROTECTED)
|
|
+#define setHasProtected(m) ((m)->memberflags |= MEMBR_HAS_PROTECTED)
|
|
+
|
|
+
|
|
+/* Handle enum flags. These are combined with the section flags. */
|
|
+
|
|
+#define ENUM_WAS_PROT 0x00000100 /* It was defined as protected. */
|
|
+#define ENUM_NO_SCOPE 0x00000200 /* Omit the member scopes. */
|
|
+#define ENUM_NEEDS_ENUM 0x00000400 /* The module needs it. */
|
|
+#define ENUM_SCOPED 0x00000800 /* A C++0x11 scoped enum. */
|
|
+
|
|
+#define isProtectedEnum(e) ((e)->enumflags & SECT_IS_PROT)
|
|
+#define setIsProtectedEnum(e) ((e)->enumflags |= SECT_IS_PROT)
|
|
+#define resetIsProtectedEnum(e) ((e)->enumflags &= ~SECT_IS_PROT)
|
|
+
|
|
+#define wasProtectedEnum(e) ((e)->enumflags & ENUM_WAS_PROT)
|
|
+#define setWasProtectedEnum(e) ((e)->enumflags |= ENUM_WAS_PROT)
|
|
+#define resetWasProtectedEnum(e) ((e)->enumflags &= ~ENUM_WAS_PROT)
|
|
+#define isNoScope(e) ((e)->enumflags & ENUM_NO_SCOPE)
|
|
+#define setIsNoScope(e) ((e)->enumflags |= ENUM_NO_SCOPE)
|
|
+#define needsEnum(e) ((e)->enumflags & ENUM_NEEDS_ENUM)
|
|
+#define setNeedsEnum(e) ((e)->enumflags |= ENUM_NEEDS_ENUM)
|
|
+#define isScopedEnum(e) ((e)->enumflags & ENUM_SCOPED)
|
|
+#define setIsScopedEnum(e) ((e)->enumflags |= ENUM_SCOPED)
|
|
+
|
|
+
|
|
+/* Handle hierarchy flags. */
|
|
+
|
|
+#define HIER_IS_DUPLICATE 0x0001 /* It is a super class duplicate. */
|
|
+#define HIER_HAS_DUPLICATE 0x0002 /* It has a super class duplicate. */
|
|
+#define HIER_BEING_SET 0x0004 /* The MRO is being set. */
|
|
+
|
|
+#define isDuplicateSuper(m) ((m)->mroflags & HIER_IS_DUPLICATE)
|
|
+#define setIsDuplicateSuper(m) ((m)->mroflags |= HIER_IS_DUPLICATE)
|
|
+#define hasDuplicateSuper(m) ((m)->mroflags & HIER_HAS_DUPLICATE)
|
|
+#define setHasDuplicateSuper(m) ((m)->mroflags |= HIER_HAS_DUPLICATE)
|
|
+#define hierBeingSet(m) ((m)->mroflags & HIER_BEING_SET)
|
|
+#define setHierBeingSet(m) ((m)->mroflags |= HIER_BEING_SET)
|
|
+#define resetHierBeingSet(m) ((m)->mroflags &= ~HIER_BEING_SET)
|
|
+
|
|
+
|
|
+/* Handle overload flags. These are combined with the section flags. */
|
|
+
|
|
+#define OVER_IS_VIRTUAL 0x00000100 /* It is virtual. */
|
|
+#define OVER_IS_ABSTRACT 0x00000200 /* It is abstract. */
|
|
+#define OVER_IS_CONST 0x00000400 /* It is a const function. */
|
|
+#define OVER_IS_STATIC 0x00000800 /* It is a static function. */
|
|
+#define OVER_IS_AUTOGEN 0x00001000 /* It is auto-generated. */
|
|
+#define OVER_IS_NEW_THREAD 0x00002000 /* It is in a new thread. */
|
|
+#define OVER_IS_FACTORY 0x00004000 /* It is a factory method. */
|
|
+#define OVER_XFERRED_BACK 0x00008000 /* Ownership is transferred back. */
|
|
+#define OVER_XFERRED 0x00010000 /* Ownership is transferred. */
|
|
+#define OVER_IS_VIRTUAL_REIMP 0x00020000 /* It is a re-implementation of a virtual. */
|
|
+#define OVER_DONT_DEREF_SELF 0x00040000 /* For comparison operators, don't dereference self. */
|
|
+#define OVER_HOLD_GIL 0x00080000 /* The function holds the GIL. */
|
|
+#define OVER_RELEASE_GIL 0x00100000 /* The function releases the GIL. */
|
|
+#define OVER_THIS_XFERRED 0x00200000 /* Ownership of this is transferred. */
|
|
+#define OVER_IS_GLOBAL 0x00400000 /* It is a global operator. */
|
|
+#define OVER_IS_COMPLEMENTARY 0x00800000 /* It is a complementary operator. */
|
|
+#define OVER_IS_DEPRECATED 0x01000000 /* It is deprecated. */
|
|
+#define OVER_REALLY_PROT 0x02000000 /* It really is protected. */
|
|
+#define OVER_IS_DELATTR 0x04000000 /* It is __delattr__. */
|
|
+#define OVER_RAISES_PY_EXC 0x08000000 /* It raises a Python exception. */
|
|
+#define OVER_NO_ERROR_HANDLER 0x10000000 /* It doesn't use a virtual error handler. */
|
|
+#define OVER_ABORT_ON_EXC 0x20000000 /* It aborts on an exception. */
|
|
+#define OVER_IS_FINAL 0x40000000 /* It is a final method. */
|
|
+
|
|
+#define isPublic(o) ((o)->overflags & SECT_IS_PUBLIC)
|
|
+#define setIsPublic(o) ((o)->overflags |= SECT_IS_PUBLIC)
|
|
+#define isProtected(o) ((o)->overflags & SECT_IS_PROT)
|
|
+#define setIsProtected(o) ((o)->overflags |= SECT_IS_PROT)
|
|
+#define isPrivate(o) ((o)->overflags & SECT_IS_PRIVATE)
|
|
+#define setIsPrivate(o) ((o)->overflags |= SECT_IS_PRIVATE)
|
|
+#define isSlot(o) ((o)->overflags & SECT_IS_SLOT)
|
|
+#define setIsSlot(o) ((o)->overflags |= SECT_IS_SLOT)
|
|
+#define resetIsSlot(o) ((o)->overflags &= ~SECT_IS_SLOT)
|
|
+#define isSignal(o) ((o)->overflags & SECT_IS_SIGNAL)
|
|
+#define setIsSignal(o) ((o)->overflags |= SECT_IS_SIGNAL)
|
|
+#define resetIsSignal(o) ((o)->overflags &= ~SECT_IS_SIGNAL)
|
|
+
|
|
+#define isVirtual(o) ((o)->overflags & OVER_IS_VIRTUAL)
|
|
+#define setIsVirtual(o) ((o)->overflags |= OVER_IS_VIRTUAL)
|
|
+#define resetIsVirtual(o) ((o)->overflags &= ~OVER_IS_VIRTUAL)
|
|
+#define isAbstract(o) ((o)->overflags & OVER_IS_ABSTRACT)
|
|
+#define setIsAbstract(o) ((o)->overflags |= OVER_IS_ABSTRACT)
|
|
+#define isConst(o) ((o)->overflags & OVER_IS_CONST)
|
|
+#define setIsConst(o) ((o)->overflags |= OVER_IS_CONST)
|
|
+#define isStatic(o) ((o)->overflags & OVER_IS_STATIC)
|
|
+#define setIsStatic(o) ((o)->overflags |= OVER_IS_STATIC)
|
|
+#define isAutoGen(o) ((o)->overflags & OVER_IS_AUTOGEN)
|
|
+#define setIsAutoGen(o) ((o)->overflags |= OVER_IS_AUTOGEN)
|
|
+#define resetIsAutoGen(o) ((o)->overflags &= ~OVER_IS_AUTOGEN)
|
|
+#define isNewThread(o) ((o)->overflags & OVER_IS_NEW_THREAD)
|
|
+#define setIsNewThread(o) ((o)->overflags |= OVER_IS_NEW_THREAD)
|
|
+#define isFactory(o) ((o)->overflags & OVER_IS_FACTORY)
|
|
+#define setIsFactory(o) ((o)->overflags |= OVER_IS_FACTORY)
|
|
+#define isResultTransferredBack(o) ((o)->overflags & OVER_XFERRED_BACK)
|
|
+#define setIsResultTransferredBack(o) ((o)->overflags |= OVER_XFERRED_BACK)
|
|
+#define isResultTransferred(o) ((o)->overflags & OVER_XFERRED)
|
|
+#define setIsResultTransferred(o) ((o)->overflags |= OVER_XFERRED)
|
|
+#define isVirtualReimp(o) ((o)->overflags & OVER_IS_VIRTUAL_REIMP)
|
|
+#define setIsVirtualReimp(o) ((o)->overflags |= OVER_IS_VIRTUAL_REIMP)
|
|
+#define dontDerefSelf(o) ((o)->overflags & OVER_DONT_DEREF_SELF)
|
|
+#define setDontDerefSelf(o) ((o)->overflags |= OVER_DONT_DEREF_SELF)
|
|
+#define isHoldGIL(o) ((o)->overflags & OVER_HOLD_GIL)
|
|
+#define setIsHoldGIL(o) ((o)->overflags |= OVER_HOLD_GIL)
|
|
+#define isReleaseGIL(o) ((o)->overflags & OVER_RELEASE_GIL)
|
|
+#define setIsReleaseGIL(o) ((o)->overflags |= OVER_RELEASE_GIL)
|
|
+#define isThisTransferredMeth(o) ((o)->overflags & OVER_THIS_XFERRED)
|
|
+#define setIsThisTransferredMeth(o) ((o)->overflags |= OVER_THIS_XFERRED)
|
|
+#define isGlobal(o) ((o)->overflags & OVER_IS_GLOBAL)
|
|
+#define setIsGlobal(o) ((o)->overflags |= OVER_IS_GLOBAL)
|
|
+#define isComplementary(o) ((o)->overflags & OVER_IS_COMPLEMENTARY)
|
|
+#define setIsComplementary(o) ((o)->overflags |= OVER_IS_COMPLEMENTARY)
|
|
+#define isDeprecated(o) ((o)->overflags & OVER_IS_DEPRECATED)
|
|
+#define setIsDeprecated(o) ((o)->overflags |= OVER_IS_DEPRECATED)
|
|
+#define isReallyProtected(o) ((o)->overflags & OVER_REALLY_PROT)
|
|
+#define setIsReallyProtected(o) ((o)->overflags |= OVER_REALLY_PROT)
|
|
+#define isDelattr(o) ((o)->overflags & OVER_IS_DELATTR)
|
|
+#define setIsDelattr(o) ((o)->overflags |= OVER_IS_DELATTR)
|
|
+#define raisesPyException(o) ((o)->overflags & OVER_RAISES_PY_EXC)
|
|
+#define setRaisesPyException(o) ((o)->overflags |= OVER_RAISES_PY_EXC)
|
|
+#define noErrorHandler(o) ((o)->overflags & OVER_NO_ERROR_HANDLER)
|
|
+#define setNoErrorHandler(o) ((o)->overflags |= OVER_NO_ERROR_HANDLER)
|
|
+#define abortOnException(o) ((o)->overflags & OVER_ABORT_ON_EXC)
|
|
+#define setAbortOnException(o) ((o)->overflags |= OVER_ABORT_ON_EXC)
|
|
+#define isFinal(o) ((o)->overflags & OVER_IS_FINAL)
|
|
+#define setIsFinal(o) ((o)->overflags |= OVER_IS_FINAL)
|
|
+
|
|
+
|
|
+/* Handle variable flags. */
|
|
+
|
|
+#define VAR_IS_STATIC 0x01 /* It is a static variable. */
|
|
+#define VAR_NEEDS_HANDLER 0x02 /* The variable needs a handler. */
|
|
+#define VAR_NO_SETTER 0x04 /* The variable has no setter. */
|
|
+
|
|
+#define isStaticVar(v) ((v)->varflags & VAR_IS_STATIC)
|
|
+#define setIsStaticVar(v) ((v)->varflags |= VAR_IS_STATIC)
|
|
+#define needsHandler(v) ((v)->varflags & VAR_NEEDS_HANDLER)
|
|
+#define setNeedsHandler(v) ((v)->varflags |= VAR_NEEDS_HANDLER)
|
|
+#define noSetter(v) ((v)->varflags & VAR_NO_SETTER)
|
|
+#define setNoSetter(v) ((v)->varflags |= VAR_NO_SETTER)
|
|
+
|
|
+
|
|
+/* Handle argument flags. */
|
|
+
|
|
+#define ARG_IS_REF 0x00000001 /* It is a reference. */
|
|
+#define ARG_IS_CONST 0x00000002 /* It is a const. */
|
|
+#define ARG_XFERRED 0x00000004 /* Ownership is transferred. */
|
|
+#define ARG_THIS_XFERRED 0x00000008 /* Ownership of this is transferred. */
|
|
+#define ARG_XFERRED_BACK 0x00000010 /* Ownership is transferred back. */
|
|
+#define ARG_ARRAY 0x00000020 /* Used as an array. */
|
|
+#define ARG_ARRAY_SIZE 0x00000040 /* Used as an array size. */
|
|
+#define ARG_ALLOW_NONE 0x00000080 /* Allow None as a value. */
|
|
+#define ARG_GET_WRAPPER 0x00000100 /* Get the wrapper object. */
|
|
+#define ARG_IN 0x00000200 /* It passes an argument. */
|
|
+#define ARG_OUT 0x00000400 /* It returns a result. */
|
|
+#define ARG_CONSTRAINED 0x00000800 /* Suppress type conversion. */
|
|
+#define ARG_SINGLE_SHOT 0x00001000 /* The slot is only ever fired once. */
|
|
+#define ARG_RESULT_SIZE 0x00002000 /* It defines the result size. */
|
|
+#define ARG_KEEP_REF 0x00004000 /* Keep a reference. */
|
|
+#define ARG_NO_COPY 0x00008000 /* Disable copying of const refs. */
|
|
+#define ARG_DISALLOW_NONE 0x00010000 /* Disallow None as a value. */
|
|
+
|
|
+#define isReference(a) ((a)->argflags & ARG_IS_REF)
|
|
+#define setIsReference(a) ((a)->argflags |= ARG_IS_REF)
|
|
+#define resetIsReference(a) ((a)->argflags &= ~ARG_IS_REF)
|
|
+#define isConstArg(a) ((a)->argflags & ARG_IS_CONST)
|
|
+#define setIsConstArg(a) ((a)->argflags |= ARG_IS_CONST)
|
|
+#define resetIsConstArg(a) ((a)->argflags &= ~ARG_IS_CONST)
|
|
+#define isTransferred(a) ((a)->argflags & ARG_XFERRED)
|
|
+#define setIsTransferred(a) ((a)->argflags |= ARG_XFERRED)
|
|
+#define isThisTransferred(a) ((a)->argflags & ARG_THIS_XFERRED)
|
|
+#define setIsThisTransferred(a) ((a)->argflags |= ARG_THIS_XFERRED)
|
|
+#define isTransferredBack(a) ((a)->argflags & ARG_XFERRED_BACK)
|
|
+#define setIsTransferredBack(a) ((a)->argflags |= ARG_XFERRED_BACK)
|
|
+#define isArray(a) ((a)->argflags & ARG_ARRAY)
|
|
+#define setArray(a) ((a)->argflags |= ARG_ARRAY)
|
|
+#define isArraySize(a) ((a)->argflags & ARG_ARRAY_SIZE)
|
|
+#define setArraySize(a) ((a)->argflags |= ARG_ARRAY_SIZE)
|
|
+#define isAllowNone(a) ((a)->argflags & ARG_ALLOW_NONE)
|
|
+#define setAllowNone(a) ((a)->argflags |= ARG_ALLOW_NONE)
|
|
+#define isGetWrapper(a) ((a)->argflags & ARG_GET_WRAPPER)
|
|
+#define setGetWrapper(a) ((a)->argflags |= ARG_GET_WRAPPER)
|
|
+#define isInArg(a) ((a)->argflags & ARG_IN)
|
|
+#define setIsInArg(a) ((a)->argflags |= ARG_IN)
|
|
+#define isOutArg(a) ((a)->argflags & ARG_OUT)
|
|
+#define setIsOutArg(a) ((a)->argflags |= ARG_OUT)
|
|
+#define isConstrained(a) ((a)->argflags & ARG_CONSTRAINED)
|
|
+#define setIsConstrained(a) ((a)->argflags |= ARG_CONSTRAINED)
|
|
+#define resetIsConstrained(a) ((a)->argflags &= ~ARG_CONSTRAINED)
|
|
+#define isSingleShot(a) ((a)->argflags & ARG_SINGLE_SHOT)
|
|
+#define isResultSize(a) ((a)->argflags & ARG_RESULT_SIZE)
|
|
+#define setResultSize(a) ((a)->argflags |= ARG_RESULT_SIZE)
|
|
+#define keepReference(a) ((a)->argflags & ARG_KEEP_REF)
|
|
+#define setKeepReference(a) ((a)->argflags |= ARG_KEEP_REF)
|
|
+#define noCopy(a) ((a)->argflags & ARG_NO_COPY)
|
|
+#define setNoCopy(a) ((a)->argflags |= ARG_NO_COPY)
|
|
+#define isDisallowNone(a) ((a)->argflags & ARG_DISALLOW_NONE)
|
|
+#define setDisallowNone(a) ((a)->argflags |= ARG_DISALLOW_NONE)
|
|
+
|
|
+
|
|
+/* Handle name flags. */
|
|
+
|
|
+#define NAME_IS_USED 0x01 /* It is used in the main module. */
|
|
+#define NAME_IS_SUBSTR 0x02 /* It is a substring of another. */
|
|
+
|
|
+#define isUsedName(n) ((n)->nameflags & NAME_IS_USED)
|
|
+#define setIsUsedName(n) ((n)->nameflags |= NAME_IS_USED)
|
|
+#define resetIsUsedName(n) ((n)->nameflags &= ~NAME_IS_USED)
|
|
+#define isSubstring(n) ((n)->nameflags & NAME_IS_SUBSTR)
|
|
+#define setIsSubstring(n) ((n)->nameflags |= NAME_IS_SUBSTR)
|
|
+
|
|
+
|
|
+/* Handle virtual handler flags. */
|
|
+
|
|
+#define VH_TRANSFERS 0x01 /* It transfers ownership of the result. */
|
|
+#define VH_ABORT_ON_EXC 0x02 /* It aborts on an exception. */
|
|
+
|
|
+#define isTransferVH(vh) ((vh)->vhflags & VH_TRANSFERS)
|
|
+#define setIsTransferVH(vh) ((vh)->vhflags |= VH_TRANSFERS)
|
|
+#define abortOnExceptionVH(vh) ((vh)->vhflags & VH_ABORT_ON_EXC)
|
|
+#define setAbortOnExceptionVH(vh) ((vh)->vhflags |= VH_ABORT_ON_EXC)
|
|
+
|
|
+
|
|
+/* Handle mapped type flags. */
|
|
+
|
|
+#define MT_NO_RELEASE 0x01 /* Do not generate a release function. */
|
|
+#define MT_ALLOW_NONE 0x02 /* The mapped type will handle None. */
|
|
+
|
|
+#define noRelease(mt) ((mt)->mtflags & MT_NO_RELEASE)
|
|
+#define setNoRelease(mt) ((mt)->mtflags |= MT_NO_RELEASE)
|
|
+#define handlesNone(mt) ((mt)->mtflags & MT_ALLOW_NONE)
|
|
+#define setHandlesNone(mt) ((mt)->mtflags |= MT_ALLOW_NONE)
|
|
+
|
|
+
|
|
+/* Handle typedef flags. */
|
|
+
|
|
+#define TD_NO_TYPE_NAME 0x01 /* Do not use the typedef name. */
|
|
+
|
|
+#define noTypeName(td) ((td)->tdflags & TD_NO_TYPE_NAME)
|
|
+#define setNoTypeName(td) ((td)->tdflags |= TD_NO_TYPE_NAME)
|
|
+
|
|
+
|
|
+/* Warning categories. */
|
|
+typedef enum {
|
|
+ ParserWarning,
|
|
+ DeprecationWarning
|
|
+} Warning;
|
|
+
|
|
+
|
|
+/* Docstring formatting. */
|
|
+typedef enum {
|
|
+ raw,
|
|
+ deindented
|
|
+} Format;
|
|
+
|
|
+
|
|
+/* Docstring signature positioning. */
|
|
+typedef enum {
|
|
+ discarded,
|
|
+ prepended,
|
|
+ appended
|
|
+} Signature;
|
|
+
|
|
+
|
|
+/* Levels of keyword argument support. */
|
|
+typedef enum {
|
|
+ NoKwArgs = 0,
|
|
+ AllKwArgs,
|
|
+ OptionalKwArgs
|
|
+} KwArgs;
|
|
+
|
|
+
|
|
+/* Slot types. */
|
|
+typedef enum {
|
|
+ str_slot,
|
|
+ int_slot,
|
|
+ long_slot,
|
|
+ float_slot,
|
|
+ len_slot,
|
|
+ contains_slot,
|
|
+ add_slot,
|
|
+ concat_slot,
|
|
+ sub_slot,
|
|
+ mul_slot,
|
|
+ repeat_slot,
|
|
+ div_slot,
|
|
+ mod_slot,
|
|
+ floordiv_slot,
|
|
+ truediv_slot,
|
|
+ and_slot,
|
|
+ or_slot,
|
|
+ xor_slot,
|
|
+ lshift_slot,
|
|
+ rshift_slot,
|
|
+ iadd_slot,
|
|
+ iconcat_slot,
|
|
+ isub_slot,
|
|
+ imul_slot,
|
|
+ irepeat_slot,
|
|
+ idiv_slot,
|
|
+ imod_slot,
|
|
+ ifloordiv_slot,
|
|
+ itruediv_slot,
|
|
+ iand_slot,
|
|
+ ior_slot,
|
|
+ ixor_slot,
|
|
+ ilshift_slot,
|
|
+ irshift_slot,
|
|
+ invert_slot,
|
|
+ call_slot,
|
|
+ getitem_slot,
|
|
+ setitem_slot,
|
|
+ delitem_slot,
|
|
+ lt_slot,
|
|
+ le_slot,
|
|
+ eq_slot,
|
|
+ ne_slot,
|
|
+ gt_slot,
|
|
+ ge_slot,
|
|
+ cmp_slot,
|
|
+ bool_slot,
|
|
+ neg_slot,
|
|
+ pos_slot,
|
|
+ abs_slot,
|
|
+ repr_slot,
|
|
+ hash_slot,
|
|
+ index_slot,
|
|
+ iter_slot,
|
|
+ next_slot,
|
|
+ setattr_slot,
|
|
+ delattr_slot, /* This is local to the parser. */
|
|
+ matmul_slot,
|
|
+ imatmul_slot,
|
|
+ await_slot,
|
|
+ aiter_slot,
|
|
+ anext_slot,
|
|
+ no_slot
|
|
+} slotType;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Argument types. Always add new ones at the end because the numeric values
|
|
+ * can appear in generated code.
|
|
+ */
|
|
+typedef enum {
|
|
+ no_type,
|
|
+ defined_type,
|
|
+ class_type,
|
|
+ struct_type,
|
|
+ void_type,
|
|
+ enum_type,
|
|
+ template_type,
|
|
+ signal_type,
|
|
+ slot_type,
|
|
+ rxcon_type,
|
|
+ rxdis_type,
|
|
+ slotcon_type,
|
|
+ slotdis_type,
|
|
+ ustring_type,
|
|
+ string_type,
|
|
+ short_type,
|
|
+ ushort_type,
|
|
+ cint_type,
|
|
+ int_type,
|
|
+ uint_type,
|
|
+ long_type,
|
|
+ ulong_type,
|
|
+ float_type,
|
|
+ cfloat_type,
|
|
+ double_type,
|
|
+ cdouble_type,
|
|
+ bool_type,
|
|
+ mapped_type,
|
|
+ pyobject_type,
|
|
+ pytuple_type,
|
|
+ pylist_type,
|
|
+ pydict_type,
|
|
+ pycallable_type,
|
|
+ pyslice_type,
|
|
+ qobject_type,
|
|
+ function_type,
|
|
+ pytype_type,
|
|
+ ellipsis_type,
|
|
+ longlong_type,
|
|
+ ulonglong_type,
|
|
+ anyslot_type,
|
|
+ cbool_type,
|
|
+ sstring_type,
|
|
+ wstring_type,
|
|
+ fake_void_type,
|
|
+ ssize_type,
|
|
+ ascii_string_type,
|
|
+ latin1_string_type,
|
|
+ utf8_string_type,
|
|
+ byte_type,
|
|
+ sbyte_type,
|
|
+ ubyte_type,
|
|
+ capsule_type,
|
|
+ pybuffer_type
|
|
+} argType;
|
|
+
|
|
+
|
|
+/* Value types. */
|
|
+typedef enum {
|
|
+ qchar_value,
|
|
+ string_value,
|
|
+ numeric_value,
|
|
+ real_value,
|
|
+ scoped_value,
|
|
+ fcall_value
|
|
+} valueType;
|
|
+
|
|
+
|
|
+/* Version types. */
|
|
+typedef enum {
|
|
+ time_qualifier,
|
|
+ platform_qualifier,
|
|
+ feature_qualifier
|
|
+} qualType;
|
|
+
|
|
+
|
|
+/* Interface file types. */
|
|
+typedef enum {
|
|
+ exception_iface,
|
|
+ mappedtype_iface,
|
|
+ namespace_iface,
|
|
+ class_iface
|
|
+} ifaceFileType;
|
|
+
|
|
+
|
|
+/* Type hint parse status. */
|
|
+typedef enum {
|
|
+ needs_parsing,
|
|
+ being_parsed,
|
|
+ parsed
|
|
+} typeHintParseStatus;
|
|
+
|
|
+
|
|
+/* Type hint node type. */
|
|
+typedef enum {
|
|
+ typing_node,
|
|
+ class_node,
|
|
+ enum_node,
|
|
+ brackets_node,
|
|
+ other_node
|
|
+} typeHintNodeType;
|
|
+
|
|
+
|
|
+/* A location in a .sip source file. */
|
|
+typedef struct {
|
|
+ int linenr; /* The line number. */
|
|
+ const char *name; /* The filename. */
|
|
+} sourceLocation;
|
|
+
|
|
+
|
|
+/* A software license. */
|
|
+typedef struct {
|
|
+ const char *type; /* The license type. */
|
|
+ const char *licensee; /* The licensee. */
|
|
+ const char *timestamp; /* The timestamp. */
|
|
+ const char *sig; /* The signature. */
|
|
+} licenseDef;
|
|
+
|
|
+
|
|
+/* A version qualifier. */
|
|
+typedef struct _qualDef {
|
|
+ const char *name; /* The qualifier name. */
|
|
+ qualType qtype; /* The qualifier type. */
|
|
+ struct _moduleDef *module; /* The defining module. */
|
|
+ int line; /* Timeline if it is a time. */
|
|
+ int order; /* Order if it is a time. */
|
|
+ int default_enabled; /* Enabled by default. */
|
|
+ struct _qualDef *next; /* Next in the list. */
|
|
+} qualDef;
|
|
+
|
|
+
|
|
+/* A platform. */
|
|
+typedef struct _platformDef {
|
|
+ struct _qualDef *qualifier; /* The platform qualifier. */
|
|
+ struct _platformDef *next; /* Next in the list. */
|
|
+} platformDef;
|
|
+
|
|
+
|
|
+/* A scoped name. */
|
|
+typedef struct _scopedNameDef {
|
|
+ char *name; /* The name. */
|
|
+ struct _scopedNameDef *next; /* Next in the scope list. */
|
|
+} scopedNameDef;
|
|
+
|
|
+
|
|
+/* A name. */
|
|
+typedef struct _nameDef {
|
|
+ int nameflags; /* The name flags. */
|
|
+ const char *text; /* The text of the name. */
|
|
+ size_t len; /* The length of the name. */
|
|
+ size_t offset; /* The offset in the string pool. */
|
|
+ struct _nameDef *next; /* Next in the list. */
|
|
+} nameDef;
|
|
+
|
|
+
|
|
+/* A literal code block. */
|
|
+typedef struct _codeBlock {
|
|
+ char *frag; /* The code itself. */
|
|
+ const char *filename; /* The original file. */
|
|
+ int linenr; /* The line in the file. */
|
|
+} codeBlock;
|
|
+
|
|
+
|
|
+/* A list of literal code blocks. */
|
|
+typedef struct _codeBlockList {
|
|
+ codeBlock *block; /* The code block. */
|
|
+ struct _codeBlockList *next; /* The next in the list. */
|
|
+} codeBlockList;
|
|
+
|
|
+
|
|
+/* The arguments to a throw specifier. */
|
|
+typedef struct _throwArgs {
|
|
+ int nrArgs; /* The number of arguments. */
|
|
+ struct _exceptionDef *args[MAX_NR_ARGS]; /* The arguments. */
|
|
+} throwArgs;
|
|
+
|
|
+
|
|
+/* An exception. */
|
|
+typedef struct _exceptionDef {
|
|
+ int exceptionnr; /* The exception number. */
|
|
+ int needed; /* The module needs it. */
|
|
+ struct _ifaceFileDef *iff; /* The interface file. */
|
|
+ const char *pyname; /* The exception Python name. */
|
|
+ struct _classDef *cd; /* The exception class. */
|
|
+ char *bibase; /* The builtin base exception. */
|
|
+ struct _exceptionDef *base; /* The defined base exception. */
|
|
+ codeBlockList *raisecode; /* Raise exception code. */
|
|
+ struct _exceptionDef *next; /* The next in the list. */
|
|
+} exceptionDef;
|
|
+
|
|
+
|
|
+/* A value. */
|
|
+typedef struct _valueDef {
|
|
+ valueType vtype; /* The type. */
|
|
+ char vunop; /* Any unary operator. */
|
|
+ char vbinop; /* Any binary operator. */
|
|
+ scopedNameDef *cast; /* Any cast. */
|
|
+ union {
|
|
+ char vqchar; /* Quoted character value. */
|
|
+ long vnum; /* Numeric value. */
|
|
+ double vreal; /* Real value. */
|
|
+ char *vstr; /* String value. */
|
|
+ scopedNameDef *vscp; /* Scoped value. */
|
|
+ struct _fcallDef *fcd; /* Function call. */
|
|
+ } u;
|
|
+ struct _valueDef *next; /* Next in the expression. */
|
|
+} valueDef;
|
|
+
|
|
+
|
|
+/* A member function argument (or result). */
|
|
+typedef struct {
|
|
+ argType atype; /* The type. */
|
|
+ nameDef *name; /* The name. */
|
|
+ const char *doctype; /* The documented type. */
|
|
+ struct _typeHintDef *typehint_in; /* The PEP 484 input type hint. */
|
|
+ struct _typeHintDef *typehint_out; /* The PEP 484 output type hint. */
|
|
+ const char *typehint_value; /* The type hint value. */
|
|
+ int argflags; /* The argument flags. */
|
|
+ int nrderefs; /* Nr. of dereferences. */
|
|
+ int derefs[MAX_NR_DEREFS]; /* The const for each dereference. */
|
|
+ valueDef *defval; /* The default value. */
|
|
+ int scopes_stripped; /* Nr. of scopes to be stripped. */
|
|
+ int key; /* The optional /KeepReference/ key. */
|
|
+ struct _typedefDef *original_type; /* The original type if typedef'd. */
|
|
+ union {
|
|
+ struct _signatureDef *sa; /* If it is a function. */
|
|
+ struct _templateDef *td; /* If it is a template. */
|
|
+ struct _scopedNameDef *snd; /* If it is a defined type. */
|
|
+ struct _classDef *cd; /* If it is a class. */
|
|
+ struct _enumDef *ed; /* If it is an enum. */
|
|
+ struct _scopedNameDef *sname; /* If it is a struct. */
|
|
+ struct _mappedTypeDef *mtd; /* If it is a mapped type. */
|
|
+ struct _scopedNameDef *cap; /* If it is a capsule. */
|
|
+ } u;
|
|
+} argDef;
|
|
+
|
|
+
|
|
+/* An entry in a linked argument list. */
|
|
+typedef struct _argList {
|
|
+ argDef arg; /* The argument itself. */
|
|
+ struct _argList *next; /* Next in the list. */
|
|
+} argList;
|
|
+
|
|
+
|
|
+/* A function call. */
|
|
+typedef struct _fcallDef {
|
|
+ argDef type; /* The type. */
|
|
+ int nrArgs; /* The number of arguments. */
|
|
+ struct _valueDef *args[MAX_NR_ARGS]; /* The arguments. */
|
|
+} fcallDef;
|
|
+
|
|
+
|
|
+/* An API version range definition. */
|
|
+typedef struct _apiVersionRangeDef {
|
|
+ nameDef *api_name; /* The API name. */
|
|
+ int from; /* The lower bound. */
|
|
+ int to; /* The upper bound. */
|
|
+ int index; /* The range index. */
|
|
+ struct _apiVersionRangeDef *next; /* The next in the list. */
|
|
+} apiVersionRangeDef;
|
|
+
|
|
+
|
|
+/* A virtual error handler. */
|
|
+typedef struct _virtErrorHandler {
|
|
+ const char *name; /* The name of the handler. */
|
|
+ codeBlockList *code; /* The handler code. */
|
|
+ struct _moduleDef *mod; /* The defining module. */
|
|
+ int index; /* The index within the module. */
|
|
+ struct _virtErrorHandler *next; /* The next in the list. */
|
|
+} virtErrorHandler;
|
|
+
|
|
+
|
|
+/* A parsed PEP 484 compliant type hint. */
|
|
+typedef struct _typeHintDef {
|
|
+ typeHintParseStatus status; /* The state of the type hint parse. */
|
|
+ char *raw_hint; /* The raw hint. */
|
|
+ struct _typeHintNodeDef *root; /* The root of parsed nodes. */
|
|
+} typeHintDef;
|
|
+
|
|
+
|
|
+/* A node of a parsed type hint. */
|
|
+typedef struct _typeHintNodeDef {
|
|
+ typeHintNodeType type; /* The type of the node. */
|
|
+ union {
|
|
+ const char *name; /* For typing objects and others. */
|
|
+ struct _classDef *cd; /* For class nodes. */
|
|
+ struct _enumDef *ed; /* For enum nodes. */
|
|
+ } u;
|
|
+ struct _typeHintNodeDef *children; /* The list of children. */
|
|
+ struct _typeHintNodeDef *next; /* The next sibling. */
|
|
+} typeHintNodeDef;
|
|
+
|
|
+
|
|
+/* An explicit docstring. */
|
|
+typedef struct _docstringDef {
|
|
+ Signature signature; /* How the signature should be positioned. */
|
|
+ char *text; /* The text of the docstring. */
|
|
+} docstringDef;
|
|
+
|
|
+
|
|
+/* A module definition. */
|
|
+typedef struct _moduleDef {
|
|
+ nameDef *fullname; /* The full module name. */
|
|
+ const char *name; /* The module base name. */
|
|
+ docstringDef *docstring; /* The docstring. */
|
|
+ apiVersionRangeDef *api_versions; /* The defined APIs. */
|
|
+ apiVersionRangeDef *api_ranges; /* The list of API version ranges. */
|
|
+ int modflags; /* The module flags. */
|
|
+ KwArgs kwargs; /* The style of keyword argument support. */
|
|
+ struct _memberDef *othfuncs; /* List of other functions. */
|
|
+ struct _overDef *overs; /* Global overloads. */
|
|
+ Format defdocstringfmt; /* The default docstring format. */
|
|
+ Signature defdocstringsig; /* The default docstring signature. */
|
|
+ argType encoding; /* The default string encoding. */
|
|
+ nameDef *defmetatype; /* The optional default meta-type. */
|
|
+ nameDef *defsupertype; /* The optional default super-type. */
|
|
+ struct _exceptionDef *defexception; /* The default exception. */
|
|
+ codeBlockList *hdrcode; /* Header code. */
|
|
+ codeBlockList *cppcode; /* Global C++ code. */
|
|
+ codeBlockList *copying; /* Software license. */
|
|
+ codeBlockList *preinitcode; /* Pre-initialisation code. */
|
|
+ codeBlockList *initcode; /* Initialisation code. */
|
|
+ codeBlockList *postinitcode; /* Post-initialisation code. */
|
|
+ codeBlockList *unitcode; /* Compilation unit code. */
|
|
+ codeBlockList *unitpostinccode; /* Compilation unit post-include code. */
|
|
+ codeBlockList *typehintcode; /* Type hint code. */
|
|
+ const char *virt_error_handler; /* The virtual error handler. */
|
|
+ int parts; /* The number of parts generated. */
|
|
+ const char *file; /* The filename. */
|
|
+ qualDef *qualifiers; /* The list of qualifiers. */
|
|
+ argDef *needed_types; /* The array of needed types. */
|
|
+ int nr_needed_types; /* The number of needed types. */
|
|
+ int nrtimelines; /* The nr. of timelines. */
|
|
+ int nrexceptions; /* The nr. of exceptions. */
|
|
+ int nrtypedefs; /* The nr. of typedefs. */
|
|
+ int nrvirterrorhandlers; /* The nr. of virtual error handlers. */
|
|
+ int next_key; /* The next key to allocate. */
|
|
+ licenseDef *license; /* The software license. */
|
|
+ struct _classDef *proxies; /* The list of proxy classes. */
|
|
+ struct _moduleDef *container; /* The container module, if any. */
|
|
+ struct _ifaceFileList *used; /* Interface files used. */
|
|
+ struct _moduleListDef *allimports; /* The list of all imports. */
|
|
+ struct _moduleListDef *imports; /* The list of direct imports. */
|
|
+ struct _autoPyNameDef *autopyname; /* The Python naming rules. */
|
|
+ struct _moduleDef *next; /* Next in the list. */
|
|
+} moduleDef;
|
|
+
|
|
+
|
|
+/* An entry in a linked module list. */
|
|
+typedef struct _moduleListDef {
|
|
+ moduleDef *module; /* The module itself. */
|
|
+ struct _moduleListDef *next; /* The next in the list. */
|
|
+} moduleListDef;
|
|
+
|
|
+
|
|
+/* An interface file definition. */
|
|
+typedef struct _ifaceFileDef {
|
|
+ nameDef *name; /* The name. */
|
|
+ int needed; /* The main module needs it. */
|
|
+ apiVersionRangeDef *api_range; /* The optional API version range. */
|
|
+ struct _ifaceFileDef *first_alt; /* The first alternate API. */
|
|
+ struct _ifaceFileDef *next_alt; /* The next alternate API. */
|
|
+ ifaceFileType type; /* Interface file type. */
|
|
+ int ifacenr; /* The index into the types table. */
|
|
+ scopedNameDef *fqcname; /* The fully qualified C++ name. */
|
|
+ moduleDef *module; /* The owning module. */
|
|
+ codeBlockList *hdrcode; /* Header code. */
|
|
+ const char *file_extension; /* The optional file extension. */
|
|
+ struct _ifaceFileList *used; /* Interface files used. */
|
|
+ platformDef *platforms; /* The platforms. */
|
|
+ struct _ifaceFileDef *next; /* Next in the list. */
|
|
+} ifaceFileDef;
|
|
+
|
|
+
|
|
+/* An entry in a linked interface file list. */
|
|
+
|
|
+typedef struct _ifaceFileList {
|
|
+ ifaceFileDef *iff; /* The interface file itself. */
|
|
+ struct _ifaceFileList *next; /* Next in the list. */
|
|
+} ifaceFileList;
|
|
+
|
|
+
|
|
+/* A mapped type. */
|
|
+typedef struct _mappedTypeDef {
|
|
+ int mtflags; /* The mapped type flags. */
|
|
+ argDef type; /* The type being mapped. */
|
|
+ nameDef *pyname; /* The Python name. */
|
|
+ nameDef *cname; /* The C/C++ name. */
|
|
+ const char *doctype; /* The documented type. */
|
|
+ typeHintDef *typehint_in; /* The PEP 484 input type hint. */
|
|
+ typeHintDef *typehint_out; /* The PEP 484 output type hint. */
|
|
+ const char *typehint_value; /* The type hint value. */
|
|
+ ifaceFileDef *iff; /* The interface file. */
|
|
+ struct _memberDef *members; /* The static member functions. */
|
|
+ struct _overDef *overs; /* The static overloads. */
|
|
+ codeBlockList *instancecode; /* Create instance code. */
|
|
+ codeBlockList *typecode; /* Type code. */
|
|
+ codeBlockList *convfromcode; /* Convert from C++ code. */
|
|
+ codeBlockList *convtocode; /* Convert to C++ code. */
|
|
+ struct _mappedTypeDef *real; /* The original definition. */
|
|
+ struct _mappedTypeDef *next; /* Next in the list. */
|
|
+} mappedTypeDef;
|
|
+
|
|
+
|
|
+/* A function signature. */
|
|
+typedef struct _signatureDef {
|
|
+ argDef result; /* The result. */
|
|
+ int nrArgs; /* The number of arguments. */
|
|
+ argDef args[MAX_NR_ARGS]; /* The arguments. */
|
|
+} signatureDef;
|
|
+
|
|
+
|
|
+/* A list of function signatures. */
|
|
+typedef struct _signatureList {
|
|
+ struct _signatureDef *sd; /* The signature. */
|
|
+ struct _signatureList *next; /* Next in the list. */
|
|
+} signatureList;
|
|
+
|
|
+
|
|
+/* A template type. */
|
|
+typedef struct _templateDef {
|
|
+ scopedNameDef *fqname; /* The name. */
|
|
+ signatureDef types; /* The types. */
|
|
+} templateDef;
|
|
+
|
|
+
|
|
+/* A list of virtual handlers. */
|
|
+typedef struct _virtHandlerDef {
|
|
+ int virthandlernr; /* The nr. of the virtual handler. */
|
|
+ int vhflags; /* The virtual handler flags. */
|
|
+ signatureDef *pysig; /* The Python signature. */
|
|
+ signatureDef *cppsig; /* The C++ signature. */
|
|
+ codeBlockList *virtcode; /* Virtual handler code. */
|
|
+ virtErrorHandler *veh; /* The virtual error handler. */
|
|
+ struct _virtHandlerDef *next; /* Next in the list. */
|
|
+} virtHandlerDef;
|
|
+
|
|
+
|
|
+/* A typedef definition. */
|
|
+typedef struct _typedefDef {
|
|
+ int tdflags; /* The typedef flags. */
|
|
+ scopedNameDef *fqname; /* The fully qualified name. */
|
|
+ struct _classDef *ecd; /* The enclosing class. */
|
|
+ moduleDef *module; /* The owning module. */
|
|
+ argDef type; /* The actual type. */
|
|
+ platformDef *platforms; /* The platforms. */
|
|
+ struct _typedefDef *next; /* Next in the list. */
|
|
+} typedefDef;
|
|
+
|
|
+
|
|
+/* A variable definition. */
|
|
+typedef struct _varDef {
|
|
+ scopedNameDef *fqcname; /* The fully qualified C/C++ name. */
|
|
+ nameDef *pyname; /* The variable Python name. */
|
|
+ int no_typehint; /* The type hint will be suppressed. */
|
|
+ struct _classDef *ecd; /* The enclosing class. */
|
|
+ moduleDef *module; /* The owning module. */
|
|
+ int varflags; /* The variable flags. */
|
|
+ argDef type; /* The actual type. */
|
|
+ codeBlockList *accessfunc; /* The access function. */
|
|
+ codeBlockList *getcode; /* The get code. */
|
|
+ codeBlockList *setcode; /* The set code. */
|
|
+ platformDef *platforms; /* The platforms. */
|
|
+ struct _varDef *next; /* Next in the list. */
|
|
+} varDef;
|
|
+
|
|
+
|
|
+/* A property definition. */
|
|
+typedef struct _propertyDef {
|
|
+ nameDef *name; /* The property name. */
|
|
+ docstringDef *docstring; /* The docstring. */
|
|
+ const char *get; /* The name of the getter method. */
|
|
+ const char *set; /* The name of the setter method. */
|
|
+ platformDef *platforms; /* The platforms. */
|
|
+ struct _propertyDef *next; /* Next in the list. */
|
|
+} propertyDef;
|
|
+
|
|
+
|
|
+/* An overloaded member function definition. */
|
|
+typedef struct _overDef {
|
|
+ sourceLocation sloc; /* The source location. */
|
|
+ char *cppname; /* The C++ name. */
|
|
+ docstringDef *docstring; /* The docstring. */
|
|
+ int overflags; /* The overload flags. */
|
|
+ int no_typehint; /* The type hint will be suppressed. */
|
|
+ int pyqt_signal_hack; /* The PyQt signal hack. */
|
|
+ KwArgs kwargs; /* The keyword argument support. */
|
|
+ struct _memberDef *common; /* Common parts. */
|
|
+ apiVersionRangeDef *api_range; /* The optional API version range. */
|
|
+ signatureDef pysig; /* The Python signature. */
|
|
+ signatureDef *cppsig; /* The C++ signature. */
|
|
+ throwArgs *exceptions; /* The exceptions. */
|
|
+ codeBlockList *methodcode; /* Method code. */
|
|
+ codeBlockList *premethodcode; /* Code to insert before the method code. */
|
|
+ codeBlockList *virtcallcode; /* Virtual call code. */
|
|
+ codeBlockList *virtcode; /* Virtual handler code. */
|
|
+ char *prehook; /* The pre-hook name. */
|
|
+ char *posthook; /* The post-hook name. */
|
|
+ const char *virt_error_handler; /* The virtual error handler. */
|
|
+ platformDef *platforms; /* The platforms. */
|
|
+ struct _overDef *next; /* Next in the list. */
|
|
+} overDef;
|
|
+
|
|
+
|
|
+/* An overloaded constructor definition. */
|
|
+typedef struct _ctorDef {
|
|
+ docstringDef *docstring; /* The docstring. */
|
|
+ int ctorflags; /* The ctor flags. */
|
|
+ int no_typehint; /* The type hint will be suppressed. */
|
|
+ KwArgs kwargs; /* The keyword argument support. */
|
|
+ apiVersionRangeDef *api_range; /* The optional API version range. */
|
|
+ signatureDef pysig; /* The Python signature. */
|
|
+ signatureDef *cppsig; /* The C++ signature, NULL if /NoDerived/. */
|
|
+ throwArgs *exceptions; /* The exceptions. */
|
|
+ codeBlockList *methodcode; /* Method code. */
|
|
+ codeBlockList *premethodcode; /* Code to insert before the method code. */
|
|
+ char *prehook; /* The pre-hook name. */
|
|
+ char *posthook; /* The post-hook name. */
|
|
+ platformDef *platforms; /* The platforms. */
|
|
+ struct _ctorDef *next; /* Next in the list. */
|
|
+} ctorDef;
|
|
+
|
|
+
|
|
+/* An enumerated type member definition. */
|
|
+typedef struct _enumMemberDef {
|
|
+ nameDef *pyname; /* The Python name. */
|
|
+ int no_typehint; /* The type hint will be suppressed. */
|
|
+ char *cname; /* The C/C++ name. */
|
|
+ struct _enumDef *ed; /* The enclosing enum. */
|
|
+ platformDef *platforms; /* The platforms. */
|
|
+ struct _enumMemberDef *next; /* Next in the list. */
|
|
+} enumMemberDef;
|
|
+
|
|
+
|
|
+/* An enumerated type definition. */
|
|
+typedef struct _enumDef {
|
|
+ int enumflags; /* The enum flags. */
|
|
+ scopedNameDef *fqcname; /* The C/C++ name (may be NULL). */
|
|
+ nameDef *cname; /* The C/C++ name (may be NULL). */
|
|
+ nameDef *pyname; /* The Python name (may be NULL). */
|
|
+ int no_typehint; /* The type hint will be suppressed. */
|
|
+ struct _enumDef *first_alt; /* The first alternate API. */
|
|
+ struct _enumDef *next_alt; /* The next alternate API. */
|
|
+ int enumnr; /* The enum number. */
|
|
+ int enum_idx; /* The enum index within the module. */
|
|
+ struct _classDef *ecd; /* The enclosing class, if any. */
|
|
+ struct _mappedTypeDef *emtd; /* The enclosing mapped type, if any. */
|
|
+ moduleDef *module; /* The owning module. */
|
|
+ enumMemberDef *members; /* The list of members. */
|
|
+ struct _memberDef *slots; /* The list of slots. */
|
|
+ struct _overDef *overs; /* The list of slot overloads. */
|
|
+ platformDef *platforms; /* The platforms. */
|
|
+ struct _enumDef *next; /* Next in the list. */
|
|
+} enumDef;
|
|
+
|
|
+
|
|
+/* An member function definition. */
|
|
+typedef struct _memberDef {
|
|
+ nameDef *pyname; /* The Python name. */
|
|
+ int memberflags; /* The member flags. */
|
|
+ int membernr; /* The index in the method table. */
|
|
+ slotType slot; /* The slot type. */
|
|
+ moduleDef *module; /* The owning module. */
|
|
+ struct _ifaceFileDef *ns_scope; /* The scope if it has been moved. */
|
|
+ struct _memberDef *next; /* Next in the list. */
|
|
+} memberDef;
|
|
+
|
|
+
|
|
+/* A list of visible member functions. */
|
|
+typedef struct _visibleList {
|
|
+ memberDef *m; /* The member definition. */
|
|
+ struct _classDef *cd; /* The class. */
|
|
+ struct _visibleList *next; /* Next in the list. */
|
|
+} visibleList;
|
|
+
|
|
+
|
|
+/* An entry in a linked class list. */
|
|
+typedef struct _classList {
|
|
+ struct _classDef *cd; /* The class itself. */
|
|
+ struct _classList *next; /* Next in the list. */
|
|
+} classList;
|
|
+
|
|
+
|
|
+/* A virtual overload definition. */
|
|
+typedef struct _virtOverDef {
|
|
+ overDef *od; /* The overload. */
|
|
+ virtHandlerDef *virthandler; /* The virtual handler. */
|
|
+ struct _virtOverDef *next; /* Next in the list. */
|
|
+} virtOverDef;
|
|
+
|
|
+
|
|
+/* A class that appears in a class's hierarchy. */
|
|
+typedef struct _mroDef {
|
|
+ struct _classDef *cd; /* The class. */
|
|
+ int mroflags; /* The hierarchy flags. */
|
|
+ struct _mroDef *next; /* The next in the list. */
|
|
+} mroDef;
|
|
+
|
|
+
|
|
+/* A class definition. */
|
|
+typedef struct _classDef {
|
|
+ docstringDef *docstring; /* The class docstring. */
|
|
+ unsigned classflags; /* The class flags. */
|
|
+ unsigned classflags2; /* The class flags, part 2. */
|
|
+ int pyqt_flags; /* The PyQt specific flags. */
|
|
+ const char *pyqt_interface; /* The Qt interface name. */
|
|
+ nameDef *pyname; /* The Python name. */
|
|
+ int no_typehint; /* The type hint will be suppressed. */
|
|
+ ifaceFileDef *iff; /* The interface file. */
|
|
+ struct _classDef *ecd; /* The enclosing scope. */
|
|
+ struct _classDef *real; /* The real class if this is a proxy or extender. */
|
|
+ classList *supers; /* The parent classes. */
|
|
+ mroDef *mro; /* The super-class hierarchy. */
|
|
+ nameDef *metatype; /* The meta-type. */
|
|
+ nameDef *supertype; /* The super-type. */
|
|
+ templateDef *td; /* The instantiated template. */
|
|
+ ctorDef *ctors; /* The constructors. */
|
|
+ ctorDef *defctor; /* The default ctor. */
|
|
+ codeBlockList *dealloccode; /* Handwritten dealloc code. */
|
|
+ codeBlockList *dtorcode; /* Handwritten dtor code. */
|
|
+ throwArgs *dtorexceptions; /* The dtor exceptions. */
|
|
+ memberDef *members; /* The member functions. */
|
|
+ overDef *overs; /* The overloads. */
|
|
+ argList *casts; /* The operator casts. */
|
|
+ virtOverDef *vmembers; /* The virtual members. */
|
|
+ visibleList *visible; /* The visible members. */
|
|
+ codeBlockList *cppcode; /* Class C++ code. */
|
|
+ codeBlockList *convtosubcode; /* Convert to sub C++ code. */
|
|
+ struct _classDef *subbase; /* Sub-class base class. */
|
|
+ codeBlockList *instancecode; /* Create instance code. */
|
|
+ codeBlockList *convtocode; /* Convert to C++ code. */
|
|
+ codeBlockList *convfromcode; /* Convert from C++ code. */
|
|
+ codeBlockList *travcode; /* Traverse code. */
|
|
+ codeBlockList *clearcode; /* Clear code. */
|
|
+ codeBlockList *getbufcode; /* Get buffer code (Python v3). */
|
|
+ codeBlockList *releasebufcode; /* Release buffer code (Python v3). */
|
|
+ codeBlockList *readbufcode; /* Read buffer code (Python v2). */
|
|
+ codeBlockList *writebufcode; /* Write buffer code (Python v2). */
|
|
+ codeBlockList *segcountcode; /* Segment count code (Python v2). */
|
|
+ codeBlockList *charbufcode; /* Character buffer code (Python v2). */
|
|
+ codeBlockList *picklecode; /* Pickle code. */
|
|
+ codeBlockList *finalcode; /* Finalisation code. */
|
|
+ codeBlockList *typehintcode; /* Type hint code. */
|
|
+ propertyDef *properties; /* The properties. */
|
|
+ const char *virt_error_handler; /* The virtual error handler. */
|
|
+ typeHintDef *typehint_in; /* The PEP 484 input type hint. */
|
|
+ typeHintDef *typehint_out; /* The PEP 484 output type hint. */
|
|
+ const char *typehint_value; /* The type hint value. */
|
|
+ struct _classDef *next; /* Next in the list. */
|
|
+} classDef;
|
|
+
|
|
+
|
|
+/* A class template definition. */
|
|
+typedef struct _classTmplDef {
|
|
+ signatureDef sig; /* The template arguments. */
|
|
+ classDef *cd; /* The class itself. */
|
|
+ struct _classTmplDef *next; /* The next in the list. */
|
|
+} classTmplDef;
|
|
+
|
|
+
|
|
+/* A mapped type template definition. */
|
|
+typedef struct _mappedTypeTmplDef {
|
|
+ signatureDef sig; /* The template arguments. */
|
|
+ mappedTypeDef *mt; /* The mapped type itself. */
|
|
+ struct _mappedTypeTmplDef *next; /* The next in the list. */
|
|
+} mappedTypeTmplDef;
|
|
+
|
|
+
|
|
+/* The extracts for an identifier. */
|
|
+typedef struct _extractDef {
|
|
+ const char *id; /* The identifier. */
|
|
+ struct _extractPartDef *parts; /* The ordered list of parts. */
|
|
+ struct _extractDef *next; /* The next in the list. */
|
|
+} extractDef;
|
|
+
|
|
+
|
|
+/* Part of an extract for an identifier. */
|
|
+typedef struct _extractPartDef {
|
|
+ int order; /* The order of the part. */
|
|
+ codeBlock *part; /* The part itself. */
|
|
+ struct _extractPartDef *next; /* The next in the list. */
|
|
+} extractPartDef;
|
|
+
|
|
+
|
|
+/* A rule for automatic Python naming. */
|
|
+typedef struct _autoPyNameDef {
|
|
+ const char *remove_leading; /* Leading string to remove. */
|
|
+ struct _autoPyNameDef *next; /* The next in the list. */
|
|
+} autoPyNameDef;
|
|
+
|
|
+
|
|
+/* The parse tree corresponding to the specification file. */
|
|
+typedef struct {
|
|
+ moduleDef *module; /* The module being generated. */
|
|
+ moduleDef *modules; /* The list of modules. */
|
|
+ nameDef *namecache; /* The name cache. */
|
|
+ ifaceFileDef *ifacefiles; /* The list of interface files. */
|
|
+ classDef *classes; /* The list of classes. */
|
|
+ classTmplDef *classtemplates; /* The list of class templates. */
|
|
+ exceptionDef *exceptions; /* The list of exceptions. */
|
|
+ mappedTypeDef *mappedtypes; /* The mapped types. */
|
|
+ mappedTypeTmplDef *mappedtypetemplates; /* The list of mapped type templates. */
|
|
+ enumDef *enums; /* List of enums. */
|
|
+ varDef *vars; /* List of variables. */
|
|
+ typedefDef *typedefs; /* List of typedefs. */
|
|
+ int nrvirthandlers; /* The number of virtual handlers. */
|
|
+ virtHandlerDef *virthandlers; /* The virtual handlers. */
|
|
+ virtErrorHandler *errorhandlers; /* The list of virtual error handlers. */
|
|
+ codeBlockList *exphdrcode; /* Exported header code. */
|
|
+ codeBlockList *exptypehintcode; /* Exported type hint code. */
|
|
+ codeBlockList *docs; /* Documentation. */
|
|
+ classDef *qobject_cd; /* QObject class, NULL if none. */
|
|
+ int sigslots; /* Set if signals or slots are used. */
|
|
+ int genc; /* Set if we are generating C code. */
|
|
+ struct _stringList *plugins; /* The list of plugins. */
|
|
+ struct _extractDef *extracts; /* The list of extracts. */
|
|
+} sipSpec;
|
|
+
|
|
+
|
|
+/* A list of strings. */
|
|
+typedef struct _stringList {
|
|
+ const char *s; /* The string. */
|
|
+ struct _stringList *next; /* The next in the list. */
|
|
+} stringList;
|
|
+
|
|
+
|
|
+/* File specific context information for the parser. */
|
|
+typedef struct _parserContext {
|
|
+ const char *filename; /* The %Import or %Include filename. */
|
|
+ int ifdepth; /* The depth of nested if's. */
|
|
+ moduleDef *prevmod; /* The previous module. */
|
|
+} parserContext;
|
|
+
|
|
+
|
|
+extern char *sipVersion; /* The version of SIP. */
|
|
+extern stringList *includeDirList; /* The include directory list for SIP files. */
|
|
+
|
|
+
|
|
+void parse(sipSpec *, FILE *, char *, int, stringList *, stringList *,
|
|
+ stringList *, KwArgs, int);
|
|
+void parserEOF(const char *,parserContext *);
|
|
+void transform(sipSpec *, int);
|
|
+void generateCode(sipSpec *, char *, char *, char *, const char *, int, int,
|
|
+ int, int, stringList *needed_qualifiers, stringList *, const char *,
|
|
+ int, int, const char *);
|
|
+void generateExtracts(sipSpec *pt, const stringList *extracts);
|
|
+void addExtractPart(sipSpec *pt, const char *id, int order, codeBlock *part);
|
|
+void generateAPI(sipSpec *pt, moduleDef *mod, const char *apiFile);
|
|
+void generateXML(sipSpec *pt, moduleDef *mod, const char *xmlFile);
|
|
+void generateTypeHints(sipSpec *pt, moduleDef *mod, const char *pyiFile);
|
|
+void generateExpression(valueDef *vd, int in_str, FILE *fp);
|
|
+void warning(Warning w, const char *fmt, ...);
|
|
+void deprecated(const char *msg);
|
|
+SIP_NORETURN void fatal(const char *fmt,...);
|
|
+void fatalScopedName(scopedNameDef *);
|
|
+void fatalStart();
|
|
+void getSourceLocation(sourceLocation *slp);
|
|
+int setInputFile(FILE *open_fp, parserContext *pc, int optional);
|
|
+void resetLexerState();
|
|
+void *sipMalloc(size_t n);
|
|
+void *sipCalloc(size_t nr, size_t n);
|
|
+char *sipStrdup(const char *);
|
|
+char *concat(const char *, ...);
|
|
+void append(char **, const char *);
|
|
+void appendToIfaceFileList(ifaceFileList **ifflp, ifaceFileDef *iff);
|
|
+int selectedQualifier(stringList *needed_qualifiers, qualDef *qd);
|
|
+int excludedFeature(stringList *,qualDef *);
|
|
+int sameSignature(signatureDef *,signatureDef *,int);
|
|
+int sameTemplateSignature(signatureDef *tmpl_sd, signatureDef *args_sd,
|
|
+ int deep);
|
|
+int compareScopedNames(scopedNameDef *snd1, scopedNameDef *snd2);
|
|
+int sameBaseType(argDef *,argDef *);
|
|
+char *scopedNameTail(scopedNameDef *);
|
|
+scopedNameDef *copyScopedName(scopedNameDef *);
|
|
+void appendScopedName(scopedNameDef **,scopedNameDef *);
|
|
+void freeScopedName(scopedNameDef *);
|
|
+void appendToClassList(classList **,classDef *);
|
|
+void appendCodeBlockList(codeBlockList **headp, codeBlockList *cbl);
|
|
+void prcode(FILE *fp, const char *fmt, ...);
|
|
+void prCopying(FILE *fp, moduleDef *mod, const char *comment);
|
|
+void prOverloadName(FILE *fp, overDef *od);
|
|
+void prOverloadDecl(FILE *fp, ifaceFileDef *scope, overDef *od, int defval);
|
|
+void prDefaultValue(argDef *ad, int in_str, FILE *fp);
|
|
+void prScopedPythonName(FILE *fp, classDef *scope, const char *pyname);
|
|
+void searchTypedefs(sipSpec *pt, scopedNameDef *snd, argDef *ad);
|
|
+int isZeroArgSlot(memberDef *md);
|
|
+int isIntReturnSlot(memberDef *md);
|
|
+int isSSizeReturnSlot(memberDef *md);
|
|
+int isLongReturnSlot(memberDef *md);
|
|
+int isVoidReturnSlot(memberDef *md);
|
|
+int isNumberSlot(memberDef *md);
|
|
+int isInplaceNumberSlot(memberDef *md);
|
|
+int isRichCompareSlot(memberDef *md);
|
|
+mappedTypeDef *allocMappedType(sipSpec *pt, argDef *type);
|
|
+void appendString(stringList **headp, const char *s);
|
|
+void appendTypeStrings(scopedNameDef *ename, signatureDef *patt, signatureDef *src, signatureDef *known, scopedNameDef **names, scopedNameDef **values);
|
|
+codeBlockList *templateCode(sipSpec *pt, ifaceFileList **used,
|
|
+ codeBlockList *ocbl, scopedNameDef *names, scopedNameDef *values);
|
|
+ifaceFileDef *findIfaceFile(sipSpec *pt, moduleDef *mod,
|
|
+ scopedNameDef *fqname, ifaceFileType iftype,
|
|
+ apiVersionRangeDef *api_range, argDef *ad);
|
|
+int pluginPyQt4(sipSpec *pt);
|
|
+int pluginPyQt5(sipSpec *pt);
|
|
+SIP_NORETURN void yyerror(char *);
|
|
+void yywarning(char *);
|
|
+int yylex();
|
|
+nameDef *cacheName(sipSpec *pt, const char *name);
|
|
+scopedNameDef *encodedTemplateName(templateDef *td);
|
|
+apiVersionRangeDef *findAPI(sipSpec *pt, const char *name);
|
|
+memberDef *findMethod(classDef *cd, const char *name);
|
|
+typeHintDef *newTypeHint(char *raw_hint);
|
|
+int isPyKeyword(const char *word);
|
|
+void getDefaultImplementation(sipSpec *pt, argType atype, classDef **cdp,
|
|
+ mappedTypeDef **mtdp);
|
|
+char *templateString(const char *src, scopedNameDef *names,
|
|
+ scopedNameDef *values);
|
|
+int inDefaultAPI(sipSpec *pt, apiVersionRangeDef *range);
|
|
+int hasImplicitOverloads(signatureDef *sd);
|
|
+void dsCtor(sipSpec *pt, classDef *cd, ctorDef *ct, int sec, FILE *fp);
|
|
+void dsOverload(sipSpec *pt, overDef *od, int is_method, int sec, FILE *fp);
|
|
+scopedNameDef *getFQCNameOfType(argDef *ad);
|
|
+scopedNameDef *removeGlobalScope(scopedNameDef *snd);
|
|
+void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out,
|
|
+ ifaceFileList *defined, int pep484, int rest, FILE *fp);
|
|
+void restPyClass(classDef *cd, int as_ref, FILE *fp);
|
|
+void restPyEnum(enumDef *ed, int as_ref, FILE *fp);
|
|
+
|
|
+
|
|
+/* These are only here because bison publically references them. */
|
|
+
|
|
+/* Represent a set of option flags. */
|
|
+
|
|
+#define MAX_NR_FLAGS 5
|
|
+
|
|
+typedef enum {
|
|
+ bool_flag,
|
|
+ string_flag,
|
|
+ name_flag,
|
|
+ opt_name_flag,
|
|
+ dotted_name_flag,
|
|
+ integer_flag,
|
|
+ opt_integer_flag,
|
|
+ api_range_flag
|
|
+} flagType;
|
|
+
|
|
+typedef struct {
|
|
+ const char *fname; /* The flag name. */
|
|
+ flagType ftype; /* The flag type. */
|
|
+ union { /* The flag value. */
|
|
+ char *sval; /* A string value. */
|
|
+ long ival; /* An integer value. */
|
|
+ apiVersionRangeDef *aval; /* An API range value. */
|
|
+ } fvalue;
|
|
+} optFlag;
|
|
+
|
|
+typedef struct {
|
|
+ int nrFlags; /* The number of flags. */
|
|
+ optFlag flags[MAX_NR_FLAGS]; /* Each flag. */
|
|
+} optFlags;
|
|
+
|
|
+
|
|
+/* These represent the configuration of different directives. */
|
|
+
|
|
+/* %API */
|
|
+typedef struct _apiCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+ int version;
|
|
+} apiCfg;
|
|
+
|
|
+/* %AutoPyName */
|
|
+typedef struct _autoPyNameCfg {
|
|
+ int token;
|
|
+ const char *remove_leading;
|
|
+} autoPyNameCfg;
|
|
+
|
|
+/* %CompositeModule */
|
|
+typedef struct _compModuleCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+ docstringDef *docstring;
|
|
+} compModuleCfg;
|
|
+
|
|
+/* %ConsolidatedModule */
|
|
+typedef struct _consModuleCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+ docstringDef *docstring;
|
|
+} consModuleCfg;
|
|
+
|
|
+/* %DefaultDocstringFormat */
|
|
+typedef struct _defDocstringFmtCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+} defDocstringFmtCfg;
|
|
+
|
|
+/* %DefaultDocstringSignature */
|
|
+typedef struct _defDocstringSigCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+} defDocstringSigCfg;
|
|
+
|
|
+/* %DefaultEncoding */
|
|
+typedef struct _defEncodingCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+} defEncodingCfg;
|
|
+
|
|
+/* %DefaultMetatype */
|
|
+typedef struct _defMetatypeCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+} defMetatypeCfg;
|
|
+
|
|
+/* %DefaultSupertype */
|
|
+typedef struct _defSupertypeCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+} defSupertypeCfg;
|
|
+
|
|
+/* %Docstring */
|
|
+typedef struct _docstringCfg {
|
|
+ int token;
|
|
+ Format format;
|
|
+ Signature signature;
|
|
+} docstringCfg;
|
|
+
|
|
+/* %Exception */
|
|
+typedef struct _exceptionCfg {
|
|
+ int token;
|
|
+ codeBlock *type_header_code;
|
|
+ codeBlock *raise_code;
|
|
+} exceptionCfg;
|
|
+
|
|
+/* %Extract */
|
|
+typedef struct _extractCfg {
|
|
+ int token;
|
|
+ const char *id;
|
|
+ int order;
|
|
+} extractCfg;
|
|
+
|
|
+/* %Feature */
|
|
+typedef struct _featureCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+} featureCfg;
|
|
+
|
|
+/* %HiddenNamespace */
|
|
+typedef struct _hiddenNsCfg {
|
|
+ int token;
|
|
+ scopedNameDef *name;
|
|
+} hiddenNsCfg;
|
|
+
|
|
+/* %Import */
|
|
+typedef struct _importCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+} importCfg;
|
|
+
|
|
+/* %Include */
|
|
+typedef struct _includeCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+ int optional;
|
|
+} includeCfg;
|
|
+
|
|
+/* %License */
|
|
+typedef struct _licenseCfg {
|
|
+ int token;
|
|
+ const char *type;
|
|
+ const char *licensee;
|
|
+ const char *signature;
|
|
+ const char *timestamp;
|
|
+} licenseCfg;
|
|
+
|
|
+/* %Module and its sub-directives. */
|
|
+typedef struct _moduleCfg {
|
|
+ int token;
|
|
+ int c_module;
|
|
+ KwArgs kwargs;
|
|
+ const char *name;
|
|
+ int use_arg_names;
|
|
+ int use_limited_api;
|
|
+ int all_raise_py_exc;
|
|
+ int call_super_init;
|
|
+ const char *def_error_handler;
|
|
+ docstringDef *docstring;
|
|
+} moduleCfg;
|
|
+
|
|
+/* %Plugin */
|
|
+typedef struct _pluginCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+} pluginCfg;
|
|
+
|
|
+/* %Property */
|
|
+typedef struct _propertyCfg {
|
|
+ int token;
|
|
+ const char *get;
|
|
+ const char *name;
|
|
+ const char *set;
|
|
+ docstringDef *docstring;
|
|
+} propertyCfg;
|
|
+
|
|
+/* Variable sub-directives. */
|
|
+typedef struct _variableCfg {
|
|
+ int token;
|
|
+ codeBlock *access_code;
|
|
+ codeBlock *get_code;
|
|
+ codeBlock *set_code;
|
|
+} variableCfg;
|
|
+
|
|
+/* %VirtualErrorHandler */
|
|
+typedef struct _vehCfg {
|
|
+ int token;
|
|
+ const char *name;
|
|
+} vehCfg;
|
|
+
|
|
+#endif
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/transform.c sip/sipgen/transform.c
|
|
--- ./sip-4.19.12.orig/sipgen/transform.c 2018-07-05 05:54:58.000000000 -0400
|
|
+++ sip/sipgen/transform.c 2018-09-24 13:12:20.694275757 -0400
|
|
@@ -89,7 +89,8 @@
|
|
static classDef *findAltClassImplementation(sipSpec *pt, mappedTypeDef *mtd);
|
|
static ifaceFileDef *getIfaceFile(argDef *ad);
|
|
static ifaceFileDef *getIfaceFileForEnum(enumDef *ed);
|
|
-static mappedTypeDef *instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, mappedTypeTmplDef *mtt, argDef *type);
|
|
+static void instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod,
|
|
+ mappedTypeTmplDef *mtt, argDef *type);
|
|
static classDef *getProxy(moduleDef *mod, classDef *cd);
|
|
static int generatingCodeForModule(sipSpec *pt, moduleDef *mod);
|
|
static void checkAssignmentHelper(sipSpec *pt, classDef *cd);
|
|
@@ -3040,9 +3041,7 @@
|
|
for (mtt = pt->mappedtypetemplates; mtt != NULL; mtt = mtt->next)
|
|
if (compareScopedNames(mtt->mt->type.u.td->fqname, type->u.td->fqname) == 0 && sameTemplateSignature(&mtt->mt->type.u.td->types, &type->u.td->types, TRUE))
|
|
{
|
|
- type->u.mtd = instantiateMappedTypeTemplate(pt, mod, mtt, type);
|
|
- type->atype = mapped_type;
|
|
-
|
|
+ instantiateMappedTypeTemplate(pt, mod, mtt, type);
|
|
break;
|
|
}
|
|
}
|
|
@@ -3144,9 +3143,10 @@
|
|
|
|
|
|
/*
|
|
- * Instantiate a mapped type template and return it.
|
|
+ * Instantiate a mapped type template.
|
|
*/
|
|
-static mappedTypeDef *instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, mappedTypeTmplDef *mtt, argDef *type)
|
|
+static void instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod,
|
|
+ mappedTypeTmplDef *mtt, argDef *type)
|
|
{
|
|
scopedNameDef *type_names, *type_values;
|
|
mappedTypeDef *mtd;
|
|
@@ -3201,7 +3201,13 @@
|
|
|
|
mtd = copyTemplateType(mtd, type);
|
|
|
|
- return mtd;
|
|
+ /* Replace the template with the mapped type. */
|
|
+ type->atype = mapped_type;
|
|
+ type->typehint_in = mtd->typehint_in;
|
|
+ type->typehint_out = mtd->typehint_out;
|
|
+ type->typehint_value = mtd->typehint_value;
|
|
+
|
|
+ type->u.mtd = mtd;
|
|
}
|
|
|
|
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/type_hints.c sip/sipgen/type_hints.c
|
|
--- ./sip-4.19.12.orig/sipgen/type_hints.c 2018-07-05 05:54:58.000000000 -0400
|
|
+++ sip/sipgen/type_hints.c 2018-09-24 13:12:20.695275742 -0400
|
|
@@ -57,10 +57,8 @@
|
|
ifaceFileList *defined, KwArgs kwargs, int pep484, FILE *fp);
|
|
static void pyiType(sipSpec *pt, moduleDef *mod, argDef *ad, int out, int sec,
|
|
ifaceFileList *defined, int pep484, FILE *fp);
|
|
-static void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out,
|
|
- ifaceFileList *defined, int pep484, FILE *fp);
|
|
static void pyiTypeHintNode(typeHintNodeDef *node, moduleDef *mod,
|
|
- ifaceFileList *defined, int pep484, FILE *fp);
|
|
+ ifaceFileList *defined, int pep484, int rest, FILE *fp);
|
|
static void prIndent(int indent, FILE *fp);
|
|
static int separate(int first, int indent, FILE *fp);
|
|
static void prClassRef(classDef *cd, moduleDef *mod, ifaceFileList *defined,
|
|
@@ -956,7 +954,7 @@
|
|
|
|
if (thd != NULL)
|
|
{
|
|
- pyiTypeHint(pt, thd, mod, out, defined, pep484, fp);
|
|
+ pyiTypeHint(pt, thd, mod, out, defined, pep484, FALSE, fp);
|
|
return;
|
|
}
|
|
|
|
@@ -1415,13 +1413,13 @@
|
|
/*
|
|
* Generate a type hint from a /TypeHint/ annotation.
|
|
*/
|
|
-static void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out,
|
|
- ifaceFileList *defined, int pep484, FILE *fp)
|
|
+void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out,
|
|
+ ifaceFileList *defined, int pep484, int rest, FILE *fp)
|
|
{
|
|
parseTypeHint(pt, thd, out);
|
|
|
|
if (thd->root != NULL)
|
|
- pyiTypeHintNode(thd->root, mod, defined, pep484, fp);
|
|
+ pyiTypeHintNode(thd->root, mod, defined, pep484, rest, fp);
|
|
else
|
|
maybeAnyObject(thd->raw_hint, pep484, fp);
|
|
}
|
|
@@ -1431,7 +1429,7 @@
|
|
* Generate a single node of a type hint.
|
|
*/
|
|
static void pyiTypeHintNode(typeHintNodeDef *node, moduleDef *mod,
|
|
- ifaceFileList *defined, int pep484, FILE *fp)
|
|
+ ifaceFileList *defined, int pep484, int rest, FILE *fp)
|
|
{
|
|
switch (node->type)
|
|
{
|
|
@@ -1452,7 +1450,7 @@
|
|
|
|
need_comma = TRUE;
|
|
|
|
- pyiTypeHintNode(thnd, mod, defined, pep484, fp);
|
|
+ pyiTypeHintNode(thnd, mod, defined, pep484, rest, fp);
|
|
}
|
|
|
|
fprintf(fp, "]");
|
|
@@ -1461,11 +1459,19 @@
|
|
break;
|
|
|
|
case class_node:
|
|
- prClassRef(node->u.cd, mod, defined, pep484, fp);
|
|
+ if (rest)
|
|
+ restPyClass(node->u.cd, TRUE, fp);
|
|
+ else
|
|
+ prClassRef(node->u.cd, mod, defined, pep484, fp);
|
|
+
|
|
break;
|
|
|
|
case enum_node:
|
|
- prEnumRef(node->u.ed, mod, defined, pep484, fp);
|
|
+ if (rest)
|
|
+ restPyEnum(node->u.ed, TRUE, fp);
|
|
+ else
|
|
+ prEnumRef(node->u.ed, mod, defined, pep484, fp);
|
|
+
|
|
break;
|
|
|
|
case brackets_node:
|
|
@@ -1702,7 +1708,7 @@
|
|
|
|
|
|
/*
|
|
- * Flatten an unions in a list of nodes.
|
|
+ * Flatten any unions in a list of nodes.
|
|
*/
|
|
static typeHintNodeDef *flatten_unions(typeHintNodeDef *nodes)
|
|
{
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/siplib/sip.h sip/siplib/sip.h
|
|
--- ./sip-4.19.12.orig/siplib/sip.h 2018-07-05 05:55:19.000000000 -0400
|
|
+++ sip/siplib/sip.h 2018-09-18 18:12:23.643053242 -0400
|
|
@@ -54,8 +54,8 @@
|
|
/*
|
|
* Define the SIP version number.
|
|
*/
|
|
-#define SIP_VERSION 0x04130c
|
|
-#define SIP_VERSION_STR "4.19.12"
|
|
+#define SIP_VERSION 0x04ffff
|
|
+#define SIP_VERSION_STR "4.255.255"
|
|
|
|
|
|
/*
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/siplib/sip.h.in sip/siplib/sip.h.in
|
|
--- ./sip-4.19.12.orig/siplib/sip.h.in 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/siplib/sip.h.in 2018-09-18 17:52:23.290543826 -0400
|
|
@@ -0,0 +1,2169 @@
|
|
+/*
|
|
+ * The SIP module interface.
|
|
+ *
|
|
+ * Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com>
|
|
+ *
|
|
+ * This file is part of SIP.
|
|
+ *
|
|
+ * This copy of SIP is licensed for use under the terms of the SIP License
|
|
+ * Agreement. See the file LICENSE for more details.
|
|
+ *
|
|
+ * This copy of SIP may also used under the terms of the GNU General Public
|
|
+ * License v2 or v3 as published by the Free Software Foundation which can be
|
|
+ * found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package.
|
|
+ *
|
|
+ * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
+ */
|
|
+
|
|
+
|
|
+#ifndef _SIP_H
|
|
+#define _SIP_H
|
|
+
|
|
+
|
|
+/*
|
|
+ * This gets round a problem with Qt's moc and Python v2.3. Strictly speaking
|
|
+ * it's a Qt problem but later versions of Python include a fix for it so we
|
|
+ * might as well too.
|
|
+ */
|
|
+#undef slots
|
|
+
|
|
+
|
|
+#include <Python.h>
|
|
+
|
|
+/*
|
|
+ * There is a mis-feature somewhere with the Borland compiler. This works
|
|
+ * around it.
|
|
+ */
|
|
+#if defined(__BORLANDC__)
|
|
+#include <rpc.h>
|
|
+#endif
|
|
+
|
|
+
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
+
|
|
+
|
|
+/* Sanity check on the Python version. */
|
|
+#if PY_VERSION_HEX < 0x02030000
|
|
+#error "This version of SIP requires Python v2.3 or later"
|
|
+#endif
|
|
+
|
|
+
|
|
+/*
|
|
+ * Define the SIP version number.
|
|
+ */
|
|
+#define SIP_VERSION 0x@RM_HEXVERSION@
|
|
+#define SIP_VERSION_STR "@RM_RELEASE@"
|
|
+
|
|
+
|
|
+/*
|
|
+ * Define the current API version number. SIP must handle modules with the
|
|
+ * same major number and with the same or earlier minor number. Whenever
|
|
+ * members are added to non-embedded data structures they must be appended and
|
|
+ * the minor number incremented. Whenever data structure members are removed
|
|
+ * or their offset changed then the major number must be incremented and the
|
|
+ * minor number set * to 0.
|
|
+ *
|
|
+ * History:
|
|
+ *
|
|
+ * 12.5 Replaced the sipConvertFromSliceObject() macro with
|
|
+ * sip_api_convert_from_slice_object() in the public API.
|
|
+ *
|
|
+ * 12.4 Added sip_api_instance_destroyed_ex() to the private API.
|
|
+ *
|
|
+ * 12.3 Added SIP_TYPE_SCOPED_ENUM to the sipTypeDef flags.
|
|
+ * Added sip_api_convert_to_enum() to the public API.
|
|
+ * Added sip_api_convert_to_bool() to the public API.
|
|
+ * Added sip_api_long_as_char(), sip_api_long_as_signed_char(),
|
|
+ * sip_api_long_as_unsigned_char(), sip_api_long_as_short(),
|
|
+ * sip_api_long_as_unsigned_short(), sip_api_long_as_int(),
|
|
+ * sip_api_long_as_unsigned_int(), sip_api_long_as_long(),
|
|
+ * sip_api_long_as_unsigned_long(), sip_api_long_as_long_long(),
|
|
+ * sip_api_long_as_unsigned_long_long() to the public API.
|
|
+ * Deprecated sip_api_can_convert_to_enum().
|
|
+ *
|
|
+ * 12.2 Added sip_api_print_object() to the public API.
|
|
+ * Renamed sip_api_common_dtor() to sip_api_instance_destroyed() and added
|
|
+ * it to the public API.
|
|
+ * Added sipEventType and sip_api_register_event_handler() to the public
|
|
+ * API.
|
|
+ *
|
|
+ * 12.1 Added sip_api_enable_gc() to the public API.
|
|
+ *
|
|
+ * 12.0 Added SIP_TYPE_LIMITED_API to the sipTypeDef flags.
|
|
+ * Added sip_api_py_type_dict() and sip_api_py_type_name() to the public
|
|
+ * API.
|
|
+ * Added sip_api_set_new_user_type_handler() to the public API.
|
|
+ * Added sip_api_is_user_type() to the public API.
|
|
+ * Added sip_api_set_type_user_data() and sip_api_get_type_user_data() to
|
|
+ * the public API.
|
|
+ * Added sip_api_set_user_object() and sip_api_get_user_object() to the
|
|
+ * public API.
|
|
+ * Added sip_api_get_method() and sip_api_from_method() to the public API.
|
|
+ * Added sip_api_get_c_function() to the public API.
|
|
+ * Added sip_api_get_date() and sip_api_from_date() to the public API.
|
|
+ * Added sip_api_get_datetime() and sip_api_from_datetime() to the public
|
|
+ * API.
|
|
+ * Added sip_api_get_time() and sip_api_from_time() to the public API.
|
|
+ * Added sip_api_get_frame() to the public API.
|
|
+ * Added sip_api_check_plugin_for_type() to the public API.
|
|
+ * Added sip_api_unicode_new(), sip_api_unicode_write() and
|
|
+ * sip_api_unicode_data() to the public API.
|
|
+ * Added sip_api_get_buffer_info() and sip_api_relese_buffer_info() to the
|
|
+ * public API.
|
|
+ * Added sip_api_call_procedure_method() to the public API.
|
|
+ * Added sip_api_is_owned_by_python() to the private API.
|
|
+ * Added sip_api_is_derived_class() to the private API.
|
|
+ * Removed the im_version member from sipImportedModuleDef.
|
|
+ * Removed the im_module member from sipImportedModuleDef.
|
|
+ * Removed the em_version member from sipExportedModuleDef.
|
|
+ * Removed the em_virthandlers member from sipExportedModuleDef.
|
|
+ * Re-ordered the API functions.
|
|
+ *
|
|
+ * 11.3 Added sip_api_get_interpreter() to the public API.
|
|
+ *
|
|
+ * 11.2 Added sip_api_get_reference() to the private API.
|
|
+ *
|
|
+ * 11.1 Added sip_api_invoke_slot_ex().
|
|
+ *
|
|
+ * 11.0 Added the pyqt5QtSignal and pyqt5ClassTypeDef structures.
|
|
+ * Removed qt_interface from pyqt4ClassTypeDef.
|
|
+ * Added hack to pyqt4QtSignal.
|
|
+ *
|
|
+ * 10.1 Added ctd_final to sipClassTypeDef.
|
|
+ * Added ctd_init_mixin to sipClassTypeDef.
|
|
+ * Added sip_api_get_mixin_address() to the public API.
|
|
+ * Added sip_api_convert_from_new_pytype() to the public API.
|
|
+ * Added sip_api_convert_to_array() to the public API.
|
|
+ * Added sip_api_convert_to_typed_array() to the public API.
|
|
+ * Added sip_api_register_proxy_resolver() to the public API.
|
|
+ * Added sip_api_init_mixin() to the private API.
|
|
+ * Added qt_interface to pyqt4ClassTypeDef.
|
|
+ *
|
|
+ * 10.0 Added sip_api_set_destroy_on_exit().
|
|
+ * Added sip_api_enable_autoconversion().
|
|
+ * Removed sip_api_call_error_handler_old().
|
|
+ * Removed sip_api_start_thread().
|
|
+ *
|
|
+ * 9.2 Added sip_gilstate_t and SIP_RELEASE_GIL to the public API.
|
|
+ * Renamed sip_api_call_error_handler() to
|
|
+ * sip_api_call_error_handler_old().
|
|
+ * Added the new sip_api_call_error_handler() to the private API.
|
|
+ *
|
|
+ * 9.1 Added the capsule type.
|
|
+ * Added the 'z' format character to sip_api_build_result().
|
|
+ * Added the 'z', '!' and '$' format characters to
|
|
+ * sip_api_parse_result_ex().
|
|
+ *
|
|
+ * 9.0 Changed the sipVariableGetterFunc signature.
|
|
+ * Added sip_api_parse_result_ex() to the private API.
|
|
+ * Added sip_api_call_error_handler() to the private API.
|
|
+ * Added em_virterrorhandlers to sipExportedModuleDef.
|
|
+ * Re-ordered the API functions.
|
|
+ *
|
|
+ * 8.1 Revised the sipVariableDef structure.
|
|
+ * sip_api_get_address() is now part of the public API.
|
|
+ *
|
|
+ * 8.0 Changed the size of the sipSimpleWrapper structure.
|
|
+ * Added sip_api_get_address().
|
|
+ *
|
|
+ * 7.1 Added the 'H' format character to sip_api_parse_result().
|
|
+ * Deprecated the 'D' format character of sip_api_parse_result().
|
|
+ *
|
|
+ * 7.0 Added sip_api_parse_kwd_args().
|
|
+ * Added sipErrorState, sip_api_add_exception().
|
|
+ * The type initialisation function is now passed a dictionary of keyword
|
|
+ * arguments.
|
|
+ * All argument parsers now update a set of error messages rather than an
|
|
+ * argument count.
|
|
+ * The signatures of sip_api_no_function() and sip_api_no_method() have
|
|
+ * changed.
|
|
+ * Added ctd_docstring to sipClassTypeDef.
|
|
+ * Added vf_docstring to sipVersionedFunctionDef.
|
|
+ *
|
|
+ * 6.0 Added the sipContainerDef structure to define the contents of a class
|
|
+ * or mapped type. Restructured sipClassDef and sipMappedTypeDef
|
|
+ * accordingly.
|
|
+ * Added the 'r' format character to sip_api_parse_args().
|
|
+ * Added the 'r' format character to sip_api_call_method() and
|
|
+ * sip_api_build_result().
|
|
+ * Added the assignment, array and copy allocation helpers.
|
|
+ *
|
|
+ * 5.0 Added sip_api_is_api_enabled().
|
|
+ * Renamed the td_version_nr member of sipTypeDef to be int and where -1
|
|
+ * indicates it is not versioned.
|
|
+ * Added the em_versions member to sipExportedModuleDef.
|
|
+ * Added the em_versioned_functions member to sipExportedModuleDef.
|
|
+ *
|
|
+ * 4.0 Much refactoring.
|
|
+ *
|
|
+ * 3.8 Added sip_api_register_qt_metatype() and sip_api_deprecated().
|
|
+ * Added qt_register_meta_type() to the Qt support API.
|
|
+ * The C/C++ names of enums and types are now always defined in the
|
|
+ * relevant structures and don't default to the Python name.
|
|
+ * Added the 'XE' format characters to sip_api_parse_args().
|
|
+ *
|
|
+ * 3.7 Added sip_api_convert_from_const_void_ptr(),
|
|
+ * sip_api_convert_from_void_ptr_and_size() and
|
|
+ * sip_api_convert_from_const_void_ptr_and_size().
|
|
+ * Added the 'g' and 'G' format characters (to replace the now deprecated
|
|
+ * 'a' and 'A' format characters) to sip_api_build_result(),
|
|
+ * sip_api_call_method() and sip_api_parse_result().
|
|
+ * Added the 'k' and 'K' format characters (to replace the now deprecated
|
|
+ * 'a' and 'A' format characters) to sip_api_parse_args().
|
|
+ * Added sip_api_invoke_slot().
|
|
+ * Added sip_api_parse_type().
|
|
+ * Added sip_api_is_exact_wrapped_type().
|
|
+ * Added the td_assign and td_qt fields to the sipTypeDef structure.
|
|
+ * Added the mt_assign field to the sipMappedType structure.
|
|
+ *
|
|
+ * 3.6 Added the 'g' format character to sip_api_parse_args().
|
|
+ *
|
|
+ * 3.5 Added the td_pickle field to the sipTypeDef structure.
|
|
+ * Added sip_api_transfer_break().
|
|
+ *
|
|
+ * 3.4 Added qt_find_connection() to the Qt support API.
|
|
+ * Added sip_api_string_as_char(), sip_api_unicode_as_wchar(),
|
|
+ * sip_api_unicode_as_wstring(), sip_api_find_class(),
|
|
+ * sip_api_find_named_enum() and sip_api_parse_signature().
|
|
+ * Added the 'A', 'w' and 'x' format characters to sip_api_parse_args(),
|
|
+ * sip_api_parse_result(), sip_api_build_result() and
|
|
+ * sip_api_call_method().
|
|
+ *
|
|
+ * 3.3 Added sip_api_register_int_types().
|
|
+ *
|
|
+ * 3.2 Added sip_api_export_symbol() and sip_api_import_symbol().
|
|
+ *
|
|
+ * 3.1 Added sip_api_add_mapped_type_instance().
|
|
+ *
|
|
+ * 3.0 Moved the Qt support out of the sip module and into PyQt. This is
|
|
+ * such a dramatic change that there is no point in attempting to maintain
|
|
+ * backwards compatibility.
|
|
+ *
|
|
+ * 2.0 Added the td_flags field to the sipTypeDef structure.
|
|
+ * Added the first_child, sibling_next, sibling_prev and parent fields to
|
|
+ * the sipWrapper structure.
|
|
+ * Added the td_traverse and td_clear fields to the sipTypeDef structure.
|
|
+ * Added the em_api_minor field to the sipExportedModuleDef structure.
|
|
+ * Added sip_api_bad_operator_arg().
|
|
+ * Added sip_api_wrapper_check().
|
|
+ *
|
|
+ * 1.1 Added support for __pos__ and __abs__.
|
|
+ *
|
|
+ * 1.0 Removed all deprecated parts of the API.
|
|
+ * Removed the td_proxy field from the sipTypeDef structure.
|
|
+ * Removed the create proxy function from the 'q' and 'y' format
|
|
+ * characters to sip_api_parse_args().
|
|
+ * Removed sip_api_emit_to_slot().
|
|
+ * Reworked the enum related structures.
|
|
+ *
|
|
+ * 0.2 Added the 'H' format character to sip_api_parse_args().
|
|
+ *
|
|
+ * 0.1 Added sip_api_add_class_instance().
|
|
+ * Added the 't' format character to sip_api_parse_args().
|
|
+ * Deprecated the 'J' and 'K' format characters to sip_api_parse_result().
|
|
+ *
|
|
+ * 0.0 Original version.
|
|
+ */
|
|
+#define SIP_API_MAJOR_NR 12
|
|
+#define SIP_API_MINOR_NR 5
|
|
+
|
|
+
|
|
+/*
|
|
+ * Qt includes this typedef and its meta-object system explicitly converts
|
|
+ * types to uint. If these correspond to signal arguments then that conversion
|
|
+ * is exposed. Therefore SIP generates code that uses it. This definition is
|
|
+ * for the cases that SIP is generating non-Qt related bindings with compilers
|
|
+ * that don't include it themselves (i.e. MSVC).
|
|
+ */
|
|
+typedef unsigned int uint;
|
|
+
|
|
+
|
|
+/* Some Python compatibility stuff. */
|
|
+#if PY_VERSION_HEX >= 0x02050000
|
|
+
|
|
+#define SIP_SSIZE_T Py_ssize_t
|
|
+#define SIP_SSIZE_T_FORMAT "%zd"
|
|
+
|
|
+#define SIP_MLNAME_CAST(s) (s)
|
|
+#define SIP_MLDOC_CAST(s) (s)
|
|
+#define SIP_TPNAME_CAST(s) (s)
|
|
+
|
|
+#else
|
|
+
|
|
+#define SIP_SSIZE_T int
|
|
+#define SIP_SSIZE_T_FORMAT "%d"
|
|
+
|
|
+#define SIP_MLNAME_CAST(s) ((char *)(s))
|
|
+#define SIP_MLDOC_CAST(s) ((char *)(s))
|
|
+#define SIP_TPNAME_CAST(s) ((char *)(s))
|
|
+
|
|
+#endif
|
|
+
|
|
+#if PY_MAJOR_VERSION >= 3
|
|
+
|
|
+#define SIPLong_Check PyLong_Check
|
|
+#define SIPLong_FromLong PyLong_FromLong
|
|
+#define SIPLong_AsLong PyLong_AsLong
|
|
+
|
|
+#define SIPBytes_Check PyBytes_Check
|
|
+#define SIPBytes_FromString PyBytes_FromString
|
|
+#define SIPBytes_FromStringAndSize PyBytes_FromStringAndSize
|
|
+#define SIPBytes_AsString PyBytes_AsString
|
|
+#define SIPBytes_Size PyBytes_Size
|
|
+#define SIPBytes_AS_STRING PyBytes_AS_STRING
|
|
+#define SIPBytes_GET_SIZE PyBytes_GET_SIZE
|
|
+
|
|
+#if PY_MINOR_VERSION >= 1
|
|
+#define SIP_USE_PYCAPSULE
|
|
+#endif
|
|
+
|
|
+#if PY_MINOR_VERSION < 2
|
|
+#define SIP_SUPPORT_PYCOBJECT
|
|
+#endif
|
|
+
|
|
+#else
|
|
+
|
|
+#define SIPLong_Check PyInt_Check
|
|
+#define SIPLong_FromLong PyInt_FromLong
|
|
+#define SIPLong_AsLong PyInt_AsLong
|
|
+
|
|
+#define SIPBytes_Check PyString_Check
|
|
+#define SIPBytes_FromString PyString_FromString
|
|
+#define SIPBytes_FromStringAndSize PyString_FromStringAndSize
|
|
+#define SIPBytes_AsString PyString_AsString
|
|
+#define SIPBytes_Size PyString_Size
|
|
+#define SIPBytes_AS_STRING PyString_AS_STRING
|
|
+#define SIPBytes_GET_SIZE PyString_GET_SIZE
|
|
+
|
|
+#if PY_MINOR_VERSION >= 7
|
|
+#define SIP_USE_PYCAPSULE
|
|
+#endif
|
|
+
|
|
+#define SIP_SUPPORT_PYCOBJECT
|
|
+
|
|
+#endif
|
|
+
|
|
+#if !defined(Py_REFCNT)
|
|
+#define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
|
|
+#endif
|
|
+
|
|
+#if !defined(Py_TYPE)
|
|
+#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
|
|
+#endif
|
|
+
|
|
+#if !defined(PyVarObject_HEAD_INIT)
|
|
+#define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size,
|
|
+#endif
|
|
+
|
|
+
|
|
+#if defined(SIP_USE_PYCAPSULE)
|
|
+#define SIPCapsule_FromVoidPtr(p, n) PyCapsule_New((p), (n), NULL)
|
|
+#define SIPCapsule_AsVoidPtr(p, n) PyCapsule_GetPointer((p), (n))
|
|
+#else
|
|
+#define SIPCapsule_FromVoidPtr(p, n) sipConvertFromVoidPtr((p))
|
|
+#define SIPCapsule_AsVoidPtr(p, n) sipConvertToVoidPtr((p))
|
|
+#endif
|
|
+
|
|
+
|
|
+/*
|
|
+ * The mask that can be passed to sipTrace().
|
|
+ */
|
|
+#define SIP_TRACE_CATCHERS 0x0001
|
|
+#define SIP_TRACE_CTORS 0x0002
|
|
+#define SIP_TRACE_DTORS 0x0004
|
|
+#define SIP_TRACE_INITS 0x0008
|
|
+#define SIP_TRACE_DEALLOCS 0x0010
|
|
+#define SIP_TRACE_METHODS 0x0020
|
|
+
|
|
+
|
|
+/*
|
|
+ * Hide some thread dependent stuff.
|
|
+ */
|
|
+#ifdef WITH_THREAD
|
|
+typedef PyGILState_STATE sip_gilstate_t;
|
|
+#define SIP_RELEASE_GIL(gs) PyGILState_Release(gs);
|
|
+#define SIP_BLOCK_THREADS {PyGILState_STATE sipGIL = PyGILState_Ensure();
|
|
+#define SIP_UNBLOCK_THREADS PyGILState_Release(sipGIL);}
|
|
+#else
|
|
+typedef int sip_gilstate_t;
|
|
+#define SIP_RELEASE_GIL(gs)
|
|
+#define SIP_BLOCK_THREADS
|
|
+#define SIP_UNBLOCK_THREADS
|
|
+#endif
|
|
+
|
|
+
|
|
+/*
|
|
+ * Forward declarations of types.
|
|
+ */
|
|
+struct _sipBufferDef;
|
|
+typedef struct _sipBufferDef sipBufferDef;
|
|
+
|
|
+struct _sipBufferInfoDef;
|
|
+typedef struct _sipBufferInfoDef sipBufferInfoDef;
|
|
+
|
|
+struct _sipCFunctionDef;
|
|
+typedef struct _sipCFunctionDef sipCFunctionDef;
|
|
+
|
|
+struct _sipDateDef;
|
|
+typedef struct _sipDateDef sipDateDef;
|
|
+
|
|
+struct _sipEnumTypeObject;
|
|
+typedef struct _sipEnumTypeObject sipEnumTypeObject;
|
|
+
|
|
+struct _sipMethodDef;
|
|
+typedef struct _sipMethodDef sipMethodDef;
|
|
+
|
|
+struct _sipSimpleWrapper;
|
|
+typedef struct _sipSimpleWrapper sipSimpleWrapper;
|
|
+
|
|
+struct _sipTimeDef;
|
|
+typedef struct _sipTimeDef sipTimeDef;
|
|
+
|
|
+struct _sipTypeDef;
|
|
+typedef struct _sipTypeDef sipTypeDef;
|
|
+
|
|
+struct _sipWrapperType;
|
|
+typedef struct _sipWrapperType sipWrapperType;
|
|
+
|
|
+struct _sipWrapper;
|
|
+typedef struct _sipWrapper sipWrapper;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The different events a handler can be registered for.
|
|
+ */
|
|
+typedef enum
|
|
+{
|
|
+ sipEventWrappedInstance, /* After wrapping a C/C++ instance. */
|
|
+ sipEventCollectingWrapper, /* When garbage collecting a wrapper object. */
|
|
+ sipEventNrEvents
|
|
+} sipEventType;
|
|
+
|
|
+/*
|
|
+ * The event handlers.
|
|
+ */
|
|
+typedef void (*sipWrappedInstanceEventHandler)(void *sipCpp);
|
|
+typedef void (*sipCollectingWrapperEventHandler)(sipSimpleWrapper *sipSelf);
|
|
+
|
|
+
|
|
+/*
|
|
+ * The operation an access function is being asked to perform.
|
|
+ */
|
|
+typedef enum
|
|
+{
|
|
+ UnguardedPointer, /* Return the unguarded pointer. */
|
|
+ GuardedPointer, /* Return the guarded pointer, ie. 0 if it has gone. */
|
|
+ ReleaseGuard /* Release the guard, if any. */
|
|
+} AccessFuncOp;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Some convenient function pointers.
|
|
+ */
|
|
+typedef void *(*sipInitFunc)(sipSimpleWrapper *, PyObject *, PyObject *,
|
|
+ PyObject **, PyObject **, PyObject **);
|
|
+typedef int (*sipFinalFunc)(PyObject *, void *, PyObject *, PyObject **);
|
|
+typedef void *(*sipAccessFunc)(sipSimpleWrapper *, AccessFuncOp);
|
|
+typedef int (*sipTraverseFunc)(void *, visitproc, void *);
|
|
+typedef int (*sipClearFunc)(void *);
|
|
+#if PY_MAJOR_VERSION >= 3
|
|
+typedef int (*sipGetBufferFuncLimited)(PyObject *, void *, sipBufferDef *);
|
|
+typedef void (*sipReleaseBufferFuncLimited)(PyObject *, void *);
|
|
+#if !defined(Py_LIMITED_API)
|
|
+typedef int (*sipGetBufferFunc)(PyObject *, void *, Py_buffer *, int);
|
|
+typedef void (*sipReleaseBufferFunc)(PyObject *, void *, Py_buffer *);
|
|
+#endif
|
|
+#else
|
|
+typedef SIP_SSIZE_T (*sipBufferFunc)(PyObject *, void *, SIP_SSIZE_T, void **);
|
|
+typedef SIP_SSIZE_T (*sipSegCountFunc)(PyObject *, void *, SIP_SSIZE_T *);
|
|
+#endif
|
|
+typedef void (*sipDeallocFunc)(sipSimpleWrapper *);
|
|
+typedef void *(*sipCastFunc)(void *, const sipTypeDef *);
|
|
+typedef const sipTypeDef *(*sipSubClassConvertFunc)(void **);
|
|
+typedef int (*sipConvertToFunc)(PyObject *, void **, int *, PyObject *);
|
|
+typedef PyObject *(*sipConvertFromFunc)(void *, PyObject *);
|
|
+typedef void (*sipVirtErrorHandlerFunc)(sipSimpleWrapper *, sip_gilstate_t);
|
|
+typedef int (*sipVirtHandlerFunc)(sip_gilstate_t, sipVirtErrorHandlerFunc,
|
|
+ sipSimpleWrapper *, PyObject *, ...);
|
|
+typedef void (*sipAssignFunc)(void *, SIP_SSIZE_T, void *);
|
|
+typedef void *(*sipArrayFunc)(SIP_SSIZE_T);
|
|
+typedef void *(*sipCopyFunc)(const void *, SIP_SSIZE_T);
|
|
+typedef void (*sipReleaseFunc)(void *, int);
|
|
+typedef PyObject *(*sipPickleFunc)(void *);
|
|
+typedef int (*sipAttrGetterFunc)(const sipTypeDef *, PyObject *);
|
|
+typedef PyObject *(*sipVariableGetterFunc)(void *, PyObject *, PyObject *);
|
|
+typedef int (*sipVariableSetterFunc)(void *, PyObject *, PyObject *);
|
|
+typedef void *(*sipProxyResolverFunc)(void *);
|
|
+typedef int (*sipNewUserTypeFunc)(sipWrapperType *);
|
|
+
|
|
+
|
|
+#if !defined(Py_LIMITED_API) || PY_VERSION_HEX < 0x03020000
|
|
+/*
|
|
+ * The meta-type of a wrapper type.
|
|
+ */
|
|
+struct _sipWrapperType {
|
|
+ /*
|
|
+ * The super-metatype. This must be first in the structure so that it can
|
|
+ * be cast to a PyTypeObject *.
|
|
+ */
|
|
+ PyHeapTypeObject super;
|
|
+
|
|
+ /* Set if the type is a user implemented Python sub-class. */
|
|
+ unsigned wt_user_type : 1;
|
|
+
|
|
+ /* Set if the type's dictionary contains all lazy attributes. */
|
|
+ unsigned wt_dict_complete : 1;
|
|
+
|
|
+ /* Unused and available for future use. */
|
|
+ unsigned wt_unused : 30;
|
|
+
|
|
+ /* The generated type structure. */
|
|
+ sipTypeDef *wt_td;
|
|
+
|
|
+ /* The list of init extenders. */
|
|
+ struct _sipInitExtenderDef *wt_iextend;
|
|
+
|
|
+ /* The handler called whenever a new user type has been created. */
|
|
+ sipNewUserTypeFunc wt_new_user_type_handler;
|
|
+
|
|
+ /*
|
|
+ * For the user to use. Note that any data structure will leak if the
|
|
+ * type is garbage collected.
|
|
+ */
|
|
+ void *wt_user_data;
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The type of a simple C/C++ wrapper object.
|
|
+ */
|
|
+struct _sipSimpleWrapper {
|
|
+ PyObject_HEAD
|
|
+
|
|
+ /*
|
|
+ * The data, initially a pointer to the C/C++ object, as interpreted by the
|
|
+ * access function.
|
|
+ */
|
|
+ void *data;
|
|
+
|
|
+ /* The optional access function. */
|
|
+ sipAccessFunc access_func;
|
|
+
|
|
+ /* Object flags. */
|
|
+ unsigned sw_flags;
|
|
+
|
|
+ /* The optional dictionary of extra references keyed by argument number. */
|
|
+ PyObject *extra_refs;
|
|
+
|
|
+ /* For the user to use. */
|
|
+ PyObject *user;
|
|
+
|
|
+ /* The instance dictionary. */
|
|
+ PyObject *dict;
|
|
+
|
|
+ /* The main instance if this is a mixin. */
|
|
+ PyObject *mixin_main;
|
|
+
|
|
+ /* Next object at this address. */
|
|
+ struct _sipSimpleWrapper *next;
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The type of a C/C++ wrapper object that supports parent/child relationships.
|
|
+ */
|
|
+struct _sipWrapper {
|
|
+ /* The super-type. */
|
|
+ sipSimpleWrapper super;
|
|
+
|
|
+ /* First child object. */
|
|
+ struct _sipWrapper *first_child;
|
|
+
|
|
+ /* Next sibling. */
|
|
+ struct _sipWrapper *sibling_next;
|
|
+
|
|
+ /* Previous sibling. */
|
|
+ struct _sipWrapper *sibling_prev;
|
|
+
|
|
+ /* Owning object. */
|
|
+ struct _sipWrapper *parent;
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The meta-type of an enum type. (This is exposed only to support the
|
|
+ * deprecated sipConvertFromNamedEnum() macro.)
|
|
+ */
|
|
+struct _sipEnumTypeObject {
|
|
+ /*
|
|
+ * The super-metatype. This must be first in the structure so that it can
|
|
+ * be cast to a PyTypeObject *.
|
|
+ */
|
|
+ PyHeapTypeObject super;
|
|
+
|
|
+ /* The generated type structure. */
|
|
+ struct _sipTypeDef *type;
|
|
+};
|
|
+#endif
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing an encoded type ID.
|
|
+ */
|
|
+typedef struct _sipEncodedTypeDef {
|
|
+ /* The type number. */
|
|
+ unsigned sc_type : 16;
|
|
+
|
|
+ /* The module number (255 for this one). */
|
|
+ unsigned sc_module : 8;
|
|
+
|
|
+ /* A context specific flag. */
|
|
+ unsigned sc_flag : 1;
|
|
+} sipEncodedTypeDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing an enum member.
|
|
+ */
|
|
+typedef struct _sipEnumMemberDef {
|
|
+ /* The member name. */
|
|
+ const char *em_name;
|
|
+
|
|
+ /* The member value. */
|
|
+ int em_val;
|
|
+
|
|
+ /* The member enum, -ve if anonymous. */
|
|
+ int em_enum;
|
|
+} sipEnumMemberDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing static instances.
|
|
+ */
|
|
+typedef struct _sipInstancesDef {
|
|
+ /* The types. */
|
|
+ struct _sipTypeInstanceDef *id_type;
|
|
+
|
|
+ /* The void *. */
|
|
+ struct _sipVoidPtrInstanceDef *id_voidp;
|
|
+
|
|
+ /* The chars. */
|
|
+ struct _sipCharInstanceDef *id_char;
|
|
+
|
|
+ /* The strings. */
|
|
+ struct _sipStringInstanceDef *id_string;
|
|
+
|
|
+ /* The ints. */
|
|
+ struct _sipIntInstanceDef *id_int;
|
|
+
|
|
+ /* The longs. */
|
|
+ struct _sipLongInstanceDef *id_long;
|
|
+
|
|
+ /* The unsigned longs. */
|
|
+ struct _sipUnsignedLongInstanceDef *id_ulong;
|
|
+
|
|
+ /* The long longs. */
|
|
+ struct _sipLongLongInstanceDef *id_llong;
|
|
+
|
|
+ /* The unsigned long longs. */
|
|
+ struct _sipUnsignedLongLongInstanceDef *id_ullong;
|
|
+
|
|
+ /* The doubles. */
|
|
+ struct _sipDoubleInstanceDef *id_double;
|
|
+} sipInstancesDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a type initialiser extender.
|
|
+ */
|
|
+typedef struct _sipInitExtenderDef {
|
|
+ /* The API version range index. */
|
|
+ int ie_api_range;
|
|
+
|
|
+ /* The extender function. */
|
|
+ sipInitFunc ie_extender;
|
|
+
|
|
+ /* The class being extended. */
|
|
+ sipEncodedTypeDef ie_class;
|
|
+
|
|
+ /* The next extender for this class. */
|
|
+ struct _sipInitExtenderDef *ie_next;
|
|
+} sipInitExtenderDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a sub-class convertor.
|
|
+ */
|
|
+typedef struct _sipSubClassConvertorDef {
|
|
+ /* The convertor. */
|
|
+ sipSubClassConvertFunc scc_convertor;
|
|
+
|
|
+ /* The encoded base type. */
|
|
+ sipEncodedTypeDef scc_base;
|
|
+
|
|
+ /* The base type. */
|
|
+ struct _sipTypeDef *scc_basetype;
|
|
+} sipSubClassConvertorDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The structure populated by %BIGetBufferCode when the limited API is enabled.
|
|
+ */
|
|
+struct _sipBufferDef {
|
|
+ /* The address of the buffer. */
|
|
+ void *bd_buffer;
|
|
+
|
|
+ /* The length of the buffer. */
|
|
+ SIP_SSIZE_T bd_length;
|
|
+
|
|
+ /* Set if the buffer is read-only. */
|
|
+ int bd_readonly;
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The structure describing a Python buffer.
|
|
+ */
|
|
+struct _sipBufferInfoDef {
|
|
+ /* This is internal to sip. */
|
|
+ void *bi_internal;
|
|
+
|
|
+ /* The address of the buffer. */
|
|
+ void *bi_buf;
|
|
+
|
|
+ /* A reference to the object implementing the buffer interface. */
|
|
+ PyObject *bi_obj;
|
|
+
|
|
+ /* The length of the buffer in bytes. */
|
|
+ SIP_SSIZE_T bi_len;
|
|
+
|
|
+ /* The number of dimensions. */
|
|
+ int bi_ndim;
|
|
+
|
|
+ /* The format of each element of the buffer. */
|
|
+ char *bi_format;
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The structure describing a Python C function.
|
|
+ */
|
|
+struct _sipCFunctionDef {
|
|
+ /* The C function. */
|
|
+ PyMethodDef *cf_function;
|
|
+
|
|
+ /* The optional bound object. */
|
|
+ PyObject *cf_self;
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The structure describing a Python method.
|
|
+ */
|
|
+struct _sipMethodDef {
|
|
+ /* The function that implements the method. */
|
|
+ PyObject *pm_function;
|
|
+
|
|
+ /* The bound object. */
|
|
+ PyObject *pm_self;
|
|
+
|
|
+#if PY_MAJOR_VERSION < 3
|
|
+ /* The class. */
|
|
+ PyObject *pm_class;
|
|
+#endif
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The structure describing a Python date.
|
|
+ */
|
|
+struct _sipDateDef {
|
|
+ /* The year. */
|
|
+ int pd_year;
|
|
+
|
|
+ /* The month (1-12). */
|
|
+ int pd_month;
|
|
+
|
|
+ /* The day (1-31). */
|
|
+ int pd_day;
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The structure describing a Python time.
|
|
+ */
|
|
+struct _sipTimeDef {
|
|
+ /* The hour (0-23). */
|
|
+ int pt_hour;
|
|
+
|
|
+ /* The minute (0-59). */
|
|
+ int pt_minute;
|
|
+
|
|
+ /* The second (0-59). */
|
|
+ int pt_second;
|
|
+
|
|
+ /* The microsecond (0-999999). */
|
|
+ int pt_microsecond;
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The different error states of handwritten code.
|
|
+ */
|
|
+typedef enum {
|
|
+ sipErrorNone, /* There is no error. */
|
|
+ sipErrorFail, /* The error is a failure. */
|
|
+ sipErrorContinue /* It may not apply if a later operation succeeds. */
|
|
+} sipErrorState;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The different Python slot types. New slots must be added to the end,
|
|
+ * otherwise the major version of the internal ABI must be changed.
|
|
+ */
|
|
+typedef enum {
|
|
+ str_slot, /* __str__ */
|
|
+ int_slot, /* __int__ */
|
|
+#if PY_MAJOR_VERSION < 3
|
|
+ long_slot, /* __long__ */
|
|
+#endif
|
|
+ float_slot, /* __float__ */
|
|
+ len_slot, /* __len__ */
|
|
+ contains_slot, /* __contains__ */
|
|
+ add_slot, /* __add__ for number */
|
|
+ concat_slot, /* __add__ for sequence types */
|
|
+ sub_slot, /* __sub__ */
|
|
+ mul_slot, /* __mul__ for number types */
|
|
+ repeat_slot, /* __mul__ for sequence types */
|
|
+ div_slot, /* __div__ */
|
|
+ mod_slot, /* __mod__ */
|
|
+ floordiv_slot, /* __floordiv__ */
|
|
+ truediv_slot, /* __truediv__ */
|
|
+ and_slot, /* __and__ */
|
|
+ or_slot, /* __or__ */
|
|
+ xor_slot, /* __xor__ */
|
|
+ lshift_slot, /* __lshift__ */
|
|
+ rshift_slot, /* __rshift__ */
|
|
+ iadd_slot, /* __iadd__ for number types */
|
|
+ iconcat_slot, /* __iadd__ for sequence types */
|
|
+ isub_slot, /* __isub__ */
|
|
+ imul_slot, /* __imul__ for number types */
|
|
+ irepeat_slot, /* __imul__ for sequence types */
|
|
+ idiv_slot, /* __idiv__ */
|
|
+ imod_slot, /* __imod__ */
|
|
+ ifloordiv_slot, /* __ifloordiv__ */
|
|
+ itruediv_slot, /* __itruediv__ */
|
|
+ iand_slot, /* __iand__ */
|
|
+ ior_slot, /* __ior__ */
|
|
+ ixor_slot, /* __ixor__ */
|
|
+ ilshift_slot, /* __ilshift__ */
|
|
+ irshift_slot, /* __irshift__ */
|
|
+ invert_slot, /* __invert__ */
|
|
+ call_slot, /* __call__ */
|
|
+ getitem_slot, /* __getitem__ */
|
|
+ setitem_slot, /* __setitem__ */
|
|
+ delitem_slot, /* __delitem__ */
|
|
+ lt_slot, /* __lt__ */
|
|
+ le_slot, /* __le__ */
|
|
+ eq_slot, /* __eq__ */
|
|
+ ne_slot, /* __ne__ */
|
|
+ gt_slot, /* __gt__ */
|
|
+ ge_slot, /* __ge__ */
|
|
+#if PY_MAJOR_VERSION < 3
|
|
+ cmp_slot, /* __cmp__ */
|
|
+#endif
|
|
+ bool_slot, /* __bool__, __nonzero__ */
|
|
+ neg_slot, /* __neg__ */
|
|
+ repr_slot, /* __repr__ */
|
|
+ hash_slot, /* __hash__ */
|
|
+ pos_slot, /* __pos__ */
|
|
+ abs_slot, /* __abs__ */
|
|
+#if PY_VERSION_HEX >= 0x02050000
|
|
+ index_slot, /* __index__ */
|
|
+#endif
|
|
+ iter_slot, /* __iter__ */
|
|
+ next_slot, /* __next__ */
|
|
+ setattr_slot, /* __setattr__, __delattr__ */
|
|
+ matmul_slot, /* __matmul__ (for Python v3.5 and later) */
|
|
+ imatmul_slot, /* __imatmul__ (for Python v3.5 and later) */
|
|
+ await_slot, /* __await__ (for Python v3.5 and later) */
|
|
+ aiter_slot, /* __aiter__ (for Python v3.5 and later) */
|
|
+ anext_slot, /* __anext__ (for Python v3.5 and later) */
|
|
+} sipPySlotType;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a Python slot function.
|
|
+ */
|
|
+typedef struct _sipPySlotDef {
|
|
+ /* The function. */
|
|
+ void *psd_func;
|
|
+
|
|
+ /* The type. */
|
|
+ sipPySlotType psd_type;
|
|
+} sipPySlotDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a Python slot extender.
|
|
+ */
|
|
+typedef struct _sipPySlotExtenderDef {
|
|
+ /* The function. */
|
|
+ void *pse_func;
|
|
+
|
|
+ /* The type. */
|
|
+ sipPySlotType pse_type;
|
|
+
|
|
+ /* The encoded class. */
|
|
+ sipEncodedTypeDef pse_class;
|
|
+} sipPySlotExtenderDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a typedef.
|
|
+ */
|
|
+typedef struct _sipTypedefDef {
|
|
+ /* The typedef name. */
|
|
+ const char *tdd_name;
|
|
+
|
|
+ /* The typedef value. */
|
|
+ const char *tdd_type_name;
|
|
+} sipTypedefDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a variable or property.
|
|
+ */
|
|
+
|
|
+typedef enum
|
|
+{
|
|
+ PropertyVariable, /* A property. */
|
|
+ InstanceVariable, /* An instance variable. */
|
|
+ ClassVariable /* A class (i.e. static) variable. */
|
|
+} sipVariableType;
|
|
+
|
|
+typedef struct _sipVariableDef {
|
|
+ /* The type of variable. */
|
|
+ sipVariableType vd_type;
|
|
+
|
|
+ /* The name. */
|
|
+ const char *vd_name;
|
|
+
|
|
+ /*
|
|
+ * The getter. If this is a variable (rather than a property) then the
|
|
+ * actual type is sipVariableGetterFunc.
|
|
+ */
|
|
+ PyMethodDef *vd_getter;
|
|
+
|
|
+ /*
|
|
+ * The setter. If this is a variable (rather than a property) then the
|
|
+ * actual type is sipVariableSetterFunc. It is NULL if the property cannot
|
|
+ * be set or the variable is const.
|
|
+ */
|
|
+ PyMethodDef *vd_setter;
|
|
+
|
|
+ /* The property deleter. */
|
|
+ PyMethodDef *vd_deleter;
|
|
+
|
|
+ /* The docstring. */
|
|
+ const char *vd_docstring;
|
|
+} sipVariableDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a type, either a C++ class (or C struct), a C++
|
|
+ * namespace, a mapped type or a named enum.
|
|
+ */
|
|
+struct _sipTypeDef {
|
|
+ /* The version range index, -1 if the type isn't versioned. */
|
|
+ int td_version;
|
|
+
|
|
+ /* The next version of this type. */
|
|
+ struct _sipTypeDef *td_next_version;
|
|
+
|
|
+ /*
|
|
+ * The module, 0 if the type hasn't been initialised.
|
|
+ */
|
|
+ struct _sipExportedModuleDef *td_module;
|
|
+
|
|
+ /* Type flags, see the sipType*() macros. */
|
|
+ int td_flags;
|
|
+
|
|
+ /* The C/C++ name of the type. */
|
|
+ int td_cname;
|
|
+
|
|
+ /*
|
|
+ * The Python type object. This needs to be a union until we remove the
|
|
+ * deprecated sipClass_* macros.
|
|
+ */
|
|
+ union {
|
|
+ PyTypeObject *td_py_type;
|
|
+ sipWrapperType *td_wrapper_type;
|
|
+ } u;
|
|
+
|
|
+ /* Any additional fixed data generated by a plugin. */
|
|
+ void *td_plugin_data;
|
|
+};
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a container (ie. a class, namespace or a mapped
|
|
+ * type).
|
|
+ */
|
|
+typedef struct _sipContainerDef {
|
|
+ /*
|
|
+ * The Python name of the type, -1 if this is a namespace extender (in the
|
|
+ * context of a class) or doesn't require a namespace (in the context of a
|
|
+ * mapped type). */
|
|
+ int cod_name;
|
|
+
|
|
+ /*
|
|
+ * The scoping type or the namespace this is extending if it is a namespace
|
|
+ * extender.
|
|
+ */
|
|
+ sipEncodedTypeDef cod_scope;
|
|
+
|
|
+ /* The number of lazy methods. */
|
|
+ int cod_nrmethods;
|
|
+
|
|
+ /* The table of lazy methods. */
|
|
+ PyMethodDef *cod_methods;
|
|
+
|
|
+ /* The number of lazy enum members. */
|
|
+ int cod_nrenummembers;
|
|
+
|
|
+ /* The table of lazy enum members. */
|
|
+ sipEnumMemberDef *cod_enummembers;
|
|
+
|
|
+ /* The number of variables. */
|
|
+ int cod_nrvariables;
|
|
+
|
|
+ /* The table of variables. */
|
|
+ sipVariableDef *cod_variables;
|
|
+
|
|
+ /* The static instances. */
|
|
+ sipInstancesDef cod_instances;
|
|
+} sipContainerDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a C++ class (or C struct) or a C++ namespace.
|
|
+ */
|
|
+typedef struct _sipClassTypeDef {
|
|
+ /* The base type information. */
|
|
+ sipTypeDef ctd_base;
|
|
+
|
|
+ /* The container information. */
|
|
+ sipContainerDef ctd_container;
|
|
+
|
|
+ /* The docstring. */
|
|
+ const char *ctd_docstring;
|
|
+
|
|
+ /*
|
|
+ * The meta-type name, -1 to use the meta-type of the first super-type
|
|
+ * (normally sipWrapperType).
|
|
+ */
|
|
+ int ctd_metatype;
|
|
+
|
|
+ /* The super-type name, -1 to use sipWrapper. */
|
|
+ int ctd_supertype;
|
|
+
|
|
+ /* The super-types. */
|
|
+ sipEncodedTypeDef *ctd_supers;
|
|
+
|
|
+ /* The table of Python slots. */
|
|
+ sipPySlotDef *ctd_pyslots;
|
|
+
|
|
+ /* The initialisation function. */
|
|
+ sipInitFunc ctd_init;
|
|
+
|
|
+ /* The traverse function. */
|
|
+ sipTraverseFunc ctd_traverse;
|
|
+
|
|
+ /* The clear function. */
|
|
+ sipClearFunc ctd_clear;
|
|
+
|
|
+#if PY_MAJOR_VERSION >= 3
|
|
+ /* The get buffer function. */
|
|
+#if defined(Py_LIMITED_API)
|
|
+ sipGetBufferFuncLimited ctd_getbuffer;
|
|
+#else
|
|
+ sipGetBufferFunc ctd_getbuffer;
|
|
+#endif
|
|
+
|
|
+ /* The release buffer function. */
|
|
+#if defined(Py_LIMITED_API)
|
|
+ sipReleaseBufferFuncLimited ctd_releasebuffer;
|
|
+#else
|
|
+ sipReleaseBufferFunc ctd_releasebuffer;
|
|
+#endif
|
|
+#else
|
|
+ /* The read buffer function. */
|
|
+ sipBufferFunc ctd_readbuffer;
|
|
+
|
|
+ /* The write buffer function. */
|
|
+ sipBufferFunc ctd_writebuffer;
|
|
+
|
|
+ /* The segment count function. */
|
|
+ sipSegCountFunc ctd_segcount;
|
|
+
|
|
+ /* The char buffer function. */
|
|
+ sipBufferFunc ctd_charbuffer;
|
|
+#endif
|
|
+
|
|
+ /* The deallocation function. */
|
|
+ sipDeallocFunc ctd_dealloc;
|
|
+
|
|
+ /* The optional assignment function. */
|
|
+ sipAssignFunc ctd_assign;
|
|
+
|
|
+ /* The optional array allocation function. */
|
|
+ sipArrayFunc ctd_array;
|
|
+
|
|
+ /* The optional copy function. */
|
|
+ sipCopyFunc ctd_copy;
|
|
+
|
|
+ /* The release function, 0 if a C struct. */
|
|
+ sipReleaseFunc ctd_release;
|
|
+
|
|
+ /* The cast function, 0 if a C struct. */
|
|
+ sipCastFunc ctd_cast;
|
|
+
|
|
+ /* The optional convert to function. */
|
|
+ sipConvertToFunc ctd_cto;
|
|
+
|
|
+ /* The optional convert from function. */
|
|
+ sipConvertFromFunc ctd_cfrom;
|
|
+
|
|
+ /* The next namespace extender. */
|
|
+ struct _sipClassTypeDef *ctd_nsextender;
|
|
+
|
|
+ /* The pickle function. */
|
|
+ sipPickleFunc ctd_pickle;
|
|
+
|
|
+ /* The finalisation function. */
|
|
+ sipFinalFunc ctd_final;
|
|
+
|
|
+ /* The mixin initialisation function. */
|
|
+ initproc ctd_init_mixin;
|
|
+} sipClassTypeDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a mapped type.
|
|
+ */
|
|
+typedef struct _sipMappedTypeDef {
|
|
+ /* The base type information. */
|
|
+ sipTypeDef mtd_base;
|
|
+
|
|
+ /* The container information. */
|
|
+ sipContainerDef mtd_container;
|
|
+
|
|
+ /* The optional assignment function. */
|
|
+ sipAssignFunc mtd_assign;
|
|
+
|
|
+ /* The optional array allocation function. */
|
|
+ sipArrayFunc mtd_array;
|
|
+
|
|
+ /* The optional copy function. */
|
|
+ sipCopyFunc mtd_copy;
|
|
+
|
|
+ /* The optional release function. */
|
|
+ sipReleaseFunc mtd_release;
|
|
+
|
|
+ /* The convert to function. */
|
|
+ sipConvertToFunc mtd_cto;
|
|
+
|
|
+ /* The convert from function. */
|
|
+ sipConvertFromFunc mtd_cfrom;
|
|
+} sipMappedTypeDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a named enum.
|
|
+ */
|
|
+typedef struct _sipEnumTypeDef {
|
|
+ /* The base type information. */
|
|
+ sipTypeDef etd_base;
|
|
+
|
|
+ /* The Python name of the enum. */
|
|
+ int etd_name;
|
|
+
|
|
+ /* The scoping type, -1 if it is defined at the module level. */
|
|
+ int etd_scope;
|
|
+
|
|
+ /* The Python slots. */
|
|
+ struct _sipPySlotDef *etd_pyslots;
|
|
+} sipEnumTypeDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing an external type.
|
|
+ */
|
|
+typedef struct _sipExternalTypeDef {
|
|
+ /* The index into the type table. */
|
|
+ int et_nr;
|
|
+
|
|
+ /* The name of the type. */
|
|
+ const char *et_name;
|
|
+} sipExternalTypeDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a mapped class. This (and anything that uses it)
|
|
+ * is deprecated.
|
|
+ */
|
|
+typedef sipTypeDef sipMappedType;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Defines an entry in the module specific list of delayed dtor calls.
|
|
+ */
|
|
+typedef struct _sipDelayedDtor {
|
|
+ /* The C/C++ instance. */
|
|
+ void *dd_ptr;
|
|
+
|
|
+ /* The class name. */
|
|
+ const char *dd_name;
|
|
+
|
|
+ /* Non-zero if dd_ptr is a derived class instance. */
|
|
+ int dd_isderived;
|
|
+
|
|
+ /* Next in the list. */
|
|
+ struct _sipDelayedDtor *dd_next;
|
|
+} sipDelayedDtor;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Defines an entry in the table of global functions all of whose overloads
|
|
+ * are versioned (so their names can't be automatically added to the module
|
|
+ * dictionary).
|
|
+ */
|
|
+typedef struct _sipVersionedFunctionDef {
|
|
+ /* The name, -1 marks the end of the table. */
|
|
+ int vf_name;
|
|
+
|
|
+ /* The function itself. */
|
|
+ PyCFunction vf_function;
|
|
+
|
|
+ /* The METH_* flags. */
|
|
+ int vf_flags;
|
|
+
|
|
+ /* The docstring. */
|
|
+ const char *vf_docstring;
|
|
+
|
|
+ /* The API version range index. */
|
|
+ int vf_api_range;
|
|
+} sipVersionedFunctionDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Defines a virtual error handler.
|
|
+ */
|
|
+typedef struct _sipVirtErrorHandlerDef {
|
|
+ /* The name of the handler. */
|
|
+ const char *veh_name;
|
|
+
|
|
+ /* The handler function. */
|
|
+ sipVirtErrorHandlerFunc veh_handler;
|
|
+} sipVirtErrorHandlerDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Defines a type imported from another module.
|
|
+ */
|
|
+typedef union _sipImportedTypeDef {
|
|
+ /* The type name before the module is imported. */
|
|
+ const char *it_name;
|
|
+
|
|
+ /* The type after the module is imported. */
|
|
+ sipTypeDef *it_td;
|
|
+} sipImportedTypeDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Defines a virtual error handler imported from another module.
|
|
+ */
|
|
+typedef union _sipImportedVirtErrorHandlerDef {
|
|
+ /* The handler name before the module is imported. */
|
|
+ const char *iveh_name;
|
|
+
|
|
+ /* The handler after the module is imported. */
|
|
+ sipVirtErrorHandlerFunc iveh_handler;
|
|
+} sipImportedVirtErrorHandlerDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Defines an exception imported from another module.
|
|
+ */
|
|
+typedef union _sipImportedExceptionDef {
|
|
+ /* The exception name before the module is imported. */
|
|
+ const char *iexc_name;
|
|
+
|
|
+ /* The exception object after the module is imported. */
|
|
+ PyObject *iexc_object;
|
|
+} sipImportedExceptionDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing an imported module.
|
|
+ */
|
|
+typedef struct _sipImportedModuleDef {
|
|
+ /* The module name. */
|
|
+ const char *im_name;
|
|
+
|
|
+ /* The types imported from the module. */
|
|
+ sipImportedTypeDef *im_imported_types;
|
|
+
|
|
+ /* The virtual error handlers imported from the module. */
|
|
+ sipImportedVirtErrorHandlerDef *im_imported_veh;
|
|
+
|
|
+ /* The exceptions imported from the module. */
|
|
+ sipImportedExceptionDef *im_imported_exceptions;
|
|
+} sipImportedModuleDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The main client module structure.
|
|
+ */
|
|
+typedef struct _sipExportedModuleDef {
|
|
+ /* The next in the list. */
|
|
+ struct _sipExportedModuleDef *em_next;
|
|
+
|
|
+ /* The SIP API minor version number. */
|
|
+ unsigned em_api_minor;
|
|
+
|
|
+ /* The module name. */
|
|
+ int em_name;
|
|
+
|
|
+ /* The module name as an object. */
|
|
+ PyObject *em_nameobj;
|
|
+
|
|
+ /* The string pool. */
|
|
+ const char *em_strings;
|
|
+
|
|
+ /* The imported modules. */
|
|
+ sipImportedModuleDef *em_imports;
|
|
+
|
|
+ /* The optional Qt support API. */
|
|
+ struct _sipQtAPI *em_qt_api;
|
|
+
|
|
+ /* The number of types. */
|
|
+ int em_nrtypes;
|
|
+
|
|
+ /* The table of types. */
|
|
+ sipTypeDef **em_types;
|
|
+
|
|
+ /* The table of external types. */
|
|
+ sipExternalTypeDef *em_external;
|
|
+
|
|
+ /* The number of members in global enums. */
|
|
+ int em_nrenummembers;
|
|
+
|
|
+ /* The table of members in global enums. */
|
|
+ sipEnumMemberDef *em_enummembers;
|
|
+
|
|
+ /* The number of typedefs. */
|
|
+ int em_nrtypedefs;
|
|
+
|
|
+ /* The table of typedefs. */
|
|
+ sipTypedefDef *em_typedefs;
|
|
+
|
|
+ /* The table of virtual error handlers. */
|
|
+ sipVirtErrorHandlerDef *em_virterrorhandlers;
|
|
+
|
|
+ /* The sub-class convertors. */
|
|
+ sipSubClassConvertorDef *em_convertors;
|
|
+
|
|
+ /* The static instances. */
|
|
+ sipInstancesDef em_instances;
|
|
+
|
|
+ /* The license. */
|
|
+ struct _sipLicenseDef *em_license;
|
|
+
|
|
+ /* The table of exception types. */
|
|
+ PyObject **em_exceptions;
|
|
+
|
|
+ /* The table of Python slot extenders. */
|
|
+ sipPySlotExtenderDef *em_slotextend;
|
|
+
|
|
+ /* The table of initialiser extenders. */
|
|
+ sipInitExtenderDef *em_initextend;
|
|
+
|
|
+ /* The delayed dtor handler. */
|
|
+ void (*em_delayeddtors)(const sipDelayedDtor *);
|
|
+
|
|
+ /* The list of delayed dtors. */
|
|
+ sipDelayedDtor *em_ddlist;
|
|
+
|
|
+ /*
|
|
+ * The array of API version definitions. Each definition takes up 3
|
|
+ * elements. If the third element of a 3-tuple is negative then the first
|
|
+ * two elements define an API and its default version. All such
|
|
+ * definitions will appear at the end of the array. If the first element
|
|
+ * of a 3-tuple is negative then that is the last element of the array.
|
|
+ */
|
|
+ int *em_versions;
|
|
+
|
|
+ /* The optional table of versioned functions. */
|
|
+ sipVersionedFunctionDef *em_versioned_functions;
|
|
+} sipExportedModuleDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a license to be added to a dictionary.
|
|
+ */
|
|
+typedef struct _sipLicenseDef {
|
|
+ /* The type of license. */
|
|
+ const char *lc_type;
|
|
+
|
|
+ /* The licensee. */
|
|
+ const char *lc_licensee;
|
|
+
|
|
+ /* The timestamp. */
|
|
+ const char *lc_timestamp;
|
|
+
|
|
+ /* The signature. */
|
|
+ const char *lc_signature;
|
|
+} sipLicenseDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a void pointer instance to be added to a
|
|
+ * dictionary.
|
|
+ */
|
|
+typedef struct _sipVoidPtrInstanceDef {
|
|
+ /* The void pointer name. */
|
|
+ const char *vi_name;
|
|
+
|
|
+ /* The void pointer value. */
|
|
+ void *vi_val;
|
|
+} sipVoidPtrInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a char instance to be added to a dictionary.
|
|
+ */
|
|
+typedef struct _sipCharInstanceDef {
|
|
+ /* The char name. */
|
|
+ const char *ci_name;
|
|
+
|
|
+ /* The char value. */
|
|
+ char ci_val;
|
|
+
|
|
+ /* The encoding used, either 'A', 'L', '8' or 'N'. */
|
|
+ char ci_encoding;
|
|
+} sipCharInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a string instance to be added to a dictionary.
|
|
+ * This is also used as a hack to add (or fix) other types rather than add a
|
|
+ * new table type and so requiring a new major version of the API.
|
|
+ */
|
|
+typedef struct _sipStringInstanceDef {
|
|
+ /* The string name. */
|
|
+ const char *si_name;
|
|
+
|
|
+ /* The string value. */
|
|
+ const char *si_val;
|
|
+
|
|
+ /*
|
|
+ * The encoding used, either 'A', 'L', '8' or 'N'. 'w' and 'W' are also
|
|
+ * used to support the fix for wchar_t.
|
|
+ */
|
|
+ char si_encoding;
|
|
+} sipStringInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing an int instance to be added to a dictionary.
|
|
+ */
|
|
+typedef struct _sipIntInstanceDef {
|
|
+ /* The int name. */
|
|
+ const char *ii_name;
|
|
+
|
|
+ /* The int value. */
|
|
+ int ii_val;
|
|
+} sipIntInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a long instance to be added to a dictionary.
|
|
+ */
|
|
+typedef struct _sipLongInstanceDef {
|
|
+ /* The long name. */
|
|
+ const char *li_name;
|
|
+
|
|
+ /* The long value. */
|
|
+ long li_val;
|
|
+} sipLongInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing an unsigned long instance to be added to a
|
|
+ * dictionary.
|
|
+ */
|
|
+typedef struct _sipUnsignedLongInstanceDef {
|
|
+ /* The unsigned long name. */
|
|
+ const char *uli_name;
|
|
+
|
|
+ /* The unsigned long value. */
|
|
+ unsigned long uli_val;
|
|
+} sipUnsignedLongInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a long long instance to be added to a dictionary.
|
|
+ */
|
|
+typedef struct _sipLongLongInstanceDef {
|
|
+ /* The long long name. */
|
|
+ const char *lli_name;
|
|
+
|
|
+ /* The long long value. */
|
|
+#if defined(HAVE_LONG_LONG)
|
|
+ PY_LONG_LONG lli_val;
|
|
+#else
|
|
+ long lli_val;
|
|
+#endif
|
|
+} sipLongLongInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing an unsigned long long instance to be added to a
|
|
+ * dictionary.
|
|
+ */
|
|
+typedef struct _sipUnsignedLongLongInstanceDef {
|
|
+ /* The unsigned long long name. */
|
|
+ const char *ulli_name;
|
|
+
|
|
+ /* The unsigned long long value. */
|
|
+#if defined(HAVE_LONG_LONG)
|
|
+ unsigned PY_LONG_LONG ulli_val;
|
|
+#else
|
|
+ unsigned long ulli_val;
|
|
+#endif
|
|
+} sipUnsignedLongLongInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a double instance to be added to a dictionary.
|
|
+ */
|
|
+typedef struct _sipDoubleInstanceDef {
|
|
+ /* The double name. */
|
|
+ const char *di_name;
|
|
+
|
|
+ /* The double value. */
|
|
+ double di_val;
|
|
+} sipDoubleInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The information describing a class or enum instance to be added to a
|
|
+ * dictionary.
|
|
+ */
|
|
+typedef struct _sipTypeInstanceDef {
|
|
+ /* The type instance name. */
|
|
+ const char *ti_name;
|
|
+
|
|
+ /* The actual instance. */
|
|
+ void *ti_ptr;
|
|
+
|
|
+ /* A pointer to the generated type. */
|
|
+ struct _sipTypeDef **ti_type;
|
|
+
|
|
+ /* The wrapping flags. */
|
|
+ int ti_flags;
|
|
+} sipTypeInstanceDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Define a mapping between a wrapped type identified by a string and the
|
|
+ * corresponding Python type. This is deprecated.
|
|
+ */
|
|
+typedef struct _sipStringTypeClassMap {
|
|
+ /* The type as a string. */
|
|
+ const char *typeString;
|
|
+
|
|
+ /* A pointer to the Python type. */
|
|
+ struct _sipWrapperType **pyType;
|
|
+} sipStringTypeClassMap;
|
|
+
|
|
+
|
|
+/*
|
|
+ * Define a mapping between a wrapped type identified by an integer and the
|
|
+ * corresponding Python type. This is deprecated.
|
|
+ */
|
|
+typedef struct _sipIntTypeClassMap {
|
|
+ /* The type as an integer. */
|
|
+ int typeInt;
|
|
+
|
|
+ /* A pointer to the Python type. */
|
|
+ struct _sipWrapperType **pyType;
|
|
+} sipIntTypeClassMap;
|
|
+
|
|
+
|
|
+/*
|
|
+ * A Python method's component parts. This allows us to re-create the method
|
|
+ * without changing the reference counts of the components.
|
|
+ */
|
|
+typedef struct _sipPyMethod {
|
|
+ /* The function. */
|
|
+ PyObject *mfunc;
|
|
+
|
|
+ /* Self if it is a bound method. */
|
|
+ PyObject *mself;
|
|
+
|
|
+#if PY_MAJOR_VERSION < 3
|
|
+ /* The class. */
|
|
+ PyObject *mclass;
|
|
+#endif
|
|
+} sipPyMethod;
|
|
+
|
|
+
|
|
+/*
|
|
+ * A slot (in the Qt, rather than Python, sense).
|
|
+ */
|
|
+typedef struct _sipSlot {
|
|
+ /* Name if a Qt or Python signal. */
|
|
+ char *name;
|
|
+
|
|
+ /* Signal or Qt slot object. */
|
|
+ PyObject *pyobj;
|
|
+
|
|
+ /* Python slot method, pyobj is NULL. */
|
|
+ sipPyMethod meth;
|
|
+
|
|
+ /* A weak reference to the slot, Py_True if pyobj has an extra reference. */
|
|
+ PyObject *weakSlot;
|
|
+} sipSlot;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The API exported by the SIP module, ie. pointers to all the data and
|
|
+ * functions that can be used by generated code.
|
|
+ */
|
|
+typedef struct _sipAPIDef {
|
|
+ /*
|
|
+ * This must be the first entry and it's signature must not change so that
|
|
+ * version number mismatches can be detected and reported.
|
|
+ */
|
|
+ int (*api_export_module)(sipExportedModuleDef *client, unsigned api_major,
|
|
+ unsigned api_minor, void *unused);
|
|
+
|
|
+ /*
|
|
+ * The following are part of the public API.
|
|
+ */
|
|
+ PyTypeObject *api_simplewrapper_type;
|
|
+ PyTypeObject *api_wrapper_type;
|
|
+ PyTypeObject *api_wrappertype_type;
|
|
+ PyTypeObject *api_voidptr_type;
|
|
+
|
|
+ void (*api_bad_catcher_result)(PyObject *method);
|
|
+ void (*api_bad_length_for_slice)(SIP_SSIZE_T seqlen, SIP_SSIZE_T slicelen);
|
|
+ PyObject *(*api_build_result)(int *isErr, const char *fmt, ...);
|
|
+ PyObject *(*api_call_method)(int *isErr, PyObject *method, const char *fmt,
|
|
+ ...);
|
|
+ void (*api_call_procedure_method)(sip_gilstate_t, sipVirtErrorHandlerFunc,
|
|
+ sipSimpleWrapper *, PyObject *, const char *, ...);
|
|
+ PyObject *(*api_connect_rx)(PyObject *txObj, const char *sig,
|
|
+ PyObject *rxObj, const char *slot, int type);
|
|
+ SIP_SSIZE_T (*api_convert_from_sequence_index)(SIP_SSIZE_T idx,
|
|
+ SIP_SSIZE_T len);
|
|
+ int (*api_can_convert_to_type)(PyObject *pyObj, const sipTypeDef *td,
|
|
+ int flags);
|
|
+ void *(*api_convert_to_type)(PyObject *pyObj, const sipTypeDef *td,
|
|
+ PyObject *transferObj, int flags, int *statep, int *iserrp);
|
|
+ void *(*api_force_convert_to_type)(PyObject *pyObj, const sipTypeDef *td,
|
|
+ PyObject *transferObj, int flags, int *statep, int *iserrp);
|
|
+
|
|
+ /*
|
|
+ * The following are deprecated parts of the public API.
|
|
+ */
|
|
+ int (*api_can_convert_to_enum)(PyObject *pyObj, const sipTypeDef *td);
|
|
+
|
|
+ /*
|
|
+ * The following are part of the public API.
|
|
+ */
|
|
+ void (*api_release_type)(void *cpp, const sipTypeDef *td, int state);
|
|
+ PyObject *(*api_convert_from_type)(void *cpp, const sipTypeDef *td,
|
|
+ PyObject *transferObj);
|
|
+ PyObject *(*api_convert_from_new_type)(void *cpp, const sipTypeDef *td,
|
|
+ PyObject *transferObj);
|
|
+ PyObject *(*api_convert_from_enum)(int eval, const sipTypeDef *td);
|
|
+ int (*api_get_state)(PyObject *transferObj);
|
|
+ PyObject *(*api_disconnect_rx)(PyObject *txObj, const char *sig,
|
|
+ PyObject *rxObj, const char *slot);
|
|
+ void (*api_free)(void *mem);
|
|
+ PyObject *(*api_get_pyobject)(void *cppPtr, const sipTypeDef *td);
|
|
+ void *(*api_malloc)(size_t nbytes);
|
|
+ int (*api_parse_result)(int *isErr, PyObject *method, PyObject *res,
|
|
+ const char *fmt, ...);
|
|
+ void (*api_trace)(unsigned mask, const char *fmt, ...);
|
|
+ void (*api_transfer_back)(PyObject *self);
|
|
+ void (*api_transfer_to)(PyObject *self, PyObject *owner);
|
|
+ void (*api_transfer_break)(PyObject *self);
|
|
+ unsigned long (*api_long_as_unsigned_long)(PyObject *o);
|
|
+ PyObject *(*api_convert_from_void_ptr)(void *val);
|
|
+ PyObject *(*api_convert_from_const_void_ptr)(const void *val);
|
|
+ PyObject *(*api_convert_from_void_ptr_and_size)(void *val,
|
|
+ SIP_SSIZE_T size);
|
|
+ PyObject *(*api_convert_from_const_void_ptr_and_size)(const void *val,
|
|
+ SIP_SSIZE_T size);
|
|
+ void *(*api_convert_to_void_ptr)(PyObject *obj);
|
|
+ int (*api_export_symbol)(const char *name, void *sym);
|
|
+ void *(*api_import_symbol)(const char *name);
|
|
+ const sipTypeDef *(*api_find_type)(const char *type);
|
|
+ int (*api_register_py_type)(PyTypeObject *type);
|
|
+ const sipTypeDef *(*api_type_from_py_type_object)(PyTypeObject *py_type);
|
|
+ const sipTypeDef *(*api_type_scope)(const sipTypeDef *td);
|
|
+ const char *(*api_resolve_typedef)(const char *name);
|
|
+ int (*api_register_attribute_getter)(const sipTypeDef *td,
|
|
+ sipAttrGetterFunc getter);
|
|
+ int (*api_is_api_enabled)(const char *name, int from, int to);
|
|
+ sipErrorState (*api_bad_callable_arg)(int arg_nr, PyObject *arg);
|
|
+ void *(*api_get_address)(struct _sipSimpleWrapper *w);
|
|
+ void (*api_set_destroy_on_exit)(int);
|
|
+ int (*api_enable_autoconversion)(const sipTypeDef *td, int enable);
|
|
+ void *(*api_get_mixin_address)(struct _sipSimpleWrapper *w,
|
|
+ const sipTypeDef *td);
|
|
+ PyObject *(*api_convert_from_new_pytype)(void *cpp, PyTypeObject *py_type,
|
|
+ sipWrapper *owner, sipSimpleWrapper **selfp, const char *fmt, ...);
|
|
+ PyObject *(*api_convert_to_typed_array)(void *data, const sipTypeDef *td,
|
|
+ const char *format, size_t stride, SIP_SSIZE_T len, int flags);
|
|
+ PyObject *(*api_convert_to_array)(void *data, const char *format,
|
|
+ SIP_SSIZE_T len, int flags);
|
|
+ int (*api_register_proxy_resolver)(const sipTypeDef *td,
|
|
+ sipProxyResolverFunc resolver);
|
|
+ PyInterpreterState *(*api_get_interpreter)();
|
|
+ sipNewUserTypeFunc (*api_set_new_user_type_handler)(const sipTypeDef *,
|
|
+ sipNewUserTypeFunc);
|
|
+ void (*api_set_type_user_data)(sipWrapperType *, void *);
|
|
+ void *(*api_get_type_user_data)(const sipWrapperType *);
|
|
+ PyObject *(*api_py_type_dict)(const PyTypeObject *);
|
|
+ const char *(*api_py_type_name)(const PyTypeObject *);
|
|
+ int (*api_get_method)(PyObject *, sipMethodDef *);
|
|
+ PyObject *(*api_from_method)(const sipMethodDef *);
|
|
+ int (*api_get_c_function)(PyObject *, sipCFunctionDef *);
|
|
+ int (*api_get_date)(PyObject *, sipDateDef *);
|
|
+ PyObject *(*api_from_date)(const sipDateDef *);
|
|
+ int (*api_get_datetime)(PyObject *, sipDateDef *, sipTimeDef *);
|
|
+ PyObject *(*api_from_datetime)(const sipDateDef *, const sipTimeDef *);
|
|
+ int (*api_get_time)(PyObject *, sipTimeDef *);
|
|
+ PyObject *(*api_from_time)(const sipTimeDef *);
|
|
+ int (*api_is_user_type)(const sipWrapperType *);
|
|
+ struct _frame *(*api_get_frame)(int);
|
|
+ int (*api_check_plugin_for_type)(const sipTypeDef *, const char *);
|
|
+ PyObject *(*api_unicode_new)(SIP_SSIZE_T, unsigned, int *, void **);
|
|
+ void (*api_unicode_write)(int, void *, int, unsigned);
|
|
+ void *(*api_unicode_data)(PyObject *, int *, SIP_SSIZE_T *);
|
|
+ int (*api_get_buffer_info)(PyObject *, sipBufferInfoDef *);
|
|
+ void (*api_release_buffer_info)(sipBufferInfoDef *);
|
|
+ PyObject *(*api_get_user_object)(const sipSimpleWrapper *);
|
|
+ void (*api_set_user_object)(sipSimpleWrapper *, PyObject *);
|
|
+
|
|
+ /*
|
|
+ * The following are not part of the public API.
|
|
+ */
|
|
+ int (*api_init_module)(sipExportedModuleDef *client, PyObject *mod_dict);
|
|
+ int (*api_parse_args)(PyObject **parseErrp, PyObject *sipArgs,
|
|
+ const char *fmt, ...);
|
|
+ int (*api_parse_pair)(PyObject **parseErrp, PyObject *arg0, PyObject *arg1,
|
|
+ const char *fmt, ...);
|
|
+
|
|
+ /*
|
|
+ * The following are part of the public API.
|
|
+ */
|
|
+ void (*api_instance_destroyed)(sipSimpleWrapper *sipSelf);
|
|
+
|
|
+ /*
|
|
+ * The following are not part of the public API.
|
|
+ */
|
|
+ void (*api_no_function)(PyObject *parseErr, const char *func,
|
|
+ const char *doc);
|
|
+ void (*api_no_method)(PyObject *parseErr, const char *scope,
|
|
+ const char *method, const char *doc);
|
|
+ void (*api_abstract_method)(const char *classname, const char *method);
|
|
+ void (*api_bad_class)(const char *classname);
|
|
+ void *(*api_get_cpp_ptr)(sipSimpleWrapper *w, const sipTypeDef *td);
|
|
+ void *(*api_get_complex_cpp_ptr)(sipSimpleWrapper *w);
|
|
+ PyObject *(*api_is_py_method)(sip_gilstate_t *gil, char *pymc,
|
|
+ sipSimpleWrapper *sipSelf, const char *cname, const char *mname);
|
|
+ void (*api_call_hook)(const char *hookname);
|
|
+ void (*api_end_thread)(void);
|
|
+ void (*api_raise_unknown_exception)(void);
|
|
+ void (*api_raise_type_exception)(const sipTypeDef *td, void *ptr);
|
|
+ int (*api_add_type_instance)(PyObject *dict, const char *name,
|
|
+ void *cppPtr, const sipTypeDef *td);
|
|
+ void (*api_bad_operator_arg)(PyObject *self, PyObject *arg,
|
|
+ sipPySlotType st);
|
|
+ PyObject *(*api_pyslot_extend)(sipExportedModuleDef *mod, sipPySlotType st,
|
|
+ const sipTypeDef *type, PyObject *arg0, PyObject *arg1);
|
|
+ void (*api_add_delayed_dtor)(sipSimpleWrapper *w);
|
|
+ char (*api_bytes_as_char)(PyObject *obj);
|
|
+ const char *(*api_bytes_as_string)(PyObject *obj);
|
|
+ char (*api_string_as_ascii_char)(PyObject *obj);
|
|
+ const char *(*api_string_as_ascii_string)(PyObject **obj);
|
|
+ char (*api_string_as_latin1_char)(PyObject *obj);
|
|
+ const char *(*api_string_as_latin1_string)(PyObject **obj);
|
|
+ char (*api_string_as_utf8_char)(PyObject *obj);
|
|
+ const char *(*api_string_as_utf8_string)(PyObject **obj);
|
|
+#if defined(HAVE_WCHAR_H)
|
|
+ wchar_t (*api_unicode_as_wchar)(PyObject *obj);
|
|
+ wchar_t *(*api_unicode_as_wstring)(PyObject *obj);
|
|
+#else
|
|
+ int (*api_unicode_as_wchar)(PyObject *obj);
|
|
+ int *(*api_unicode_as_wstring)(PyObject *obj);
|
|
+#endif
|
|
+ int (*api_deprecated)(const char *classname, const char *method);
|
|
+ void (*api_keep_reference)(PyObject *self, int key, PyObject *obj);
|
|
+ int (*api_parse_kwd_args)(PyObject **parseErrp, PyObject *sipArgs,
|
|
+ PyObject *sipKwdArgs, const char **kwdlist, PyObject **unused,
|
|
+ const char *fmt, ...);
|
|
+ void (*api_add_exception)(sipErrorState es, PyObject **parseErrp);
|
|
+ int (*api_parse_result_ex)(sip_gilstate_t, sipVirtErrorHandlerFunc,
|
|
+ sipSimpleWrapper *, PyObject *method, PyObject *res,
|
|
+ const char *fmt, ...);
|
|
+ void (*api_call_error_handler)(sipVirtErrorHandlerFunc,
|
|
+ sipSimpleWrapper *, sip_gilstate_t);
|
|
+ int (*api_init_mixin)(PyObject *self, PyObject *args, PyObject *kwds,
|
|
+ const sipClassTypeDef *ctd);
|
|
+ PyObject *(*api_get_reference)(PyObject *self, int key);
|
|
+ int (*api_is_owned_by_python)(sipSimpleWrapper *);
|
|
+ int (*api_is_derived_class)(sipSimpleWrapper *);
|
|
+
|
|
+ /*
|
|
+ * The following may be used by Qt support code but no other handwritten
|
|
+ * code.
|
|
+ */
|
|
+ void (*api_free_sipslot)(sipSlot *slot);
|
|
+ int (*api_same_slot)(const sipSlot *sp, PyObject *rxObj, const char *slot);
|
|
+ void *(*api_convert_rx)(sipWrapper *txSelf, const char *sigargs,
|
|
+ PyObject *rxObj, const char *slot, const char **memberp,
|
|
+ int flags);
|
|
+ PyObject *(*api_invoke_slot)(const sipSlot *slot, PyObject *sigargs);
|
|
+ PyObject *(*api_invoke_slot_ex)(const sipSlot *slot, PyObject *sigargs,
|
|
+ int check_receiver);
|
|
+ int (*api_save_slot)(sipSlot *sp, PyObject *rxObj, const char *slot);
|
|
+ void (*api_clear_any_slot_reference)(sipSlot *slot);
|
|
+ int (*api_visit_slot)(sipSlot *slot, visitproc visit, void *arg);
|
|
+
|
|
+ /*
|
|
+ * The following are deprecated parts of the public API.
|
|
+ */
|
|
+ PyTypeObject *(*api_find_named_enum)(const char *type);
|
|
+ const sipMappedType *(*api_find_mapped_type)(const char *type);
|
|
+ sipWrapperType *(*api_find_class)(const char *type);
|
|
+ sipWrapperType *(*api_map_int_to_class)(int typeInt,
|
|
+ const sipIntTypeClassMap *map, int maplen);
|
|
+ sipWrapperType *(*api_map_string_to_class)(const char *typeString,
|
|
+ const sipStringTypeClassMap *map, int maplen);
|
|
+
|
|
+ /*
|
|
+ * The following are part of the public API.
|
|
+ */
|
|
+ int (*api_enable_gc)(int enable);
|
|
+ void (*api_print_object)(PyObject *o);
|
|
+ int (*api_register_event_handler)(sipEventType type, const sipTypeDef *td,
|
|
+ void *handler);
|
|
+ int (*api_convert_to_enum)(PyObject *obj, const sipTypeDef *td);
|
|
+ int (*api_convert_to_bool)(PyObject *obj);
|
|
+ int (*api_enable_overflow_checking)(int enable);
|
|
+ char (*api_long_as_char)(PyObject *o);
|
|
+ signed char (*api_long_as_signed_char)(PyObject *o);
|
|
+ unsigned char (*api_long_as_unsigned_char)(PyObject *o);
|
|
+ short (*api_long_as_short)(PyObject *o);
|
|
+ unsigned short (*api_long_as_unsigned_short)(PyObject *o);
|
|
+ int (*api_long_as_int)(PyObject *o);
|
|
+ unsigned int (*api_long_as_unsigned_int)(PyObject *o);
|
|
+ long (*api_long_as_long)(PyObject *o);
|
|
+#if defined(HAVE_LONG_LONG)
|
|
+ PY_LONG_LONG (*api_long_as_long_long)(PyObject *o);
|
|
+ unsigned PY_LONG_LONG (*api_long_as_unsigned_long_long)(PyObject *o);
|
|
+#else
|
|
+ void *api_long_as_long_long;
|
|
+ void *api_long_as_unsigned_long_long;
|
|
+#endif
|
|
+
|
|
+ /*
|
|
+ * The following are not part of the public API.
|
|
+ */
|
|
+ void (*api_instance_destroyed_ex)(sipSimpleWrapper **sipSelfp);
|
|
+
|
|
+ /*
|
|
+ * The following are part of the public API.
|
|
+ */
|
|
+ int (*api_convert_from_slice_object)(PyObject *slice, SIP_SSIZE_T length,
|
|
+ SIP_SSIZE_T *start, SIP_SSIZE_T *stop, SIP_SSIZE_T *step,
|
|
+ SIP_SSIZE_T *slicelength);
|
|
+} sipAPIDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The API implementing the optional Qt support.
|
|
+ */
|
|
+typedef struct _sipQtAPI {
|
|
+ sipTypeDef **qt_qobject;
|
|
+ void *(*qt_create_universal_signal)(void *, const char **);
|
|
+ void *(*qt_find_universal_signal)(void *, const char **);
|
|
+ void *(*qt_create_universal_slot)(struct _sipWrapper *, const char *,
|
|
+ PyObject *, const char *, const char **, int);
|
|
+ void (*qt_destroy_universal_slot)(void *);
|
|
+ void *(*qt_find_slot)(void *, const char *, PyObject *, const char *,
|
|
+ const char **);
|
|
+ int (*qt_connect)(void *, const char *, void *, const char *, int);
|
|
+ int (*qt_disconnect)(void *, const char *, void *, const char *);
|
|
+ int (*qt_same_name)(const char *, const char *);
|
|
+ sipSlot *(*qt_find_sipslot)(void *, void **);
|
|
+ int (*qt_emit_signal)(PyObject *, const char *, PyObject *);
|
|
+ int (*qt_connect_py_signal)(PyObject *, const char *, PyObject *,
|
|
+ const char *);
|
|
+ void (*qt_disconnect_py_signal)(PyObject *, const char *, PyObject *,
|
|
+ const char *);
|
|
+} sipQtAPI;
|
|
+
|
|
+
|
|
+/*
|
|
+ * These are flags that can be passed to sipCanConvertToType(),
|
|
+ * sipConvertToType() and sipForceConvertToType().
|
|
+ */
|
|
+#define SIP_NOT_NONE 0x01 /* Disallow None. */
|
|
+#define SIP_NO_CONVERTORS 0x02 /* Disable any type convertors. */
|
|
+
|
|
+
|
|
+/*
|
|
+ * These are flags that can be passed to sipConvertToArray(). These are held
|
|
+ * in sw_flags.
|
|
+ */
|
|
+#define SIP_READ_ONLY 0x01 /* The array is read-only. */
|
|
+#define SIP_OWNS_MEMORY 0x02 /* The array owns its memory. */
|
|
+
|
|
+
|
|
+/*
|
|
+ * These are the state flags returned by %ConvertToTypeCode. Note that the
|
|
+ * values share the same "flagspace" as the contents of sw_flags.
|
|
+ */
|
|
+#define SIP_TEMPORARY 0x01 /* A temporary instance. */
|
|
+#define SIP_DERIVED_CLASS 0x02 /* The instance is derived. */
|
|
+
|
|
+
|
|
+/*
|
|
+ * These flags are specific to the Qt support API.
|
|
+ */
|
|
+#define SIP_SINGLE_SHOT 0x01 /* The connection is single shot. */
|
|
+
|
|
+
|
|
+/*
|
|
+ * Useful macros, not part of the public API.
|
|
+ */
|
|
+
|
|
+/* These are held in sw_flags. */
|
|
+#define SIP_INDIRECT 0x0004 /* If there is a level of indirection. */
|
|
+#define SIP_ACCFUNC 0x0008 /* If there is an access function. */
|
|
+#define SIP_NOT_IN_MAP 0x0010 /* If Python object is not in the map. */
|
|
+
|
|
+#if !defined(Py_LIMITED_API) || PY_VERSION_HEX < 0x03020000
|
|
+#define SIP_PY_OWNED 0x0020 /* If owned by Python. */
|
|
+#define SIP_SHARE_MAP 0x0040 /* If the map slot might be occupied. */
|
|
+#define SIP_CPP_HAS_REF 0x0080 /* If C/C++ has a reference. */
|
|
+#define SIP_POSSIBLE_PROXY 0x0100 /* If there might be a proxy slot. */
|
|
+#define SIP_ALIAS 0x0200 /* If it is an alias. */
|
|
+#define SIP_CREATED 0x0400 /* If the C/C++ object has been created. */
|
|
+
|
|
+#define sipIsDerived(sw) ((sw)->sw_flags & SIP_DERIVED_CLASS)
|
|
+#define sipIsIndirect(sw) ((sw)->sw_flags & SIP_INDIRECT)
|
|
+#define sipIsAccessFunc(sw) ((sw)->sw_flags & SIP_ACCFUNC)
|
|
+#define sipNotInMap(sw) ((sw)->sw_flags & SIP_NOT_IN_MAP)
|
|
+#define sipSetNotInMap(sw) ((sw)->sw_flags |= SIP_NOT_IN_MAP)
|
|
+#define sipIsPyOwned(sw) ((sw)->sw_flags & SIP_PY_OWNED)
|
|
+#define sipSetPyOwned(sw) ((sw)->sw_flags |= SIP_PY_OWNED)
|
|
+#define sipResetPyOwned(sw) ((sw)->sw_flags &= ~SIP_PY_OWNED)
|
|
+#define sipCppHasRef(sw) ((sw)->sw_flags & SIP_CPP_HAS_REF)
|
|
+#define sipSetCppHasRef(sw) ((sw)->sw_flags |= SIP_CPP_HAS_REF)
|
|
+#define sipResetCppHasRef(sw) ((sw)->sw_flags &= ~SIP_CPP_HAS_REF)
|
|
+#define sipPossibleProxy(sw) ((sw)->sw_flags & SIP_POSSIBLE_PROXY)
|
|
+#define sipSetPossibleProxy(sw) ((sw)->sw_flags |= SIP_POSSIBLE_PROXY)
|
|
+#define sipIsAlias(sw) ((sw)->sw_flags & SIP_ALIAS)
|
|
+#define sipWasCreated(sw) ((sw)->sw_flags & SIP_CREATED)
|
|
+#endif
|
|
+
|
|
+#define SIP_TYPE_TYPE_MASK 0x0007 /* The type type mask. */
|
|
+#define SIP_TYPE_CLASS 0x0000 /* If the type is a C++ class. */
|
|
+#define SIP_TYPE_NAMESPACE 0x0001 /* If the type is a C++ namespace. */
|
|
+#define SIP_TYPE_MAPPED 0x0002 /* If the type is a mapped type. */
|
|
+#define SIP_TYPE_ENUM 0x0003 /* If the type is a named enum. */
|
|
+#define SIP_TYPE_SCOPED_ENUM 0x0004 /* If the type is a scoped enum. */
|
|
+#define SIP_TYPE_ABSTRACT 0x0008 /* If the type is abstract. */
|
|
+#define SIP_TYPE_SCC 0x0010 /* If the type is subject to sub-class convertors. */
|
|
+#define SIP_TYPE_ALLOW_NONE 0x0020 /* If the type can handle None. */
|
|
+#define SIP_TYPE_STUB 0x0040 /* If the type is a stub. */
|
|
+#define SIP_TYPE_NONLAZY 0x0080 /* If the type has a non-lazy method. */
|
|
+#define SIP_TYPE_SUPER_INIT 0x0100 /* If the instance's super init should be called. */
|
|
+#define SIP_TYPE_LIMITED_API 0x0200 /* Use the limited API. If this is more generally required it may need to be moved to the module definition. */
|
|
+
|
|
+
|
|
+/*
|
|
+ * The following are part of the public API.
|
|
+ */
|
|
+#define sipTypeIsClass(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_CLASS)
|
|
+#define sipTypeIsNamespace(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_NAMESPACE)
|
|
+#define sipTypeIsMapped(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_MAPPED)
|
|
+#define sipTypeIsEnum(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_ENUM)
|
|
+#define sipTypeIsScopedEnum(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_SCOPED_ENUM)
|
|
+#define sipTypeAsPyTypeObject(td) ((td)->u.td_py_type)
|
|
+#define sipTypeName(td) sipNameFromPool((td)->td_module, (td)->td_cname)
|
|
+#define sipTypePluginData(td) ((td)->td_plugin_data)
|
|
+
|
|
+
|
|
+/*
|
|
+ * Note that this was never actually documented as being part of the public
|
|
+ * API. It is now deprecated. sipIsUserType() should be used instead.
|
|
+ */
|
|
+#define sipIsExactWrappedType(wt) (sipTypeAsPyTypeObject((wt)->wt_td) == (PyTypeObject *)(wt))
|
|
+
|
|
+
|
|
+/*
|
|
+ * The following are deprecated parts of the public API.
|
|
+ */
|
|
+#define sipClassName(w) PyString_FromString(Py_TYPE(w)->tp_name)
|
|
+
|
|
+
|
|
+/*
|
|
+ * The following are not part of the public API.
|
|
+ */
|
|
+#define sipTypeIsAbstract(td) ((td)->td_flags & SIP_TYPE_ABSTRACT)
|
|
+#define sipTypeHasSCC(td) ((td)->td_flags & SIP_TYPE_SCC)
|
|
+#define sipTypeAllowNone(td) ((td)->td_flags & SIP_TYPE_ALLOW_NONE)
|
|
+#define sipTypeIsStub(td) ((td)->td_flags & SIP_TYPE_STUB)
|
|
+#define sipTypeSetStub(td) ((td)->td_flags |= SIP_TYPE_STUB)
|
|
+#define sipTypeHasNonlazyMethod(td) ((td)->td_flags & SIP_TYPE_NONLAZY)
|
|
+#define sipTypeCallSuperInit(td) ((td)->td_flags & SIP_TYPE_SUPER_INIT)
|
|
+#define sipTypeUseLimitedAPI(td) ((td)->td_flags & SIP_TYPE_LIMITED_API)
|
|
+
|
|
+/*
|
|
+ * Get various names from the string pool for various data types.
|
|
+ */
|
|
+#define sipNameFromPool(em, mr) (&((em)->em_strings)[(mr)])
|
|
+#define sipNameOfModule(em) sipNameFromPool((em), (em)->em_name)
|
|
+#define sipPyNameOfContainer(cod, td) sipNameFromPool((td)->td_module, (cod)->cod_name)
|
|
+#define sipPyNameOfEnum(etd) sipNameFromPool((etd)->etd_base.td_module, (etd)->etd_name)
|
|
+
|
|
+
|
|
+/*
|
|
+ * The following are PyQt4-specific extensions. In SIP v5 they will be pushed
|
|
+ * out to a plugin supplied by PyQt4.
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * The description of a Qt signal for PyQt4.
|
|
+ */
|
|
+typedef struct _pyqt4QtSignal {
|
|
+ /* The C++ name and signature of the signal. */
|
|
+ const char *signature;
|
|
+
|
|
+ /* The optional docstring. */
|
|
+ const char *docstring;
|
|
+
|
|
+ /*
|
|
+ * If the signal is an overload of regular methods then this points to the
|
|
+ * code that implements those methods.
|
|
+ */
|
|
+ PyMethodDef *non_signals;
|
|
+
|
|
+ /*
|
|
+ * The hack to apply when built against Qt5:
|
|
+ *
|
|
+ * 0 - no hack
|
|
+ * 1 - add an optional None
|
|
+ * 2 - add an optional []
|
|
+ * 3 - add an optional False
|
|
+ */
|
|
+ int hack;
|
|
+} pyqt4QtSignal;
|
|
+
|
|
+
|
|
+/*
|
|
+ * This is the PyQt4-specific extension to the generated class type structure.
|
|
+ */
|
|
+typedef struct _pyqt4ClassPluginDef {
|
|
+ /* A pointer to the QObject sub-class's staticMetaObject class variable. */
|
|
+ const void *static_metaobject;
|
|
+
|
|
+ /*
|
|
+ * A set of flags. At the moment only bit 0 is used to say if the type is
|
|
+ * derived from QFlags.
|
|
+ */
|
|
+ unsigned flags;
|
|
+
|
|
+ /*
|
|
+ * The table of signals emitted by the type. These are grouped by signal
|
|
+ * name.
|
|
+ */
|
|
+ const pyqt4QtSignal *qt_signals;
|
|
+} pyqt4ClassPluginDef;
|
|
+
|
|
+
|
|
+/*
|
|
+ * The following are PyQt5-specific extensions. In SIP v5 they will be pushed
|
|
+ * out to a plugin supplied by PyQt5.
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * The description of a Qt signal for PyQt5.
|
|
+ */
|
|
+typedef int (*pyqt5EmitFunc)(void *, PyObject *);
|
|
+
|
|
+typedef struct _pyqt5QtSignal {
|
|
+ /* The normalised C++ name and signature of the signal. */
|
|
+ const char *signature;
|
|
+
|
|
+ /* The optional docstring. */
|
|
+ const char *docstring;
|
|
+
|
|
+ /*
|
|
+ * If the signal is an overload of regular methods then this points to the
|
|
+ * code that implements those methods.
|
|
+ */
|
|
+ PyMethodDef *non_signals;
|
|
+
|
|
+ /*
|
|
+ * If the signal has optional arguments then this function will implement
|
|
+ * emit() for the signal.
|
|
+ */
|
|
+ pyqt5EmitFunc emitter;
|
|
+} pyqt5QtSignal;
|
|
+
|
|
+
|
|
+/*
|
|
+ * This is the PyQt5-specific extension to the generated class type structure.
|
|
+ */
|
|
+typedef struct _pyqt5ClassPluginDef {
|
|
+ /* A pointer to the QObject sub-class's staticMetaObject class variable. */
|
|
+ const void *static_metaobject;
|
|
+
|
|
+ /*
|
|
+ * A set of flags. At the moment only bit 0 is used to say if the type is
|
|
+ * derived from QFlags.
|
|
+ */
|
|
+ unsigned flags;
|
|
+
|
|
+ /*
|
|
+ * The table of signals emitted by the type. These are grouped by signal
|
|
+ * name.
|
|
+ */
|
|
+ const pyqt5QtSignal *qt_signals;
|
|
+
|
|
+ /* The name of the interface that the class defines. */
|
|
+ const char *qt_interface;
|
|
+} pyqt5ClassPluginDef;
|
|
+
|
|
+
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
+
|
|
+
|
|
+#endif
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/siplib/siplib.c sip/siplib/siplib.c
|
|
--- ./sip-4.19.12.orig/siplib/siplib.c 2018-07-05 05:54:58.000000000 -0400
|
|
+++ sip/siplib/siplib.c 2018-09-18 18:00:57.928047976 -0400
|
|
@@ -39,13 +39,22 @@
|
|
|
|
|
|
/*
|
|
- * The qualified name of the sip module. The qualified name should be defined
|
|
- * in the compiler invocation when creating a package-specific copy.
|
|
+ * The qualified and base names of the sip module. These should be defined in
|
|
+ * the compiler invocation when creating a package-specific copy.
|
|
*/
|
|
#if !defined(SIP_MODULE_NAME)
|
|
-#define SIP_MODULE_NAME "sip"
|
|
+#define SIP_MODULE_NAME sip
|
|
+#endif
|
|
+
|
|
+#if !defined(SIP_MODULE_BASENAME)
|
|
+#define SIP_MODULE_BASENAME sip
|
|
#endif
|
|
|
|
+#define STRINGIFY_EX(s) #s
|
|
+#define STRINGIFY(s) STRINGIFY_EX(s)
|
|
+
|
|
+#define SIP_MODULE_NAME_STR STRINGIFY(SIP_MODULE_NAME)
|
|
+#define SIP_MODULE_BASENAME_STR STRINGIFY(SIP_MODULE_BASENAME)
|
|
|
|
/*
|
|
* The Python metatype for a C++ wrapper type. We inherit everything from the
|
|
@@ -1023,19 +1032,24 @@
|
|
* The Python module initialisation function.
|
|
*/
|
|
#if PY_MAJOR_VERSION >= 3
|
|
-#define SIP_MODULE_ENTRY PyInit_sip
|
|
+#define SIP_MODULE_ENTRY_PREFIX PyInit_
|
|
#define SIP_MODULE_TYPE PyObject *
|
|
#define SIP_MODULE_DISCARD(m) Py_DECREF(m)
|
|
#define SIP_FATAL(s) return NULL
|
|
#define SIP_MODULE_RETURN(m) return (m)
|
|
#else
|
|
-#define SIP_MODULE_ENTRY initsip
|
|
+#define SIP_MODULE_ENTRY_PREFIX init
|
|
#define SIP_MODULE_TYPE void
|
|
#define SIP_MODULE_DISCARD(m)
|
|
#define SIP_FATAL(s) Py_FatalError(s)
|
|
#define SIP_MODULE_RETURN(m)
|
|
#endif
|
|
|
|
+#define CONCAT_EX(PREFIX, NAME) PREFIX ## NAME
|
|
+#define CONCAT(PREFIX, NAME) CONCAT_EX(PREFIX, NAME)
|
|
+
|
|
+#define SIP_MODULE_ENTRY CONCAT(SIP_MODULE_ENTRY_PREFIX, SIP_MODULE_BASENAME)
|
|
+
|
|
#if defined(SIP_STATIC_MODULE)
|
|
SIP_MODULE_TYPE SIP_MODULE_ENTRY(void)
|
|
#else
|
|
@@ -1069,7 +1083,7 @@
|
|
#if PY_MAJOR_VERSION >= 3
|
|
static PyModuleDef module_def = {
|
|
PyModuleDef_HEAD_INIT,
|
|
- SIP_MODULE_NAME, /* m_name */
|
|
+ SIP_MODULE_NAME_STR, /* m_name */
|
|
NULL, /* m_doc */
|
|
-1, /* m_size */
|
|
methods, /* m_methods */
|
|
@@ -1099,13 +1113,13 @@
|
|
sipWrapperType_Type.tp_base = &PyType_Type;
|
|
|
|
if (PyType_Ready(&sipWrapperType_Type) < 0)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.wrappertype type");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.wrappertype type");
|
|
|
|
if (PyType_Ready((PyTypeObject *)&sipSimpleWrapper_Type) < 0)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.simplewrapper type");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.simplewrapper type");
|
|
|
|
if (sip_api_register_py_type((PyTypeObject *)&sipSimpleWrapper_Type) < 0)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to register sip.simplewrapper type");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to register sip.simplewrapper type");
|
|
|
|
#if defined(STACKLESS)
|
|
sipWrapper_Type.super.tp_base = (PyTypeObject *)&sipSimpleWrapper_Type;
|
|
@@ -1116,33 +1130,33 @@
|
|
#endif
|
|
|
|
if (PyType_Ready((PyTypeObject *)&sipWrapper_Type) < 0)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.wrapper type");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.wrapper type");
|
|
|
|
if (PyType_Ready(&sipMethodDescr_Type) < 0)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.methoddescriptor type");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.methoddescriptor type");
|
|
|
|
if (PyType_Ready(&sipVariableDescr_Type) < 0)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.variabledescriptor type");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.variabledescriptor type");
|
|
|
|
sipEnumType_Type.tp_base = &PyType_Type;
|
|
|
|
if (PyType_Ready(&sipEnumType_Type) < 0)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.enumtype type");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.enumtype type");
|
|
|
|
if (PyType_Ready(&sipVoidPtr_Type) < 0)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.voidptr type");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.voidptr type");
|
|
|
|
if (PyType_Ready(&sipArray_Type) < 0)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.array type");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.array type");
|
|
|
|
#if PY_MAJOR_VERSION >= 3
|
|
mod = PyModule_Create(&module_def);
|
|
#else
|
|
- mod = Py_InitModule(SIP_MODULE_NAME, methods);
|
|
+ mod = Py_InitModule(SIP_MODULE_NAME_STR, methods);
|
|
#endif
|
|
|
|
if (mod == NULL)
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip module");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip module");
|
|
|
|
mod_dict = PyModule_GetDict(mod);
|
|
|
|
@@ -1153,12 +1167,12 @@
|
|
if (type_unpickler == NULL || enum_unpickler == NULL)
|
|
{
|
|
SIP_MODULE_DISCARD(mod);
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to get pickle helpers");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to get pickle helpers");
|
|
}
|
|
|
|
/* Publish the SIP API. */
|
|
#if defined(SIP_USE_PYCAPSULE)
|
|
- obj = PyCapsule_New((void *)&sip_api, SIP_MODULE_NAME "._C_API", NULL);
|
|
+ obj = PyCapsule_New((void *)&sip_api, SIP_MODULE_NAME_STR "._C_API", NULL);
|
|
#else
|
|
obj = PyCObject_FromVoidPtr((void *)&sip_api, NULL);
|
|
#endif
|
|
@@ -1166,7 +1180,7 @@
|
|
if (obj == NULL)
|
|
{
|
|
SIP_MODULE_DISCARD(mod);
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to create _C_API object");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to create _C_API object");
|
|
}
|
|
|
|
rc = PyDict_SetItemString(mod_dict, "_C_API", obj);
|
|
@@ -1175,20 +1189,20 @@
|
|
if (rc < 0)
|
|
{
|
|
SIP_MODULE_DISCARD(mod);
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to add _C_API object to module dictionary");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to add _C_API object to module dictionary");
|
|
}
|
|
|
|
/* These will always be needed. */
|
|
if (objectify("__init__", &init_name) < 0)
|
|
{
|
|
SIP_MODULE_DISCARD(mod);
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to objectify '__init__'");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to objectify '__init__'");
|
|
}
|
|
|
|
if ((empty_tuple = PyTuple_New(0)) == NULL)
|
|
{
|
|
SIP_MODULE_DISCARD(mod);
|
|
- SIP_FATAL(SIP_MODULE_NAME ": Failed to create empty tuple");
|
|
+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to create empty tuple");
|
|
}
|
|
|
|
/* Add the SIP version number, but don't worry about errors. */
|
|
@@ -1248,7 +1262,7 @@
|
|
* Also install the package-specific module at the top level for backwards
|
|
* compatibility.
|
|
*/
|
|
- if (strcmp(SIP_MODULE_NAME, "sip") != 0)
|
|
+ if (strcmp(SIP_MODULE_NAME_STR, "sip") != 0 && strcmp(SIP_MODULE_BASENAME_STR, "sip") == 0)
|
|
{
|
|
PyObject *modules = PySys_GetObject("modules");
|
|
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/command_line.rst sip/sphinx/command_line.rst
|
|
--- ./sip-4.19.12.orig/sphinx/command_line.rst 2018-07-05 05:54:58.000000000 -0400
|
|
+++ sip/sphinx/command_line.rst 2018-09-18 18:00:57.928047976 -0400
|
|
@@ -115,10 +115,9 @@
|
|
|
|
.. versionadded:: 4.19.9
|
|
|
|
- The qualified name of the private copy of the :mod:`sip` module. It should
|
|
- be of the form ``package.sip``. See also the
|
|
- :option:`--sip-module <configure.py --sip-module>` option of the
|
|
- installation script.
|
|
+ The fully qualified name of the private copy of the :mod:`sip` module.
|
|
+ See also the :option:`--sip-module <configure.py --sip-module>` option of
|
|
+ the installation script.
|
|
|
|
.. cmdoption:: -o
|
|
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/conf.py sip/sphinx/conf.py
|
|
--- ./sip-4.19.12.orig/sphinx/conf.py 2018-07-05 05:55:19.000000000 -0400
|
|
+++ sip/sphinx/conf.py 1969-12-31 19:00:00.000000000 -0500
|
|
@@ -1,139 +0,0 @@
|
|
-# -*- coding: utf-8 -*-
|
|
-#
|
|
-# SIP documentation build configuration file, created by
|
|
-# sphinx-quickstart on Sat May 30 14:28:55 2009.
|
|
-#
|
|
-# This file is execfile()d with the current directory set to its containing dir.
|
|
-#
|
|
-# Note that not all possible configuration values are present in this
|
|
-# autogenerated file.
|
|
-#
|
|
-# All configuration values have a default; values that are commented out
|
|
-# serve to show the default.
|
|
-
|
|
-import datetime
|
|
-import os
|
|
-import sys
|
|
-
|
|
-# If extensions (or modules to document with autodoc) are in another directory,
|
|
-# add these directories to sys.path here. If the directory is relative to the
|
|
-# documentation root, use os.path.abspath to make it absolute, like shown here.
|
|
-#sys.path.append(os.path.abspath('.'))
|
|
-
|
|
-# -- General configuration -----------------------------------------------------
|
|
-
|
|
-# Add any Sphinx extension module names here, as strings. They can be extensions
|
|
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
|
-#extensions = []
|
|
-
|
|
-# Add any paths that contain templates here, relative to this directory.
|
|
-templates_path = ['templates']
|
|
-
|
|
-# The suffix of source filenames.
|
|
-source_suffix = '.rst'
|
|
-
|
|
-# The encoding of source files.
|
|
-#source_encoding = 'utf-8'
|
|
-
|
|
-# The master toctree document.
|
|
-master_doc = 'index'
|
|
-
|
|
-# General information about the project.
|
|
-project = 'SIP'
|
|
-copyright = '{0} Riverbank Computing Limited'.format(
|
|
- datetime.date.today().year)
|
|
-
|
|
-# The version info for the project you're documenting, acts as replacement for
|
|
-# |version| and |release|, also used in various other places throughout the
|
|
-# built documents.
|
|
-#
|
|
-# The short X.Y version.
|
|
-version = '4.19.12'
|
|
-# The full version, including alpha/beta/rc tags.
|
|
-release = '4.19.12'
|
|
-
|
|
-# The language for content autogenerated by Sphinx. Refer to documentation
|
|
-# for a list of supported languages.
|
|
-#language = None
|
|
-
|
|
-# There are two options for replacing |today|: either, you set today to some
|
|
-# non-false value, then it is used:
|
|
-#today = ''
|
|
-# Else, today_fmt is used as the format for a strftime call.
|
|
-#today_fmt = '%B %d, %Y'
|
|
-
|
|
-# List of patterns, relative to source directory, that match files and
|
|
-# directories to ignore when looking for source files.
|
|
-exclude_patterns = ['html']
|
|
-
|
|
-# The reST default role (used for this markup: `text`) to use for all documents.
|
|
-#default_role = None
|
|
-
|
|
-# If true, '()' will be appended to :func: etc. cross-reference text.
|
|
-#add_function_parentheses = True
|
|
-
|
|
-# If true, the current module name will be prepended to all description
|
|
-# unit titles (such as .. function::).
|
|
-#add_module_names = True
|
|
-
|
|
-# If true, sectionauthor and moduleauthor directives will be shown in the
|
|
-# output. They are ignored by default.
|
|
-#show_authors = False
|
|
-
|
|
-# The name of the Pygments (syntax highlighting) style to use.
|
|
-pygments_style = 'sphinx'
|
|
-
|
|
-# A list of ignored prefixes for module index sorting.
|
|
-#modindex_common_prefix = []
|
|
-
|
|
-
|
|
-# -- Options for HTML output ---------------------------------------------------
|
|
-
|
|
-# The theme to use for HTML and HTML Help pages.
|
|
-html_theme = 'riverbank'
|
|
-
|
|
-# Add any paths that contain custom themes here, relative to this directory.
|
|
-html_theme_path = ['.']
|
|
-
|
|
-# The name for this set of Sphinx documents. If None, it defaults to
|
|
-# "<project> v<release> documentation".
|
|
-html_title = "%s v%s Reference Guide" % (project, release)
|
|
-
|
|
-# Output file base name for HTML help builder.
|
|
-htmlhelp_basename = 'SIPdoc'
|
|
-
|
|
-
|
|
-# -- Project-specific extensions -----------------------------------------------
|
|
-
|
|
-def setup(app):
|
|
- """ Define roles specific to SIP. """
|
|
-
|
|
- app.add_description_unit('argument-annotation', 'aanno',
|
|
- indextemplate='single: %s (argument annotation)')
|
|
-
|
|
- app.add_description_unit('class-annotation', 'canno',
|
|
- indextemplate='single: %s (class annotation)')
|
|
-
|
|
- app.add_description_unit('enum-annotation', 'eanno',
|
|
- indextemplate='single: %s (enum annotation)')
|
|
-
|
|
- app.add_description_unit('exception-annotation', 'xanno',
|
|
- indextemplate='single: %s (exception annotation)')
|
|
-
|
|
- app.add_description_unit('function-annotation', 'fanno',
|
|
- indextemplate='single: %s (function annotation)')
|
|
-
|
|
- app.add_description_unit('mapped-type-annotation', 'manno',
|
|
- indextemplate='single: %s (mapped type annotation)')
|
|
-
|
|
- app.add_description_unit('typedef-annotation', 'tanno',
|
|
- indextemplate='single: %s (typedef annotation)')
|
|
-
|
|
- app.add_description_unit('variable-annotation', 'vanno',
|
|
- indextemplate='single: %s (variable annotation)')
|
|
-
|
|
- app.add_description_unit('directive', 'directive',
|
|
- indextemplate='single: %s (directive)')
|
|
-
|
|
- app.add_description_unit('sip-type', 'stype',
|
|
- indextemplate='single: %s (SIP type)')
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/conf.py.in sip/sphinx/conf.py.in
|
|
--- ./sip-4.19.12.orig/sphinx/conf.py.in 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/sphinx/conf.py.in 2018-09-18 17:52:23.310543535 -0400
|
|
@@ -0,0 +1,139 @@
|
|
+# -*- coding: utf-8 -*-
|
|
+#
|
|
+# SIP documentation build configuration file, created by
|
|
+# sphinx-quickstart on Sat May 30 14:28:55 2009.
|
|
+#
|
|
+# This file is execfile()d with the current directory set to its containing dir.
|
|
+#
|
|
+# Note that not all possible configuration values are present in this
|
|
+# autogenerated file.
|
|
+#
|
|
+# All configuration values have a default; values that are commented out
|
|
+# serve to show the default.
|
|
+
|
|
+import datetime
|
|
+import os
|
|
+import sys
|
|
+
|
|
+# If extensions (or modules to document with autodoc) are in another directory,
|
|
+# add these directories to sys.path here. If the directory is relative to the
|
|
+# documentation root, use os.path.abspath to make it absolute, like shown here.
|
|
+#sys.path.append(os.path.abspath('.'))
|
|
+
|
|
+# -- General configuration -----------------------------------------------------
|
|
+
|
|
+# Add any Sphinx extension module names here, as strings. They can be extensions
|
|
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
|
+#extensions = []
|
|
+
|
|
+# Add any paths that contain templates here, relative to this directory.
|
|
+templates_path = ['templates']
|
|
+
|
|
+# The suffix of source filenames.
|
|
+source_suffix = '.rst'
|
|
+
|
|
+# The encoding of source files.
|
|
+#source_encoding = 'utf-8'
|
|
+
|
|
+# The master toctree document.
|
|
+master_doc = 'index'
|
|
+
|
|
+# General information about the project.
|
|
+project = 'SIP'
|
|
+copyright = '{0} Riverbank Computing Limited'.format(
|
|
+ datetime.date.today().year)
|
|
+
|
|
+# The version info for the project you're documenting, acts as replacement for
|
|
+# |version| and |release|, also used in various other places throughout the
|
|
+# built documents.
|
|
+#
|
|
+# The short X.Y version.
|
|
+version = '@RM_VERSION@'
|
|
+# The full version, including alpha/beta/rc tags.
|
|
+release = '@RM_RELEASE@'
|
|
+
|
|
+# The language for content autogenerated by Sphinx. Refer to documentation
|
|
+# for a list of supported languages.
|
|
+#language = None
|
|
+
|
|
+# There are two options for replacing |today|: either, you set today to some
|
|
+# non-false value, then it is used:
|
|
+#today = ''
|
|
+# Else, today_fmt is used as the format for a strftime call.
|
|
+#today_fmt = '%B %d, %Y'
|
|
+
|
|
+# List of patterns, relative to source directory, that match files and
|
|
+# directories to ignore when looking for source files.
|
|
+exclude_patterns = ['html']
|
|
+
|
|
+# The reST default role (used for this markup: `text`) to use for all documents.
|
|
+#default_role = None
|
|
+
|
|
+# If true, '()' will be appended to :func: etc. cross-reference text.
|
|
+#add_function_parentheses = True
|
|
+
|
|
+# If true, the current module name will be prepended to all description
|
|
+# unit titles (such as .. function::).
|
|
+#add_module_names = True
|
|
+
|
|
+# If true, sectionauthor and moduleauthor directives will be shown in the
|
|
+# output. They are ignored by default.
|
|
+#show_authors = False
|
|
+
|
|
+# The name of the Pygments (syntax highlighting) style to use.
|
|
+pygments_style = 'sphinx'
|
|
+
|
|
+# A list of ignored prefixes for module index sorting.
|
|
+#modindex_common_prefix = []
|
|
+
|
|
+
|
|
+# -- Options for HTML output ---------------------------------------------------
|
|
+
|
|
+# The theme to use for HTML and HTML Help pages.
|
|
+html_theme = 'riverbank'
|
|
+
|
|
+# Add any paths that contain custom themes here, relative to this directory.
|
|
+html_theme_path = ['.']
|
|
+
|
|
+# The name for this set of Sphinx documents. If None, it defaults to
|
|
+# "<project> v<release> documentation".
|
|
+html_title = "%s v%s Reference Guide" % (project, release)
|
|
+
|
|
+# Output file base name for HTML help builder.
|
|
+htmlhelp_basename = 'SIPdoc'
|
|
+
|
|
+
|
|
+# -- Project-specific extensions -----------------------------------------------
|
|
+
|
|
+def setup(app):
|
|
+ """ Define roles specific to SIP. """
|
|
+
|
|
+ app.add_description_unit('argument-annotation', 'aanno',
|
|
+ indextemplate='single: %s (argument annotation)')
|
|
+
|
|
+ app.add_description_unit('class-annotation', 'canno',
|
|
+ indextemplate='single: %s (class annotation)')
|
|
+
|
|
+ app.add_description_unit('enum-annotation', 'eanno',
|
|
+ indextemplate='single: %s (enum annotation)')
|
|
+
|
|
+ app.add_description_unit('exception-annotation', 'xanno',
|
|
+ indextemplate='single: %s (exception annotation)')
|
|
+
|
|
+ app.add_description_unit('function-annotation', 'fanno',
|
|
+ indextemplate='single: %s (function annotation)')
|
|
+
|
|
+ app.add_description_unit('mapped-type-annotation', 'manno',
|
|
+ indextemplate='single: %s (mapped type annotation)')
|
|
+
|
|
+ app.add_description_unit('typedef-annotation', 'tanno',
|
|
+ indextemplate='single: %s (typedef annotation)')
|
|
+
|
|
+ app.add_description_unit('variable-annotation', 'vanno',
|
|
+ indextemplate='single: %s (variable annotation)')
|
|
+
|
|
+ app.add_description_unit('directive', 'directive',
|
|
+ indextemplate='single: %s (directive)')
|
|
+
|
|
+ app.add_description_unit('sip-type', 'stype',
|
|
+ indextemplate='single: %s (SIP type)')
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/installation.rst sip/sphinx/installation.rst
|
|
--- ./sip-4.19.12.orig/sphinx/installation.rst 2018-07-05 05:54:58.000000000 -0400
|
|
+++ sip/sphinx/installation.rst 2018-09-18 18:00:57.928047976 -0400
|
|
@@ -160,11 +160,10 @@
|
|
|
|
.. cmdoption:: --sip-module <NAME>
|
|
|
|
- The :mod:`sip` module will be created with the name ``<NAME>`` rather than
|
|
- the default ``sip``. ``<NAME>`` should be of the form ``package.sip``.
|
|
- See :ref:`ref-private-sip` for how to use this to create a private copy of
|
|
- the :mod:`sip` module. Also see the :option:`-n <sip -n>` option of the
|
|
- code generator.
|
|
+ The :mod:`sip` module will be created with the fully qualified name
|
|
+ ``<NAME>`` rather than the default ``sip``. See :ref:`ref-private-sip` for
|
|
+ how to use this to create a private copy of the :mod:`sip` module. Also
|
|
+ see the :option:`-n <sip -n>` option of the code generator.
|
|
|
|
.. cmdoption:: --sysroot <DIR>
|
|
|
|
@@ -264,7 +263,7 @@
|
|
To get around this problem you can build a private copy of the :mod:`sip`
|
|
module that installed as part of your package. To do this you use the
|
|
:option:`--sip-module <configure.py --sip-module>` option to specify the fully
|
|
-qualified package name of your private copy. You can also use the
|
|
+qualified name of your private copy. You can also use the
|
|
:option:`--no-tools <configure.py --no-tools>` option to specify that nothing
|
|
else but the :mod:`sip` module is installed.
|
|
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/introduction.rst sip/sphinx/introduction.rst
|
|
--- ./sip-4.19.12.orig/sphinx/introduction.rst 2018-07-05 05:55:19.000000000 -0400
|
|
+++ sip/sphinx/introduction.rst 1969-12-31 19:00:00.000000000 -0500
|
|
@@ -1,193 +0,0 @@
|
|
-Introduction
|
|
-============
|
|
-
|
|
-This is the reference guide for SIP 4.19.12. SIP is a tool for
|
|
-automatically generating `Python <https://www.python.org>`__ bindings for C and
|
|
-C++ libraries. SIP was originally developed in 1998 for
|
|
-`PyQt <https://www.riverbankcomputing.com/software/pyqt>`__ - the Python
|
|
-bindings for the Qt GUI toolkit - but is suitable for generating bindings for
|
|
-any C or C++ library.
|
|
-
|
|
-This version of SIP generates bindings for Python v2.3 or later, including
|
|
-Python v3.
|
|
-
|
|
-There are many other similar tools available. One of the original such tools
|
|
-is `SWIG <http://www.swig.org>`__ and, in fact, SIP is so called because it
|
|
-started out as a small SWIG. Unlike SWIG, SIP is specifically designed for
|
|
-bringing together Python and C/C++ and goes to great lengths to make the
|
|
-integration as tight as possible.
|
|
-
|
|
-The homepage for SIP is https://www.riverbankcomputing.com/software/sip. Here
|
|
-you will always find the latest stable version and the latest version of this
|
|
-documentation.
|
|
-
|
|
-SIP can also be downloaded from the
|
|
-`Mercurial <https://www.mercurial-scm.org>`__ repository at
|
|
-https://www.riverbankcomputing.com/hg/sip.
|
|
-
|
|
-
|
|
-License
|
|
--------
|
|
-
|
|
-SIP is licensed under similar terms as Python itself. SIP is also licensed
|
|
-under the GPL (both v2 and v3). It is your choice as to which license you
|
|
-use. If you choose the GPL then any bindings you create must be distributed
|
|
-under the terms of the GPL.
|
|
-
|
|
-
|
|
-Features
|
|
---------
|
|
-
|
|
-SIP, and the bindings it produces, have the following features:
|
|
-
|
|
-- bindings are fast to load and minimise memory consumption especially when
|
|
- only a small sub-set of a large library is being used
|
|
-
|
|
-- automatic conversion between standard Python and C/C++ data types
|
|
-
|
|
-- overloading of functions and methods with different argument signatures
|
|
-
|
|
-- support for Python's keyword argument syntax
|
|
-
|
|
-- support for both explicitly specified and automatically generated docstrings
|
|
-
|
|
-- access to a C++ class's protected methods
|
|
-
|
|
-- the ability to define a Python class that is a sub-class of a C++ class,
|
|
- including abstract C++ classes
|
|
-
|
|
-- Python sub-classes can implement the :meth:`__dtor__` method which will be
|
|
- called from the C++ class's virtual destructor
|
|
-
|
|
-- support for ordinary C++ functions, class methods, static class methods,
|
|
- virtual class methods and abstract class methods
|
|
-
|
|
-- the ability to re-implement C++ virtual and abstract methods in Python
|
|
-
|
|
-- support for global and class variables
|
|
-
|
|
-- support for global and class operators
|
|
-
|
|
-- support for C++ namespaces
|
|
-
|
|
-- support for C++ templates
|
|
-
|
|
-- support for C++ exceptions and wrapping them as Python exceptions
|
|
-
|
|
-- the automatic generation of complementary rich comparison slots
|
|
-
|
|
-- support for deprecation warnings
|
|
-
|
|
-- the ability to define mappings between C++ classes and similar Python data
|
|
- types that are automatically invoked
|
|
-
|
|
-- the ability to automatically exploit any available run time type information
|
|
- to ensure that the class of a Python instance object matches the class of the
|
|
- corresponding C++ instance
|
|
-
|
|
-- the ability to change the type and meta-type of the Python object used to
|
|
- wrap a C/C++ data type
|
|
-
|
|
-- full support of the Python global interpreter lock, including the ability to
|
|
- specify that a C++ function of method may block, therefore allowing the lock
|
|
- to be released and other Python threads to run
|
|
-
|
|
-- support for consolidated modules where the generated wrapper code for a
|
|
- number of related modules may be included in a single, possibly private,
|
|
- module
|
|
-
|
|
-- support for the concept of ownership of a C++ instance (i.e. what part of the
|
|
- code is responsible for calling the instance's destructor) and how the
|
|
- ownership may change during the execution of an application
|
|
-
|
|
-- the ability to generate bindings for a C++ class library that itself is built
|
|
- on another C++ class library which also has had bindings generated so that
|
|
- the different bindings integrate and share code properly
|
|
-
|
|
-- a sophisticated versioning system that allows the full lifetime of a C++
|
|
- class library, including any platform specific or optional features, to be
|
|
- described in a single set of specification files
|
|
-
|
|
-- support for the automatic generation of PEP 484 type hint stub files
|
|
-
|
|
-- the ability to include documentation in the specification files which can be
|
|
- extracted and subsequently processed by external tools
|
|
-
|
|
-- the ability to include copyright notices and licensing information in the
|
|
- specification files that is automatically included in all generated source
|
|
- code
|
|
-
|
|
-- a build system, written in Python, that you can extend to configure, compile
|
|
- and install your own bindings without worrying about platform specific issues
|
|
-
|
|
-- support for building your extensions using distutils
|
|
-
|
|
-- SIP, and the bindings it produces, runs under UNIX, Linux, Windows, MacOS/X,
|
|
- Android and iOS.
|
|
-
|
|
-
|
|
-SIP Components
|
|
---------------
|
|
-
|
|
-SIP comprises a number of different components.
|
|
-
|
|
-- The SIP code generator (:program:`sip`). This processes :file:`.sip`
|
|
- specification files and generates C or C++ bindings. It is covered in detail
|
|
- in :ref:`ref-using`.
|
|
-
|
|
-- The SIP header file (:file:`sip.h`). This contains definitions and data
|
|
- structures needed by the generated C and C++ code.
|
|
-
|
|
-- The SIP module (:file:`sip.so` or :file:`sip.pyd`). This is a Python
|
|
- extension module that is imported automatically by SIP generated bindings and
|
|
- provides them with some common utility functions. Historically the module
|
|
- was installed in the Python installation's ``site-packages`` directory where
|
|
- it was imported by any extension module that needed it, for example
|
|
- :mod:`PyQt4` and :mod:`PyQt5`. However this approach introduces dependencies
|
|
- between otherwise unrelated packages. The preferred approach is for each
|
|
- package to include it's own private copy of the module that is installed in
|
|
- the root directory of the package as described in :ref:`ref-private-sip`.
|
|
- See also :ref:`ref-python-api`.
|
|
-
|
|
-- The SIP build system (:file:`sipconfig.py`). This is a pure Python module
|
|
- that is created when SIP is configured and encapsulates all the necessary
|
|
- information about your system including relevant directory names, compiler
|
|
- and linker flags, and version numbers. It also includes several Python
|
|
- classes and functions which help you write configuration scripts for your own
|
|
- bindings. It is covered in detail in :ref:`ref-build-system`.
|
|
-
|
|
-- The SIP distutils extension (:file:`sipdistutils.py`). This is a distutils
|
|
- extension that can be used to build your extension modules using distutils
|
|
- and is an alternative to writing configuration scripts with the SIP build
|
|
- system. This can be as simple as adding your .sip files to the list of files
|
|
- needed to build the extension module. It is covered in detail in
|
|
- :ref:`ref-distutils`.
|
|
-
|
|
-
|
|
-Preparing for SIP v5
|
|
---------------------
|
|
-
|
|
-The syntax of a SIP specification file will change in SIP v5. The command line
|
|
-options to the SIP code generator will also change. In order to help users
|
|
-manage the transition the following approach will be adopted.
|
|
-
|
|
-- Where possible, all incompatible changes will be first implemented in SIP v4.
|
|
-
|
|
-- When an incompatible change is implemented, the old syntax will be deprecated
|
|
- (with a warning message) but will be supported for the lifetime of v4.
|
|
-
|
|
-- The use of the :option:`--sip-module <configure.py --sip-module>` option to
|
|
- build a private copy of the SIP module will be compulsory.
|
|
-
|
|
-
|
|
-Qt Support
|
|
-----------
|
|
-
|
|
-SIP has specific support for the creation of bindings for the Qt application
|
|
-toolkit from The Qt Company..
|
|
-
|
|
-The SIP code generator understands the signal/slot type safe callback mechanism
|
|
-that Qt uses to connect objects together. This allows applications to define
|
|
-new Python signals, and allows any Python callable object to be used as a slot.
|
|
-
|
|
-SIP itself does not require Qt to be installed.
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/introduction.rst.in sip/sphinx/introduction.rst.in
|
|
--- ./sip-4.19.12.orig/sphinx/introduction.rst.in 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/sphinx/introduction.rst.in 2018-09-18 17:52:23.312543505 -0400
|
|
@@ -0,0 +1,193 @@
|
|
+Introduction
|
|
+============
|
|
+
|
|
+This is the reference guide for SIP @RM_RELEASE@. SIP is a tool for
|
|
+automatically generating `Python <https://www.python.org>`__ bindings for C and
|
|
+C++ libraries. SIP was originally developed in 1998 for
|
|
+`PyQt <https://www.riverbankcomputing.com/software/pyqt>`__ - the Python
|
|
+bindings for the Qt GUI toolkit - but is suitable for generating bindings for
|
|
+any C or C++ library.
|
|
+
|
|
+This version of SIP generates bindings for Python v2.3 or later, including
|
|
+Python v3.
|
|
+
|
|
+There are many other similar tools available. One of the original such tools
|
|
+is `SWIG <http://www.swig.org>`__ and, in fact, SIP is so called because it
|
|
+started out as a small SWIG. Unlike SWIG, SIP is specifically designed for
|
|
+bringing together Python and C/C++ and goes to great lengths to make the
|
|
+integration as tight as possible.
|
|
+
|
|
+The homepage for SIP is https://www.riverbankcomputing.com/software/sip. Here
|
|
+you will always find the latest stable version and the latest version of this
|
|
+documentation.
|
|
+
|
|
+SIP can also be downloaded from the
|
|
+`Mercurial <https://www.mercurial-scm.org>`__ repository at
|
|
+https://www.riverbankcomputing.com/hg/sip.
|
|
+
|
|
+
|
|
+License
|
|
+-------
|
|
+
|
|
+SIP is licensed under similar terms as Python itself. SIP is also licensed
|
|
+under the GPL (both v2 and v3). It is your choice as to which license you
|
|
+use. If you choose the GPL then any bindings you create must be distributed
|
|
+under the terms of the GPL.
|
|
+
|
|
+
|
|
+Features
|
|
+--------
|
|
+
|
|
+SIP, and the bindings it produces, have the following features:
|
|
+
|
|
+- bindings are fast to load and minimise memory consumption especially when
|
|
+ only a small sub-set of a large library is being used
|
|
+
|
|
+- automatic conversion between standard Python and C/C++ data types
|
|
+
|
|
+- overloading of functions and methods with different argument signatures
|
|
+
|
|
+- support for Python's keyword argument syntax
|
|
+
|
|
+- support for both explicitly specified and automatically generated docstrings
|
|
+
|
|
+- access to a C++ class's protected methods
|
|
+
|
|
+- the ability to define a Python class that is a sub-class of a C++ class,
|
|
+ including abstract C++ classes
|
|
+
|
|
+- Python sub-classes can implement the :meth:`__dtor__` method which will be
|
|
+ called from the C++ class's virtual destructor
|
|
+
|
|
+- support for ordinary C++ functions, class methods, static class methods,
|
|
+ virtual class methods and abstract class methods
|
|
+
|
|
+- the ability to re-implement C++ virtual and abstract methods in Python
|
|
+
|
|
+- support for global and class variables
|
|
+
|
|
+- support for global and class operators
|
|
+
|
|
+- support for C++ namespaces
|
|
+
|
|
+- support for C++ templates
|
|
+
|
|
+- support for C++ exceptions and wrapping them as Python exceptions
|
|
+
|
|
+- the automatic generation of complementary rich comparison slots
|
|
+
|
|
+- support for deprecation warnings
|
|
+
|
|
+- the ability to define mappings between C++ classes and similar Python data
|
|
+ types that are automatically invoked
|
|
+
|
|
+- the ability to automatically exploit any available run time type information
|
|
+ to ensure that the class of a Python instance object matches the class of the
|
|
+ corresponding C++ instance
|
|
+
|
|
+- the ability to change the type and meta-type of the Python object used to
|
|
+ wrap a C/C++ data type
|
|
+
|
|
+- full support of the Python global interpreter lock, including the ability to
|
|
+ specify that a C++ function of method may block, therefore allowing the lock
|
|
+ to be released and other Python threads to run
|
|
+
|
|
+- support for consolidated modules where the generated wrapper code for a
|
|
+ number of related modules may be included in a single, possibly private,
|
|
+ module
|
|
+
|
|
+- support for the concept of ownership of a C++ instance (i.e. what part of the
|
|
+ code is responsible for calling the instance's destructor) and how the
|
|
+ ownership may change during the execution of an application
|
|
+
|
|
+- the ability to generate bindings for a C++ class library that itself is built
|
|
+ on another C++ class library which also has had bindings generated so that
|
|
+ the different bindings integrate and share code properly
|
|
+
|
|
+- a sophisticated versioning system that allows the full lifetime of a C++
|
|
+ class library, including any platform specific or optional features, to be
|
|
+ described in a single set of specification files
|
|
+
|
|
+- support for the automatic generation of PEP 484 type hint stub files
|
|
+
|
|
+- the ability to include documentation in the specification files which can be
|
|
+ extracted and subsequently processed by external tools
|
|
+
|
|
+- the ability to include copyright notices and licensing information in the
|
|
+ specification files that is automatically included in all generated source
|
|
+ code
|
|
+
|
|
+- a build system, written in Python, that you can extend to configure, compile
|
|
+ and install your own bindings without worrying about platform specific issues
|
|
+
|
|
+- support for building your extensions using distutils
|
|
+
|
|
+- SIP, and the bindings it produces, runs under UNIX, Linux, Windows, MacOS/X,
|
|
+ Android and iOS.
|
|
+
|
|
+
|
|
+SIP Components
|
|
+--------------
|
|
+
|
|
+SIP comprises a number of different components.
|
|
+
|
|
+- The SIP code generator (:program:`sip`). This processes :file:`.sip`
|
|
+ specification files and generates C or C++ bindings. It is covered in detail
|
|
+ in :ref:`ref-using`.
|
|
+
|
|
+- The SIP header file (:file:`sip.h`). This contains definitions and data
|
|
+ structures needed by the generated C and C++ code.
|
|
+
|
|
+- The SIP module (:file:`sip.so` or :file:`sip.pyd`). This is a Python
|
|
+ extension module that is imported automatically by SIP generated bindings and
|
|
+ provides them with some common utility functions. Historically the module
|
|
+ was installed in the Python installation's ``site-packages`` directory where
|
|
+ it was imported by any extension module that needed it, for example
|
|
+ :mod:`PyQt4` and :mod:`PyQt5`. However this approach introduces dependencies
|
|
+ between otherwise unrelated packages. The preferred approach is for each
|
|
+ package to include it's own private copy of the module that is installed in
|
|
+ the root directory of the package as described in :ref:`ref-private-sip`.
|
|
+ See also :ref:`ref-python-api`.
|
|
+
|
|
+- The SIP build system (:file:`sipconfig.py`). This is a pure Python module
|
|
+ that is created when SIP is configured and encapsulates all the necessary
|
|
+ information about your system including relevant directory names, compiler
|
|
+ and linker flags, and version numbers. It also includes several Python
|
|
+ classes and functions which help you write configuration scripts for your own
|
|
+ bindings. It is covered in detail in :ref:`ref-build-system`.
|
|
+
|
|
+- The SIP distutils extension (:file:`sipdistutils.py`). This is a distutils
|
|
+ extension that can be used to build your extension modules using distutils
|
|
+ and is an alternative to writing configuration scripts with the SIP build
|
|
+ system. This can be as simple as adding your .sip files to the list of files
|
|
+ needed to build the extension module. It is covered in detail in
|
|
+ :ref:`ref-distutils`.
|
|
+
|
|
+
|
|
+Preparing for SIP v5
|
|
+--------------------
|
|
+
|
|
+The syntax of a SIP specification file will change in SIP v5. The command line
|
|
+options to the SIP code generator will also change. In order to help users
|
|
+manage the transition the following approach will be adopted.
|
|
+
|
|
+- Where possible, all incompatible changes will be first implemented in SIP v4.
|
|
+
|
|
+- When an incompatible change is implemented, the old syntax will be deprecated
|
|
+ (with a warning message) but will be supported for the lifetime of v4.
|
|
+
|
|
+- The use of the :option:`--sip-module <configure.py --sip-module>` option to
|
|
+ build a private copy of the SIP module will be compulsory.
|
|
+
|
|
+
|
|
+Qt Support
|
|
+----------
|
|
+
|
|
+SIP has specific support for the creation of bindings for the Qt application
|
|
+toolkit from The Qt Company..
|
|
+
|
|
+The SIP code generator understands the signal/slot type safe callback mechanism
|
|
+that Qt uses to connect objects together. This allows applications to define
|
|
+new Python signals, and allows any Python callable object to be used as a slot.
|
|
+
|
|
+SIP itself does not require Qt to be installed.
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/mk.sh sip/test/int_convertors/mk.sh
|
|
--- ./sip-4.19.12.orig/test/int_convertors/mk.sh 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/test/int_convertors/mk.sh 2018-09-18 17:52:23.314543476 -0400
|
|
@@ -0,0 +1,23 @@
|
|
+PYTHON=3.6
|
|
+PYTHON_ARCH="$PYTHON"m
|
|
+#PYTHON=2.7
|
|
+#PYTHON_ARCH=$PYTHON
|
|
+
|
|
+QT=5.9.2
|
|
+QT_SHORT=5.9.2
|
|
+
|
|
+PYROOT=/Library/Frameworks/Python.framework/Versions/$PYTHON
|
|
+
|
|
+QTROOT=$HOME/bob/Qt$QT/$QT_SHORT/clang_64
|
|
+
|
|
+# Run sip.
|
|
+$PYROOT/bin/sip -c . -j 1 test.sip
|
|
+#$PYROOT/bin/sip -c . -j 1 -t Qt_5_9_1 -t WS_MACX -I $PYROOT/share/sip/PyQt5 test.sip
|
|
+
|
|
+# Compile C++.
|
|
+c++ -c -pipe -fPIC -Os -w -I. -I$PYROOT/include/python"$PYTHON_ARCH" -o siptestpart0.o siptestpart0.cpp
|
|
+#c++ -c -pipe -fPIC -Os -w -std=gnu++11 -F$QTROOT/lib -I. -I$PYROOT/include/python"$PYTHON_ARCH" -I$QTROOT/lib/QtCore.framework/Headers -o siptestpart0.o siptestpart0.cpp
|
|
+
|
|
+# Link C++.
|
|
+c++ -headerpad_max_install_names -bundle -undefined dynamic_lookup -o test.so siptestpart0.o
|
|
+#c++ -headerpad_max_install_names -bundle -undefined dynamic_lookup -o test.so siptestpart0.o -F$QTROOT/lib -framework QtCore
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/run_test.py sip/test/int_convertors/run_test.py
|
|
--- ./sip-4.19.12.orig/test/int_convertors/run_test.py 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/test/int_convertors/run_test.py 2018-09-18 17:52:23.315543462 -0400
|
|
@@ -0,0 +1,1845 @@
|
|
+import sys
|
|
+import unittest
|
|
+
|
|
+from sip import enableoverflowchecking
|
|
+
|
|
+from test import Test
|
|
+
|
|
+
|
|
+# The exception raised by a virtual re-implementation.
|
|
+_exc = None
|
|
+
|
|
+# The saved exception hook.
|
|
+_old_hook = None
|
|
+
|
|
+
|
|
+def _hook(xtype, xvalue, xtb):
|
|
+ """ The replacement exceptionhook. """
|
|
+
|
|
+ global _exc
|
|
+
|
|
+ # Save the exception for later.
|
|
+ _exc = xvalue
|
|
+
|
|
+
|
|
+def install_hook():
|
|
+ """ Install an exception hook that will remember exceptions raised by
|
|
+ virtual re-implementations.
|
|
+ """
|
|
+
|
|
+ global _exc, _old_hook
|
|
+
|
|
+ # Clear the saved exception.
|
|
+ _exc = None
|
|
+
|
|
+ # Save the old hook and install the new one.
|
|
+ _old_hook = sys.excepthook
|
|
+ sys.excepthook = _hook
|
|
+
|
|
+
|
|
+def uninstall_hook():
|
|
+ """ Restore the original exception hook and re-raise any exception raised
|
|
+ by a virtual re-implementation.
|
|
+ """
|
|
+
|
|
+ sys.excepthook = _old_hook
|
|
+
|
|
+ if _exc is not None:
|
|
+ raise _exc
|
|
+
|
|
+
|
|
+class InvalidFixture(Test):
|
|
+ """ A fixture for testing invalid values. """
|
|
+
|
|
+ def scoped_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return 10
|
|
+
|
|
+ def named_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def bool_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def signed_char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def short_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def int_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def long_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def unsigned_char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def unsigned_short_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def unsigned_int_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def unsigned_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+ def unsigned_long_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return '0'
|
|
+
|
|
+
|
|
+class ScopedEnumFixture(Test):
|
|
+ """ A fixture for testing scoped enum values. """
|
|
+
|
|
+ def scoped_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return Test.Scoped.scoped
|
|
+
|
|
+
|
|
+class NamedEnumFixture(Test):
|
|
+ """ A fixture for testing named enum values. """
|
|
+
|
|
+ def __init__(self, value):
|
|
+ """ Initialise the object. """
|
|
+
|
|
+ super().__init__()
|
|
+
|
|
+ self._value = value
|
|
+
|
|
+ def named_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self._value
|
|
+
|
|
+
|
|
+class BoolFixture(Test):
|
|
+ """ A fixture for testing valid boolean values. """
|
|
+
|
|
+ def __init__(self, value):
|
|
+ """ Initialise the object. """
|
|
+
|
|
+ super().__init__()
|
|
+
|
|
+ self._value = value
|
|
+
|
|
+ def bool_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self._value
|
|
+
|
|
+
|
|
+class LimitsFixture(Test):
|
|
+ """ The base test fixture for those implementing a range of values. """
|
|
+
|
|
+ def __init__(self, limits):
|
|
+ """ Initialise the object. """
|
|
+
|
|
+ super().__init__()
|
|
+
|
|
+ self.limits = limits
|
|
+
|
|
+
|
|
+class ValidLowerFixture(LimitsFixture):
|
|
+ """ A fixture for testing the lower bound of non-overflowing signed values.
|
|
+ """
|
|
+
|
|
+ def char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.CHAR_LOWER
|
|
+
|
|
+ def signed_char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.SIGNED_CHAR_LOWER
|
|
+
|
|
+ def short_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.SHORT_LOWER
|
|
+
|
|
+ def int_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.INT_LOWER
|
|
+
|
|
+ def long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.LONG_LOWER
|
|
+
|
|
+ def long_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.LONG_LONG_LOWER
|
|
+
|
|
+
|
|
+class ValidUpperFixture(LimitsFixture):
|
|
+ """ A fixture for testing the upper bound of non-overflowing values.
|
|
+ """
|
|
+
|
|
+ def char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.CHAR_UPPER
|
|
+
|
|
+ def signed_char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.SIGNED_CHAR_UPPER
|
|
+
|
|
+ def short_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.SHORT_UPPER
|
|
+
|
|
+ def int_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.INT_UPPER
|
|
+
|
|
+ def long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.LONG_UPPER
|
|
+
|
|
+ def long_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.LONG_LONG_UPPER
|
|
+
|
|
+ def unsigned_char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_CHAR_UPPER
|
|
+
|
|
+ def unsigned_short_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_SHORT_UPPER
|
|
+
|
|
+ def unsigned_int_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_INT_UPPER
|
|
+
|
|
+ def unsigned_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_LONG_UPPER
|
|
+
|
|
+ def unsigned_long_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_LONG_LONG_UPPER
|
|
+
|
|
+
|
|
+class OverflowLowerFixture(LimitsFixture):
|
|
+ """ A fixture for testing the lower bound of overflowing signed values. """
|
|
+
|
|
+ def char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.CHAR_LOWER - 1
|
|
+
|
|
+ def signed_char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.SIGNED_CHAR_LOWER - 1
|
|
+
|
|
+ def short_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.SHORT_LOWER - 1
|
|
+
|
|
+ def int_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.INT_LOWER - 1
|
|
+
|
|
+ def long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.LONG_LOWER - 1
|
|
+
|
|
+ def long_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.LONG_LONG_LOWER - 1
|
|
+
|
|
+
|
|
+class OverflowUpperFixture(LimitsFixture):
|
|
+ """ A fixture for testing the upper bound of overflowing values. """
|
|
+
|
|
+ def char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.CHAR_UPPER + 1
|
|
+
|
|
+ def signed_char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.SIGNED_CHAR_UPPER + 1
|
|
+
|
|
+ def short_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.SHORT_UPPER + 1
|
|
+
|
|
+ def int_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.INT_UPPER + 1
|
|
+
|
|
+ def long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.LONG_UPPER + 1
|
|
+
|
|
+ def long_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.LONG_LONG_UPPER + 1
|
|
+
|
|
+ def unsigned_char_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_CHAR_UPPER + 1
|
|
+
|
|
+ def unsigned_short_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_SHORT_UPPER + 1
|
|
+
|
|
+ def unsigned_int_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_INT_UPPER + 1
|
|
+
|
|
+ def unsigned_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_LONG_UPPER + 1
|
|
+
|
|
+ def unsigned_long_long_virt(self):
|
|
+ """ Re-implemented to return the fixture-specific value. """
|
|
+
|
|
+ return self.limits.UNSIGNED_LONG_LONG_UPPER + 1
|
|
+
|
|
+
|
|
+class TestScopedEnumConvertors(unittest.TestCase):
|
|
+ """ This tests the scoped enum convertors with valid values. """
|
|
+
|
|
+ def setUp(self):
|
|
+ """ Set up a test. """
|
|
+
|
|
+ self.fixture = ScopedEnumFixture()
|
|
+
|
|
+ def tearDown(self):
|
|
+ """ Tidy up after a test. """
|
|
+
|
|
+ del self.fixture
|
|
+
|
|
+ def test_scoped_get_member(self):
|
|
+ """ scoped enum virtual result with a member value. """
|
|
+
|
|
+ self.assertIs(self.fixture.scoped_get(), Test.Scoped.scoped)
|
|
+
|
|
+ def test_scoped_set_member(self):
|
|
+ """ scoped enum function argument with a member value. """
|
|
+
|
|
+ self.fixture.scoped_set(Test.Scoped.scoped)
|
|
+
|
|
+ def test_scoped_var_member(self):
|
|
+ """ scoped enum instance variable with a member value. """
|
|
+
|
|
+ self.fixture.scoped_var = Test.Scoped.scoped
|
|
+
|
|
+
|
|
+class TestNamedEnumConvertors(unittest.TestCase):
|
|
+ """ This tests the named enum convertors with valid values. """
|
|
+
|
|
+ def setUp(self):
|
|
+ """ Set up a test. """
|
|
+
|
|
+ self.member_fixture = NamedEnumFixture(Test.named)
|
|
+ self.int_fixture = NamedEnumFixture(0)
|
|
+
|
|
+ def tearDown(self):
|
|
+ """ Tidy up after a test. """
|
|
+
|
|
+ del self.member_fixture
|
|
+ del self.int_fixture
|
|
+
|
|
+ def test_named_get_member(self):
|
|
+ """ named enum virtual result with a member value. """
|
|
+
|
|
+ self.assertEqual(self.member_fixture.named_get(), Test.named)
|
|
+
|
|
+ def test_named_set_member(self):
|
|
+ """ named enum function argument with a member value. """
|
|
+
|
|
+ self.member_fixture.named_set(Test.named)
|
|
+
|
|
+ def test_named_var_member(self):
|
|
+ """ named enum instance variable with a member value. """
|
|
+
|
|
+ self.member_fixture.named_var = Test.named
|
|
+
|
|
+ def test_named_overload_set(self):
|
|
+ """ overloaded named enum function argument. """
|
|
+
|
|
+ self.member_fixture.named_overload_set(Test.named)
|
|
+ self.assertIs(self.member_fixture.named_overload, True)
|
|
+
|
|
+ def test_named_get_int(self):
|
|
+ """ named enum virtual result with an integer value. """
|
|
+
|
|
+ self.assertEqual(self.int_fixture.named_get(), 0)
|
|
+
|
|
+ def test_named_set_int(self):
|
|
+ """ named enum function argument with an integer value. """
|
|
+
|
|
+ self.int_fixture.named_set(0)
|
|
+
|
|
+ def test_named_var_int(self):
|
|
+ """ named enum instance variable with an integer value. """
|
|
+
|
|
+ self.int_fixture.named_var = 0
|
|
+
|
|
+
|
|
+class TestBoolConvertors(unittest.TestCase):
|
|
+ """ This tests the bool convertors with valid values. """
|
|
+
|
|
+ def setUp(self):
|
|
+ """ Set up a test. """
|
|
+
|
|
+ self.true_fixture = BoolFixture(True)
|
|
+ self.false_fixture = BoolFixture(False)
|
|
+ self.nonzero_fixture = BoolFixture(-1)
|
|
+ self.zero_fixture = BoolFixture(0)
|
|
+
|
|
+ def tearDown(self):
|
|
+ """ Tidy up after a test. """
|
|
+
|
|
+ del self.true_fixture
|
|
+ del self.false_fixture
|
|
+ del self.nonzero_fixture
|
|
+ del self.zero_fixture
|
|
+
|
|
+ def test_bool_get_true(self):
|
|
+ """ bool virtual result with a True value. """
|
|
+
|
|
+ self.assertIs(self.true_fixture.bool_get(), True)
|
|
+
|
|
+ def test_bool_set_true(self):
|
|
+ """ bool function argument with a True value. """
|
|
+
|
|
+ self.true_fixture.bool_set(True)
|
|
+
|
|
+ def test_bool_var_true(self):
|
|
+ """ bool instance variable with a True value. """
|
|
+
|
|
+ self.true_fixture.bool_var = True
|
|
+
|
|
+ def test_bool_get_false(self):
|
|
+ """ bool virtual result with a True value. """
|
|
+
|
|
+ self.assertIs(self.false_fixture.bool_get(), False)
|
|
+
|
|
+ def test_bool_set_false(self):
|
|
+ """ bool function argument with a False value. """
|
|
+
|
|
+ self.false_fixture.bool_set(False)
|
|
+
|
|
+ def test_bool_var_false(self):
|
|
+ """ bool instance variable with a False value. """
|
|
+
|
|
+ self.false_fixture.bool_var = False
|
|
+
|
|
+ def test_bool_get_nonzero(self):
|
|
+ """ bool virtual result with a non-zero value. """
|
|
+
|
|
+ self.assertIs(self.nonzero_fixture.bool_get(), True)
|
|
+
|
|
+ def test_bool_set_nonzero(self):
|
|
+ """ bool function argument with a non-zero value. """
|
|
+
|
|
+ self.nonzero_fixture.bool_set(-1)
|
|
+
|
|
+ def test_bool_var_nonzero(self):
|
|
+ """ bool instance variable with a non-zero value. """
|
|
+
|
|
+ self.nonzero_fixture.bool_var = -1
|
|
+
|
|
+ def test_bool_get_zero(self):
|
|
+ """ bool virtual result with a zero value. """
|
|
+
|
|
+ self.assertIs(self.zero_fixture.bool_get(), False)
|
|
+
|
|
+ def test_bool_set_zero(self):
|
|
+ """ bool function argument with a zero value. """
|
|
+
|
|
+ self.zero_fixture.bool_set(0)
|
|
+
|
|
+ def test_bool_var_zero(self):
|
|
+ """ bool instance variable with a zero value. """
|
|
+
|
|
+ self.zero_fixture.bool_var = 0
|
|
+
|
|
+
|
|
+class TestIntConvertors(unittest.TestCase):
|
|
+ """ This tests the integer convertors with valid values. """
|
|
+
|
|
+ @classmethod
|
|
+ def setUpClass(cls):
|
|
+ """ Set up a test case. """
|
|
+
|
|
+ # Compute the various test values based on the native sizes.
|
|
+ cls.CHAR_LOWER = Test.char_lower()
|
|
+ cls.CHAR_UPPER = Test.char_upper()
|
|
+ cls.SIGNED_CHAR_LOWER, cls.SIGNED_CHAR_UPPER = cls._signed_bounds(
|
|
+ Test.signed_char_sizeof())
|
|
+ cls.SHORT_LOWER, cls.SHORT_UPPER = cls._signed_bounds(
|
|
+ Test.short_sizeof())
|
|
+ cls.INT_LOWER, cls.INT_UPPER = cls._signed_bounds(Test.int_sizeof())
|
|
+ cls.LONG_LOWER, cls.LONG_UPPER = cls._signed_bounds(Test.long_sizeof())
|
|
+ cls.LONG_LONG_LOWER, cls.LONG_LONG_UPPER = cls._signed_bounds(
|
|
+ Test.long_long_sizeof())
|
|
+ cls.UNSIGNED_CHAR_UPPER = cls._unsigned_upper_bound(
|
|
+ Test.unsigned_char_sizeof())
|
|
+ cls.UNSIGNED_SHORT_UPPER = cls._unsigned_upper_bound(
|
|
+ Test.unsigned_short_sizeof())
|
|
+ cls.UNSIGNED_INT_UPPER = cls._unsigned_upper_bound(
|
|
+ Test.unsigned_int_sizeof())
|
|
+ cls.UNSIGNED_LONG_UPPER = cls._unsigned_upper_bound(
|
|
+ Test.unsigned_long_sizeof())
|
|
+ cls.UNSIGNED_LONG_LONG_UPPER = cls._unsigned_upper_bound(
|
|
+ Test.unsigned_long_long_sizeof())
|
|
+
|
|
+ @staticmethod
|
|
+ def _signed_bounds(nrbytes):
|
|
+ """ Return the range of values for a number of bytes representing a
|
|
+ signed value.
|
|
+ """
|
|
+
|
|
+ v = 1 << ((nrbytes * 8) - 1)
|
|
+
|
|
+ return -v, v - 1
|
|
+
|
|
+ @staticmethod
|
|
+ def _unsigned_upper_bound(nrbytes):
|
|
+ """ Return the upper bound for a number of bytes representing an
|
|
+ unsigned value.
|
|
+ """
|
|
+
|
|
+ return (1 << (nrbytes * 8)) - 1
|
|
+
|
|
+
|
|
+class TestInvalidValues(TestIntConvertors):
|
|
+ """ This tests the integer, boolean and enum convertors with invalid
|
|
+ values.
|
|
+ """
|
|
+
|
|
+ def setUp(self):
|
|
+ """ Set up a test. """
|
|
+
|
|
+ self.fixture = InvalidFixture()
|
|
+
|
|
+ def tearDown(self):
|
|
+ """ Tidy up after a test. """
|
|
+
|
|
+ del self.fixture
|
|
+
|
|
+ def test_scoped_get(self):
|
|
+ """ scoped enum virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.scoped_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_scoped_set(self):
|
|
+ """ scoped enum function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.scoped_set(10)
|
|
+
|
|
+ def test_scoped_var(self):
|
|
+ """ scoped enum instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.scoped_var = 10
|
|
+
|
|
+ def test_named_get(self):
|
|
+ """ named enum virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.named_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_named_set(self):
|
|
+ """ named enum function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.named_set('0')
|
|
+
|
|
+ def test_named_var(self):
|
|
+ """ named enum instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.named_var = '0'
|
|
+
|
|
+ def test_bool_get(self):
|
|
+ """ bool virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.bool_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_bool_set(self):
|
|
+ """ bool function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.bool_set('0')
|
|
+
|
|
+ def test_bool_var(self):
|
|
+ """ bool instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.bool_var = '0'
|
|
+
|
|
+ def test_char_get(self):
|
|
+ """ char virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.char_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_char_set(self):
|
|
+ """ char function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.char_set('0')
|
|
+
|
|
+ def test_char_var(self):
|
|
+ """ char instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.char_var = '0'
|
|
+
|
|
+ def test_signed_char_get(self):
|
|
+ """ signed char virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.signed_char_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_signed_char_set(self):
|
|
+ """ signed char function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.signed_char_set('0')
|
|
+
|
|
+ def test_signed_char_var(self):
|
|
+ """ signed char instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.signed_char_var = '0'
|
|
+
|
|
+ def test_short_get(self):
|
|
+ """ short virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.short_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_short_set(self):
|
|
+ """ short function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.short_set('0')
|
|
+
|
|
+ def test_short_var(self):
|
|
+ """ short instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.short_var = '0'
|
|
+
|
|
+ def test_int_get(self):
|
|
+ """ int virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.int_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_int_set(self):
|
|
+ """ int function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.int_set('0')
|
|
+
|
|
+ def test_int_var(self):
|
|
+ """ int instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.int_var = '0'
|
|
+
|
|
+ def test_long_get(self):
|
|
+ """ long virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_long_set(self):
|
|
+ """ long function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.long_set('0')
|
|
+
|
|
+ def test_long_var(self):
|
|
+ """ long instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.long_var = '0'
|
|
+
|
|
+ def test_long_long_get(self):
|
|
+ """ long long virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.long_long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_long_long_set(self):
|
|
+ """ long long function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.long_long_set('0')
|
|
+
|
|
+ def test_long_long_var(self):
|
|
+ """ long long instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.long_long_var = '0'
|
|
+
|
|
+ def test_unsigned_char_get(self):
|
|
+ """ unsigned char virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.unsigned_char_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_char_set(self):
|
|
+ """ unsigned char function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_char_set('0')
|
|
+
|
|
+ def test_unsigned_char_var(self):
|
|
+ """ unsigned char instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_char_var = '0'
|
|
+
|
|
+ def test_unsigned_short_get(self):
|
|
+ """ unsigned short virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.unsigned_short_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_short_set(self):
|
|
+ """ unsigned short function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_short_set('0')
|
|
+
|
|
+ def test_unsigned_short_var(self):
|
|
+ """ unsigned short instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_short_var = '0'
|
|
+
|
|
+ def test_unsigned_int_get(self):
|
|
+ """ unsigned int virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.unsigned_int_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_int_set(self):
|
|
+ """ unsigned int function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_int_set('0')
|
|
+
|
|
+ def test_unsigned_int_var(self):
|
|
+ """ unsigned int instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_int_var = '0'
|
|
+
|
|
+ def test_unsigned_long_get(self):
|
|
+ """ unsigned long virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.unsigned_long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_long_set(self):
|
|
+ """ unsigned long function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_long_set('0')
|
|
+
|
|
+ def test_unsigned_long_var(self):
|
|
+ """ unsigned long instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_long_var = '0'
|
|
+
|
|
+ def test_unsigned_long_long_get(self):
|
|
+ """ unsigned long long virtual result. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ install_hook()
|
|
+ self.fixture.unsigned_long_long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_long_long_set(self):
|
|
+ """ unsigned long long function argument. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_long_long_set('0')
|
|
+
|
|
+ def test_unsigned_long_long_var(self):
|
|
+ """ unsigned long long instance variable. """
|
|
+
|
|
+ with self.assertRaises(TypeError):
|
|
+ self.fixture.unsigned_long_long_var = '0'
|
|
+
|
|
+
|
|
+class TestValidValues(TestIntConvertors):
|
|
+ """ This tests the integer convertors with valid values. """
|
|
+
|
|
+ def setUp(self):
|
|
+ """ Set up a test. """
|
|
+
|
|
+ self.lower_fixture = ValidLowerFixture(self)
|
|
+ self.upper_fixture = ValidUpperFixture(self)
|
|
+
|
|
+ def tearDown(self):
|
|
+ """ Tidy up after a test. """
|
|
+
|
|
+ del self.lower_fixture
|
|
+ del self.upper_fixture
|
|
+
|
|
+ def test_char_get_lower(self):
|
|
+ """ char virtual result lower bound. """
|
|
+
|
|
+ self.assertEqual(self.lower_fixture.char_get(), self.CHAR_LOWER)
|
|
+
|
|
+ def test_char_get_upper(self):
|
|
+ """ char virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.char_get(), self.CHAR_UPPER)
|
|
+
|
|
+ def test_char_set_lower(self):
|
|
+ """ char function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.char_set(self.CHAR_LOWER)
|
|
+
|
|
+ def test_char_set_upper(self):
|
|
+ """ char function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.char_set(self.CHAR_UPPER)
|
|
+
|
|
+ def test_char_var_lower(self):
|
|
+ """ char instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.char_var = self.CHAR_LOWER
|
|
+
|
|
+ def test_char_var_upper(self):
|
|
+ """ char instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.char_var = self.CHAR_UPPER
|
|
+
|
|
+ def test_signed_char_get_lower(self):
|
|
+ """ signed char virtual result lower bound. """
|
|
+
|
|
+ self.assertEqual(self.lower_fixture.signed_char_get(),
|
|
+ self.SIGNED_CHAR_LOWER)
|
|
+
|
|
+ def test_signed_char_get_upper(self):
|
|
+ """ signed char virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.signed_char_get(),
|
|
+ self.SIGNED_CHAR_UPPER)
|
|
+
|
|
+ def test_signed_char_set_lower(self):
|
|
+ """ signed char function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.signed_char_set(self.SIGNED_CHAR_LOWER)
|
|
+
|
|
+ def test_signed_char_set_upper(self):
|
|
+ """ signed char function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.signed_char_set(self.SIGNED_CHAR_UPPER)
|
|
+
|
|
+ def test_signed_char_var_lower(self):
|
|
+ """ signed char instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.signed_char_var = self.SIGNED_CHAR_LOWER
|
|
+
|
|
+ def test_signed_char_var_upper(self):
|
|
+ """ signed char instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.signed_char_var = self.SIGNED_CHAR_UPPER
|
|
+
|
|
+ def test_short_get_lower(self):
|
|
+ """ short virtual result lower bound. """
|
|
+
|
|
+ self.assertEqual(self.lower_fixture.short_get(), self.SHORT_LOWER)
|
|
+
|
|
+ def test_short_get_upper(self):
|
|
+ """ short virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.short_get(), self.SHORT_UPPER)
|
|
+
|
|
+ def test_short_set_lower(self):
|
|
+ """ short function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.short_set(self.SHORT_LOWER)
|
|
+
|
|
+ def test_short_set_upper(self):
|
|
+ """ short function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.short_set(self.SHORT_UPPER)
|
|
+
|
|
+ def test_short_var_lower(self):
|
|
+ """ short instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.short_var = self.SHORT_LOWER
|
|
+
|
|
+ def test_short_var_upper(self):
|
|
+ """ short instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.short_var = self.SHORT_UPPER
|
|
+
|
|
+ def test_int_get_lower(self):
|
|
+ """ int virtual result lower bound. """
|
|
+
|
|
+ self.assertEqual(self.lower_fixture.int_get(), self.INT_LOWER)
|
|
+
|
|
+ def test_int_get_upper(self):
|
|
+ """ int virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.int_get(), self.INT_UPPER)
|
|
+
|
|
+ def test_int_set_lower(self):
|
|
+ """ int function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.int_set(self.INT_LOWER)
|
|
+
|
|
+ def test_int_set_upper(self):
|
|
+ """ int function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.int_set(self.INT_UPPER)
|
|
+
|
|
+ def test_int_var_lower(self):
|
|
+ """ int instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.int_var = self.INT_LOWER
|
|
+
|
|
+ def test_int_var_upper(self):
|
|
+ """ int instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.int_var = self.INT_UPPER
|
|
+
|
|
+ def test_long_get_lower(self):
|
|
+ """ long virtual result lower bound. """
|
|
+
|
|
+ self.assertEqual(self.lower_fixture.long_get(), self.LONG_LOWER)
|
|
+
|
|
+ def test_long_get_upper(self):
|
|
+ """ long virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.long_get(), self.LONG_UPPER)
|
|
+
|
|
+ def test_long_set_lower(self):
|
|
+ """ long function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.long_set(self.LONG_LOWER)
|
|
+
|
|
+ def test_long_set_upper(self):
|
|
+ """ long function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.long_set(self.LONG_UPPER)
|
|
+
|
|
+ def test_long_var_lower(self):
|
|
+ """ long instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.long_var = self.LONG_LOWER
|
|
+
|
|
+ def test_long_var_upper(self):
|
|
+ """ long instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.long_var = self.LONG_UPPER
|
|
+
|
|
+ def test_long_long_get_lower(self):
|
|
+ """ long long virtual result lower bound. """
|
|
+
|
|
+ self.assertEqual(self.lower_fixture.long_long_get(),
|
|
+ self.LONG_LONG_LOWER)
|
|
+
|
|
+ def test_long_long_get_upper(self):
|
|
+ """ long long virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.long_long_get(),
|
|
+ self.LONG_LONG_UPPER)
|
|
+
|
|
+ def test_long_long_set_lower(self):
|
|
+ """ long long function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.long_long_set(self.LONG_LONG_LOWER)
|
|
+
|
|
+ def test_long_long_set_upper(self):
|
|
+ """ long long function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.long_long_set(self.LONG_LONG_UPPER)
|
|
+
|
|
+ def test_long_long_var_lower(self):
|
|
+ """ long long instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.long_long_var = self.LONG_LONG_LOWER
|
|
+
|
|
+ def test_long_long_var_upper(self):
|
|
+ """ long long instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.long_long_var = self.LONG_LONG_UPPER
|
|
+
|
|
+ def test_unsigned_char_get_upper(self):
|
|
+ """ unsigned char virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.unsigned_char_get(),
|
|
+ self.UNSIGNED_CHAR_UPPER)
|
|
+
|
|
+ def test_unsigned_char_set_upper(self):
|
|
+ """ unsigned char function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_char_set(self.UNSIGNED_CHAR_UPPER)
|
|
+
|
|
+ def test_unsigned_char_var_upper(self):
|
|
+ """ unsigned char instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_char_var = self.UNSIGNED_CHAR_UPPER
|
|
+
|
|
+ def test_unsigned_short_get_upper(self):
|
|
+ """ unsigned short virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.unsigned_short_get(),
|
|
+ self.UNSIGNED_SHORT_UPPER)
|
|
+
|
|
+ def test_unsigned_short_set_upper(self):
|
|
+ """ unsigned short function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_short_set(self.UNSIGNED_SHORT_UPPER)
|
|
+
|
|
+ def test_unsigned_short_var_upper(self):
|
|
+ """ unsigned short instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_short_var = self.UNSIGNED_SHORT_UPPER
|
|
+
|
|
+ def test_unsigned_int_get_upper(self):
|
|
+ """ unsigned int virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.unsigned_int_get(),
|
|
+ self.UNSIGNED_INT_UPPER)
|
|
+
|
|
+ def test_unsigned_int_set_upper(self):
|
|
+ """ unsigned int function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_int_set(self.UNSIGNED_INT_UPPER)
|
|
+
|
|
+ def test_unsigned_int_var_upper(self):
|
|
+ """ unsigned int instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_int_var = self.UNSIGNED_INT_UPPER
|
|
+
|
|
+ def test_unsigned_long_get_upper(self):
|
|
+ """ unsigned long virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.unsigned_long_get(),
|
|
+ self.UNSIGNED_LONG_UPPER)
|
|
+
|
|
+ def test_unsigned_long_set_upper(self):
|
|
+ """ unsigned long function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_long_set(self.UNSIGNED_LONG_UPPER)
|
|
+
|
|
+ def test_unsigned_long_var_upper(self):
|
|
+ """ unsigned long instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_long_var = self.UNSIGNED_LONG_UPPER
|
|
+
|
|
+ def test_unsigned_long_long_get_upper(self):
|
|
+ """ unsigned long long virtual result upper bound. """
|
|
+
|
|
+ self.assertEqual(self.upper_fixture.unsigned_long_long_get(),
|
|
+ self.UNSIGNED_LONG_LONG_UPPER)
|
|
+
|
|
+ def test_unsigned_long_long_set_upper(self):
|
|
+ """ unsigned long long function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_long_long_set(
|
|
+ self.UNSIGNED_LONG_LONG_UPPER)
|
|
+
|
|
+ def test_unsigned_long_long_var_upper(self):
|
|
+ """ unsigned long long instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_long_long_var = self.UNSIGNED_LONG_LONG_UPPER
|
|
+
|
|
+
|
|
+class TestNoOverflowChecking(TestIntConvertors):
|
|
+ """ This tests the integer convertors with overflowing values with overflow
|
|
+ checking disabled.
|
|
+ """
|
|
+
|
|
+ @staticmethod
|
|
+ def _long_long_is_long():
|
|
+ """ Return True if (unsigned) long long is the same size as (unsigned)
|
|
+ long.
|
|
+ """
|
|
+
|
|
+ return Test.long_long_sizeof() == Test.long_sizeof()
|
|
+
|
|
+ def setUp(self):
|
|
+ """ Set up a test. """
|
|
+
|
|
+ self.lower_fixture = OverflowLowerFixture(self)
|
|
+ self.upper_fixture = OverflowUpperFixture(self)
|
|
+
|
|
+ self.was_enabled = enableoverflowchecking(False)
|
|
+
|
|
+ def tearDown(self):
|
|
+ """ Tidy up after a test. """
|
|
+
|
|
+ enableoverflowchecking(self.was_enabled)
|
|
+
|
|
+ del self.lower_fixture
|
|
+ del self.upper_fixture
|
|
+
|
|
+ def test_char_get_lower(self):
|
|
+ """ char virtual result lower bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.lower_fixture.char_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_char_get_upper(self):
|
|
+ """ char virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.char_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_char_set_lower(self):
|
|
+ """ char function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.char_set(self.CHAR_LOWER - 1)
|
|
+
|
|
+ def test_char_set_upper(self):
|
|
+ """ char function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.char_set(self.CHAR_UPPER + 1)
|
|
+
|
|
+ def test_char_var_lower(self):
|
|
+ """ char instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.char_var = self.CHAR_LOWER - 1
|
|
+
|
|
+ def test_char_var_upper(self):
|
|
+ """ char instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.char_var = self.CHAR_UPPER + 1
|
|
+
|
|
+ def test_signed_char_get_lower(self):
|
|
+ """ signed char virtual result lower bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.lower_fixture.signed_char_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_signed_char_get_upper(self):
|
|
+ """ signed char virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.signed_char_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_signed_char_set_lower(self):
|
|
+ """ signed char function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.signed_char_set(self.SIGNED_CHAR_LOWER - 1)
|
|
+
|
|
+ def test_signed_char_set_upper(self):
|
|
+ """ signed char function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.signed_char_set(self.SIGNED_CHAR_UPPER + 1)
|
|
+
|
|
+ def test_signed_char_var_lower(self):
|
|
+ """ signed char instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.signed_char_var = self.SIGNED_CHAR_LOWER - 1
|
|
+
|
|
+ def test_signed_char_var_upper(self):
|
|
+ """ signed char instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.signed_char_var = self.SIGNED_CHAR_UPPER + 1
|
|
+
|
|
+ def test_short_get_lower(self):
|
|
+ """ short virtual result lower bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.lower_fixture.short_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_short_get_upper(self):
|
|
+ """ short virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.short_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_short_set_lower(self):
|
|
+ """ short function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.short_set(self.SHORT_LOWER - 1)
|
|
+
|
|
+ def test_short_set_upper(self):
|
|
+ """ short function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.short_set(self.SHORT_UPPER + 1)
|
|
+
|
|
+ def test_short_var_lower(self):
|
|
+ """ short instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.short_var = self.SHORT_LOWER - 1
|
|
+
|
|
+ def test_short_var_upper(self):
|
|
+ """ short instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.short_var = self.SHORT_UPPER + 1
|
|
+
|
|
+ def test_int_get_lower(self):
|
|
+ """ int virtual result lower bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.lower_fixture.int_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_int_get_upper(self):
|
|
+ """ int virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.int_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_int_set_lower(self):
|
|
+ """ int function argument lower bound. """
|
|
+
|
|
+ self.lower_fixture.int_set(self.INT_LOWER - 1)
|
|
+
|
|
+ def test_int_set_upper(self):
|
|
+ """ int function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.int_set(self.INT_UPPER + 1)
|
|
+
|
|
+ def test_int_var_lower(self):
|
|
+ """ int instance variable lower bound. """
|
|
+
|
|
+ self.lower_fixture.int_var = self.INT_LOWER - 1
|
|
+
|
|
+ def test_int_var_upper(self):
|
|
+ """ int instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.int_var = self.INT_UPPER + 1
|
|
+
|
|
+ def test_long_get_lower(self):
|
|
+ """ long virtual result lower bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.lower_fixture.long_get()
|
|
+
|
|
+ if self._long_long_is_long():
|
|
+ # To maintain compatibility with older versions of SIP this
|
|
+ # overflows even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ uninstall_hook()
|
|
+ else:
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_long_get_upper(self):
|
|
+ """ long virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.long_get()
|
|
+
|
|
+ if self._long_long_is_long():
|
|
+ # To maintain compatibility with older versions of SIP this
|
|
+ # overflows even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ uninstall_hook()
|
|
+ else:
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_long_set_lower(self):
|
|
+ """ long function argument lower bound. """
|
|
+
|
|
+ if self._long_long_is_long():
|
|
+ # To maintain compatibility with older versions of SIP this
|
|
+ # overflows even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.lower_fixture.long_set(self.LONG_LOWER - 1)
|
|
+ else:
|
|
+ self.lower_fixture.long_set(self.LONG_LOWER - 1)
|
|
+
|
|
+ def test_long_set_upper(self):
|
|
+ """ long function argument upper bound. """
|
|
+
|
|
+ if self._long_long_is_long():
|
|
+ # To maintain compatibility with older versions of SIP this
|
|
+ # overflows even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.upper_fixture.long_set(self.LONG_UPPER + 1)
|
|
+ else:
|
|
+ self.upper_fixture.long_set(self.LONG_UPPER + 1)
|
|
+
|
|
+ def test_long_var_lower(self):
|
|
+ """ long instance variable lower bound. """
|
|
+
|
|
+ if self._long_long_is_long():
|
|
+ # To maintain compatibility with older versions of SIP this
|
|
+ # overflows even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.lower_fixture.long_var = self.LONG_LOWER - 1
|
|
+ else:
|
|
+ self.lower_fixture.long_var = self.LONG_LOWER - 1
|
|
+
|
|
+ def test_long_var_upper(self):
|
|
+ """ long instance variable upper bound. """
|
|
+
|
|
+ if self._long_long_is_long():
|
|
+ # To maintain compatibility with older versions of SIP this
|
|
+ # overflows even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.upper_fixture.long_var = self.LONG_UPPER + 1
|
|
+ else:
|
|
+ self.upper_fixture.long_var = self.LONG_UPPER + 1
|
|
+
|
|
+ def test_long_long_get_lower(self):
|
|
+ """ long long virtual result lower bound. """
|
|
+
|
|
+ # To maintain compatibility with older versions of SIP this overflows
|
|
+ # even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ install_hook()
|
|
+ self.lower_fixture.long_long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_long_long_get_upper(self):
|
|
+ """ long long virtual result upper bound. """
|
|
+
|
|
+ # To maintain compatibility with older versions of SIP this overflows
|
|
+ # even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ install_hook()
|
|
+ self.upper_fixture.long_long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_long_long_set_lower(self):
|
|
+ """ long long function argument lower bound. """
|
|
+
|
|
+ # To maintain compatibility with older versions of SIP this overflows
|
|
+ # even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.lower_fixture.long_long_set(self.LONG_LONG_LOWER - 1)
|
|
+
|
|
+ def test_long_long_set_upper(self):
|
|
+ """ long long function argument upper bound. """
|
|
+
|
|
+ # To maintain compatibility with older versions of SIP this overflows
|
|
+ # even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.upper_fixture.long_long_set(self.LONG_LONG_UPPER + 1)
|
|
+
|
|
+ def test_long_long_var_lower(self):
|
|
+ """ long long instance variable lower bound. """
|
|
+
|
|
+ # To maintain compatibility with older versions of SIP this overflows
|
|
+ # even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.lower_fixture.long_long_var = self.LONG_LONG_LOWER - 1
|
|
+
|
|
+ def test_long_long_var_upper(self):
|
|
+ """ long long instance variable upper bound. """
|
|
+
|
|
+ # To maintain compatibility with older versions of SIP this overflows
|
|
+ # even with overflow checking disabled.
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.upper_fixture.long_long_var = self.LONG_LONG_UPPER + 1
|
|
+
|
|
+ def test_unsigned_char_get_upper(self):
|
|
+ """ unsigned char virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.unsigned_char_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_char_set_upper(self):
|
|
+ """ unsigned char function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_char_set(self.UNSIGNED_CHAR_UPPER + 1)
|
|
+
|
|
+ def test_unsigned_char_var_upper(self):
|
|
+ """ unsigned char instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_char_var = self.UNSIGNED_CHAR_UPPER + 1
|
|
+
|
|
+ def test_unsigned_short_get_upper(self):
|
|
+ """ unsigned short virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.unsigned_short_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_short_set_upper(self):
|
|
+ """ unsigned short function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_short_set(self.UNSIGNED_SHORT_UPPER + 1)
|
|
+
|
|
+ def test_unsigned_short_var_upper(self):
|
|
+ """ unsigned short instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_short_var = self.UNSIGNED_SHORT_UPPER + 1
|
|
+
|
|
+ def test_unsigned_int_get_upper(self):
|
|
+ """ unsigned int virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.unsigned_int_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_int_set_upper(self):
|
|
+ """ unsigned int function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_int_set(self.UNSIGNED_INT_UPPER + 1)
|
|
+
|
|
+ def test_unsigned_int_var_upper(self):
|
|
+ """ unsigned int instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_int_var = self.UNSIGNED_INT_UPPER + 1
|
|
+
|
|
+ def test_unsigned_long_get_upper(self):
|
|
+ """ unsigned long virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.unsigned_long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_long_set_upper(self):
|
|
+ """ unsigned long function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_long_set(self.UNSIGNED_LONG_UPPER + 1)
|
|
+
|
|
+ def test_unsigned_long_var_upper(self):
|
|
+ """ unsigned long instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_long_var = self.UNSIGNED_LONG_UPPER + 1
|
|
+
|
|
+ def test_unsigned_long_long_get_upper(self):
|
|
+ """ unsigned long long virtual result upper bound. """
|
|
+
|
|
+ install_hook()
|
|
+ self.upper_fixture.unsigned_long_long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_unsigned_long_long_set_upper(self):
|
|
+ """ unsigned long long function argument upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_long_long_set(
|
|
+ self.UNSIGNED_LONG_LONG_UPPER + 1)
|
|
+
|
|
+ def test_unsigned_long_long_var_upper(self):
|
|
+ """ unsigned long long instance variable upper bound. """
|
|
+
|
|
+ self.upper_fixture.unsigned_long_long_var = self.UNSIGNED_LONG_LONG_UPPER + 1
|
|
+
|
|
+
|
|
+class TestOverflowChecking(TestNoOverflowChecking):
|
|
+ """ This tests the integer convertors with overflowing values with overflow
|
|
+ checking enabled.
|
|
+ """
|
|
+
|
|
+ def setUp(self):
|
|
+ """ Set up a test. """
|
|
+
|
|
+ super().setUp()
|
|
+
|
|
+ enableoverflowchecking(True)
|
|
+
|
|
+ def test_char_get_lower(self):
|
|
+ """ char virtual result lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_char_get_lower()
|
|
+
|
|
+ def test_char_get_upper(self):
|
|
+ """ char virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_char_get_upper()
|
|
+
|
|
+ def test_char_set_lower(self):
|
|
+ """ char function argument lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_char_set_lower()
|
|
+
|
|
+ def test_char_set_upper(self):
|
|
+ """ char function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_char_set_upper()
|
|
+
|
|
+ def test_char_var_lower(self):
|
|
+ """ char instance variable lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_char_var_lower()
|
|
+
|
|
+ def test_char_var_upper(self):
|
|
+ """ char instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_char_var_upper()
|
|
+
|
|
+ def test_signed_char_get_lower(self):
|
|
+ """ signed char virtual result lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_signed_char_get_lower()
|
|
+
|
|
+ def test_signed_char_get_upper(self):
|
|
+ """ signed char virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_signed_char_get_upper()
|
|
+
|
|
+ def test_signed_char_set_lower(self):
|
|
+ """ signed char function argument lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_signed_char_set_lower()
|
|
+
|
|
+ def test_signed_char_set_upper(self):
|
|
+ """ signed char function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_signed_char_set_upper()
|
|
+
|
|
+ def test_signed_char_var_lower(self):
|
|
+ """ signed char instance variable lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_signed_char_var_lower()
|
|
+
|
|
+ def test_signed_char_var_upper(self):
|
|
+ """ signed char instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_signed_char_var_upper()
|
|
+
|
|
+ def test_short_get_lower(self):
|
|
+ """ short virtual result lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_short_get_lower()
|
|
+
|
|
+ def test_short_get_upper(self):
|
|
+ """ short virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_short_get_upper()
|
|
+
|
|
+ def test_short_set_lower(self):
|
|
+ """ short function argument lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_short_set_lower()
|
|
+
|
|
+ def test_short_set_upper(self):
|
|
+ """ short function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_short_set_upper()
|
|
+
|
|
+ def test_short_var_lower(self):
|
|
+ """ short instance variable lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_short_var_lower()
|
|
+
|
|
+ def test_short_var_upper(self):
|
|
+ """ short instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_short_var_upper()
|
|
+
|
|
+ def test_int_get_lower(self):
|
|
+ """ int virtual result lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_int_get_lower()
|
|
+
|
|
+ def test_int_get_upper(self):
|
|
+ """ int virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_int_get_upper()
|
|
+
|
|
+ def test_int_set_lower(self):
|
|
+ """ int function argument lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_int_set_lower()
|
|
+
|
|
+ def test_int_set_upper(self):
|
|
+ """ int function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_int_set_upper()
|
|
+
|
|
+ def test_int_var_lower(self):
|
|
+ """ int instance variable lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_int_var_lower()
|
|
+
|
|
+ def test_int_var_upper(self):
|
|
+ """ int instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_int_var_upper()
|
|
+
|
|
+ def test_long_get_lower(self):
|
|
+ """ long virtual result lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ install_hook()
|
|
+ self.lower_fixture.long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_long_get_upper(self):
|
|
+ """ long virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ install_hook()
|
|
+ self.upper_fixture.long_get()
|
|
+ uninstall_hook()
|
|
+
|
|
+ def test_long_set_lower(self):
|
|
+ """ long function argument lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.lower_fixture.long_set(self.LONG_LOWER - 1)
|
|
+
|
|
+ def test_long_set_upper(self):
|
|
+ """ long function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.upper_fixture.long_set(self.LONG_UPPER + 1)
|
|
+
|
|
+ def test_long_var_lower(self):
|
|
+ """ long instance variable lower bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.lower_fixture.long_var = self.LONG_LOWER - 1
|
|
+
|
|
+ def test_long_var_upper(self):
|
|
+ """ long instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ self.upper_fixture.long_var = self.LONG_UPPER + 1
|
|
+
|
|
+ def test_long_long_get_lower(self):
|
|
+ """ long long virtual result lower bound. """
|
|
+
|
|
+ super().test_long_long_get_lower()
|
|
+
|
|
+ def test_long_long_get_upper(self):
|
|
+ """ long long virtual result upper bound. """
|
|
+
|
|
+ super().test_long_long_get_upper()
|
|
+
|
|
+ def test_long_long_set_lower(self):
|
|
+ """ long long function argument lower bound. """
|
|
+
|
|
+ super().test_long_long_set_lower()
|
|
+
|
|
+ def test_long_long_set_upper(self):
|
|
+ """ long long function argument upper bound. """
|
|
+
|
|
+ super().test_long_long_set_upper()
|
|
+
|
|
+ def test_long_long_var_lower(self):
|
|
+ """ long long instance variable lower bound. """
|
|
+
|
|
+ super().test_long_long_var_lower()
|
|
+
|
|
+ def test_long_long_var_upper(self):
|
|
+ """ long long instance variable upper bound. """
|
|
+
|
|
+ super().test_long_long_var_upper()
|
|
+
|
|
+ def test_unsigned_char_get_upper(self):
|
|
+ """ unsigned char virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_char_get_upper()
|
|
+
|
|
+ def test_unsigned_char_set_upper(self):
|
|
+ """ unsigned char function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_char_set_upper()
|
|
+
|
|
+ def test_unsigned_char_var_upper(self):
|
|
+ """ unsigned char instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_char_var_upper()
|
|
+
|
|
+ def test_unsigned_short_get_upper(self):
|
|
+ """ unsigned short virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_short_get_upper()
|
|
+
|
|
+ def test_unsigned_short_set_upper(self):
|
|
+ """ unsigned short function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_short_set_upper()
|
|
+
|
|
+ def test_unsigned_short_var_upper(self):
|
|
+ """ unsigned short instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_short_var_upper()
|
|
+
|
|
+ def test_unsigned_int_get_upper(self):
|
|
+ """ unsigned int virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_int_get_upper()
|
|
+
|
|
+ def test_unsigned_int_set_upper(self):
|
|
+ """ unsigned int function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_int_set_upper()
|
|
+
|
|
+ def test_unsigned_int_var_upper(self):
|
|
+ """ unsigned int instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_int_var_upper()
|
|
+
|
|
+ def test_unsigned_long_get_upper(self):
|
|
+ """ unsigned long virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_long_get_upper()
|
|
+
|
|
+ def test_unsigned_long_set_upper(self):
|
|
+ """ unsigned long function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_long_set_upper()
|
|
+
|
|
+ def test_unsigned_long_var_upper(self):
|
|
+ """ unsigned long instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_long_var_upper()
|
|
+
|
|
+ def test_unsigned_long_long_get_upper(self):
|
|
+ """ unsigned long long virtual result upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_long_long_get_upper()
|
|
+
|
|
+ def test_unsigned_long_long_set_upper(self):
|
|
+ """ unsigned long long function argument upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_long_long_set_upper()
|
|
+
|
|
+ def test_unsigned_long_long_var_upper(self):
|
|
+ """ unsigned long long instance variable upper bound. """
|
|
+
|
|
+ with self.assertRaises(OverflowError):
|
|
+ super().test_unsigned_long_long_var_upper()
|
|
+
|
|
+
|
|
+if __name__ == '__main__':
|
|
+ unittest.main()
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/test.h sip/test/int_convertors/test.h
|
|
--- ./sip-4.19.12.orig/test/int_convertors/test.h 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/test/int_convertors/test.h 2018-09-18 17:52:23.315543462 -0400
|
|
@@ -0,0 +1,110 @@
|
|
+#if !defined(_TEST_H)
|
|
+#define _TEST_H
|
|
+
|
|
+#include <limits.h>
|
|
+
|
|
+
|
|
+class Test
|
|
+{
|
|
+public:
|
|
+ enum class Scoped {
|
|
+ scoped = 10
|
|
+ };
|
|
+ Scoped scoped_get() {return scoped_virt();}
|
|
+ virtual Scoped scoped_virt() {return Scoped::scoped;}
|
|
+ static void scoped_set(Scoped) {}
|
|
+ Scoped scoped_var;
|
|
+
|
|
+ enum Named {
|
|
+ named = 10
|
|
+ };
|
|
+ Named named_get() {return named_virt();}
|
|
+ virtual Named named_virt() {return named;}
|
|
+ static void named_set(Named) {}
|
|
+ Named named_var;
|
|
+
|
|
+ enum Named2 {
|
|
+ named2 = 10
|
|
+ };
|
|
+ void named_overload_set(Named2) {named_overload = false;}
|
|
+ void named_overload_set(Named) {named_overload = true;}
|
|
+ bool named_overload;
|
|
+
|
|
+ bool bool_get() {return bool_virt();}
|
|
+ virtual bool bool_virt() {return false;}
|
|
+ static void bool_set(bool) {}
|
|
+ bool bool_var;
|
|
+
|
|
+ static int char_lower() {return CHAR_MIN;}
|
|
+ static int char_upper() {return CHAR_MAX;}
|
|
+ char char_get() {return char_virt();}
|
|
+ virtual char char_virt() {return 0;}
|
|
+ static void char_set(char) {}
|
|
+ char char_var;
|
|
+
|
|
+ static unsigned signed_char_sizeof() {return sizeof (signed char);}
|
|
+ signed char signed_char_get() {return signed_char_virt();}
|
|
+ virtual signed char signed_char_virt() {return 0;}
|
|
+ static void signed_char_set(signed char) {}
|
|
+ signed char signed_char_var;
|
|
+
|
|
+ static unsigned short_sizeof() {return sizeof (short);}
|
|
+ short short_get() {return short_virt();}
|
|
+ virtual short short_virt() {return 0;}
|
|
+ static void short_set(short) {}
|
|
+ short short_var;
|
|
+
|
|
+ static unsigned int_sizeof() {return sizeof (int);}
|
|
+ int int_get() {return int_virt();}
|
|
+ virtual int int_virt() {return 0;}
|
|
+ static void int_set(int) {}
|
|
+ int int_var;
|
|
+
|
|
+ static unsigned long_sizeof() {return sizeof (long);}
|
|
+ long long_get() {return long_virt();}
|
|
+ virtual long long_virt() {return 0;}
|
|
+ static void long_set(long) {}
|
|
+ long long_var;
|
|
+
|
|
+ static unsigned long_long_sizeof() {return sizeof (long long);}
|
|
+ long long long_long_get() {return long_long_virt();}
|
|
+ virtual long long long_long_virt() {return 0;}
|
|
+ static void long_long_set(long long) {}
|
|
+ long long long_long_var;
|
|
+
|
|
+ static unsigned unsigned_char_sizeof() {return sizeof (unsigned char);}
|
|
+ unsigned char unsigned_char_get() {return unsigned_char_virt();}
|
|
+ virtual unsigned char unsigned_char_virt() {return 0;}
|
|
+ static void unsigned_char_set(unsigned char) {}
|
|
+ unsigned char unsigned_char_var;
|
|
+
|
|
+ static unsigned unsigned_short_sizeof() {return sizeof (unsigned short);}
|
|
+ unsigned short unsigned_short_get() {return unsigned_short_virt();}
|
|
+ virtual unsigned short unsigned_short_virt() {return 0;}
|
|
+ static void unsigned_short_set(unsigned short) {}
|
|
+ unsigned short unsigned_short_var;
|
|
+
|
|
+ static unsigned unsigned_int_sizeof() {return sizeof (unsigned int);}
|
|
+ unsigned int unsigned_int_get() {return unsigned_int_virt();}
|
|
+ virtual unsigned int unsigned_int_virt() {return 0;}
|
|
+ static void unsigned_int_set(unsigned int) {}
|
|
+ unsigned int unsigned_int_var;
|
|
+
|
|
+ static unsigned unsigned_long_sizeof() {return sizeof (unsigned long);}
|
|
+ unsigned long unsigned_long_get() {return unsigned_long_virt();}
|
|
+ virtual unsigned long unsigned_long_virt() {return 0;}
|
|
+ static void unsigned_long_set(unsigned long) {}
|
|
+ unsigned long unsigned_long_var;
|
|
+
|
|
+ static unsigned unsigned_long_long_sizeof() {
|
|
+ return sizeof (unsigned long long);
|
|
+ }
|
|
+ unsigned long long unsigned_long_long_get() {
|
|
+ return unsigned_long_long_virt();
|
|
+ }
|
|
+ virtual unsigned long long unsigned_long_long_virt() {return 0;}
|
|
+ static void unsigned_long_long_set(unsigned long long) {}
|
|
+ unsigned long long unsigned_long_long_var;
|
|
+};
|
|
+
|
|
+#endif
|
|
diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/test.sip sip/test/int_convertors/test.sip
|
|
--- ./sip-4.19.12.orig/test/int_convertors/test.sip 1969-12-31 19:00:00.000000000 -0500
|
|
+++ sip/test/int_convertors/test.sip 2018-09-18 17:52:23.315543462 -0400
|
|
@@ -0,0 +1,106 @@
|
|
+%Module(name=test)
|
|
+
|
|
+//%Import QtCore/QtCoremod.sip
|
|
+
|
|
+class Test
|
|
+{
|
|
+%TypeHeaderCode
|
|
+#include "test.h"
|
|
+%End
|
|
+
|
|
+public:
|
|
+ enum class Scoped {
|
|
+ scoped
|
|
+ };
|
|
+ Scoped scoped_get();
|
|
+ virtual Scoped scoped_virt();
|
|
+ static void scoped_set(Scoped);
|
|
+ Scoped scoped_var;
|
|
+
|
|
+ enum Named {
|
|
+ named
|
|
+ };
|
|
+ Named named_get();
|
|
+ virtual Named named_virt();
|
|
+ static void named_set(Named);
|
|
+ Named named_var;
|
|
+
|
|
+ enum Named2 {
|
|
+ named2 = 10
|
|
+ };
|
|
+ void named_overload_set(Named2);
|
|
+ void named_overload_set(Named);
|
|
+ bool named_overload;
|
|
+
|
|
+ bool bool_get();
|
|
+ virtual bool bool_virt();
|
|
+ static void bool_set(bool);
|
|
+ bool bool_var;
|
|
+
|
|
+ static int char_lower();
|
|
+ static int char_upper();
|
|
+ char char_get() /PyInt/;
|
|
+ virtual char char_virt() /PyInt/;
|
|
+ static void char_set(char /PyInt/);
|
|
+ char char_var /PyInt/;
|
|
+
|
|
+ static unsigned signed_char_sizeof();
|
|
+ signed char signed_char_get() /PyInt/;
|
|
+ virtual signed char signed_char_virt() /PyInt/;
|
|
+ static void signed_char_set(signed char /PyInt/);
|
|
+ signed char signed_char_var /PyInt/;
|
|
+
|
|
+ static unsigned short_sizeof();
|
|
+ short short_get();
|
|
+ virtual short short_virt();
|
|
+ static void short_set(short);
|
|
+ short short_var;
|
|
+
|
|
+ static unsigned int_sizeof();
|
|
+ int int_get();
|
|
+ virtual int int_virt();
|
|
+ static void int_set(int);
|
|
+ int int_var;
|
|
+
|
|
+ static unsigned long_sizeof();
|
|
+ long long_get();
|
|
+ virtual long long_virt();
|
|
+ static void long_set(long);
|
|
+ long long_var;
|
|
+
|
|
+ static unsigned long_long_sizeof();
|
|
+ long long long_long_get();
|
|
+ virtual long long long_long_virt();
|
|
+ static void long_long_set(long long);
|
|
+ long long long_long_var;
|
|
+
|
|
+ static unsigned unsigned_char_sizeof();
|
|
+ unsigned char unsigned_char_get() /PyInt/;
|
|
+ virtual unsigned char unsigned_char_virt() /PyInt/;
|
|
+ static void unsigned_char_set(unsigned char /PyInt/);
|
|
+ unsigned char unsigned_char_var /PyInt/;
|
|
+
|
|
+ static unsigned unsigned_short_sizeof();
|
|
+ unsigned short unsigned_short_get();
|
|
+ virtual unsigned short unsigned_short_virt();
|
|
+ static void unsigned_short_set(unsigned short);
|
|
+ unsigned short unsigned_short_var;
|
|
+
|
|
+ static unsigned unsigned_int_sizeof();
|
|
+ unsigned int unsigned_int_get();
|
|
+ virtual unsigned int unsigned_int_virt();
|
|
+ static void unsigned_int_set(unsigned int);
|
|
+ unsigned int unsigned_int_var;
|
|
+
|
|
+ static unsigned unsigned_long_sizeof();
|
|
+ unsigned long unsigned_long_get();
|
|
+ virtual unsigned long unsigned_long_virt();
|
|
+ static void unsigned_long_set(unsigned long);
|
|
+ unsigned long unsigned_long_var;
|
|
+
|
|
+ static unsigned unsigned_long_long_sizeof();
|
|
+ unsigned long long unsigned_long_long_get();
|
|
+ virtual unsigned long long unsigned_long_long_virt();
|
|
+ static void unsigned_long_long_set(unsigned long long);
|
|
+ unsigned long long unsigned_long_long_var;
|
|
+};
|