2
0
mirror of https://github.com/boostorg/url.git synced 2026-01-22 05:42:46 +00:00
Files
url/doc/modules/ROOT/examples/unit/replace_snippets.py
2023-11-09 16:21:06 -03:00

43 lines
1.4 KiB
Python

#
# Copyright (c) 2023 Alan de Freitas (alandefreitas@gmail.com)
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
# Official repository: https://github.com/boostorg/url
#
import re
def replace_snippets(input_file, output_file):
with open(input_file, 'r') as input_f:
code = input_f.read()
# Define a regular expression pattern to match snippet headers
snippet_pattern = r'\/\/\[\s*(\w+)\s*'
current_snippet = None
snippet_close_pattern = r'\/\/\]'
output_lines = []
for line in code.splitlines():
match = re.search(snippet_pattern, line)
if match:
output_lines.append(re.sub(snippet_pattern, r'// tag::\1[]', line))
current_snippet = match.group(1)
continue
# Check if the line matches the closing snippet pattern
match = re.search(snippet_close_pattern, line)
if match:
output_lines.append(re.sub(snippet_close_pattern, f'// end::{current_snippet}[]', line))
continue
output_lines.append(line)
with open(output_file, 'w') as output_f:
output_f.write('\n'.join(output_lines))
if __name__ == "__main__":
input_file = 'snippets.cpp'
output_file = 'snippets_out.cpp'
replace_snippets(input_file, output_file)