Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
106
Task/Nested-templated-data/REXX/nested-templated-data-1.rexx
Normal file
106
Task/Nested-templated-data/REXX/nested-templated-data-1.rexx
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
/* REXX */
|
||||
tok.=''
|
||||
Do i=0 To 6
|
||||
tok.i="'Payload#"i"'"
|
||||
End
|
||||
t1='[[[1,2],[3,4,1],5]]'
|
||||
t2='[[[1,6],[3,4,7,0],5]]'
|
||||
Call transform t1
|
||||
Call transform t2
|
||||
Exit
|
||||
|
||||
transform:
|
||||
Parse Arg t 1 tt
|
||||
/* http://rosettacode.org/wiki/Nested_templated_data */
|
||||
/*
|
||||
[[['Payload#1', 'Payload#2'],
|
||||
['Payload#3', 'Payload#4', 'Payload#1'],
|
||||
'Payload#5']]
|
||||
*/
|
||||
lvl=0
|
||||
n.=0
|
||||
o=''
|
||||
w=''
|
||||
used.=0
|
||||
Do While t<>''
|
||||
Parse Var t c +1 1 c3 +3 1 c2 +2
|
||||
u=' '
|
||||
v=' '
|
||||
Select
|
||||
When c3='],[' Then Do
|
||||
o=o' '
|
||||
w=w' '
|
||||
t=substr(t,3)
|
||||
End
|
||||
When c2='],' Then Do
|
||||
o=o' '
|
||||
w=w' '
|
||||
t=substr(t,2)
|
||||
lvl=lvl-1
|
||||
End
|
||||
When c='[' Then
|
||||
lvl=lvl+1
|
||||
When c=']' Then
|
||||
lvl=lvl-1
|
||||
When c=',' Then
|
||||
Nop
|
||||
Otherwise Do
|
||||
u=lvl
|
||||
v=c
|
||||
End
|
||||
End
|
||||
t=substr(t,2)
|
||||
o=o||u
|
||||
w=w||v
|
||||
End
|
||||
Say 'Template' tt
|
||||
Do i=1 By 1 While w<>''
|
||||
If i=1 Then Do
|
||||
w=substr(w,4)
|
||||
p=pos(' ',w)
|
||||
Call o '[[['cont(left(w,p-1))'],'
|
||||
w=substr(w,p)
|
||||
End
|
||||
Else Do
|
||||
If left(w,3)='' Then Do
|
||||
w=substr(w,4)
|
||||
p=pos(' ',w)
|
||||
Call o ' ['cont(left(w,p-1))'],'
|
||||
w=substr(w,p)
|
||||
End
|
||||
Else Do
|
||||
w=substr(w,3)
|
||||
p=pos(' ',w)
|
||||
Call o ' 'cont(left(w,p-1))']]'
|
||||
w=substr(w,p)
|
||||
End
|
||||
End
|
||||
End
|
||||
Do i=0 To 6
|
||||
If used.i=0 Then Say 'Payload' i 'not used'
|
||||
End
|
||||
Call o ' '
|
||||
Return
|
||||
|
||||
o: Say arg(1)
|
||||
Return
|
||||
|
||||
cont: Procedure Expose tok. used.
|
||||
Parse Arg list
|
||||
res=''
|
||||
Do while list>''
|
||||
Parse Var list i list
|
||||
res= res tok(i)','
|
||||
End
|
||||
res=strip(res)
|
||||
res=strip(res,'T',',')
|
||||
Return res
|
||||
|
||||
tok: Procedure Expose tok. used.
|
||||
Parse Arg i
|
||||
If tok.i<>'' Then Do
|
||||
used.i=1
|
||||
Return tok.i
|
||||
End
|
||||
Else
|
||||
Return "'Payload#" i "not defined'"
|
||||
100
Task/Nested-templated-data/REXX/nested-templated-data-2.rexx
Normal file
100
Task/Nested-templated-data/REXX/nested-templated-data-2.rexx
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
/* REXX */
|
||||
tok.=''
|
||||
Do i=0 To 6
|
||||
tok.i="'Payload#"i"'"
|
||||
End
|
||||
t1='[[[1,2],[ 3,4,1],5]]'
|
||||
t2='1[[[1,6]],[[3,4[7] 0],5]3]9 [8] 9'
|
||||
Call transform t1
|
||||
Call transform t2
|
||||
Exit
|
||||
|
||||
transform:
|
||||
Parse Arg t 1 tt
|
||||
t=space(t,0)
|
||||
lvl=0
|
||||
t.=0
|
||||
used.=0
|
||||
undefined=''
|
||||
Do While t<>''
|
||||
Parse Var t c +1 t
|
||||
Select
|
||||
When c='[' Then
|
||||
lvl=lvl+1
|
||||
When c=']' Then
|
||||
lvl=lvl-1
|
||||
When c=',' Then
|
||||
Nop
|
||||
Otherwise Do
|
||||
t=c||t
|
||||
p1=pos(']',t)
|
||||
p2=pos('[',t)
|
||||
Select
|
||||
When p2=0 Then p=p1
|
||||
When p1=0 Then p=p2
|
||||
Otherwise p=min(p1,p2)
|
||||
End
|
||||
If p=0 Then Do
|
||||
Call mem lvl': >'t'<'
|
||||
t=''
|
||||
End
|
||||
Else Do
|
||||
Call mem lvl': >'left(t,p-1)'<'
|
||||
t=substr(t,p)
|
||||
End
|
||||
End
|
||||
End
|
||||
End
|
||||
Call show
|
||||
Return
|
||||
|
||||
mem:
|
||||
z=t.0+1
|
||||
t.z=arg(1)
|
||||
t.0=z
|
||||
Return
|
||||
|
||||
show:
|
||||
Say tt
|
||||
Say 'lvl Element'
|
||||
Do i=1 To t.0
|
||||
Parse Var t.i lvl ':' '>' cont '<'
|
||||
ol=right(lvl,3) copies(' ',lvl*3)cont(cont)
|
||||
Say ol
|
||||
End
|
||||
Do i=0 To 6
|
||||
If used.i=0 Then Say 'Payload' i 'not used'
|
||||
End
|
||||
Do While undefined>''
|
||||
Parse Var undefined i undefined
|
||||
Say 'Payload' i 'is not defined'
|
||||
End
|
||||
Call o ' '
|
||||
Return
|
||||
|
||||
cont: Procedure Expose tok. used. undefined
|
||||
Parse Arg list
|
||||
list=translate(list,' ',',')
|
||||
res=''
|
||||
Do while list>''
|
||||
Parse Var list i list
|
||||
res= res tok(i)','
|
||||
End
|
||||
res=strip(res)
|
||||
res=strip(res,'T',',')
|
||||
Return res
|
||||
|
||||
tok: Procedure Expose tok. used. undefined
|
||||
Parse Arg i
|
||||
If tok.i<>'' Then Do
|
||||
used.i=1
|
||||
Return tok.i
|
||||
End
|
||||
Else Do
|
||||
If wordpos(i,undefined)=0 Then
|
||||
undefined=undefined i
|
||||
Return "'Payload#"i "not defined'"
|
||||
End
|
||||
|
||||
o: Say arg(1)
|
||||
Return
|
||||
Loading…
Add table
Add a link
Reference in a new issue