aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gleam_stdlib.erl61
-rw-r--r--src/gleam_stdlib.mjs49
2 files changed, 9 insertions, 101 deletions
diff --git a/src/gleam_stdlib.erl b/src/gleam_stdlib.erl
index 5c93fd4..3fda5df 100644
--- a/src/gleam_stdlib.erl
+++ b/src/gleam_stdlib.erl
@@ -5,17 +5,16 @@
decode_float/1, decode_list/1, decode_option/2, decode_field/2, parse_int/1,
parse_float/1, less_than/2, string_pop_grapheme/1, string_pop_codeunit/1,
string_starts_with/2, wrap_list/1, string_ends_with/2, string_pad/4,
- decode_map/1, uri_parse/1,
- decode_result/1, bit_array_slice/3, decode_bit_array/1, compile_regex/2,
- regex_scan/2, percent_encode/1, percent_decode/1, regex_check/2,
- regex_split/2, base_decode64/1, parse_query/1, bit_array_concat/1,
- bit_array_base64_encode/2, size_of_tuple/1, decode_tuple/1, decode_tuple2/1,
- decode_tuple3/1, decode_tuple4/1, decode_tuple5/1, decode_tuple6/1,
- tuple_get/2, classify_dynamic/1, print/1, println/1, print_error/1,
- println_error/1, inspect/1, float_to_string/1, int_from_base_string/2,
+ decode_map/1, uri_parse/1, decode_result/1, bit_array_slice/3,
+ decode_bit_array/1, percent_encode/1, percent_decode/1, base_decode64/1,
+ parse_query/1, bit_array_concat/1, bit_array_base64_encode/2,
+ size_of_tuple/1, decode_tuple/1, decode_tuple2/1, decode_tuple3/1,
+ decode_tuple4/1, decode_tuple5/1, decode_tuple6/1, tuple_get/2,
+ classify_dynamic/1, print/1, println/1, print_error/1, println_error/1,
+ inspect/1, float_to_string/1, int_from_base_string/2,
utf_codepoint_list_to_string/1, contains_string/2, crop_string/2,
- base16_encode/1, base16_decode/1, string_replace/3, regex_replace/3,
- slice/3, bit_array_to_int_and_size/1, bit_array_pad_to_bytes/1
+ base16_encode/1, base16_decode/1, string_replace/3, slice/3,
+ bit_array_to_int_and_size/1, bit_array_pad_to_bytes/1
]).
%% Taken from OTP's uri_string module
@@ -232,48 +231,6 @@ bit_array_slice(Bin, Pos, Len) ->
catch error:badarg -> {error, nil}
end.
-compile_regex(String, Options) ->
- {options, Caseless, Multiline} = Options,
- OptionsList = [
- unicode,
- ucp,
- Caseless andalso caseless,
- Multiline andalso multiline
- ],
- FilteredOptions = [Option || Option <- OptionsList, Option /= false],
- case re:compile(String, FilteredOptions) of
- {ok, MP} -> {ok, MP};
- {error, {Str, Pos}} ->
- {error, {compile_error, unicode:characters_to_binary(Str), Pos}}
- end.
-
-regex_check(Regex, String) ->
- re:run(String, Regex) /= nomatch.
-
-regex_split(Regex, String) ->
- re:split(String, Regex).
-
-regex_submatches(_, {-1, 0}) -> none;
-regex_submatches(String, {Start, Length}) ->
- BinarySlice = binary:part(String, {Start, Length}),
- case string:is_empty(binary_to_list(BinarySlice)) of
- true -> none;
- false -> {some, BinarySlice}
- end.
-
-regex_matches(String, [{Start, Length} | Submatches]) ->
- Submatches1 = lists:map(fun(X) -> regex_submatches(String, X) end, Submatches),
- {match, binary:part(String, Start, Length), Submatches1}.
-
-regex_scan(Regex, String) ->
- case re:run(String, Regex, [global]) of
- {match, Captured} -> lists:map(fun(X) -> regex_matches(String, X) end, Captured);
- nomatch -> []
- end.
-
-regex_replace(Regex, Subject, Replacement) ->
- re:replace(Subject, Regex, Replacement, [global, {return, binary}]).
-
base_decode64(S) ->
try {ok, base64:decode(S)}
catch error:_ -> {error, nil}
diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs
index 339963b..e7088b4 100644
--- a/src/gleam_stdlib.mjs
+++ b/src/gleam_stdlib.mjs
@@ -10,10 +10,6 @@ import {
NonEmpty,
CustomType,
} from "./gleam.mjs";
-import {
- CompileError as RegexCompileError,
- Match as RegexMatch,
-} from "./gleam/regex.mjs";
import { DecodeError } from "./gleam/dynamic.mjs";
import { Some, None } from "./gleam/option.mjs";
import { Eq, Gt, Lt } from "./gleam/order.mjs";
@@ -448,51 +444,6 @@ export function utf_codepoint_to_int(utf_codepoint) {
return utf_codepoint.value;
}
-export function regex_check(regex, string) {
- regex.lastIndex = 0;
- return regex.test(string);
-}
-
-export function compile_regex(pattern, options) {
- try {
- let flags = "gu";
- if (options.case_insensitive) flags += "i";
- if (options.multi_line) flags += "m";
- return new Ok(new RegExp(pattern, flags));
- } catch (error) {
- const number = (error.columnNumber || 0) | 0;
- return new Error(new RegexCompileError(error.message, number));
- }
-}
-
-export function regex_split(regex, string) {
- return List.fromArray(
- string.split(regex).map((item) => (item === undefined ? "" : item)),
- );
-}
-
-export function regex_scan(regex, string) {
- const matches = Array.from(string.matchAll(regex)).map((match) => {
- const content = match[0];
- const submatches = [];
- for (let n = match.length - 1; n > 0; n--) {
- if (match[n]) {
- submatches[n - 1] = new Some(match[n]);
- continue;
- }
- if (submatches.length > 0) {
- submatches[n - 1] = new None();
- }
- }
- return new RegexMatch(content, List.fromArray(submatches));
- });
- return List.fromArray(matches);
-}
-
-export function regex_replace(regex, original_string, replacement) {
- return original_string.replaceAll(regex, replacement);
-}
-
export function new_map() {
return Dict.new();
}