Skip to content

Commit 989c3b5

Browse files
committed
Self referencing type fucntions and missing WCHAR
1 parent 6a96c7a commit 989c3b5

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

libs/stdlib/iec61131-st/to_bit.st

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ FUNCTION TO_BOOL<T: ANY> : BOOL
44
END_VAR
55
END_FUNCTION
66

7+
FUNCTION TO_BOOL__BOOL : BOOL
8+
VAR_INPUT
9+
in : BOOL;
10+
END_VAR
11+
12+
TO_BOOL__BOOL := in;
13+
END_FUNCTION
14+
715
FUNCTION TO_BOOL__BYTE : BOOL
816
VAR_INPUT
917
in : BYTE;
@@ -44,6 +52,14 @@ FUNCTION TO_BYTE<T: ANY> : BYTE
4452
END_VAR
4553
END_FUNCTION
4654

55+
FUNCTION TO_BYTE__BYTE : BYTE
56+
VAR_INPUT
57+
in : BYTE;
58+
END_VAR
59+
60+
TO_BYTE__BYTE := in;
61+
END_FUNCTION
62+
4763
FUNCTION TO_BYTE__BOOL : BYTE
4864
VAR_INPUT
4965
in : BOOL;
@@ -92,6 +108,14 @@ FUNCTION TO_WORD<T: ANY> : WORD
92108
END_VAR
93109
END_FUNCTION
94110

111+
FUNCTION TO_WORD__WORD : WORD
112+
VAR_INPUT
113+
in : WORD;
114+
END_VAR
115+
116+
TO_WORD__WORD := in;
117+
END_FUNCTION
118+
95119
FUNCTION TO_WORD__BOOL : WORD
96120
VAR_INPUT
97121
in : BOOL;
@@ -108,6 +132,14 @@ FUNCTION TO_WORD__CHAR : WORD
108132
TO_WORD__CHAR := CHAR_TO_WORD(in);
109133
END_FUNCTION
110134

135+
FUNCTION TO_WORD__WCHAR : WORD
136+
VAR_INPUT
137+
in : WCHAR;
138+
END_VAR
139+
140+
TO_WORD__WCHAR := WCHAR_TO_WORD(in);
141+
END_FUNCTION
142+
111143
FUNCTION TO_WORD__BYTE : WORD
112144
VAR_INPUT
113145
in : BYTE;
@@ -140,6 +172,14 @@ FUNCTION TO_DWORD<T: ANY> : DWORD
140172
END_VAR
141173
END_FUNCTION
142174

175+
FUNCTION TO_DWORD__DWORD : DWORD
176+
VAR_INPUT
177+
in : DWORD;
178+
END_VAR
179+
180+
TO_DWORD__DWORD := in;
181+
END_FUNCTION
182+
143183
FUNCTION TO_DWORD__BOOL : DWORD
144184
VAR_INPUT
145185
in : BOOL;
@@ -196,6 +236,14 @@ FUNCTION TO_LWORD<T: ANY> : LWORD
196236
END_VAR
197237
END_FUNCTION
198238

239+
FUNCTION TO_LWORD__LWORD : LWORD
240+
VAR_INPUT
241+
in : LWORD;
242+
END_VAR
243+
244+
TO_LWORD__LWORD := in;
245+
END_FUNCTION
246+
199247
FUNCTION TO_LWORD__BOOL : LWORD
200248
VAR_INPUT
201249
in : BOOL;

tests/lit/single/conversion/to_bit.st

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
// RUN: (%COMPILE %s && %RUN) | %CHECK %s
55
FUNCTION main
6+
printf('%d$N', TO_BOOL(BOOL#FALSE)); // CHECK: 0
7+
printf('%d$N', TO_BOOL(BOOL#TRUE)); // CHECK: 1
68
printf('%d$N', TO_BOOL(BYTE#0)); // CHECK: 0
79
printf('%d$N', TO_BOOL(BYTE#5)); // CHECK: 1
810
printf('%d$N', TO_BOOL(WORD#0)); // CHECK: 0
@@ -12,20 +14,24 @@ FUNCTION main
1214
printf('%d$N', TO_BOOL(LWORD#0)); // CHECK: 0
1315
printf('%d$N', TO_BOOL(LWORD#5)); // CHECK: 1
1416

17+
printf('%d$N', TO_BYTE(BYTE#5)); // CHECK: 5
1518
printf('%d$N', TO_BYTE(BOOL#FALSE)); // CHECK: 0
1619
printf('%d$N', TO_BYTE(BOOL#TRUE)); // CHECK: 1
1720
printf('%d$N', TO_BYTE(CHAR#'a')); // CHECK: 97
1821
printf('%d$N', TO_BYTE(WORD#5)); // CHECK: 5
1922
printf('%d$N', TO_BYTE(DWORD#5)); // CHECK: 5
2023
printf('%d$N', TO_BYTE(LWORD#5)); // CHECK: 5
2124

25+
printf('%d$N', TO_WORD(WORD#5)); // CHECK: 5
2226
printf('%d$N', TO_WORD(BOOL#FALSE)); // CHECK: 0
2327
printf('%d$N', TO_WORD(BOOL#TRUE)); // CHECK: 1
2428
printf('%d$N', TO_WORD(CHAR#'a')); // CHECK: 97
29+
printf('%d$N', TO_WORD(WCHAR#"a")); // CHECK: 97
2530
printf('%d$N', TO_WORD(BYTE#5)); // CHECK: 5
2631
printf('%d$N', TO_WORD(DWORD#5)); // CHECK: 5
2732
printf('%d$N', TO_WORD(LWORD#5)); // CHECK: 5
2833

34+
printf('%d$N', TO_DWORD(DWORD#5)); // CHECK: 5
2935
printf('%d$N', TO_DWORD(BOOL#FALSE)); // CHECK: 0
3036
printf('%d$N', TO_DWORD(BOOL#TRUE)); // CHECK: 1
3137
printf('%d$N', TO_DWORD(CHAR#'a')); // CHECK: 97
@@ -34,6 +40,7 @@ FUNCTION main
3440
printf('%d$N', TO_DWORD(WORD#5)); // CHECK: 5
3541
printf('%d$N', TO_DWORD(LWORD#5)); // CHECK: 5
3642

43+
printf('%d$N', TO_LWORD(LWORD#5)); // CHECK: 5
3744
printf('%d$N', TO_LWORD(BOOL#FALSE)); // CHECK: 0
3845
printf('%d$N', TO_LWORD(BOOL#TRUE)); // CHECK: 1
3946
printf('%d$N', TO_LWORD(CHAR#'a')); // CHECK: 97

0 commit comments

Comments
 (0)