Current section

Files

Jump to
cimg cmd_tbl.py
Raw

cmd_tbl.py

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
################################################################################
# cmd_tbl.py
# Description:
#
# Author: shozo fukuda
# Date: Sat Mar 12 07:38:18 JST 2022
# Last revised: $Date$
# Application: Python 3.9
################################################################################
#<IMPORT>
import os,sys
import argparse
import re
#<CLASS>########################################################################
# Description:
# Dependencies:
################################################################################
class CmdTbl:
def __init__(self, prefix="", namespace=""):
self.prefix = prefix
self.ns = namespace
self.func = []
self.col = 40
def parse(self, file):
name = None
for line in file:
match = re.search(r'\bCIMG_CMD\s*\((.*)\)', line)
if match:
name = match.group(1)
self.func.append(name)
def mk_cmdtbl(self, output):
for name in self.func:
idx_name = self.prefix + name
cxx_name = self.ns + name
print('{{"{idx_name}",{pad:{loc1}}{cxx_name}{pad:{loc2}}}},'
.format(
idx_name=idx_name,
loc1=self.col-len(idx_name)-3,
cxx_name=cxx_name,
loc2=self.col-len(cxx_name)-1,
pad=''),
file=output)
#<MAIN>#########################################################################
# Function:
# Description:
# Dependencies:
################################################################################
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Generate CImg command table")
parser.add_argument('src', type=argparse.FileType('r'),
help="src files")
parser.add_argument('--prefix', default="",
help="prefex for export name")
parser.add_argument('--ns', default="",
help="namespace for entry function")
parser.add_argument('-o', '--output', type=argparse.FileType('w'), default=sys.stdout,
help="output file")
args = parser.parse_args()
cmd_tbl = CmdTbl(args.prefix, args.ns)
cmd_tbl.parse(args.src)
cmd_tbl.mk_cmdtbl(args.output)
# cmd_tbl.py