package jazz.lang;
///////////////////////////////////////////////////////////////////////////////
//
// Strings
//
///////////////////////////////////////////////////////////////////////////////
public native final class String implements Comparable {
public native equals(s: String): boolean =
"%stringEqual";
public native length(): int =
"int java.lang.String.length()";
public native charAt(k: int): int =
"char java.lang.String.charAt(int)";
public native equalsIgnoreCase(s: String): boolean =
"boolean java.lang.String.equalsIgnoreCase(java.lang.String)";
public native compareTo(s: String): int =
"int java.lang.String.compareTo(java.lang.String)";
public native regionMatches(toffset: int, other: String,
ooffset: int, len: int): boolean =
"boolean java.lang.String.regionMatches(int,java.lang.String,int,int)";
public native startsWith(prefix: String): boolean =
"boolean java.lang.String.startsWith(java.lang.String)";
public native endsWith(suffix: String): boolean =
"boolean java.lang.String.endsWith(java.lang.String)";
public native indexOf(str: String, fromIndex: int): int =
"int java.lang.String.indexOf(java.lang.String,int)";
public native lastIndexOf(str: String, fromIndex: int): int =
"int java.lang.String.lastIndexOf(java.lang.String,int)";
public native substring(beginIndex: int, endIndex: int): String =
"java.lang.String java.lang.String.substring(int,int)";
public native concat(str: String): String =
"java.lang.String java.lang.String.concat(java.lang.String)";
public native replace(oldChar: int, newChar: int): String =
"java.lang.String java.lang.String.replace(char, char)";
public native toLowerCase(): String =
"java.lang.String java.lang.String.toLowerCase()";
public native toUpperCase(): String =
"java.lang.String java.lang.String.toUpperCase()";
public native trim(): String =
"java.lang.String java.lang.String.trim()";
public native split(delim: String): (int, String[]) =
"%stringSplit";
}
///////////////////////////////////////////////////////////////////////////////
//
// Implementation
//
///////////////////////////////////////////////////////////////////////////////
Builtin.(<)(x@String, y@String) = (x.compareTo(y) < 0);
Builtin.(>)(x@String, y@String) = (x.compareTo(y) > 0);
Builtin.(<=)(x@String, y@String) = (x.compareTo(y) <= 0);
Builtin.(>=)(x@String, y@String) = (x.compareTo(y) >= 0);
Builtin.(==)(x@String, y@String) = x.equals(y);