Data update
This commit is contained in:
parent
29a5eea0d4
commit
5c1bb7bfa9
2011 changed files with 35081 additions and 3229 deletions
|
|
@ -17,16 +17,11 @@ T NNode
|
|||
F String()
|
||||
R .to_str(0)
|
||||
|
||||
T INode
|
||||
String value
|
||||
Int level
|
||||
F (value, level)
|
||||
.value = value
|
||||
.level = level
|
||||
T INode = (String value, Int level)
|
||||
|
||||
F to_indented(node)
|
||||
[INode] result
|
||||
F add_node(NNode node, Int level) -> N
|
||||
F add_node(NNode node, Int level) -> Void
|
||||
@result.append(INode(node.value, level))
|
||||
L(child) node.children
|
||||
@add_node(child, level + 1)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
{$zerobasedstrings}
|
||||
function NestedToIndented(nested: string): string;
|
||||
begin
|
||||
var lst := new List<string>;
|
||||
foreach var line in Regex.Split(nested,NewLine) do
|
||||
begin
|
||||
var ind := Regex.Match(line,'[^\.]').Index;
|
||||
lst.Add($'{ind div 4} {line[ind:]}');
|
||||
end;
|
||||
Result := lst.JoinToString(NewLine);
|
||||
end;
|
||||
|
||||
function IndentedToNested(indented: string): string;
|
||||
begin
|
||||
var lst := new List<string>;
|
||||
foreach var line in Regex.Split(indented,NewLine) do
|
||||
begin
|
||||
var ind := line.IndexOf(' ');
|
||||
var level := line[:ind].ToInteger;
|
||||
lst.Add((level*4) * '.' + line[ind+1:]);
|
||||
end;
|
||||
Result := lst.JoinToString(NewLine);
|
||||
end;
|
||||
|
||||
begin
|
||||
var initialNested := '''
|
||||
Rosetta Code
|
||||
....rocks
|
||||
........code
|
||||
........comparison
|
||||
........wiki
|
||||
....mocks
|
||||
........trolling
|
||||
''';
|
||||
Writeln(initialNested,NewLine);
|
||||
var indented := NestedToIndented(initialNested);
|
||||
Writeln(indented,NewLine);
|
||||
var nested := IndentedToNested(indented);
|
||||
Writeln(nested,NewLine);
|
||||
Writeln($'Initial = Restored: {initialNested = nested}');
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue