Overloaded operators: Difference between revisions
Content added Content deleted
(Added Wren) |
|||
Line 16: | Line 16: | ||
LDA ($80,x) ;use the values stored at $80+x and $81+x as a 16-bit memory address to load from. |
LDA ($80,x) ;use the values stored at $80+x and $81+x as a 16-bit memory address to load from. |
||
LDA ($80),y ;use the values stored at $80 and $81 as a 16-bit memory address to load from. Load from that address + y.</lang> |
LDA ($80),y ;use the values stored at $80 and $81 as a 16-bit memory address to load from. Load from that address + y.</lang> |
||
=={{header|Phix}}== |
|||
Phix does not allow operator overloading and it is not possible to define new operators. |
|||
The standard arithmetic operators accept (mixed) integer and floating point values without casting. |
|||
The relational operators accept integer, float, string, and sequence values. |
|||
The logical operators only accept atoms, however there are 40-something sq_xxx() builtins that can be used<br> |
|||
to perform all the builtin operations on any mix of integer, float, string, or sequence values. |
|||
Subscripts and concatenation work equivalently on strings and sequences. |
|||
Any parameter can be integer, float, string, or sequence if it is declared as an object. |
|||
For example printf() can accept a [file number, string and a] single atom or a sequence of objects, <br> |
|||
it being wise to wrap lone strings in {} to ensure you get the whole thing not just the first letter. |
|||
Inline assembly mnemonics have multiple implicit addressing modes as per the standard intel syntax. |
|||
<!--<lang Phix>(phixonline)--> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%g\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">3.5</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">3</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- 6.5</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%t\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">3.5</span> <span style="color: #0000FF;">></span> <span style="color: #000000;">3</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- true</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%t\n"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"a"</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"a"</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- true</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%t\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">2</span><span style="color: #0000FF;">})</span> <span style="color: #000080;font-style:italic;">-- false</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%V\n"</span><span style="color: #0000FF;">,{{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">&</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">2</span><span style="color: #0000FF;">}})</span> <span style="color: #000080;font-style:italic;">-- {1,2}</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%V\n"</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"a"</span> <span style="color: #0000FF;">&</span> <span style="color: #008000;">"b"</span><span style="color: #0000FF;">})</span> <span style="color: #000080;font-style:italic;">-- "ab"</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%V\n"</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"AB"</span><span style="color: #0000FF;">[</span><span style="color: #000000;">2</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">&</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">}[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]})</span> <span style="color: #000080;font-style:italic;">-- {66,1}</span> |
|||
<span style="color: #004080;">integer</span> <span style="color: #000000;">i</span> |
|||
#ilASM{ lea eax,[i] |
|||
mov [eax],ebx |
|||
mov [i],ebx |
|||
mov [i],0 |
|||
mov eax,ebx |
|||
mov eax,1 -- etc |
|||
} |
|||
<!--</lang>--> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |