-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreprocessor.py
More file actions
25 lines (19 loc) · 896 Bytes
/
preprocessor.py
File metadata and controls
25 lines (19 loc) · 896 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import re
# preprocess action
def preprocess(input_data: str, replacement_tokens):
for replacement_token in replacement_tokens:
identifier = replacement_token[0]
replaced = replacement_token[1]
input_data = re.sub(r'([^a-zA-Z0-9\"])({})([^a-zA-Z0-9\"])'.format(identifier), r'\g<1>{}\g<3>'.format(replaced), input_data)
input_data = re.sub(r'([^a-zA-Z0-9\"])({})([^a-zA-Z0-9\"])'.format(identifier), r'\g<1>{}\g<3>'.format(replaced), input_data)
return input_data
def factorize_preprocess(input_data: str):
define_regex = r'define (\S*)\s(.*)\W'
matched_patterns = re.findall(define_regex, input_data)
return matched_patterns
def run_preprocess(input_data: str):
replacement_tokens = factorize_preprocess(input_data=input_data)
return preprocess(
input_data=input_data,
replacement_tokens=replacement_tokens
)