cxxheaderparser 1.3.2__tar.gz → 1.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/PKG-INFO +1 -1
  2. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/lexer.py +2 -0
  3. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/parser.py +2 -0
  4. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/version.py +1 -1
  5. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser.egg-info/PKG-INFO +1 -1
  6. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_fn.py +55 -0
  7. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/LICENSE.txt +0 -0
  8. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/README.md +0 -0
  9. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/__init__.py +0 -0
  10. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/__main__.py +0 -0
  11. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/_ply/__init__.py +0 -0
  12. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/_ply/lex.py +0 -0
  13. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/dump.py +0 -0
  14. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/errors.py +0 -0
  15. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/gentest.py +0 -0
  16. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/options.py +0 -0
  17. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/parserstate.py +0 -0
  18. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/preprocessor.py +0 -0
  19. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/py.typed +0 -0
  20. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/simple.py +0 -0
  21. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/tokfmt.py +0 -0
  22. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/types.py +0 -0
  23. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser/visitor.py +0 -0
  24. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser.egg-info/SOURCES.txt +0 -0
  25. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser.egg-info/dependency_links.txt +0 -0
  26. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser.egg-info/requires.txt +0 -0
  27. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/cxxheaderparser.egg-info/top_level.txt +0 -0
  28. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/setup.cfg +0 -0
  29. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/setup.py +0 -0
  30. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_abv_template.py +0 -0
  31. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_attributes.py +0 -0
  32. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_class.py +0 -0
  33. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_class_base.py +0 -0
  34. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_concepts.py +0 -0
  35. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_doxygen.py +0 -0
  36. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_enum.py +0 -0
  37. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_friends.py +0 -0
  38. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_misc.py +0 -0
  39. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_namespaces.py +0 -0
  40. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_numeric_literals.py +0 -0
  41. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_operators.py +0 -0
  42. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_preprocessor.py +0 -0
  43. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_skip.py +0 -0
  44. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_template.py +0 -0
  45. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_tokfmt.py +0 -0
  46. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_typedef.py +0 -0
  47. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_typefmt.py +0 -0
  48. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_union.py +0 -0
  49. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_using.py +0 -0
  50. {cxxheaderparser-1.3.2 → cxxheaderparser-1.3.3}/tests/test_var.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cxxheaderparser
3
- Version: 1.3.2
3
+ Version: 1.3.3
4
4
  Summary: Parse C++ header files and generate a data structure representing the class
5
5
  Home-page: https://github.com/robotpy/cxxheaderparser
6
6
  Author: Dustin Spicuzza
@@ -104,9 +104,11 @@ class PlyLexer:
104
104
  "final",
105
105
  "float",
106
106
  "for",
107
+ "__forceinline",
107
108
  "friend",
108
109
  "goto",
109
110
  "if",
111
+ "__inline",
110
112
  "inline",
111
113
  "int",
112
114
  "long",
@@ -2371,6 +2371,8 @@ class CxxParser:
2371
2371
  volatile = True
2372
2372
  elif tok_type in _attribute_start:
2373
2373
  self._consume_attribute(tok)
2374
+ elif tok_type in ("__inline", "__forceinline"):
2375
+ both["inline"] = tok
2374
2376
  else:
2375
2377
  break
2376
2378
 
@@ -1,2 +1,2 @@
1
1
  # Autogenerated by setup.py
2
- __version__ = '1.3.2'
2
+ __version__ = '1.3.3'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cxxheaderparser
3
- Version: 1.3.2
3
+ Version: 1.3.3
4
4
  Summary: Parse C++ header files and generate a data structure representing the class
5
5
  Home-page: https://github.com/robotpy/cxxheaderparser
6
6
  Author: Dustin Spicuzza
@@ -1258,3 +1258,58 @@ def test_method_trailing_return_with_body() -> None:
1258
1258
  ]
1259
1259
  )
1260
1260
  )
1261
+
1262
+
1263
+ def test_msvc_inline() -> None:
1264
+ content = """
1265
+ __inline double fn1() {}
1266
+ __forceinline double fn2() {}
1267
+ static __inline double fn3() {}
1268
+ static __forceinline double fn4() {}
1269
+ """
1270
+ data = parse_string(content, cleandoc=True)
1271
+
1272
+ assert data == ParsedData(
1273
+ namespace=NamespaceScope(
1274
+ functions=[
1275
+ Function(
1276
+ return_type=Type(
1277
+ typename=PQName(segments=[FundamentalSpecifier(name="double")])
1278
+ ),
1279
+ name=PQName(segments=[NameSpecifier(name="fn1")]),
1280
+ parameters=[],
1281
+ inline=True,
1282
+ has_body=True,
1283
+ ),
1284
+ Function(
1285
+ return_type=Type(
1286
+ typename=PQName(segments=[FundamentalSpecifier(name="double")])
1287
+ ),
1288
+ name=PQName(segments=[NameSpecifier(name="fn2")]),
1289
+ parameters=[],
1290
+ inline=True,
1291
+ has_body=True,
1292
+ ),
1293
+ Function(
1294
+ return_type=Type(
1295
+ typename=PQName(segments=[FundamentalSpecifier(name="double")])
1296
+ ),
1297
+ name=PQName(segments=[NameSpecifier(name="fn3")]),
1298
+ parameters=[],
1299
+ static=True,
1300
+ inline=True,
1301
+ has_body=True,
1302
+ ),
1303
+ Function(
1304
+ return_type=Type(
1305
+ typename=PQName(segments=[FundamentalSpecifier(name="double")])
1306
+ ),
1307
+ name=PQName(segments=[NameSpecifier(name="fn4")]),
1308
+ parameters=[],
1309
+ static=True,
1310
+ inline=True,
1311
+ has_body=True,
1312
+ ),
1313
+ ]
1314
+ )
1315
+ )