~paparazzi-uav/paparazzi/v5.0-manual

« back to all changes in this revision

Viewing changes to sw/ext/opencv_bebop/opencv/modules/core/src/opencl/runtime/generator/parser_clamdfft.py

  • Committer: Paparazzi buildbot
  • Date: 2016-05-18 15:00:29 UTC
  • Revision ID: felix.ruess+docbot@gmail.com-20160518150029-e8lgzi5kvb4p7un9
Manual import commit 4b8bbb730080dac23cf816b98908dacfabe2a8ec from v5.0 branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/python
 
2
# usage:
 
3
#     cat clAmdFft.h | $0
 
4
import sys, re;
 
5
 
 
6
from common import remove_comments, getTokens, getParameters, postProcessParameters
 
7
 
 
8
 
 
9
try:
 
10
    if len(sys.argv) > 1:
 
11
        f = open(sys.argv[1], "r")
 
12
    else:
 
13
        f = sys.stdin
 
14
except:
 
15
    sys.exit("ERROR. Can't open input file")
 
16
 
 
17
fns = []
 
18
 
 
19
while True:
 
20
    line = f.readline()
 
21
    if len(line) == 0:
 
22
        break
 
23
    assert isinstance(line, str)
 
24
    line = line.strip()
 
25
    if line.startswith('CLAMDFFTAPI'):
 
26
        line = re.sub(r'\n', r'', line)
 
27
        while True:
 
28
            nl = f.readline()
 
29
            nl = nl.strip()
 
30
            nl = re.sub(r'\n', r'', nl)
 
31
            if len(nl) == 0:
 
32
                break;
 
33
            line += ' ' + nl
 
34
 
 
35
        line = remove_comments(line)
 
36
 
 
37
        parts = getTokens(line)
 
38
 
 
39
        fn = {}
 
40
        modifiers = []
 
41
        ret = []
 
42
        calling = []
 
43
 
 
44
        i = 0
 
45
        while True:
 
46
            if parts[i] == "CLAMDFFTAPI":
 
47
                modifiers.append(parts[i])
 
48
            else:
 
49
                break
 
50
            i += 1
 
51
        while (i < len(parts)):
 
52
            if not parts[i] == '(':
 
53
                ret.append(parts[i])
 
54
            else:
 
55
                del ret[-1]
 
56
                i -= 1
 
57
                break
 
58
            i += 1
 
59
 
 
60
        fn['modifiers'] = []  # modifiers
 
61
        fn['ret'] = ret
 
62
        fn['calling'] = calling
 
63
 
 
64
        name = parts[i]; i += 1;
 
65
        fn['name'] = name
 
66
        print 'name=' + name
 
67
 
 
68
        params = getParameters(i, parts)
 
69
 
 
70
        if len(params) > 0 and params[0] == 'void':
 
71
            del params[0]
 
72
 
 
73
        fn['params'] = params
 
74
        # print 'params="'+','.join(params)+'"'
 
75
 
 
76
        fns.append(fn)
 
77
 
 
78
f.close()
 
79
 
 
80
print 'Found %d functions' % len(fns)
 
81
 
 
82
postProcessParameters(fns)
 
83
 
 
84
from pprint import pprint
 
85
pprint(fns)
 
86
 
 
87
from common import *
 
88
 
 
89
filterFileName='./filter/opencl_clamdfft_functions.list'
 
90
numEnabled = readFunctionFilter(fns, filterFileName)
 
91
 
 
92
functionsFilter = generateFilterNames(fns)
 
93
filter_file = open(filterFileName, 'wb')
 
94
filter_file.write(functionsFilter)
 
95
 
 
96
ctx = {}
 
97
ctx['CLAMDFFT_REMAP_ORIGIN'] = generateRemapOrigin(fns)
 
98
ctx['CLAMDFFT_REMAP_DYNAMIC'] = generateRemapDynamic(fns)
 
99
ctx['CLAMDFFT_FN_DECLARATIONS'] = generateFnDeclaration(fns)
 
100
 
 
101
sys.stdout = open('../../../../include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp', 'wb')
 
102
ProcessTemplate('template/opencl_clamdfft.hpp.in', ctx)
 
103
 
 
104
ctx['CL_FN_ENUMS'] = generateEnums(fns, 'OPENCLAMDFFT_FN')
 
105
ctx['CL_FN_SWITCH'] = generateTemplates(23, 'openclamdfft_fn', 'openclamdfft_check_fn', '')
 
106
ctx['CL_FN_ENTRY_DEFINITIONS'] = generateStructDefinitions(fns, 'openclamdfft_fn', 'OPENCLAMDFFT_FN')
 
107
ctx['CL_FN_ENTRY_LIST'] = generateListOfDefinitions(fns, 'openclamdfft_fn')
 
108
ctx['CL_NUMBER_OF_ENABLED_FUNCTIONS'] = '// number of enabled functions: %d' % (numEnabled)
 
109
 
 
110
sys.stdout = open('../autogenerated/opencl_clamdfft_impl.hpp', 'wb')
 
111
ProcessTemplate('template/opencl_clamdfft_impl.hpp.in', ctx)