#! /usr/local/bin/python3 import sys, os, argparse, time, re, shutil, socket class Box: pass def main(argv): global errors errors = False regexes = Box() regexes.define = re.compile('^[\t ]*DEFINE:[\t ]*' '\$(?P\{)?(?P[A-Z0-9_.]+)(?(brace)\})' '[\t ]*=[\t ]*' '(?P((?P-)|([#A-Z]))?[.0-9]+)' '[ \t\r]*(;.*|\(.*\))?$', flags=re.IGNORECASE) regexes.include = re.compile('^[\t ]*INCLUDE:[\t ]*' '((?P[\'"])(?P[^\'"]+)' '(?P=quote)|(?P[^\t ]+))' '[ \t\r]*(;.*|\(.*\))?$', flags=re.IGNORECASE) def process_file(filename): nonlocal regexes infile = open(filename, encoding='utf-8') if not infile: log_error(0, "Input file couldn't be opened ", filename) return file_contents = infile.read() lines = file_contents.split('\n') for lineno in range(0, len(lines)): line = lines[lineno].strip() lines[lineno] = line found = regexes.include.fullmatch(line) if found: print('Include line fullmatch: ', line, file=sys.stderr) found = regexes.include.match(line) if found: print('Include line match: ', line, file=sys.stderr) found = regexes.define.fullmatch(line) if found: print('Define line fullmatch: ', line, file=sys.stderr) found = regexes.define.match(line) if found: print('Define line match: ', line, file=sys.stderr) process_file('test.txt') if __name__ == "__main__": global errors main(sys.argv[1:]) sys.exit(errors)