Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -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;
|
||||
|
|
@ -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]
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -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 ===> %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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue