tests/projects/iec61131_lang_test/gen_conversion.py
author Edouard Tisserant <edouard@beremiz.fr>
Tue, 20 Feb 2024 11:42:02 +0100
changeset 3893 5b2f3a915a43
parent 3749 fda6c1a37662
permissions -rw-r--r--
GCC toolchain: Add {SYSROOT} substitution with support for whitespaces

Any instance of {SYROOT} string in config's CFLAGS and LDFLAGS is replaced by sysroot path obtained from "gcc -print-sysroot"

# Naive code generator for type convesion function XX_TO_YY testing


types = [
    ("BOOL", "TRUE"),
    ("SINT", "42"),
    ("USINT", "42"),
    ("BYTE", "42"),
    ("STRING", "'42'"),
    ("INT", "42"),
    ("UINT", "42"),
    ("WORD", "42"),
    ("DINT", "42"),
    ("UDINT", "42"),
    ("DWORD", "42"),
    ("LINT", "42"),
    ("ULINT", "42"),
    ("LWORD", "42"),
    ("REAL", "42.0"),
    ("LREAL", "42.0"),
    #("TIME", "42"),
    #("TOD", "42"),
    #("DATE", "42"),
    #("DT", "42"),
]

for tsrc, src_literal in types:
    for tdest, dest_literal in types:
        if tsrc == tdest: continue
        s = f"""
RESULT := '{tsrc}_TO_{tdest}'; 
IF {tsrc}_TO_{tdest}({tsrc}#{src_literal}) <> {tdest}#{dest_literal} THEN RETURN; END_IF;
"""
        print(s)