• Welcome to Jose's Read Only Forum 2023.
 

Using $ to Format Source Code

Started by Charles Pegge, August 12, 2007, 06:39:44 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Charles Pegge

Adding an Annotation Column

This adds a column for comments, using its own $ source as an example.

From this:
$ script

function main()
layout("main.pro","t.pro")
end function


function layout(nfi,nfo)
' adds annotation layout
new fi=input(nfi)
new fo=output(nfo)
new t-"",s="", crlf=chr(13)+chr(10)
new w="",a=0
// pass 1
new m=0, em=chr(124), rem=chr(47)+chr(47)
{
if eof(fi) then exit
t=in(fi)
a=pos(t,rem)
if not a
  a=len(t)+1
end if
m=max(m,a)
repeat
}
'm?
close(fi)
fi=input(nfi) // pass 2
out(fo,"")
$'`many("=",m)+em`
new cm=""
{
if eof(fi) then exit
t=in(fi)
cm="" // comment
a=pos(t,rem)
if a
  cm=mid(t,a+2)
  t=midl(t,1,a)
end if
read(t)
w=word()
if w EQ "if"
  $'`many("-",m)+em`
end if
if (w EQ "function")or(w EQ "def")
  $'`many("=",m)+em`
end if
s=many(" ",m+1)+em+cm
patch s,1,t
$`s`
's?
'if @4 EQ 39
' $'`many("-",m)+em`
'end if
if w EQ "function"
  $'`many("=",m)+em`
end if
repeat
}
$'`many("=",m)+em`
close(fi)
close(fo)
end function



To this:

$ script

'==================================================|
                                                   |
                                                   |
'==================================================|
function main()                                    |
'==================================================|
layout("main.pro","t.pro")                        |
end function                                       |
                                                   |
                                                   |
'==================================================|
function layout(nfi,nfo)                           |
'==================================================|
' adds annotation layout                           |
new fi=input(nfi)                                  |
new fo=output(nfo)                                 |
new t-"",s="", crlf=chr(13)+chr(10)                |
new w="",a=0                                       |
                                                   | pass 1
new m=0, em=chr(124), rem=chr(47)+chr(47)          |
{                                                  |
'--------------------------------------------------|
if eof(fi) then exit                              |
t=in(fi)                                          |
a=pos(t,rem)                                      |
'--------------------------------------------------|
if not a                                          |
  a=len(t)+1                                       |
end if                                            |
m=max(m,a)                                        |
repeat                                            |
}                                                  |
'm?                                                |
close(fi)                                          |
fi=input(nfi)                                      | pass 2
out(fo,"")                                         |
$'`many("=",m)+em`                                 |
new cm=""                                          |
{                                                  |
'--------------------------------------------------|
if eof(fi) then exit                              |
t=in(fi)                                          |
cm=""                                             | comment
a=pos(t,rem)                                      |
'--------------------------------------------------|
if a                                              |
  cm=mid(t,a+2)                                    |
  t=midl(t,1,a)                                    |
end if                                            |
read(t)                                           |
w=word()                                          |
'--------------------------------------------------|
if w EQ "if"                                      |
  $'`many("-",m)+em`                               |
end if                                            |
'--------------------------------------------------|
if (w EQ "function")or(w EQ "def")                |
  $'`many("=",m)+em`                               |
end if                                            |
s=many(" ",m+1)+em+cm                             |
patch s,1,t                                       |
$`s`                                              |
's?                                               |
'if @4 EQ 39                                      |
' $'`many("-",m)+em`                              |
'end if                                           |
'--------------------------------------------------|
if w EQ "function"                                |
  $'`many("=",m)+em`                               |
end if                                            |
repeat                                            |
}                                                  |
$'`many("=",m)+em`                                 |
close(fi)                                          |
close(fo)                                          |
end function                                       |