@@ -755,55 +755,17 @@ <h3 class="Ss" id="String_expressions"><a class="permalink" href="#String_expres
755
755
character.) Raw strings also may be contained in triple quotes for them to
756
756
be multi-line, so they can include literal newline or quote characters
757
757
(although still not three quotes in a row).</ p >
758
- < p class ="Pp "> The following functions operate on string expressions. Most of
759
- them return a string, however some of these functions actually return an
760
- integer and can be used as part of an integer expression!</ p >
758
+ < p class ="Pp "> The following functions operate on string expressions, and return
759
+ strings themselves.</ p >
761
760
< table class ="Bl-column ">
762
761
< tr id ="Name~3 ">
763
762
< td > < a class ="permalink " href ="#Name~3 "> < b class ="Sy "> Name</ b > </ a > </ td >
764
763
< td > < a class ="permalink " href ="#Operation~3 "> < b class ="Sy " id ="Operation~3 "> Operation</ b > </ a > </ td >
765
764
</ tr >
766
- < tr id ="STRLEN ">
767
- < td > < a class ="permalink " href ="#STRLEN "> < code class ="Fn "> STRLEN</ code > </ a > (< var class ="Fa "> str</ var > )</ td >
768
- < td > Returns the number of characters in < var class ="Ar "> str</ var > .</ td >
769
- </ tr >
770
765
< tr id ="STRCAT ">
771
766
< td > < a class ="permalink " href ="#STRCAT "> < code class ="Fn "> STRCAT</ code > </ a > (< var class ="Fa "> strs...</ var > )</ td >
772
767
< td > Concatenates < var class ="Ar "> strs</ var > .</ td >
773
768
</ tr >
774
- < tr id ="STRCMP ">
775
- < td > < a class ="permalink " href ="#STRCMP "> < code class ="Fn "> STRCMP</ code > </ a > (< var class ="Fa "> str1</ var > ,
776
- < var class ="Fa "> str2</ var > )</ td >
777
- < td > Returns -1 if < var class ="Ar "> str1</ var > < span class ="No "> is
778
- alphabetically lower than</ span > < var class ="Ar "> str2</ var > ,
779
- < span class ="No "> zero if they match, 1 if</ span >
780
- < var class ="Ar "> str1</ var > < span class ="No "> is greater than</ span >
781
- < var class ="Ar "> str2</ var > .</ td >
782
- </ tr >
783
- < tr id ="STRIN ">
784
- < td > < a class ="permalink " href ="#STRIN "> < code class ="Fn "> STRIN</ code > </ a > (< var class ="Fa "> str1</ var > ,
785
- < var class ="Fa "> str2</ var > )</ td >
786
- < td > Returns the first position of < var class ="Ar "> str2</ var >
787
- < span class ="No "> in</ span > < var class ="Ar "> str1</ var > < span class ="No "> or
788
- zero if it's not present</ span > (first character is position 1).</ td >
789
- </ tr >
790
- < tr id ="STRRIN ">
791
- < td > < a class ="permalink " href ="#STRRIN "> < code class ="Fn "> STRRIN</ code > </ a > (< var class ="Fa "> str1</ var > ,
792
- < var class ="Fa "> str2</ var > )</ td >
793
- < td > Returns the last position of < var class ="Ar "> str2</ var >
794
- < span class ="No "> in</ span > < var class ="Ar "> str1</ var > < span class ="No "> or
795
- zero if it's not present</ span > (first character is position 1).</ td >
796
- </ tr >
797
- < tr id ="STRSUB ">
798
- < td > < a class ="permalink " href ="#STRSUB "> < code class ="Fn "> STRSUB</ code > </ a > (< var class ="Fa "> str</ var > ,
799
- < var class ="Fa "> pos</ var > , < var class ="Fa "> len</ var > )</ td >
800
- < td > Returns a substring from < var class ="Ar "> str</ var >
801
- < span class ="No "> starting at</ span > < var class ="Ar "> pos</ var >
802
- < span class ="No "> (first character is position 1, last is position -1)
803
- and</ span > < var class ="Ar "> len</ var > < span class ="No "> characters long.
804
- If</ span > < var class ="Ar "> len</ var > < span class ="No "> is not specified the
805
- substring continues to the end of</ span > < var class ="Ar "> str</ var > .</ td >
806
- </ tr >
807
769
< tr id ="STRUPR ">
808
770
< td > < a class ="permalink " href ="#STRUPR "> < code class ="Fn "> STRUPR</ code > </ a > (< var class ="Fa "> str</ var > )</ td >
809
771
< td > Returns < var class ="Ar "> str</ var > < span class ="No "> with all ASCII
@@ -816,6 +778,16 @@ <h3 class="Ss" id="String_expressions"><a class="permalink" href="#String_expres
816
778
letters</ span > (‘< code class ="Li "> A-Z</ code > ’) in
817
779
lowercase.</ td >
818
780
</ tr >
781
+ < tr id ="STRSLICE ">
782
+ < td > < a class ="permalink " href ="#STRSLICE "> < code class ="Fn "> STRSLICE</ code > </ a > (< var class ="Fa "> str</ var > ,
783
+ < var class ="Fa "> start</ var > , < var class ="Fa "> stop</ var > )</ td >
784
+ < td > Returns a substring of < var class ="Ar "> str</ var >
785
+ < span class ="No "> starting at</ span > < var class ="Ar "> start</ var >
786
+ < span class ="No "> and ending at</ span > < var class ="Ar "> stop</ var >
787
+ < span class ="No "> (exclusive). If</ span > < var class ="Ar "> stop</ var >
788
+ < span class ="No "> is not specified, the substring continues to the end
789
+ of</ span > < var class ="Ar "> str</ var > .</ td >
790
+ </ tr >
819
791
< tr id ="STRRPL ">
820
792
< td > < a class ="permalink " href ="#STRRPL "> < code class ="Fn "> STRRPL</ code > </ a > (< var class ="Fa "> str</ var > ,
821
793
< var class ="Fa "> old</ var > , < var class ="Fa "> new</ var > )</ td >
@@ -835,23 +807,129 @@ <h3 class="Ss" id="String_expressions"><a class="permalink" href="#String_expres
835
807
< var class ="Ar "> args</ var > (‘%%’ is replaced by the
836
808
‘%’ character).</ td >
837
809
</ tr >
810
+ < tr id ="STRCHAR ">
811
+ < td > < a class ="permalink " href ="#STRCHAR "> < code class ="Fn "> STRCHAR</ code > </ a > (< var class ="Fa "> str</ var > ,
812
+ < var class ="Fa "> idx</ var > )</ td >
813
+ < td > Returns the substring of < var class ="Ar "> str</ var > < span class ="No "> for
814
+ the charmap entry at</ span > < var class ="Ar "> idx</ var >
815
+ < span class ="No "> with the current charmap</ span > .
816
+ (< var class ="Ar "> idx</ var > < span class ="No "> counts charmap entries, not
817
+ characters.</ span > )</ td >
818
+ </ tr >
819
+ < tr id ="REVCHAR ">
820
+ < td > < a class ="permalink " href ="#REVCHAR "> < code class ="Fn "> REVCHAR</ code > </ a > (< var class ="Fa "> vals...</ var > )</ td >
821
+ < td > Returns the string that is mapped to < var class ="Ar "> vals</ var >
822
+ < span class ="No "> with the current charmap. If there is no unique charmap
823
+ entry for</ span > < var class ="Ar "> vals</ var > , an error occurs.</ td >
824
+ </ tr >
825
+ </ table >
826
+ < p class ="Pp "> The following functions operate on string expressions, but return
827
+ integers.</ p >
828
+ < table class ="Bl-column ">
829
+ < tr id ="Name~4 ">
830
+ < td > < a class ="permalink " href ="#Name~4 "> < b class ="Sy "> Name</ b > </ a > </ td >
831
+ < td > < a class ="permalink " href ="#Operation~4 "> < b class ="Sy " id ="Operation~4 "> Operation</ b > </ a > </ td >
832
+ </ tr >
833
+ < tr id ="STRLEN ">
834
+ < td > < a class ="permalink " href ="#STRLEN "> < code class ="Fn "> STRLEN</ code > </ a > (< var class ="Fa "> str</ var > )</ td >
835
+ < td > Returns the number of characters in < var class ="Ar "> str</ var > .</ td >
836
+ </ tr >
837
+ < tr id ="STRCMP ">
838
+ < td > < a class ="permalink " href ="#STRCMP "> < code class ="Fn "> STRCMP</ code > </ a > (< var class ="Fa "> str1</ var > ,
839
+ < var class ="Fa "> str2</ var > )</ td >
840
+ < td > Compares < var class ="Ar "> str1</ var > < span class ="No "> and</ span >
841
+ < var class ="Ar "> str2</ var > < span class ="No "> according to ASCII ordering of
842
+ their characters. Returns -1 if</ span > < var class ="Ar "> str1</ var >
843
+ < span class ="No "> is lower than</ span > < var class ="Ar "> str2</ var > , 1 if
844
+ < var class ="Ar "> str1</ var > < span class ="No "> is greater than</ span >
845
+ < var class ="Ar "> str2</ var > , or 0 if they match.</ td >
846
+ </ tr >
847
+ < tr id ="STRFIND ">
848
+ < td > < a class ="permalink " href ="#STRFIND "> < code class ="Fn "> STRFIND</ code > </ a > (< var class ="Fa "> str</ var > ,
849
+ < var class ="Fa "> sub</ var > )</ td >
850
+ < td > Returns the first index of < var class ="Ar "> sub</ var >
851
+ < span class ="No "> in</ span > < var class ="Ar "> str</ var > , or -1 if it's not
852
+ present.</ td >
853
+ </ tr >
854
+ < tr id ="STRRFIND ">
855
+ < td > < a class ="permalink " href ="#STRRFIND "> < code class ="Fn "> STRRFIND</ code > </ a > (< var class ="Fa "> str</ var > ,
856
+ < var class ="Fa "> sub</ var > )</ td >
857
+ < td > Returns the last index of < var class ="Ar "> sub</ var >
858
+ < span class ="No "> in</ span > < var class ="Ar "> str</ var > , or -1 if it's not
859
+ present.</ td >
860
+ </ tr >
838
861
< tr id ="INCHARMAP ">
839
862
< td > < a class ="permalink " href ="#INCHARMAP "> < code class ="Fn "> INCHARMAP</ code > </ a > (< var class ="Fa "> str</ var > )</ td >
840
863
< td > Returns 1 if < var class ="Ar "> str</ var > < span class ="No "> has an entry in
841
- the current charmap, and 0 otherwise</ span > .</ td >
864
+ the current charmap, or 0 otherwise</ span > .</ td >
842
865
</ tr >
843
866
< tr id ="CHARLEN ">
844
867
< td > < a class ="permalink " href ="#CHARLEN "> < code class ="Fn "> CHARLEN</ code > </ a > (< var class ="Fa "> str</ var > )</ td >
845
868
< td > Returns the number of charmap entries in < var class ="Ar "> str</ var >
846
869
< span class ="No "> with the current charmap</ span > .</ td >
847
870
</ tr >
871
+ < tr id ="CHARCMP ">
872
+ < td > < a class ="permalink " href ="#CHARCMP "> < code class ="Fn "> CHARCMP</ code > </ a > (< var class ="Fa "> str1</ var > ,
873
+ < var class ="Fa "> str2</ var > )</ td >
874
+ < td > Compares < var class ="Ar "> str1</ var > < span class ="No "> and</ span >
875
+ < var class ="Ar "> str2</ var > < span class ="No "> according to their charmap
876
+ entry values with the current charmap. Returns -1 if</ span >
877
+ < var class ="Ar "> str1</ var > < span class ="No "> is lower than</ span >
878
+ < var class ="Ar "> str2</ var > , 1 if < var class ="Ar "> str1</ var >
879
+ < span class ="No "> is greater than</ span > < var class ="Ar "> str2</ var > , or 0
880
+ if they match.</ td >
881
+ </ tr >
882
+ < tr id ="CHARSIZE ">
883
+ < td > < a class ="permalink " href ="#CHARSIZE "> < code class ="Fn "> CHARSIZE</ code > </ a > (< var class ="Fa "> char</ var > )</ td >
884
+ < td > Returns how many values are in the charmap entry for
885
+ < var class ="Ar "> char</ var > < span class ="No "> with the current
886
+ charmap.</ span > </ td >
887
+ </ tr >
888
+ </ table >
889
+ < p class ="Pp "> Note that the first character of a string is at index 0, and the
890
+ last is at index -1.</ p >
891
+ < p class ="Pp " id ="position "> The following legacy functions are similar to other
892
+ functions that operate on string expressions, but for historical reasons,
893
+ they count characters starting from
894
+ < a class ="permalink " href ="#position "> < i class ="Em "> position 1</ i > </ a > , not
895
+ from index 0! (Position -1 still counts from the last character.)</ p >
896
+ < table class ="Bl-column ">
897
+ < tr id ="Name~5 ">
898
+ < td > < a class ="permalink " href ="#Name~5 "> < b class ="Sy "> Name</ b > </ a > </ td >
899
+ < td > < a class ="permalink " href ="#Operation~5 "> < b class ="Sy " id ="Operation~5 "> Operation</ b > </ a > </ td >
900
+ </ tr >
901
+ < tr id ="STRSUB ">
902
+ < td > < a class ="permalink " href ="#STRSUB "> < code class ="Fn "> STRSUB</ code > </ a > (< var class ="Fa "> str</ var > ,
903
+ < var class ="Fa "> pos</ var > , < var class ="Fa "> len</ var > )</ td >
904
+ < td > Returns a substring of < var class ="Ar "> str</ var >
905
+ < span class ="No "> starting at</ span > < var class ="Ar "> pos</ var >
906
+ < span class ="No "> and</ span > < var class ="Ar "> len</ var >
907
+ < span class ="No "> characters long. If</ span > < var class ="Ar "> len</ var >
908
+ < span class ="No "> is not specified, the substring continues to the end
909
+ of</ span > < var class ="Ar "> str</ var > .</ td >
910
+ </ tr >
911
+ < tr id ="STRIN ">
912
+ < td > < a class ="permalink " href ="#STRIN "> < code class ="Fn "> STRIN</ code > </ a > (< var class ="Fa "> str</ var > ,
913
+ < var class ="Fa "> sub</ var > )</ td >
914
+ < td > Returns the first position of < var class ="Ar "> sub</ var >
915
+ < span class ="No "> in</ span > < var class ="Ar "> str</ var > , or 0 if it's not
916
+ present.</ td >
917
+ </ tr >
918
+ < tr id ="STRRIN ">
919
+ < td > < a class ="permalink " href ="#STRRIN "> < code class ="Fn "> STRRIN</ code > </ a > (< var class ="Fa "> str</ var > ,
920
+ < var class ="Fa "> sub</ var > )</ td >
921
+ < td > Returns the last position of < var class ="Ar "> sub</ var >
922
+ < span class ="No "> in</ span > < var class ="Ar "> str</ var > , or 0 if it's not
923
+ present.</ td >
924
+ </ tr >
848
925
< tr id ="CHARSUB ">
849
926
< td > < a class ="permalink " href ="#CHARSUB "> < code class ="Fn "> CHARSUB</ code > </ a > (< var class ="Fa "> str</ var > ,
850
927
< var class ="Fa "> pos</ var > )</ td >
851
- < td > Returns the substring for the charmap entry at < var class ="Ar "> pos</ var >
852
- < span class ="No "> in</ span > < var class ="Ar "> str</ var >
853
- < span class ="No "> (first character is position 1, last is position -1) with
854
- the current charmap</ span > .</ td >
928
+ < td > Returns the substring of < var class ="Ar "> str</ var > < span class ="No "> for
929
+ the charmap entry at</ span > < var class ="Ar "> pos</ var >
930
+ < span class ="No "> with the current charmap</ span > .
931
+ (< var class ="Ar "> pos</ var > < span class ="No "> counts charmap entries, not
932
+ characters.</ span > )</ td >
855
933
</ tr >
856
934
</ table >
857
935
</ section >
@@ -935,9 +1013,9 @@ <h3 class="Ss" id="Other_functions"><a class="permalink" href="#Other_functions"
935
1013
< p class ="Pp "> There are a few other functions that do things beyond numeric or
936
1014
string operations:</ p >
937
1015
< table class ="Bl-column ">
938
- < tr id ="Name~4 ">
939
- < td > < a class ="permalink " href ="#Name~4 "> < b class ="Sy "> Name</ b > </ a > </ td >
940
- < td > < a class ="permalink " href ="#Operation~4 "> < b class ="Sy " id ="Operation~4 "> Operation</ b > </ a > </ td >
1016
+ < tr id ="Name~6 ">
1017
+ < td > < a class ="permalink " href ="#Name~6 "> < b class ="Sy "> Name</ b > </ a > </ td >
1018
+ < td > < a class ="permalink " href ="#Operation~6 "> < b class ="Sy " id ="Operation~6 "> Operation</ b > </ a > </ td >
941
1019
</ tr >
942
1020
< tr id ="DEF ">
943
1021
< td > < a class ="permalink " href ="#DEF "> < code class ="Fn "> DEF</ code > </ a > (< var class ="Fa "> symbol</ var > )</ td >
@@ -1738,8 +1816,8 @@ <h3 class="Ss" id="Predeclared_symbols"><a class="permalink" href="#Predeclared_
1738
1816
symbols</ a > </ h3 >
1739
1817
< p class ="Pp "> The following symbols are defined by the assembler:</ p >
1740
1818
< table class ="Bl-column Bd-indent ">
1741
- < tr id ="Name~5 ">
1742
- < td > < a class ="permalink " href ="#Name~5 "> < b class ="Sy "> Name</ b > </ a > </ td >
1819
+ < tr id ="Name~7 ">
1820
+ < td > < a class ="permalink " href ="#Name~7 "> < b class ="Sy "> Name</ b > </ a > </ td >
1743
1821
< td > < a class ="permalink " href ="#Type~2 "> < b class ="Sy " id ="Type~2 "> Type</ b > </ a > </ td >
1744
1822
< td > < a class ="permalink " href ="#Contents "> < b class ="Sy " id ="Contents "> Contents</ b > </ a > </ td >
1745
1823
</ tr >
0 commit comments