Skip to content

Commit 93bdfee

Browse files
committed
Add preprocessor-only mode to the dump command
1 parent 955214c commit 93bdfee

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

cxxheaderparser/dump.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ def dumpmain() -> None:
2121
)
2222
parser.add_argument("-v", "--verbose", default=False, action="store_true")
2323
parser.add_argument(
24-
"--mode", choices=["json", "pprint", "repr", "brepr"], default="pprint"
24+
"--mode",
25+
choices=["json", "pprint", "repr", "brepr", "pponly"],
26+
default="pprint",
2527
)
2628
parser.add_argument(
2729
"--pcpp", default=False, action="store_true", help="Use pcpp preprocessor"
@@ -33,11 +35,17 @@ def dumpmain() -> None:
3335
args = parser.parse_args()
3436

3537
preprocessor = None
36-
if args.pcpp:
38+
if args.pcpp or args.mode == "pponly":
3739
from .preprocessor import make_pcpp_preprocessor
3840

3941
preprocessor = make_pcpp_preprocessor(encoding=args.encoding)
4042

43+
if args.mode == "pponly":
44+
with open(args.header, "r", encoding=args.encoding) as fp:
45+
pp_content = preprocessor(args.header, fp.read())
46+
sys.stdout.write(pp_content)
47+
sys.exit(0)
48+
4149
options = ParserOptions(verbose=args.verbose, preprocessor=preprocessor)
4250
data = parse_file(args.header, encoding=args.encoding, options=options)
4351

0 commit comments

Comments
 (0)