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)