File: type_mapper.py

package info (click to toggle)
adios 1.13.1-31
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 23,692 kB
  • sloc: ansic: 133,236; f90: 8,791; sh: 7,779; python: 7,648; xml: 3,793; makefile: 2,996; cpp: 2,340; java: 626; sed: 16; perl: 8
file content (114 lines) | stat: -rwxr-xr-x 3,109 bytes parent folder | download | duplicates (2)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/python3

c_types = {
    'string' : 'string',
    'byte' : 'unsigned char',
    'integer*1' : 'char',
    'short' : 'short',
    'integer*2' : 'short',
    'integer' : 'int',
    'integer*4' : 'int',
    'long' : 'long',
    'integer*8' : 'long',
    'unsigned byte' : 'unsigned byte',
    'unsigned integer*1' : 'unsigned byte',
    'unsigned short' : 'unsigned short',
    'unsigned integer*2' : 'unsigned short',
    'unsigned integer' : 'unsigned integer',
    'unsigned integer*4' : 'unsigned integer',
    'unsigned long' : 'unsigned long',
    'unsigned integer*8' : 'unsigned long',
    'float' : 'float',
    'real' : 'float',
    'real*4' : 'float',
    'unsigned float' : 'unsigned float',
    'unsigned real' : 'unsigned float',
    'unsigned real*4' : 'unsigned float',
    'double' : 'double',
    'real*8' : 'double',
    'unsigned double' : 'unsigned double',
    'unsigned real*8' : 'unsigned double',
    'complex' : 'complex',
    'complex*8' : 'complex',
    'double complex' : 'double complex',
    'complex*16' : 'double complex'
}

fortran_types = {
    'string' : 'string',
    'byte' : 'integer*1',
    'integer*1' : 'integer*1',
    'short' : 'integer*2',
    'integer*2' : 'integer*2',
    'integer' : 'integer*4',
    'integer*4' : 'integer*4',
    'long' : 'integer*8',
    'integer*8' : 'integer*8',
    'unsigned byte' : 'unsigned integer*1',
    'unsigned integer*1' : 'unsigned integer*1',
    'unsigned short' : 'unsigned integer*2',
    'unsigned integer*2' : 'unsigned integer*2',
    'unsigned integer' : 'unsigned integer*4',
    'unsigned integer*4' : 'unsigned integer*4',
    'unsigned long' : 'unsigned integer*8',
    'unsigned integer*8' : 'unsigned integer*8',
    'float' : 'real*4',
    'real' : 'real*4',
    'real*4' : 'real*4',
    'unsigned float' : 'unsigned real*4',
    'unsigned real' : 'unsigned real*4',
    'unsigned real*4' : 'unsigned real*4',
    'double' : 'real*8',
    'real*8' : 'real*8',
    'unsigned double' : 'unsigned real*8',
    'unsigned real*8' : 'unsigned real*8',
    'complex' : 'complex*8',
    'complex*8' : 'complex*8',
    'double complex' : 'complex*16',
    'complex*16' : 'complex*16'
}

type_sizes = {
    'string' : 1,
    'byte' : 1,
    'integer*1' : 1,
    'short' : 2,
    'integer*2' : 2,
    'integer' : 4,
    'integer*4' : 4,
    'long' : 8,
    'integer*8' : 8,
    'unsigned byte' : 1,
    'unsigned integer*1' : 1,
    'unsigned short' : 2,
    'unsigned integer*2' : 2,
    'unsigned integer' : 4,
    'unsigned integer*4' : 4,
    'unsigned long' : 8,
    'unsigned integer*8' : 8,
    'float' : 4,
    'real' : 4,
    'real*4' : 4,
    'unsigned float' : 4,
    'unsigned real' : 4,
    'unsigned real*4' : 4,
    'double' : 8,
    'real*8' : 8,
    'unsigned double' : 8,
    'unsigned real*8' : 8,
    'complex' : 8,
    'complex*8' : 8,
    'double complex' : 16,
    'complex*16' : 16
}

def get_c_type (parsed_type):
    return c_types [parsed_type]

def get_fortran_type (parsed_type):
    return fortran_types [parsed_type]

def get_size (parsed_type):
    return type_sizes [parsed_type]