Skip to content

Commit 429aa34

Browse files
author
Craig Rasmussen
committed
Completed more of the intrinsic type conversions for FAST to Sage conversions. Still need to handle DOUBLE COMPLEX.
1 parent ac94854 commit 429aa34

1 file changed

Lines changed: 30 additions & 11 deletions

File tree

fortran/trans/fast2sage.str

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,9 @@ signature
188188
TYPE_FLOAT : TYPE_FLOAT
189189
TYPE_DOUBLE : TYPE_DOUBLE
190190
TYPE_COMPLEX : TYPE_COMPLEX
191+
TYPE_BOOL : TYPE_BOOL
191192
TYPE_CHAR : TYPE_CHAR
192193
TYPE_LAST : TYPE_LAST
193-
TYPE_BOOL : TYPE_BOOL //CER-TODO-ROSE
194194

195195
SgUntypedType : string * expr * bool * bool * bool * bool * bool * bool * expr * string * bool * enum -> SgUntypedType
196196
SgUntypedType_type_enum : enum -> SgUntypedType_type_enum
@@ -248,14 +248,17 @@ sg-fortran-operator =
248248
<+ ? FORTRAN_INTRINSIC_GT() ; ! SgToken_ROSE_Fortran_Operators(10015)
249249
<+ ? FORTRAN_INTRINSIC_NOT() ; ! SgToken_ROSE_Fortran_Operators(10016)
250250

251-
// e_unknown=0,e_void,e_int,e_float,e_double,e_complex,e_char,e_last
251+
// e_unknown=0,e_void,e_int,e_float,e_double,e_complex,e_bool,e_char,e_last
252252
sg-type-enum =
253253
? TYPE_UNKNOWN() ; ! SgUntypedType_type_enum(0)
254254
<+ ? TYPE_VOID() ; ! SgUntypedType_type_enum(1)
255255
<+ ? TYPE_INT() ; ! SgUntypedType_type_enum(2)
256256
<+ ? TYPE_FLOAT() ; ! SgUntypedType_type_enum(3)
257257
<+ ? TYPE_DOUBLE() ; ! SgUntypedType_type_enum(4)
258-
<+ ? TYPE_BOOL() ; ! SgUntypedType_type_enum(0) //CER-TODO-ROSE
258+
<+ ? TYPE_COMPLEX() ; ! SgUntypedType_type_enum(5)
259+
<+ ? TYPE_BOOL() ; ! SgUntypedType_type_enum(6)
260+
<+ ? TYPE_CHAR() ; ! SgUntypedType_type_enum(7)
261+
//TODO - DOUBLECOMPLEX
259262

260263
sg-build-void-type = ! SgUntypedType("void",<sg-expression>NULL_EXPR(),0,0,0,
261264
1,0,0,<sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_VOID())
@@ -267,8 +270,12 @@ sg-build-intrinsic-type =
267270
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_FLOAT())
268271
<+ ? DOUBLEPRECISION() ; ! SgUntypedType("double", <sg-expression>NULL_EXPR(),0,0,0,
269272
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_DOUBLE())
273+
<+ ? COMPLEX() ; ! SgUntypedType("complex",<sg-expression>NULL_EXPR(),0,0,0,
274+
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_COMPLEX())
270275
<+ ? LOGICAL() ; ! SgUntypedType("bool", <sg-expression>NULL_EXPR(),0,0,0,
271276
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_BOOL())
277+
<+ ? CHARACTER() ; ! SgUntypedType("char", <sg-expression>NULL_EXPR(),0,0,0,
278+
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_CHAR())
272279

273280
sg-build-intrinsic-type(|kind) =
274281
? INTEGER() ; ! SgUntypedType("integer", kind,1,0,0,
@@ -277,8 +284,12 @@ sg-build-intrinsic-type(|kind) =
277284
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_FLOAT())
278285
<+ ? DOUBLEPRECISION() ; ! SgUntypedType("double", kind,1,0,0,
279286
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_DOUBLE())
287+
<+ ? COMPLEX() ; ! SgUntypedType("complex", kind,1,0,0,
288+
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_COMPLEX())
280289
<+ ? LOGICAL() ; ! SgUntypedType("bool", kind,1,0,0,
281290
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_BOOL())
291+
<+ ? CHARACTER() ; ! SgUntypedType("char", kind,1,0,0,
292+
1,0,0, <sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_CHAR())
282293

283294
//R201
284295
fast-to-sage: Program(units)
@@ -288,14 +299,22 @@ fast-to-sage: Program(units)
288299
SgUntypedFunctionDeclarationList(units)))
289300

290301
//R404
291-
fast-to-sage: INTEGER() -> SgUntypedType("integer",<sg-expression>NULL_EXPR(),0,0,0,
292-
1,0,0,<sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_INT())
293-
fast-to-sage: REAL() -> SgUntypedType("float", <sg-expression>NULL_EXPR(),0,0,0,
294-
1,0,0,<sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_FLOAT())
295-
fast-to-sage: DOUBLEPRECISION() -> SgUntypedType("double", <sg-expression>NULL_EXPR(),0,0,0,
296-
1,0,0,<sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_DOUBLE())
297-
fast-to-sage: LOGICAL() -> SgUntypedType("bool", <sg-expression>NULL_EXPR(),0,0,0,
298-
1,0,0,<sg-expression>NULL_EXPR(),"",0,<sg-type-enum>TYPE_BOOL())
302+
fast-to-sage: INTEGER() -> <sg-build-intrinsic-type> INTEGER()
303+
fast-to-sage: INTEGER(kind) -> <sg-build-intrinsic-type(|kind)> INTEGER()
304+
305+
fast-to-sage: REAL() -> <sg-build-intrinsic-type> REAL()
306+
fast-to-sage: REAL(kind) -> <sg-build-intrinsic-type(|kind)> REAL()
307+
308+
fast-to-sage: DOUBLEPRECISION() -> <sg-build-intrinsic-type> DOUBLEPRECISION()
309+
310+
fast-to-sage: COMPLEX() -> <sg-build-intrinsic-type> COMPLEX()
311+
fast-to-sage: COMPLEX(kind) -> <sg-build-intrinsic-type(|kind)> COMPLEX()
312+
313+
fast-to-sage: LOGICAL() -> <sg-build-intrinsic-type> LOGICAL()
314+
fast-to-sage: LOGICAL(kind) -> <sg-build-intrinsic-type(|kind)> LOGICAL()
315+
316+
fast-to-sage: CHARACTER() -> <sg-build-intrinsic-type> CHARACTER()
317+
fast-to-sage: CHARACTER(len) -> <sg-build-intrinsic-type(|len)> CHARACTER()
299318

300319
//R407
301320
fast-to-sage: IntVal(val)

0 commit comments

Comments
 (0)