xref: /inferno-os/module/string.m (revision a584e84874abd077df5ee1f3687f84d9d4fc3bfa)
1String: module
2{
3	PATH:		con	"/dis/lib/string.dis";
4
5	# the second arg of the following is a character class
6	#    e.g., "a-zA-Z", or "^ \t\n"
7	# (ranges indicated by - except in first position;
8	#  ^ is first position means "not in" the following class)
9	# splitl splits just before first char in class;  (s, "") if no split
10	# splitr splits just after last char in class; ("", s) if no split
11	# drop removes maximal prefix in class
12	# take returns maximal prefix in class
13
14	splitl:		fn(s, cl: string): (string, string);
15	splitr:		fn(s, cl: string): (string, string);
16	drop:		fn(s, cl: string): string;
17	take:		fn(s, cl: string): string;
18	in:		fn(c: int, cl: string): int;
19
20	# in these, the second string is a string to match, not a class
21	splitstrl:	fn(s, t: string): (string, string);
22	splitstrr:	fn(s, t: string): (string, string);
23
24	# is first arg a prefix of second?
25	prefix:		fn(pre, s: string): int;
26
27	tolower:	fn(s: string): string;
28	toupper:	fn(s: string): string;
29
30	# string to int returning value, remainder
31	toint:		fn(s: string, base: int): (int, string);
32	tobig:		fn(s: string, base: int): (big, string);
33	toreal:		fn(s: string, base: int): (real, string);
34
35	# append s to end of l
36	append:		fn(s: string, l: list of string): list of string;
37	quoted:		fn(argv: list of string): string;
38	quotedc:		fn(argv: list of string, cl: string): string;
39	unquoted:		fn(args: string): list of string;
40};
41