edouard@3749: 
edouard@3749: # Naive code generator for type convesion function XX_TO_YY testing
edouard@3749: 
edouard@3749: 
edouard@3749: types = [
edouard@3749:     ("BOOL", "TRUE"),
edouard@3749:     ("SINT", "42"),
edouard@3749:     ("USINT", "42"),
edouard@3749:     ("BYTE", "42"),
edouard@3749:     ("STRING", "'42'"),
edouard@3749:     ("INT", "42"),
edouard@3749:     ("UINT", "42"),
edouard@3749:     ("WORD", "42"),
edouard@3749:     ("DINT", "42"),
edouard@3749:     ("UDINT", "42"),
edouard@3749:     ("DWORD", "42"),
edouard@3749:     ("LINT", "42"),
edouard@3749:     ("ULINT", "42"),
edouard@3749:     ("LWORD", "42"),
edouard@3749:     ("REAL", "42.0"),
edouard@3749:     ("LREAL", "42.0"),
edouard@3749:     #("TIME", "42"),
edouard@3749:     #("TOD", "42"),
edouard@3749:     #("DATE", "42"),
edouard@3749:     #("DT", "42"),
edouard@3749: ]
edouard@3749: 
edouard@3749: for tsrc, src_literal in types:
edouard@3749:     for tdest, dest_literal in types:
edouard@3749:         if tsrc == tdest: continue
edouard@3749:         s = f"""
edouard@3749: RESULT := '{tsrc}_TO_{tdest}'; 
edouard@3749: IF {tsrc}_TO_{tdest}({tsrc}#{src_literal}) <> {tdest}#{dest_literal} THEN RETURN; END_IF;
edouard@3749: """
edouard@3749:         print(s)
edouard@3749: 
edouard@3749: