Data update

This commit is contained in:
Ingy döt Net 2026-02-01 16:33:20 -08:00
parent 5150844a7d
commit 4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions

View file

@ -1,114 +0,0 @@
with Ada.Characters.Handling,
Ada.Strings,
Ada.Strings.Fixed,
Ada.Strings.Maps,
Ada.Strings.Maps.Constants,
Ada.Text_IO;
use Ada.Characters.Handling,
Ada.Strings,
Ada.Strings.Fixed,
Ada.Strings.Maps,
Ada.Strings.Maps.Constants;
procedure Camel_Snake_Case is
type Sample_Array is array (Positive range <>) of access constant String;
-- Work around for array elements needing to be the same size.
-- Could also use Ada.Strings.Bounded_Strings instead.
S1 : aliased constant String := "snakeCase";
S2 : aliased constant String := "snake_case";
S3 : aliased constant String := "variable_10_case";
S4 : aliased constant String := "variable10Case";
S5 : aliased constant String := "ɛrgo rE tHis";
S6 : aliased constant String := "hurry-up-joe!";
S7 : aliased constant String := "c://my-docs/happy_Flag-Day/12.doc";
S8 : aliased constant String := " spaces ";
Samples : constant Sample_Array :=
(
S1'Access,
S2'Access,
S3'Access,
S4'Access,
S5'Access,
S6'Access,
S7'Access,
S8'Access
);
function Should_Insert (This, Last : Character) return Boolean is
(
(Is_In (Last, Lower_Set) and then
Is_In (This, Upper_Set or Decimal_Digit_Set))
or else
(Is_In (Last, Upper_Set) and then
Is_In (This, Decimal_Digit_Set))
or else
(Is_In (Last, Decimal_Digit_Set) and then
Is_In (This, Upper_Set))
);
function To_Snake_Case (S : String) return String is
Trimmed : constant String := Trim (S, Both);
Separator_Map : constant Character_Mapping := To_Mapping (" -", "__");
Translated : constant String := Translate (Trimmed, Separator_Map);
New_Word_Set : constant Character_Set := Upper_Set or Decimal_Digit_Set;
New_Word_Chars : constant Natural := Count (Translated, New_Word_Set);
Snake : String (1 .. Translated'Length + New_Word_Chars);
J : Positive := 2;
L : Character;
begin
Snake (1 .. Translated'Length) := Translated;
for I in 2 .. Translated'Last loop
if Should_Insert (Translated (I), Translated (I - 1)) then
Snake (J) := '_';
J := J + 1;
end if;
L := Translated (I);
if Is_In (Translated (I), Upper_Set) then
L := To_Lower (L);
end if;
Snake (J) := L;
J := J + 1;
end loop;
return Snake (1 .. J - 1);
end To_Snake_Case;
function To_Camel_Case (S : String) return String is
Trimmed : constant String := Trim (S, Both);
Separators : constant Character_Set := To_Set (" -_");
Snake : String (Trimmed'Range) := Trimmed;
J : Positive := 2;
begin
for I in 2 .. Trimmed'Length loop
if not Is_In (Trimmed (I), Separators) then
if Is_In (Trimmed (I - 1), Separators) and then
Is_In (Trimmed (I), Lower_Set) then
Snake (J) := To_Upper (Trimmed (I));
else
Snake (J) := Trimmed (I);
end if;
J := J + 1;
end if;
end loop;
return Snake (1 .. J - 1);
end To_Camel_Case;
begin
Ada.Text_IO.Put_Line ("=Snake Case=");
for I of Samples loop
Ada.Text_IO.Put_Line (I.all & " => " & To_Snake_Case (I.all));
end loop;
Ada.Text_IO.Put_Line ("=Camel Case=");
for I of Samples loop
Ada.Text_IO.Put_Line (I.all & " => " & To_Camel_Case (I.all));
end loop;
end Camel_Snake_Case;

View file

@ -1,12 +1,11 @@
camelToSnake: function [str][
i: new 0
result: new ""
i: 0
result: ""
while [i < size str][
ch: str\[i]
if? upper? ch [
'result ++ `_` ++ lower str\[i]
]
else [
switch upper? ch [
'result ++ '_' ++ lower str\[i]
][
'result ++ str\[i]
]
@ -16,15 +15,14 @@ camelToSnake: function [str][
]
snakeToCamel: function [str][
i: new 0
result: new ""
i: 0
result: ""
while [i < size str][
ch: str\[i]
if? and? [ch=`_`][(i+1) < size str] [
switch and? [ch='_'][(i+1) < size str] [
'result ++ upper str\[i+1]
inc 'i
]
else [
][
'result ++ str\[i]
]

View file

@ -1,33 +1,31 @@
(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">to_snake_case</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">snake</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">substitute</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">trim</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">),</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"_"</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">snake</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">to</span> <span style="color: #000000;">1</span> <span style="color: #008080;">by</span> <span style="color: #0000FF;">-</span><span style="color: #000000;">1</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">isupper</span><span style="color: #0000FF;">(</span><span style="color: #000000;">snake</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">])</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">snake</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">..</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">'_'</span><span style="color: #0000FF;">&</span><span style="color: #7060A8;">lower</span><span style="color: #0000FF;">(</span><span style="color: #000000;">snake</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">])</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">snake</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
with javascript_semantics
function to_snake_case(string s)
string snake = substitute(trim(s)," ","_")
for i=length(snake) to 1 by -1 do
if isupper(snake[i]) then
snake[i..i] = '_'&lower(snake[i])
end if
end for
return snake
end function
<span style="color: #008080;">function</span> <span style="color: #000000;">toCamelCase</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">camel</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">trim</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">),</span><span style="color: #008000;">"- "</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"__"</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">camel</span><span style="color: #0000FF;">)-</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">1</span> <span style="color: #008080;">by</span> <span style="color: #0000FF;">-</span><span style="color: #000000;">1</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">camel</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]=</span><span style="color: #008000;">'_'</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">camel</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">..</span><span style="color: #000000;">i</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">upper</span><span style="color: #0000FF;">(</span><span style="color: #000000;">camel</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..</span><span style="color: #000000;">i</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">])</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">camel</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
function toCamelCase(string s)
string camel = substitute_all(trim(s),"- ","__")
for i=length(camel)-1 to 1 by -1 do
if camel[i]='_' then
camel[i..i+1] = upper(camel[i+1..i+1])
end if
end for
return camel
end function
<span style="color: #008080;">constant</span> <span style="color: #000000;">tests</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"snakeCase"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"snake_case"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"variable_10_case"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"variable10Case"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"ergo rE tHis"</span><span style="color: #0000FF;">,</span>
<span style="color: #008000;">"hurry-up-joe!"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"c://my-docs/happy_Flag-Day/12.doc"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">" spaces "</span><span style="color: #0000FF;">}</span>
<span style="color: #008080;">procedure</span> <span style="color: #000000;">test</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">title</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000000;">fn</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">title</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">tests</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%33s ===&gt; %s\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">tests</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">],</span> <span style="color: #000000;">fn</span><span style="color: #0000FF;">(</span><span style="color: #000000;">tests</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">])})</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #000000;">test</span><span style="color: #0000FF;">(</span><span style="color: #008000;">" === to_snake_case ===\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">to_snake_case</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">test</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"\n === toCamelCase ===\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">toCamelCase</span><span style="color: #0000FF;">)</span>
<!--
constant tests = {"snakeCase", "snake_case", "variable_10_case", "variable10Case", "ergo rE tHis",
"hurry-up-joe!", "c://my-docs/happy_Flag-Day/12.doc", " spaces "}
procedure test(string title, integer fn)
printf(1,title)
for i=1 to length(tests) do
printf(1,"%33s ===> %s\n", {tests[i], fn(tests[i])})
end for
end procedure
test(" === to_snake_case ===\n",to_snake_case)
test("\n === toCamelCase ===\n",toCamelCase)