@@ -76,6 +76,134 @@ Rebol [
76
76
77
77
===end-group===
78
78
79
+ ===start-group=== "Special arrow-like words"
80
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1302
81
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1318
82
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1342
83
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1478
84
+
85
+ --test-- "valid arrow-like words"
86
+ --assert word? try [load {<-->} ]
87
+ --assert word? try [load {<==>} ]
88
+ --assert word? try [load {<-==->} ]
89
+ --assert word? try [load {<~~~>} ]
90
+
91
+ --test-- "valid left-arrow-like words"
92
+ --assert word? try [load {<<} ]
93
+ --assert word? try [load {<<<} ]
94
+ --assert word? try [load {<<<<} ]
95
+ --assert word? try [load {<<==} ]
96
+ --assert word? try [load {<===} ]
97
+ --assert word? try [load {<---} ]
98
+ --assert word? try [load {<~~~} ]
99
+ --assert all [block? b: try [load {<<<""} ] parse b [word! string! ]]
100
+
101
+ --test-- "valid right-arrow-like words"
102
+ --assert word? try [load {>>} ]
103
+ --assert word? try [load {>>>} ]
104
+ --assert word? try [load {>>>>} ]
105
+ --assert word? try [load {==>>} ]
106
+ --assert word? try [load {===>} ]
107
+ --assert word? try [load {--->} ]
108
+ --assert word? try [load {~~~>} ]
109
+ --assert all [block? b: try [load {>>>""} ] parse b [word! string! ]]
110
+
111
+ --test-- "invalid cases"
112
+ --assert error? try [load {a<} ]
113
+ --assert error? try [load {a>} ]
114
+ --assert error? try [load {a<--} ]
115
+ --assert error? try [load {a-->} ]
116
+
117
+ --test-- "valid arrow-like lit-words"
118
+ --assert lit-word? try [load {'<-->} ]
119
+ --assert lit-word? try [load {'<==>} ]
120
+ --assert lit-word? try [load {'<-==->} ]
121
+ --assert lit-word? try [load {'<~~~>} ]
122
+
123
+ --test-- "valid left-arrow-like lit-words"
124
+ --assert lit-word? try [load {'<<} ]
125
+ --assert lit-word? try [load {'<<<} ]
126
+ --assert lit-word? try [load {'<<<<} ]
127
+ --assert all [block? b: try [load {'<<<""} ] parse b [lit-word! string! ]]
128
+
129
+ --test-- "valid right-arrow-like lit-words"
130
+ --assert lit-word? try [load {'>>} ]
131
+ --assert lit-word? try [load {'>>>} ]
132
+ --assert lit-word? try [load {'>>>>} ]
133
+ --assert lit-word? try [load {'==>>} ]
134
+ --assert lit-word? try [load {'===>} ]
135
+ --assert lit-word? try [load {'--->} ]
136
+ --assert lit-word? try [load {'~~~>} ]
137
+ --assert all [block? b: try [load {'>>>""} ] parse b [lit-word! string! ]]
138
+
139
+ --test-- "valid arrow-like get-words"
140
+ --assert get-word? try [load {:<-->} ]
141
+ --assert get-word? try [load {:<==>} ]
142
+ --assert get-word? try [load {:<-==->} ]
143
+ --assert get-word? try [load {:<~~~>} ]
144
+
145
+ --test-- "valid left-arrow-like get-words"
146
+ --assert get-word? try [load {:<<} ]
147
+ --assert get-word? try [load {:<<<} ]
148
+ --assert get-word? try [load {:<<<<} ]
149
+ --assert all [block? b: try [load {:<<<""} ] parse b [get-word! string! ]]
150
+
151
+ --test-- "valid right-arrow-like get-words"
152
+ --assert get-word? try [load {:>>} ]
153
+ --assert get-word? try [load {:>>>} ]
154
+ --assert get-word? try [load {:>>>>} ]
155
+ --assert get-word? try [load {:==>>} ]
156
+ --assert get-word? try [load {:===>} ]
157
+ --assert get-word? try [load {:--->} ]
158
+ --assert get-word? try [load {:~~~>} ]
159
+ --assert all [block? b: try [load {:>>>""} ] parse b [get-word! string! ]]
160
+
161
+ --test-- "valid arrow-like set-words"
162
+ --assert set-word? try [load {<-->:} ]
163
+ --assert set-word? try [load {<==>:} ]
164
+ --assert set-word? try [load {<-==->:} ]
165
+ --assert set-word? try [load {<~~~>:} ]
166
+
167
+ --test-- "valid left-arrow-like set-words"
168
+ --assert set-word? try [load {<<:} ]
169
+ --assert set-word? try [load {<<<:} ]
170
+ --assert set-word? try [load {<<<<:} ]
171
+ --assert all [block? b: try [load {<<<:""} ] parse b [set-word! string! ]]
172
+
173
+ --test-- "valid right-arrow-like set-words"
174
+ --assert set-word? try [load {>>:} ]
175
+ --assert set-word? try [load {>>>:} ]
176
+ --assert set-word? try [load {>>>>:} ]
177
+ --assert set-word? try [load {==>>:} ]
178
+ --assert set-word? try [load {===>:} ]
179
+ --assert set-word? try [load {--->:} ]
180
+ --assert set-word? try [load {~~~>:} ]
181
+ --assert all [block? b: try [load {>>>:""} ] parse b [set-word! string! ]]
182
+
183
+ --test-- "valid arrow-like refinements"
184
+ --assert refinement? try [load {/<-->} ]
185
+ --assert refinement? try [load {/<==>} ]
186
+ --assert refinement? try [load {/<-==->} ]
187
+ --assert refinement? try [load {/<~~~>} ]
188
+
189
+ --test-- "valid left-arrow-like refinements"
190
+ --assert refinement? try [load {/<<} ]
191
+ --assert refinement? try [load {/<<<} ]
192
+ --assert refinement? try [load {/<<<<} ]
193
+ --assert all [block? b: try [load {/<<<""} ] parse b [refinement! string! ]]
194
+
195
+ --test-- "valid right-arrow-like refinements"
196
+ --assert refinement? try [load {/>>} ]
197
+ --assert refinement? try [load {/>>>} ]
198
+ --assert refinement? try [load {/>>>>} ]
199
+ --assert refinement? try [load {/==>>} ]
200
+ --assert refinement? try [load {/===>} ]
201
+ --assert refinement? try [load {/--->} ]
202
+ --assert refinement? try [load {/~~~>} ]
203
+ --assert all [block? b: try [load {/>>>""} ] parse b [refinement! string! ]]
204
+
205
+ ===end-group===
206
+
79
207
===start-group=== "Email"
80
208
--test-- "valid `emails`"
81
209
--assert email? load {name@where}
0 commit comments