116 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			116 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package lua.lib.luautf8; | ||
|  | 
 | ||
|  | /** | ||
|  | 	These are all externs for the lua-utf8 library, which functions | ||
|  | 	as an additional set of string tools. | ||
|  | 
 | ||
|  | 	Note that all relevant indexes are "1" based. | ||
|  | **/ | ||
|  | @:luaRequire('lua-utf8') | ||
|  | extern class Utf8 { | ||
|  | 	/** | ||
|  | 		Receives a string and returns its length. The empty string `""` has | ||
|  | 		length `0`. Embedded zeros are counted, so `"a\000bc\000"` has length `5`. | ||
|  | 	**/ | ||
|  | 	static function len(str:String):Int; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Receives zero or more integers. Returns a string with length equal to the | ||
|  | 		number of arguments, in which each character has the internal numerical | ||
|  | 		code equal to its corresponding argument. | ||
|  | 		Note that numerical codes are not necessarily portable across platforms. | ||
|  | 	**/ | ||
|  | 	static function char(codes:haxe.extern.Rest<Int>):String; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Returns the substring of `str` that starts at `start` and continues until `end`; | ||
|  | 		`start` and `end` can be negative. If `end` is absent, then it is assumed to be | ||
|  | 		equal to `-1` (which is the same as the string length). | ||
|  | 		In particular, the call `sub(str,1,end)` returns a prefix of `str` | ||
|  | 		with length `end`, and `sub(str, -end)` returns a suffix of `str` with | ||
|  | 		length `start`. | ||
|  | 	**/ | ||
|  | 	static function sub(str:String, start:Int, ?end:Int):StringSub; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Returns the character code at position `index` of `str`. | ||
|  | 	**/ | ||
|  | 	static function charCodeAt(str:String, index:Int):Int; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Looks for the first match of pattern in the string `str`. | ||
|  | 		If it finds a match, then `find` returns the indices of `str` where this | ||
|  | 		occurrence starts and ends. | ||
|  | 
 | ||
|  | 		@param target If the target has captures, then in a successful match the | ||
|  | 			   captured values are also returned, after the two indices. | ||
|  | 		@param start specifies where to start the search; its default value is `1` | ||
|  | 			   and can be negative. | ||
|  | 		@param plain turns off the pattern matching facilities, so the function does | ||
|  | 			   a plain "find substring" operation, with no characters in pattern | ||
|  | 			   being considered "magic". Note that if plain is given, then `start` must be given as well. | ||
|  | 	**/ | ||
|  | 	static function find(str:String, target:String, ?start:Int, ?plain:Bool):StringFind; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Returns the internal numerical codes of the characters `str[index]`. | ||
|  | 		Note that numerical codes are not necessarily portable across platforms. | ||
|  | 	**/ | ||
|  | 	static function byte(str:String, ?index:Int):Int; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 
 | ||
|  | 	**/ | ||
|  | 	@:overload(function(str:String, pattern:String, replace:String->Void, ?n:Int):String {}) | ||
|  | 	@:overload(function(str:String, pattern:String, replace:String->String, ?n:Int):String {}) | ||
|  | 	static function gsub(str:String, pattern:String, replace:String, ?n:Int):String; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Returns an iterator function that, each time it is called, returns the next | ||
|  | 		captures from pattern over string `str`. If `pattern` specifies no captures, | ||
|  | 		then the whole match is produced in each call. | ||
|  | 	**/ | ||
|  | 	@:overload(function(str:String, pattern:String, match:Void->String, ?n:Int):String->Void {}) | ||
|  | 	static function gmatch(str:String, pattern:String):Void->String; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Looks for the first match of pattern in the string s. If it finds one, | ||
|  | 		then match returns the captures from the pattern; otherwise it returns `null`. | ||
|  | 		If pattern specifies no captures, then the whole match is returned. | ||
|  | 		The optional argument `n` specifies where to start the search; | ||
|  | 		its default value is `1` and can be negative. | ||
|  | 	**/ | ||
|  | 	static function match(str:String, pattern:String, ?n:Int):String; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Receives a string and returns a copy of this string with all lowercase | ||
|  | 		letters changed to uppercase. All other characters are left unchanged. | ||
|  | 		The definition of what a lowercase letter is depends on the current locale. | ||
|  | 	**/ | ||
|  | 	static function upper(str:String):String; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Receives a string and returns a copy of this string with all uppercase | ||
|  | 		letters changed to lowercase. All other characters are left unchanged. | ||
|  | 		The definition of what an uppercase letter is depends on the current locale. | ||
|  | 	**/ | ||
|  | 	static function lower(str:String):String; | ||
|  | 
 | ||
|  | 	static function codes(str:String):String->Int->StringCodePoint; | ||
|  | } | ||
|  | 
 | ||
|  | @:multiReturn extern class StringFind { | ||
|  | 	var begin:Int; | ||
|  | 	var end:Int; | ||
|  | } | ||
|  | 
 | ||
|  | @:multiReturn extern class StringSub { | ||
|  | 	var match:String; | ||
|  | 	var count:Int; | ||
|  | } | ||
|  | 
 | ||
|  | @:multiReturn extern class StringCodePoint { | ||
|  | 	var position:Int; | ||
|  | 	var codepoint:Int; | ||
|  | } |