@@ -589,15 +589,14 @@ let PrintModule stgFileName (m:Asn1Module) (f:Asn1File) (r:AstRoot) =
589589
590590 icd_ acn.EmitModule stgFileName title ( Path.GetFileName( f.FileName)) acnFileName commentsTail tases
591591
592- let PrintNavLink stgFileName ( m : Asn1Module ) ( f : Asn1File ) ( r : AstRoot ) =
593- let moduleName = m.Name.Value
594- icd_ acn.EmitNavLink stgFileName moduleName moduleName
592+ let PrintNavLink stgFileName sTitle sTarget =
593+ icd_ acn.EmitNavLink stgFileName sTitle sTarget
595594
596595let PrintTasses stgFileName ( f : Asn1File ) ( r : AstRoot ) =
597596 f.Modules |> Seq.map ( fun m -> PrintModule stgFileName m f r ) |> String.concat " \n "
598597
599598let PrintNavLinks stgFileName ( f : Asn1File ) ( r : AstRoot ) =
600- f.Modules |> Seq.map ( fun m -> PrintNavLink stgFileName m f r ) |> String.concat " \n "
599+ f.Modules |> Seq.map ( fun m -> PrintNavLink stgFileName m.Name.Value m.Name.Value ) |> String.concat " \n "
601600
602601let emitCss ( r : AstRoot ) stgFileName outFileName =
603602 let cssContent = icd_ acn.RootCss stgFileName ()
@@ -680,7 +679,7 @@ let rec getMySelfAndChildren (r:AstRoot) (icdTas:IcdTypeAss) =
680679 | None -> ()
681680
682681 } |> Seq.toList
683-
682+ (*
684683let PrintTasses2 stgFileName (r:AstRoot) : string list =
685684 let pdus = r.args.icdPdus |> Option.map Set.ofList
686685 r.icdHashes.Values |>
@@ -698,8 +697,8 @@ let PrintTasses2 stgFileName (r:AstRoot) : string list =
698697 | Some chIcdTas -> Some (emitTas2 stgFileName r (fun _ -> []) (selectTypeWithSameHash chIcdTas))
699698 | None -> None) |>
700699 Seq.toList
701-
702- let printTasses3 stgFileName ( r : DAst.AstRoot ) : ( string list )*( string list ) =
700+ *)
701+ let printTasses3 stgFileName ( r : DAst.AstRoot ) : ( string list )*( string list )*( IcdTypeAss list ) =
703702 let pdus = r.args.icdPdus |> Option.map Set.ofList
704703 let icdHashesToPrint =
705704 seq {
@@ -719,13 +718,18 @@ let printTasses3 stgFileName (r:DAst.AstRoot) : (string list)*(string list) =
719718 let content = icdHashesToPrint |> Seq.StrJoin " \n "
720719 let fileName = sprintf " %s _icdHashesToPrint.txt" stgFileName
721720 File.WriteAllText( fileName, content)
722- let files =
721+ let files , navLinks =
723722 icdHashesToPrint
724723 |> Seq.choose( fun hash ->
725724 match r.icdHashes.TryFind hash with
726- | Some chIcdTas -> Some ( emitTas2 stgFileName r ( fun _ -> []) ( selectTypeWithSameHash chIcdTas))
727- | None -> None) |> Seq.toList
728- ( files, icdHashesToPrint)
725+ | Some chIcdTas ->
726+ //let PrintNavLink stgFileName sTitle sTarget =
727+ let tas = selectTypeWithSameHash chIcdTas
728+ let tasContent = emitTas2 stgFileName r ( fun _ -> []) tas
729+ //let tasLink = icd_acn.EmitNavLink stgFileName tas.name tas.hash
730+ Some ( tasContent, tas)
731+ | None -> None) |> Seq.toList |> List.unzip
732+ ( files, icdHashesToPrint, navLinks)
729733
730734let PrintAsn1FileInColorizedHtml ( stgFileName : string ) ( r : AstRoot ) ( icdHashesToPrint : string list ) ( f : Asn1File ) =
731735 let debug ( tsName : string ) =
@@ -846,15 +850,34 @@ let PrintAsn1FileInColorizedHtml (stgFileName:string) (r:AstRoot) (icdHashesToPr
846850
847851let DoWork ( r : AstRoot ) ( deps : Asn1AcnAst.AcnInsertedFieldDependencies ) ( stgFileName : string ) ( asn1HtmlStgFileMacros : string option ) outFileName =
848852 let files1 = TL " GenerateAcnIcd_PrintTasses" ( fun () -> r.Files |> List.map ( fun f -> PrintTasses stgFileName f r ))
849- let ( files1b , icdHashesToPrint ) = TL " GenerateAcnIcd_printTasses3" ( fun () -> printTasses3 stgFileName r)
853+ let ( files1b , icdHashesToPrint , icdTasList ) = TL " GenerateAcnIcd_printTasses3" ( fun () -> printTasses3 stgFileName r)
850854 let bAcnParamsMustBeExplained = true
851855 let asn1HtmlMacros =
852856 match asn1HtmlStgFileMacros with
853857 | None -> stgFileName
854858 | Some x -> x
855859 let files2 = TL " GenerateAcnIcd_PrintAsn1FileInColorizedHtml" ( fun () -> r.Files |> List.map ( PrintAsn1FileInColorizedHtml asn1HtmlMacros r icdHashesToPrint))
856860 let files3 = TL " GenerateAcnIcd_PrintAcnAsHTML2" ( fun () -> PrintAcnAsHTML2 stgFileName r icdHashesToPrint)
857- let navLinks = TL " GenerateAcnIcd_NavLinks" ( fun () -> r.Files |> List.map ( fun f -> PrintNavLinks stgFileName f r ) |> String.concat " \n " )
861+
862+ let navLinks =
863+ seq {
864+ for f in r.Files do
865+ for m in f.Modules do
866+ let moduleLink = PrintNavLink stgFileName m.Name.Value m.Name.Value
867+ yield moduleLink
868+ let thisModuleTasses =
869+ icdTasList |>
870+ List.choose( fun tas ->
871+ match tas.tasInfo with
872+ | None -> None
873+ | Some tsInfo when tsInfo.modName = m.Name.Value -> Some tas
874+ | Some _ -> None) |>
875+ List.sortBy ( fun tas -> tas.name)
876+ for tas in thisModuleTasses do
877+ let tasLink = PrintNavLink stgFileName tas.name tas.hash
878+ yield tasLink
879+ } |> Seq.distinct |> Seq.toList |> String.concat " \n "
880+
858881 let cssFileName = Path.ChangeExtension( outFileName, " .css" )
859882 let htmlContent = TL " GenerateAcnIcd_RootHtml" ( fun () -> icd_ acn.RootHtml stgFileName files1 files2 bAcnParamsMustBeExplained files3 ( Path.GetFileName( cssFileName)) navLinks)
860883 let htmlContentb = TL " GenerateAcnIcd_RootHtml_b" ( fun () -> icd_ acn.RootHtml stgFileName files1b files2 bAcnParamsMustBeExplained files3 ( Path.GetFileName( cssFileName)) navLinks)
0 commit comments