forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			171 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			171 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Copyright (C)2005-2019 Haxe Foundation
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Permission is hereby granted, free of charge, to any person obtaining a
							 | 
						||
| 
								 | 
							
								 * copy of this software and associated documentation files (the "Software"),
							 | 
						||
| 
								 | 
							
								 * to deal in the Software without restriction, including without limitation
							 | 
						||
| 
								 | 
							
								 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
							 | 
						||
| 
								 | 
							
								 * and/or sell copies of the Software, and to permit persons to whom the
							 | 
						||
| 
								 | 
							
								 * Software is furnished to do so, subject to the following conditions:
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * The above copyright notice and this permission notice shall be included in
							 | 
						||
| 
								 | 
							
								 * all copies or substantial portions of the Software.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
							 | 
						||
| 
								 | 
							
								 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
							 | 
						||
| 
								 | 
							
								 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
							 | 
						||
| 
								 | 
							
								 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
							 | 
						||
| 
								 | 
							
								 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
							 | 
						||
| 
								 | 
							
								 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
							 | 
						||
| 
								 | 
							
								 * DEALINGS IN THE SOFTWARE.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								package lua;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									These are all externs for the base Lua "string" class, which functions
							 | 
						||
| 
								 | 
							
									as an additional set of string tools.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									Note that all relevant indexes are "1" based.
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								@:native("_G.string")
							 | 
						||
| 
								 | 
							
								extern class NativeStringTools {
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										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;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// TODO: make a note about handling matched groups with multireturn
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										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;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										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;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Returns a formatted version of its variable number of arguments following
							 | 
						||
| 
								 | 
							
										the description given in its first argument (which must be a string).
							 | 
						||
| 
								 | 
							
										The format string follows the same rules as the printf family of standard C
							 | 
						||
| 
								 | 
							
										functions. The only differences are that the options/modifiers
							 | 
						||
| 
								 | 
							
										`*`, `l`, `L`, `n`, `p`, and `h` are not supported and that there is an
							 | 
						||
| 
								 | 
							
										extra option, `q`. The `q` option formats a string in a form suitable to be
							 | 
						||
| 
								 | 
							
										safely read back by the Lua interpreter: the string is written between
							 | 
						||
| 
								 | 
							
										double quotes, and all double quotes, newlines, embedded zeros,
							 | 
						||
| 
								 | 
							
										and backslashes in the string are correctly escaped when written.
							 | 
						||
| 
								 | 
							
										For instance, the call
							 | 
						||
| 
								 | 
							
										   `string.format('%q', 'a string with "quotes" and \n new line')`
							 | 
						||
| 
								 | 
							
										will produce the string:
							 | 
						||
| 
								 | 
							
										`"a string with \"quotes\" and \
							 | 
						||
| 
								 | 
							
											  new line"`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										The options `c`, `d` `E`, `e`, `f`, `g`, `G`, `i`, `o`, `u, `X-, and `x` all
							 | 
						||
| 
								 | 
							
										expect a number as argument, whereas `q` and `s` expect a string.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										This function does not accept string values containing embedded zeros,
							 | 
						||
| 
								 | 
							
										except as arguments to the `q` option.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function format(str:String, ?e1:Dynamic, ?e2:Dynamic, ?e3:Dynamic, ?e4:Dynamic):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									@: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;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Returns a string containing a binary representation of the given function,
							 | 
						||
| 
								 | 
							
										so that a later loadstring on this string returns a copy of the function.
							 | 
						||
| 
								 | 
							
										function must be a Lua function without upvalues.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function dump(d:Dynamic):Dynamic;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								        Returns a string that is the concatenation of n copies of
							 | 
						||
| 
								 | 
							
								        the string s separated by the string sep. The default value
							 | 
						||
| 
								 | 
							
								        for sep is the empty string (that is, no separator).
							 | 
						||
| 
								 | 
							
								        Returns the empty string if n is not positive.  (Note that
							 | 
						||
| 
								 | 
							
								        it is very easy to exhaust the memory of your machine with
							 | 
						||
| 
								 | 
							
								        a single call to this function.)
							 | 
						||
| 
								 | 
							
								    **/
							 | 
						||
| 
								 | 
							
								    static function rep(s:String, n : Int, ?sep : String) : String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@:multiReturn extern class StringFind {
							 | 
						||
| 
								 | 
							
									var begin:Int;
							 | 
						||
| 
								 | 
							
									var end:Int;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@:multiReturn extern class StringSub {
							 | 
						||
| 
								 | 
							
									var match:String;
							 | 
						||
| 
								 | 
							
									var count:Int;
							 | 
						||
| 
								 | 
							
								}
							 |