include lexi.e
-- ("uit te voeren aktie")
-- ANCHOR=1
-- SKIPSET = ~('<'|'>'|'/'|'!'|'-')
-- htmlcolor : [ '<!-' dump ("puts commentcollor;puts convert-lt;puts !-") comment |
-- '</' dump ("puts endtagcolor;puts convert-lt;puts /") endtag |
-- '<' dump ("puts tagcolor;puts convert-lt") endtag |
-- rest
-- ] 'EOF' .
-- rest : '>' dump ("puts convert-gt")|
-- '/' dump ("puts /") |
-- '!' dump ("puts !") |
-- '-' dump ("puts -") |
-- '<' dump ("puts convert-lt") .
-- dump : ("puts SKIP")
-- comment : '-->' dump ("puts convert--gt;puts endcolor") | rest comment .
-- endtag : '>' dump ("puts convert-gt;puts endcolor) | rest endtag .
--
sequence fo --output file
procedure dump()
puts(fo,L_result[L_SKIP])
end procedure
procedure rest()
-- L_in(">/!-<") -- <-- dit is sneller
L_in({">","/","!","-","<"})
if L_result[L_INDEX]=1 then dump() puts(fo,">")
elsif L_result[L_INDEX]=2 then dump() puts(fo,"/")
elsif L_result[L_INDEX]=3 then dump() puts(fo,"!")
elsif L_result[L_INDEX]=4 then dump() puts(fo,"-")
elsif L_result[L_INDEX]=5 then dump() puts(fo,"<")
end if
end procedure
procedure comment()
L_in({"->"})
if L_result[L_INDEX]
then dump() puts(fo,"-></font>")
else rest() comment()
end if
end procedure
procedure endtag()
-- L_in(">")
L_in({">"})
if L_result[L_INDEX]
then dump() puts(fo,"></font>")
else rest() endtag()
end if
end procedure
sequence file=open("c:/mhtml/noord.htm","r")
--sequence file=open("d:/judo/nieuweagenda/noord.htm","r")
fo =open("test.htm","w") -- open output file
-- init lexi
if not L_init(file)
then puts(1,"File not there\n") abort(1) end if
L_nany("<>!-/") -- ANCHOR = 1
-- main start
L_in({"<!-","</","<"})
-- printf(1,"%s~%s~%d\n",L_result) -- test of lexi
-- main loop
while L_result[L_INDEX]>=0 do -- until eof .
if L_result[L_INDEX]=1 then dump() puts(fo,"<br><font color=red><!-") comment()
elsif L_result[L_INDEX]=2 then dump() puts(fo,"<br><font color=green></") endtag()
elsif L_result[L_INDEX]=3 then dump() puts(fo,"<br><font color=blue><") endtag()
else rest() end if
L_in({"<!-","</","<"})
-- printf(1,"%s~%s~%d\n",L_result)-- test of lexi
end while
-- no more file's to handle ?
if L_end()
then puts(1,"End failed , stil work to do\n")
else puts(1,"End successfull\n")
end if
close(file)
close(fo)