7.1.1.2.1.4.1.4. pycropml.transpiler.rules.fortranRules module¶
- class pycropml.transpiler.rules.fortranRules.FortranRules[source]¶
Bases:
GeneralRule- binary_op = {'!=': '.NE.', '*': '*', '**': '**', '+': '+', '-': '-', '/': '/', '<': '.LT.', '<=': '.LE.', '==': '.EQ.', '>': '.GT.', '>=': '.GE.', 'and': '.AND.', 'not': '.NOT..', 'or': '.OR.'}¶
- constant = {'math': {'pi': '3.14159265'}}¶
- functions = {'datetime': {'datetime': <function FortranRules.<lambda>>}, 'io': {'print': <function translatePrint>, 'read': 'Console.ReadLine', 'read_file': 'File.ReadAllText', 'write_file': 'File.WriteAllText'}, 'math': {'acos': 'ACOS', 'asin': 'ASIN', 'atan': 'ATAN', 'ceil': <function translateCeil>, 'cos': 'COS', 'exp': 'EXP', 'floor': 'FLOOR', 'ln': 'LOG', 'log': <function translateLog>, 'pow': <function translatePow>, 'sin': 'SIN', 'sqrt': 'SQRT', 'tan': 'TAN'}, 'system': {'abs': 'ABS', 'copy': <function translateCopy>, 'list': <function translateList>, 'max': <function translateMAX>, 'min': <function translateMIN>, 'modulo': 'modulo', 'pow': <function translatePow>, 'round': 'Round'}}¶
- methods = {'array': {'allocate': <function FortranRules.<lambda>>, 'append': <function FortranRules.<lambda>>, 'len': 'SIZE', 'sum': 'sum'}, 'dict': {'len': 'SIZE'}, 'float': {'int': 'INT'}, 'int': {'float': 'REAL'}, 'list': {'allocate': <function FortranRules.<lambda>>, 'append': <function translateAppend>, 'contains?': <function translateContains>, 'index': <function translateIndex>, 'len': 'SIZE', 'not contains?': <function translateNotContains>, 'pop': <function translatePop>, 'sum': 'sum'}, 'str': {'find': <function translateFind>, 'int': 'INT'}}¶
- types = {'array': '%s, DIMENSION(%s)', 'bool': 'LOGICAL', 'datetime': 'CHARACTER(65)', 'float': 'REAL', 'int': 'INTEGER', 'list': '%s,DIMENSION (:), ALLOCATABLE::', 'str': 'CHARACTER(65)'}¶
- unary_op = {'+': '+', '-': '-', 'not': '.NOT. ', '~': '~'}¶