Open Source Computer Vision Library
https://opencv.org/
41 lines
1.4 KiB
41 lines
1.4 KiB
#/usr/bin/env python |
|
|
|
import sys, re, os.path |
|
from string import Template |
|
from hdr_parser import CppHeaderParser |
|
from parse_tree import ParseTree, todict |
|
from filters import * |
|
from jinja2 import Environment, PackageLoader |
|
|
|
class MatlabWrapperGenerator(object): |
|
|
|
def gen(self, input_files, output_files): |
|
# parse each of the files and store in a dictionary |
|
# as a separate "namespace" |
|
parser = CppHeaderParser() |
|
ns = {} |
|
for file in input_files: |
|
# get the file name |
|
name = os.path.splitext(os.path.basename(file))[0] |
|
ns[name] = parser.parse(file) |
|
|
|
# cleanify the parser output |
|
parse_tree = ParseTree() |
|
parse_tree.build(ns) |
|
|
|
# setup the template engine |
|
jtemplate = Environment(loader=PackageLoader('templates', '')) |
|
|
|
# add the custom filters |
|
jtemplate.filters['toUpperCamelCase'] = toUpperCamelCase |
|
jtemplate.filters['toLowerCamelCase'] = toLowerCamelCase |
|
jtemplate.filters['toUnderCase'] = toUnderCase |
|
jtemplate.filters['comment'] = comment |
|
|
|
# load the templates |
|
function = jtemplate.get_template('template_function_base.cpp') |
|
classm = jtemplate.get_template('template_class_base.m') |
|
classc = jtemplate.get_template('template_class_base.cpp') |
|
doc = jtemplate.get_template('template_doc_base.m') |
|
|
|
# populate!
|
|
|