diff --git a/ASN/asn2/AssemblyVersion.cs b/ASN/asn2/AssemblyVersion.cs index 61eb2ec0d..5b3cd3689 100644 --- a/ASN/asn2/AssemblyVersion.cs +++ b/ASN/asn2/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.439")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.439")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.445")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.445")] diff --git a/ASN/asn2/version.version b/ASN/asn2/version.version index e021f9a58..0f3b47ce4 100644 --- a/ASN/asn2/version.version +++ b/ASN/asn2/version.version @@ -1,2 +1,2 @@ -3.0.0.439 -3.0.0.439 +3.0.0.445 +3.0.0.445 diff --git a/BuildTools.sln b/BuildTools.sln index eb2b1c581..77aaf5c96 100644 --- a/BuildTools.sln +++ b/BuildTools.sln @@ -178,6 +178,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Goedel.Tool.Protogen", "Pro EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Goedel.Tool.RegistryConfig", "RegistryConfig\Goedel.Tool.RegistryConfig\Goedel.Tool.RegistryConfig.csproj", "{A05B8032-3B31-40F8-84BB-85DC67602458}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tool Yaschema", "Tool Yaschema", "{A0DA68A1-C283-42FA-91CD-9DFC18B0DEF6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "yaschema", "YASchema\yaschema\yaschema.csproj", "{0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Goedel.Tool.Yaschema", "YASchema\Goedel.Tool.Yashima\Goedel.Tool.Yaschema.csproj", "{1FA1FFE7-2212-46F0-8893-697640E2B3FA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1067,6 +1073,46 @@ Global {A05B8032-3B31-40F8-84BB-85DC67602458}.Release|Any CPU.Build.0 = Release|Any CPU {A05B8032-3B31-40F8-84BB-85DC67602458}.Release|x86.ActiveCfg = Release|Any CPU {A05B8032-3B31-40F8-84BB-85DC67602458}.Release|x86.Build.0 = Release|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Debug|x86.ActiveCfg = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Debug|x86.Build.0 = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.DotNet|Any CPU.ActiveCfg = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.DotNet|Any CPU.Build.0 = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.DotNet|x86.ActiveCfg = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.DotNet|x86.Build.0 = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Focus|Any CPU.ActiveCfg = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Focus|Any CPU.Build.0 = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Focus|x86.ActiveCfg = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Focus|x86.Build.0 = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Publish|Any CPU.ActiveCfg = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Publish|Any CPU.Build.0 = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Publish|x86.ActiveCfg = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Publish|x86.Build.0 = Debug|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Release|Any CPU.Build.0 = Release|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Release|x86.ActiveCfg = Release|Any CPU + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D}.Release|x86.Build.0 = Release|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Debug|x86.ActiveCfg = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Debug|x86.Build.0 = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.DotNet|Any CPU.ActiveCfg = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.DotNet|Any CPU.Build.0 = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.DotNet|x86.ActiveCfg = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.DotNet|x86.Build.0 = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Focus|Any CPU.ActiveCfg = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Focus|Any CPU.Build.0 = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Focus|x86.ActiveCfg = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Focus|x86.Build.0 = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Publish|Any CPU.ActiveCfg = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Publish|Any CPU.Build.0 = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Publish|x86.ActiveCfg = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Publish|x86.Build.0 = Debug|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Release|Any CPU.Build.0 = Release|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Release|x86.ActiveCfg = Release|Any CPU + {1FA1FFE7-2212-46F0-8893-697640E2B3FA}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1130,6 +1176,9 @@ Global {61DD1D3B-7D10-4EF2-BE9C-B4D54C84FE6F} = {420F632D-B323-42B4-954C-DA875083DCC6} {C5E7079C-E049-455D-9B24-702AB7F9C1AC} = {BB541FF3-D68B-4935-B8AD-5E92A74591E1} {A05B8032-3B31-40F8-84BB-85DC67602458} = {5BE90DE6-A9E9-4CA9-A009-BC339274E829} + {A0DA68A1-C283-42FA-91CD-9DFC18B0DEF6} = {32781FAB-7F7F-4267-9599-479F14195A4B} + {0BF8D2DC-C6AE-4F34-9C3E-8523806AD01D} = {A0DA68A1-C283-42FA-91CD-9DFC18B0DEF6} + {1FA1FFE7-2212-46F0-8893-697640E2B3FA} = {A0DA68A1-C283-42FA-91CD-9DFC18B0DEF6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4B0FED20-F156-4724-9241-1F63A97DA43E} diff --git a/Command/CommandEcho/AssemblyVersion.cs b/Command/CommandEcho/AssemblyVersion.cs index 6efe1ff1a..11b107392 100644 --- a/Command/CommandEcho/AssemblyVersion.cs +++ b/Command/CommandEcho/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.128")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.128")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.134")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.134")] diff --git a/Command/CommandEcho/version.version b/Command/CommandEcho/version.version index 220573ec4..cb078fb95 100644 --- a/Command/CommandEcho/version.version +++ b/Command/CommandEcho/version.version @@ -1,2 +1,2 @@ -3.0.0.128 -3.0.0.128 +3.0.0.134 +3.0.0.134 diff --git a/Command/commandparse/AssemblyVersion.cs b/Command/commandparse/AssemblyVersion.cs index f348a148c..80d0fa46d 100644 --- a/Command/commandparse/AssemblyVersion.cs +++ b/Command/commandparse/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.453")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.453")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.459")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.459")] diff --git a/Command/commandparse/version.version b/Command/commandparse/version.version index 0b956926a..718b699e0 100644 --- a/Command/commandparse/version.version +++ b/Command/commandparse/version.version @@ -1,2 +1,2 @@ -3.0.0.453 -3.0.0.453 +3.0.0.459 +3.0.0.459 diff --git a/Constant/constant/AssemblyVersion.cs b/Constant/constant/AssemblyVersion.cs index 2f7960017..0e0ab4ed1 100644 --- a/Constant/constant/AssemblyVersion.cs +++ b/Constant/constant/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.532")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.532")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.538")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.538")] diff --git a/Constant/constant/version.version b/Constant/constant/version.version index 27a7cb5b4..3fbf35c01 100644 --- a/Constant/constant/version.version +++ b/Constant/constant/version.version @@ -1,2 +1,2 @@ -3.0.0.532 -3.0.0.532 +3.0.0.538 +3.0.0.538 diff --git a/DNSConfig/srvconf/AssemblyVersion.cs b/DNSConfig/srvconf/AssemblyVersion.cs index 870a75c59..b6e8a9ab1 100644 --- a/DNSConfig/srvconf/AssemblyVersion.cs +++ b/DNSConfig/srvconf/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.166")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.166")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.172")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.172")] diff --git a/DNSConfig/srvconf/version.version b/DNSConfig/srvconf/version.version index f201ed1c3..0ac9e6519 100644 --- a/DNSConfig/srvconf/version.version +++ b/DNSConfig/srvconf/version.version @@ -1,2 +1,2 @@ -3.0.0.166 -3.0.0.166 +3.0.0.172 +3.0.0.172 diff --git a/DocTools/bootmaker/AssemblyVersion.cs b/DocTools/bootmaker/AssemblyVersion.cs index 7ec2f83e8..cd15c546f 100644 --- a/DocTools/bootmaker/AssemblyVersion.cs +++ b/DocTools/bootmaker/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.469")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.469")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.475")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.475")] diff --git a/DocTools/bootmaker/version.version b/DocTools/bootmaker/version.version index 496f6db32..43db06ce2 100644 --- a/DocTools/bootmaker/version.version +++ b/DocTools/bootmaker/version.version @@ -1,2 +1,2 @@ -3.0.0.469 -3.0.0.469 +3.0.0.475 +3.0.0.475 diff --git a/DocTools/rfctool/AssemblyVersion.cs b/DocTools/rfctool/AssemblyVersion.cs index c8bf8d84a..de08bd52c 100644 --- a/DocTools/rfctool/AssemblyVersion.cs +++ b/DocTools/rfctool/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.637")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.637")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.643")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.643")] diff --git a/DocTools/rfctool/version.version b/DocTools/rfctool/version.version index d60f03b30..4336f833f 100644 --- a/DocTools/rfctool/version.version +++ b/DocTools/rfctool/version.version @@ -1,2 +1,2 @@ -3.0.0.637 -3.0.0.637 +3.0.0.643 +3.0.0.643 diff --git a/Domainer/domainer/AssemblyVersion.cs b/Domainer/domainer/AssemblyVersion.cs index 155a47345..86883ff36 100644 --- a/Domainer/domainer/AssemblyVersion.cs +++ b/Domainer/domainer/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.443")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.443")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.449")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.449")] diff --git a/Domainer/domainer/version.version b/Domainer/domainer/version.version index 33091eb2e..f89481745 100644 --- a/Domainer/domainer/version.version +++ b/Domainer/domainer/version.version @@ -1,2 +1,2 @@ -3.0.0.443 -3.0.0.443 +3.0.0.449 +3.0.0.449 diff --git a/Exceptional/Exceptional/AssemblyVersion.cs b/Exceptional/Exceptional/AssemblyVersion.cs index e81d275f1..cea844b93 100644 --- a/Exceptional/Exceptional/AssemblyVersion.cs +++ b/Exceptional/Exceptional/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.450")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.450")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.456")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.456")] diff --git a/Exceptional/Exceptional/version.version b/Exceptional/Exceptional/version.version index f9a0e2ff4..6a138c817 100644 --- a/Exceptional/Exceptional/version.version +++ b/Exceptional/Exceptional/version.version @@ -1,2 +1,2 @@ -3.0.0.450 -3.0.0.450 +3.0.0.456 +3.0.0.456 diff --git a/FSRGen/fsrgen/AssemblyVersion.cs b/FSRGen/fsrgen/AssemblyVersion.cs index 1c922d11a..f348a148c 100644 --- a/FSRGen/fsrgen/AssemblyVersion.cs +++ b/FSRGen/fsrgen/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.447")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.447")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.453")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.453")] diff --git a/FSRGen/fsrgen/version.version b/FSRGen/fsrgen/version.version index 98b67e41a..0b956926a 100644 --- a/FSRGen/fsrgen/version.version +++ b/FSRGen/fsrgen/version.version @@ -1,2 +1,2 @@ -3.0.0.447 -3.0.0.447 +3.0.0.453 +3.0.0.453 diff --git a/GScript/gscript/AssemblyVersion.cs b/GScript/gscript/AssemblyVersion.cs index e4d8a9984..c4a6113b3 100644 --- a/GScript/gscript/AssemblyVersion.cs +++ b/GScript/gscript/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.466")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.466")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.472")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.472")] diff --git a/GScript/gscript/version.version b/GScript/gscript/version.version index ef8d6c1e2..c85a01f73 100644 --- a/GScript/gscript/version.version +++ b/GScript/gscript/version.version @@ -1,2 +1,2 @@ -3.0.0.466 -3.0.0.466 +3.0.0.472 +3.0.0.472 diff --git a/Goedel3/goedel3/AssemblyVersion.cs b/Goedel3/goedel3/AssemblyVersion.cs index 5b3cd3689..9f85150ef 100644 --- a/Goedel3/goedel3/AssemblyVersion.cs +++ b/Goedel3/goedel3/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.445")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.445")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.451")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.451")] diff --git a/Goedel3/goedel3/version.version b/Goedel3/goedel3/version.version index 0f3b47ce4..e4ccff662 100644 --- a/Goedel3/goedel3/version.version +++ b/Goedel3/goedel3/version.version @@ -1,2 +1,2 @@ -3.0.0.445 -3.0.0.445 +3.0.0.451 +3.0.0.451 diff --git a/MakeyMakey/makey/AssemblyVersion.cs b/MakeyMakey/makey/AssemblyVersion.cs index 5b3cd3689..9f85150ef 100644 --- a/MakeyMakey/makey/AssemblyVersion.cs +++ b/MakeyMakey/makey/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.445")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.445")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.451")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.451")] diff --git a/MakeyMakey/makey/version.version b/MakeyMakey/makey/version.version index 0f3b47ce4..e4ccff662 100644 --- a/MakeyMakey/makey/version.version +++ b/MakeyMakey/makey/version.version @@ -1,2 +1,2 @@ -3.0.0.445 -3.0.0.445 +3.0.0.451 +3.0.0.451 diff --git a/Protogen/protogen/AssemblyVersion.cs b/Protogen/protogen/AssemblyVersion.cs index 1c922d11a..f348a148c 100644 --- a/Protogen/protogen/AssemblyVersion.cs +++ b/Protogen/protogen/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.447")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.447")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.453")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.453")] diff --git a/Protogen/protogen/version.version b/Protogen/protogen/version.version index 98b67e41a..0b956926a 100644 --- a/Protogen/protogen/version.version +++ b/Protogen/protogen/version.version @@ -1,2 +1,2 @@ -3.0.0.447 -3.0.0.447 +3.0.0.453 +3.0.0.453 diff --git a/RegistryConfig/registryconfig/AssemblyVersion.cs b/RegistryConfig/registryconfig/AssemblyVersion.cs index b7e6c86b6..e81d275f1 100644 --- a/RegistryConfig/registryconfig/AssemblyVersion.cs +++ b/RegistryConfig/registryconfig/AssemblyVersion.cs @@ -1,6 +1,6 @@ using System; using System.Reflection; -[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.444")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.444")] +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.450")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.450")] diff --git a/RegistryConfig/registryconfig/version.version b/RegistryConfig/registryconfig/version.version index 00928a3ad..f9a0e2ff4 100644 --- a/RegistryConfig/registryconfig/version.version +++ b/RegistryConfig/registryconfig/version.version @@ -1,2 +1,2 @@ -3.0.0.444 -3.0.0.444 +3.0.0.450 +3.0.0.450 diff --git a/YASchema/Goedel.Tool.Yashima/AssemblyVersion.cs b/YASchema/Goedel.Tool.Yashima/AssemblyVersion.cs new file mode 100644 index 000000000..65bbee39a --- /dev/null +++ b/YASchema/Goedel.Tool.Yashima/AssemblyVersion.cs @@ -0,0 +1,6 @@ +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyVersionAttribute("0.0.0.0")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("0.0.0.0")] + diff --git a/YASchema/Goedel.Tool.Yashima/Generate.Script b/YASchema/Goedel.Tool.Yashima/Generate.Script new file mode 100644 index 000000000..e85c9a075 --- /dev/null +++ b/YASchema/Goedel.Tool.Yashima/Generate.Script @@ -0,0 +1,16 @@ +#script 1.0 +#license MITLicense +#pclass Goedel.Tool.Yaschema Generate + +#method GenerateCS YaschemaStruct YaschemaStruct + +// hodwdie doody time + + +#end method + +#method GenerateMD YaschemaStruct YaschemaStruct + +#end method + +#end pclass diff --git a/YASchema/Goedel.Tool.Yashima/Generate.cs b/YASchema/Goedel.Tool.Yashima/Generate.cs new file mode 100644 index 000000000..5d899412d --- /dev/null +++ b/YASchema/Goedel.Tool.Yashima/Generate.cs @@ -0,0 +1,51 @@ +// Script Syntax Version: 1.0 + +// © 2015-2019 by Phill Hallam-Baker +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// +using System; +using System.IO; +using System.Collections.Generic; +using Goedel.Registry; +namespace Goedel.Tool.Yaschema { + public partial class Generate : global::Goedel.Registry.Script { + + + + // + // GenerateCS + // + public void GenerateCS (YaschemaStruct YaschemaStruct) { + _Output.Write ("\n{0}", _Indent); + _Output.Write ("// hodwdie doody time\n{0}", _Indent); + _Output.Write ("\n{0}", _Indent); + _Output.Write ("\n{0}", _Indent); + } + + + // + // GenerateMD + // + public void GenerateMD (YaschemaStruct YaschemaStruct) { + _Output.Write ("\n{0}", _Indent); + } + } + } diff --git a/YASchema/Goedel.Tool.Yashima/Goedel.Tool.Yaschema.csproj b/YASchema/Goedel.Tool.Yashima/Goedel.Tool.Yaschema.csproj new file mode 100644 index 000000000..ee8cb4ffe --- /dev/null +++ b/YASchema/Goedel.Tool.Yashima/Goedel.Tool.Yaschema.csproj @@ -0,0 +1,55 @@ + + + + net5.0 + PHBLogo256.ico + Library + Phill Hallam-Baker + build$([System.DateTime]::UtcNow.ToString("yyyyMMddHHmmss")) + Constant Manager + Generates RFC format documentation from OOXML or Markdown source. + © 2015-2019 + Constant Manager + false + false + + + + + + + + + + + YaschemaSchema.gdl + True + True + + + Generate.script + True + True + + + + + + YaschemaSchema.cs + Goedel3 + + + Generate.cs + GScript + + + + + + + + + + + + diff --git a/YASchema/Goedel.Tool.Yashima/PHBLogo256.ico b/YASchema/Goedel.Tool.Yashima/PHBLogo256.ico new file mode 100644 index 000000000..67d73bf31 Binary files /dev/null and b/YASchema/Goedel.Tool.Yashima/PHBLogo256.ico differ diff --git a/YASchema/Goedel.Tool.Yashima/VS.Make b/YASchema/Goedel.Tool.Yashima/VS.Make new file mode 100644 index 000000000..12911a61c --- /dev/null +++ b/YASchema/Goedel.Tool.Yashima/VS.Make @@ -0,0 +1,49 @@ + +# Supplemental Makefile for Visual Studios Projects +# +# Visual Studio runs tools for most projects but not for shared projects. +# +# Prebuild items supported: +# [None currently] +# +# PostBuild items supported: +# * Copy library to locations on disk +# * Build ilMerge executables +# * Postprocess VSIX projects +# * Copy executables + + +.PHONY : all always clean install publish prebuild prebuildRecurse postbuild postbuildRecurse + +MSBuildThisFileDirectory = + +LinkFiles = \ + Goedel.Tool.Core.dll + +ToolTargets = \ + YaschemaSchema.cs\ + Generate.cs +YaschemaSchema.cs : YaschemaSchema.gdl + goedel3 YaschemaSchema.gdl /cs YaschemaSchema.cs + +Generate.cs : Generate.Script + gscript Generate.Script Generate.cs + + + +prebuildRecurse : + + +postbuildRecurse : + +# Non shared project, nothing to do +prebuild : prebuildRecurse $(ToolTargets) + version version.version AssemblyVersion.cs + + +postbuild : postbuildRecurse + + +postbuildwindows : + powershell publishtarget Goedel.Tool.Yaschema.dll + diff --git a/YASchema/Goedel.Tool.Yashima/YaschemaPlus.cs b/YASchema/Goedel.Tool.Yashima/YaschemaPlus.cs new file mode 100644 index 000000000..7f208c18d --- /dev/null +++ b/YASchema/Goedel.Tool.Yashima/YaschemaPlus.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Goedel.Tool.Yaschema { + public partial class Yaschema { + + + } + + } \ No newline at end of file diff --git a/YASchema/Goedel.Tool.Yashima/YaschemaSchema.cs b/YASchema/Goedel.Tool.Yashima/YaschemaSchema.cs new file mode 100644 index 000000000..4b60985cf --- /dev/null +++ b/YASchema/Goedel.Tool.Yashima/YaschemaSchema.cs @@ -0,0 +1,1455 @@ + +// Copyright (c) ThresholdSecrets by 2020 +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// +// This file is automatically generated from the following source files: +// Command line options: +// /dlexer=False +// /dparser=False +// /dstack=False + +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Goedel.Registry; +using Goedel.Utilities; + + + + +// +// Namespace Goedel.Tool.Yaschema +// Class YaschemaStruct +// + + +// Types +// TopTypeType +// Namespace +// Client +// Host +// TypeType +// Packet +// ClientEphemerals +// ClientEphemeral +// HostKeyID +// HostEphemerals +// Response +// Challenge +// Payload +// ClientCredential +// ClientKeyID +// HostEphemeral +// IdType +// PacketType +// NamespaceType +// Goedel.Tool.Yaschema +// ClassType +// YaschemaStruct +// NameType +// Id +// Class +// Text +// Entries +// Options +// Initial +// Respond +// Plaintext +// Mezzanine +// Encrypted +// HostCredential +// To +// TokenType +// Name +// Label + +#pragma warning disable IDE0022, IDE0066, IDE1006, IDE0059 +namespace Goedel.Tool.Yaschema { + + + public enum YaschemaStructType { + _Top, + + Namespace, + Client, + Host, + Packet, + Initial, + Respond, + Plaintext, + Mezzanine, + Encrypted, + Payload, + HostCredential, + ClientCredential, + ClientEphemerals, + ClientEphemeral, + HostEphemerals, + HostEphemeral, + Challenge, + Response, + HostKeyID, + ClientKeyID, + + _Label, + _Bottom + } + + + public abstract partial class _Choice { + abstract public YaschemaStructType _Tag (); + + public abstract void Serialize (StructureWriter Output, bool tag); + + public virtual void Init (_Choice Parent) { + } + + bool _Initialized = false; + public virtual void _InitChildren (_Choice Parent) { + Init (Parent); + if (_Initialized) { + return; + } + _Initialized = true; + } + } + + + + public partial class Namespace : _Choice { + public TOKEN<_Choice> Id; + public TOKEN<_Choice> Class; + public List Text = new List (); + + public override YaschemaStructType _Tag () =>YaschemaStructType.Namespace; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Namespace"); + } + + Output.WriteId ("Id", Id.ToString()); + Output.WriteId ("Class", Class.ToString()); + foreach (string _s in Text) { + Output.WriteAttribute ("Text",_s); + } + if (tag) { + Output.EndElement ("Namespace"); + } + } + } + + public partial class Client : _Choice { + public List Entries = new List (); + + public override YaschemaStructType _Tag () =>YaschemaStructType.Client; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + foreach (var Sub in Entries) { + Sub._InitChildren (this); + } + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Client"); + } + + Output.StartList (""); + foreach (Packet _e in Entries) { + _e.Serialize (Output, true); + } + Output.EndList (""); + if (tag) { + Output.EndElement ("Client"); + } + } + } + + public partial class Host : _Choice { + public List Entries = new List (); + + public override YaschemaStructType _Tag () =>YaschemaStructType.Host; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + foreach (var Sub in Entries) { + Sub._InitChildren (this); + } + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Host"); + } + + Output.StartList (""); + foreach (Packet _e in Entries) { + _e.Serialize (Output, true); + } + Output.EndList (""); + if (tag) { + Output.EndElement ("Host"); + } + } + } + + public partial class Packet : _Choice { + public ID<_Choice> Id; + public Initial Initial = new Initial(); + public Respond Respond = new Respond(); + public Plaintext Plaintext = new Plaintext(); + public Mezzanine Mezzanine = new Mezzanine(); + public Encrypted Encrypted = new Encrypted(); + + public override YaschemaStructType _Tag () =>YaschemaStructType.Packet; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Packet"); + } + + Output.WriteId ("Id", Id.ToString()); + Output.StartList (""); + // public Initial Initial = new Initial(); + Initial.Serialize (Output, true); + // public Respond Respond = new Respond(); + Respond.Serialize (Output, true); + // public Plaintext Plaintext = new Plaintext(); + Plaintext.Serialize (Output, true); + // public Mezzanine Mezzanine = new Mezzanine(); + Mezzanine.Serialize (Output, true); + // public Encrypted Encrypted = new Encrypted(); + Encrypted.Serialize (Output, true); + Output.EndList (""); + if (tag) { + Output.EndElement ("Packet"); + } + } + } + + public partial class Initial : _Choice { + public HostCredential HostCredential = new HostCredential(); + + public override YaschemaStructType _Tag () =>YaschemaStructType.Initial; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Initial"); + } + + Output.StartList (""); + // public HostCredential HostCredential = new HostCredential(); + HostCredential.Serialize (Output, true); + Output.EndList (""); + if (tag) { + Output.EndElement ("Initial"); + } + } + } + + public partial class Respond : _Choice { + public List > To = new List> (); + + public override YaschemaStructType _Tag () =>YaschemaStructType.Respond; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Respond"); + } + + Output.StartList (""); + foreach (REF<_Choice> _e in To) { + Output.WriteId ("To", _e.ToString()); + } + Output.EndList (""); + if (tag) { + Output.EndElement ("Respond"); + } + } + } + + public partial class Plaintext : _Choice { + public List <_Choice> Entries = new List<_Choice> (); + + public override YaschemaStructType _Tag () =>YaschemaStructType.Plaintext; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + foreach (var Sub in Entries) { + Sub._InitChildren (this); + } + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Plaintext"); + } + + Output.StartList (""); + foreach (_Choice _e in Entries) { + _e.Serialize (Output, true); + } + Output.EndList (""); + if (tag) { + Output.EndElement ("Plaintext"); + } + } + } + + public partial class Mezzanine : _Choice { + public List <_Choice> Entries = new List<_Choice> (); + + public override YaschemaStructType _Tag () =>YaschemaStructType.Mezzanine; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + foreach (var Sub in Entries) { + Sub._InitChildren (this); + } + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Mezzanine"); + } + + Output.StartList (""); + foreach (_Choice _e in Entries) { + _e.Serialize (Output, true); + } + Output.EndList (""); + if (tag) { + Output.EndElement ("Mezzanine"); + } + } + } + + public partial class Encrypted : _Choice { + public List <_Choice> Entries = new List<_Choice> (); + + public override YaschemaStructType _Tag () =>YaschemaStructType.Encrypted; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + foreach (var Sub in Entries) { + Sub._InitChildren (this); + } + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Encrypted"); + } + + Output.StartList (""); + foreach (_Choice _e in Entries) { + _e.Serialize (Output, true); + } + Output.EndList (""); + if (tag) { + Output.EndElement ("Encrypted"); + } + } + } + + public partial class Payload : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.Payload; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Payload"); + } + + if (tag) { + Output.EndElement ("Payload"); + } + } + } + + public partial class HostCredential : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.HostCredential; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("HostCredential"); + } + + if (tag) { + Output.EndElement ("HostCredential"); + } + } + } + + public partial class ClientCredential : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.ClientCredential; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("ClientCredential"); + } + + if (tag) { + Output.EndElement ("ClientCredential"); + } + } + } + + public partial class ClientEphemerals : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.ClientEphemerals; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("ClientEphemerals"); + } + + if (tag) { + Output.EndElement ("ClientEphemerals"); + } + } + } + + public partial class ClientEphemeral : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.ClientEphemeral; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("ClientEphemeral"); + } + + if (tag) { + Output.EndElement ("ClientEphemeral"); + } + } + } + + public partial class HostEphemerals : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.HostEphemerals; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("HostEphemerals"); + } + + if (tag) { + Output.EndElement ("HostEphemerals"); + } + } + } + + public partial class HostEphemeral : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.HostEphemeral; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("HostEphemeral"); + } + + if (tag) { + Output.EndElement ("HostEphemeral"); + } + } + } + + public partial class Challenge : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.Challenge; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Challenge"); + } + + if (tag) { + Output.EndElement ("Challenge"); + } + } + } + + public partial class Response : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.Response; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("Response"); + } + + if (tag) { + Output.EndElement ("Response"); + } + } + } + + public partial class HostKeyID : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.HostKeyID; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("HostKeyID"); + } + + if (tag) { + Output.EndElement ("HostKeyID"); + } + } + } + + public partial class ClientKeyID : _Choice { + + public override YaschemaStructType _Tag () =>YaschemaStructType.ClientKeyID; + + + public override void _InitChildren (_Choice Parent) { + Init (Parent); + } + + public override void Serialize (StructureWriter Output, bool tag) { + + if (tag) { + Output.StartElement ("ClientKeyID"); + } + + if (tag) { + Output.EndElement ("ClientKeyID"); + } + } + } + + class _Label : _Choice { + public REF<_Choice> Label; + + // This method is never called. It exists only to prevent a warning when a + // Schema does not contain a ChoiceREF element. + public void Reach() => Label = null; + + public override YaschemaStructType _Tag () => YaschemaStructType._Label; + + public override void Serialize (StructureWriter Output, bool tag) =>Output.WriteId ("ID", Label.ToString()); + } + + + public enum StateCode { + _Start, + _Choice, + _End, + + Namespace_Start, + Namespace__Id, + Namespace__Class, + Namespace__Text, + Client_Start, + Client__Entries, + Host_Start, + Host__Entries, + Packet_Start, + Packet__Id, + Packet__Options, + Initial_Start, + Initial__Options, + Respond_Start, + Respond__To, + Plaintext_Start, + Plaintext__Entries, + Mezzanine_Start, + Mezzanine__Entries, + Encrypted_Start, + Encrypted__Entries, + Payload_Start, + HostCredential_Start, + ClientCredential_Start, + ClientEphemerals_Start, + ClientEphemeral_Start, + HostEphemerals_Start, + HostEphemeral_Start, + Challenge_Start, + Response_Start, + HostKeyID_Start, + ClientKeyID_Start, + } + + + struct _StackItem { + public StateCode State; + public Goedel.Tool.Yaschema._Choice Token; + } + + public partial class YaschemaStruct : Goedel.Registry.Parser{ + public List Top; + public Registry Registry; + + public bool StartOfEntry {get; private set;} + + StateCode State; + Goedel.Tool.Yaschema._Choice Current; + List <_StackItem> Stack; + + + public static YaschemaStruct Parse(string File, Goedel.Registry.Dispatch Options) { + var Result = new YaschemaStruct() { + Options = Options + }; + + using (Stream infile = + new FileStream(File, FileMode.Open, FileAccess.Read)) { + Lexer Schema = new Lexer(File); + Schema.Process(infile, Result); + } + Result._InitChildren (); + + return Result; + } + + bool _Initialized = false; + public virtual void _InitChildren () { + if (_Initialized) { + return; + } + _Initialized = true; + foreach (var Entry in Top) { + Entry._InitChildren (null); + } + } + + public YaschemaStruct() { + Top = new List () ; + Registry = new Registry (); + State = StateCode._Start; + Stack = new List <_StackItem> (); + StartOfEntry = true; + + TYPE__PacketType = Registry.TYPE ("PacketType"); + TYPE__Name = Registry.TYPE ("Name"); + TYPE__Label = Registry.TYPE ("Label"); + + + + } + + + + public TYPE TYPE__PacketType ; + public TYPE TYPE__Name ; + public TYPE TYPE__Label ; + + private Goedel.Tool.Yaschema._Choice New_Choice(string Label) { + switch (Label) { + + case "Namespace": return NewNamespace(); + case "Client": return NewClient(); + case "Host": return NewHost(); + case "Packet": return NewPacket(); + case "Initial": return NewInitial(); + case "Respond": return NewRespond(); + case "Plaintext": return NewPlaintext(); + case "Mezzanine": return NewMezzanine(); + case "Encrypted": return NewEncrypted(); + case "Payload": return NewPayload(); + case "HostCredential": return NewHostCredential(); + case "ClientCredential": return NewClientCredential(); + case "ClientEphemerals": return NewClientEphemerals(); + case "ClientEphemeral": return NewClientEphemeral(); + case "HostEphemerals": return NewHostEphemerals(); + case "HostEphemeral": return NewHostEphemeral(); + case "Challenge": return NewChallenge(); + case "Response": return NewResponse(); + case "HostKeyID": return NewHostKeyID(); + case "ClientKeyID": return NewClientKeyID(); + + } + + throw new NotFoundReserved ("Reserved word not recognized \"" + Label + "\""); + } + + + + private Goedel.Tool.Yaschema.Namespace NewNamespace() { + Goedel.Tool.Yaschema.Namespace result = new Goedel.Tool.Yaschema.Namespace(); + Push (result); + State = StateCode.Namespace_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Client NewClient() { + Goedel.Tool.Yaschema.Client result = new Goedel.Tool.Yaschema.Client(); + Push (result); + State = StateCode.Client_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Host NewHost() { + Goedel.Tool.Yaschema.Host result = new Goedel.Tool.Yaschema.Host(); + Push (result); + State = StateCode.Host_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Packet NewPacket() { + Goedel.Tool.Yaschema.Packet result = new Goedel.Tool.Yaschema.Packet(); + Push (result); + State = StateCode.Packet_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Initial NewInitial() { + Goedel.Tool.Yaschema.Initial result = new Goedel.Tool.Yaschema.Initial(); + Push (result); + State = StateCode.Initial_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Respond NewRespond() { + Goedel.Tool.Yaschema.Respond result = new Goedel.Tool.Yaschema.Respond(); + Push (result); + State = StateCode.Respond_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Plaintext NewPlaintext() { + Goedel.Tool.Yaschema.Plaintext result = new Goedel.Tool.Yaschema.Plaintext(); + Push (result); + State = StateCode.Plaintext_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Mezzanine NewMezzanine() { + Goedel.Tool.Yaschema.Mezzanine result = new Goedel.Tool.Yaschema.Mezzanine(); + Push (result); + State = StateCode.Mezzanine_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Encrypted NewEncrypted() { + Goedel.Tool.Yaschema.Encrypted result = new Goedel.Tool.Yaschema.Encrypted(); + Push (result); + State = StateCode.Encrypted_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Payload NewPayload() { + Goedel.Tool.Yaschema.Payload result = new Goedel.Tool.Yaschema.Payload(); + Push (result); + State = StateCode.Payload_Start; + return result; + } + + + private Goedel.Tool.Yaschema.HostCredential NewHostCredential() { + Goedel.Tool.Yaschema.HostCredential result = new Goedel.Tool.Yaschema.HostCredential(); + Push (result); + State = StateCode.HostCredential_Start; + return result; + } + + + private Goedel.Tool.Yaschema.ClientCredential NewClientCredential() { + Goedel.Tool.Yaschema.ClientCredential result = new Goedel.Tool.Yaschema.ClientCredential(); + Push (result); + State = StateCode.ClientCredential_Start; + return result; + } + + + private Goedel.Tool.Yaschema.ClientEphemerals NewClientEphemerals() { + Goedel.Tool.Yaschema.ClientEphemerals result = new Goedel.Tool.Yaschema.ClientEphemerals(); + Push (result); + State = StateCode.ClientEphemerals_Start; + return result; + } + + + private Goedel.Tool.Yaschema.ClientEphemeral NewClientEphemeral() { + Goedel.Tool.Yaschema.ClientEphemeral result = new Goedel.Tool.Yaschema.ClientEphemeral(); + Push (result); + State = StateCode.ClientEphemeral_Start; + return result; + } + + + private Goedel.Tool.Yaschema.HostEphemerals NewHostEphemerals() { + Goedel.Tool.Yaschema.HostEphemerals result = new Goedel.Tool.Yaschema.HostEphemerals(); + Push (result); + State = StateCode.HostEphemerals_Start; + return result; + } + + + private Goedel.Tool.Yaschema.HostEphemeral NewHostEphemeral() { + Goedel.Tool.Yaschema.HostEphemeral result = new Goedel.Tool.Yaschema.HostEphemeral(); + Push (result); + State = StateCode.HostEphemeral_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Challenge NewChallenge() { + Goedel.Tool.Yaschema.Challenge result = new Goedel.Tool.Yaschema.Challenge(); + Push (result); + State = StateCode.Challenge_Start; + return result; + } + + + private Goedel.Tool.Yaschema.Response NewResponse() { + Goedel.Tool.Yaschema.Response result = new Goedel.Tool.Yaschema.Response(); + Push (result); + State = StateCode.Response_Start; + return result; + } + + + private Goedel.Tool.Yaschema.HostKeyID NewHostKeyID() { + Goedel.Tool.Yaschema.HostKeyID result = new Goedel.Tool.Yaschema.HostKeyID(); + Push (result); + State = StateCode.HostKeyID_Start; + return result; + } + + + private Goedel.Tool.Yaschema.ClientKeyID NewClientKeyID() { + Goedel.Tool.Yaschema.ClientKeyID result = new Goedel.Tool.Yaschema.ClientKeyID(); + Push (result); + State = StateCode.ClientKeyID_Start; + return result; + } + + + static Goedel.Tool.Yaschema.YaschemaStructType _Reserved(string Label) { + switch (Label) { + + case "Namespace": return Goedel.Tool.Yaschema.YaschemaStructType.Namespace; + case "Client": return Goedel.Tool.Yaschema.YaschemaStructType.Client; + case "Host": return Goedel.Tool.Yaschema.YaschemaStructType.Host; + case "Packet": return Goedel.Tool.Yaschema.YaschemaStructType.Packet; + case "Initial": return Goedel.Tool.Yaschema.YaschemaStructType.Initial; + case "Respond": return Goedel.Tool.Yaschema.YaschemaStructType.Respond; + case "Plaintext": return Goedel.Tool.Yaschema.YaschemaStructType.Plaintext; + case "Mezzanine": return Goedel.Tool.Yaschema.YaschemaStructType.Mezzanine; + case "Encrypted": return Goedel.Tool.Yaschema.YaschemaStructType.Encrypted; + case "Payload": return Goedel.Tool.Yaschema.YaschemaStructType.Payload; + case "HostCredential": return Goedel.Tool.Yaschema.YaschemaStructType.HostCredential; + case "ClientCredential": return Goedel.Tool.Yaschema.YaschemaStructType.ClientCredential; + case "ClientEphemerals": return Goedel.Tool.Yaschema.YaschemaStructType.ClientEphemerals; + case "ClientEphemeral": return Goedel.Tool.Yaschema.YaschemaStructType.ClientEphemeral; + case "HostEphemerals": return Goedel.Tool.Yaschema.YaschemaStructType.HostEphemerals; + case "HostEphemeral": return Goedel.Tool.Yaschema.YaschemaStructType.HostEphemeral; + case "Challenge": return Goedel.Tool.Yaschema.YaschemaStructType.Challenge; + case "Response": return Goedel.Tool.Yaschema.YaschemaStructType.Response; + case "HostKeyID": return Goedel.Tool.Yaschema.YaschemaStructType.HostKeyID; + case "ClientKeyID": return Goedel.Tool.Yaschema.YaschemaStructType.ClientKeyID; + + } + return Goedel.Tool.Yaschema.YaschemaStructType._Bottom; + } + + + public void Serialize (TextWriter Output)=> Serialize (Output, OutputFormat.Goedel); + + public void Serialize (TextWriter Output, OutputFormat OutputFormat) { + + StructureWriter StructureWriter = StructureWriter.GetStructureWriter (Output, OutputFormat); + StructureWriter.StartDocument (); + foreach (Goedel.Tool.Yaschema._Choice Entry in Top) { + Entry.Serialize (StructureWriter, true); + } + StructureWriter.EndDocument (); + } + + + void Push (Goedel.Tool.Yaschema._Choice Token) { + _StackItem Item = new _StackItem () { + State = State, + Token = Current + }; + + Stack.Add (Item); + + //Console.WriteLine ("$$$$PUSH {0}", Current); + + Current = Token; + } + + void Pop () { + Assert.AssertFalse (Stack.Count == 0, InternalError.Throw); + + _StackItem Item = Stack[Stack.Count -1]; + State = Item.State; + Current = Item.Token; + + Stack.RemoveAt (Stack.Count -1 ) ; + + //Console.WriteLine ("$$$$POP {0}", Current); + } + + + + public override void Process(TokenType Token, Position Position, string Text) { + + if ((Token == TokenType.SEPARATOR) | + (Token == TokenType.NULL) | + (Token == TokenType.COMMENT)) { + return; + } + Assert.AssertFalse (Token == TokenType.INVALID, InvalidToken.Throw); + + bool Represent = true; + + while (Represent) { + //Console.WriteLine (" {3}: {0} {1} '{2}'", Token, Position, Text, State); + + + Represent = false; + switch (State) { + case StateCode._Start: // BEGIN + if (Token == TokenType.BEGIN) { + State = StateCode._Choice; + break; + } + else { + throw new ExpectedStart (); + } + + case StateCode._Choice: // LABEL Class | END + if (Token == TokenType.LABEL) { + Goedel.Tool.Yaschema.YaschemaStructType LabelType = _Reserved (Text); + if (false | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.Namespace) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.Client) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.Host)) { + Top.Add(New_Choice(Text)); + } + else { + throw new Expected("Parser Error Expected [Class]"); + } + break; + } + if (Token == TokenType.END) { + State = StateCode._End; + break; + } + else { + throw new ExpectedClass(); + } + + case StateCode._End: { // - + throw new TooManyClose(); + } + + case StateCode.Namespace_Start: + if ((Token == TokenType.LABEL) | (Token == TokenType.LITERAL)) { + Goedel.Tool.Yaschema.Namespace Current_Cast = (Goedel.Tool.Yaschema.Namespace)Current; + Current_Cast.Id = Registry.TOKEN(Position, Text, TYPE__Name, Current_Cast); + State = StateCode.Namespace__Id; + break; + } + throw new Expected("Expected LABEL or LITERAL"); + + case StateCode.Namespace__Id: + if ((Token == TokenType.LABEL) | (Token == TokenType.LITERAL)) { + Goedel.Tool.Yaschema.Namespace Current_Cast = (Goedel.Tool.Yaschema.Namespace)Current; + Current_Cast.Class = Registry.TOKEN(Position, Text, TYPE__Label, Current_Cast); + State = StateCode.Namespace__Class; + break; + } + throw new Expected("Expected LABEL or LITERAL"); + + case StateCode.Namespace__Class: + if (Token == TokenType.BEGIN) { + State = StateCode.Namespace__Text; + break; + } + else { + Pop(); + Represent = true; + break; + } + case StateCode.Namespace__Text: + if (Token == TokenType.END) { + Pop(); + break; + } + else if (Token == TokenType.TEXT) { + Goedel.Tool.Yaschema.Namespace Current_Cast = (Goedel.Tool.Yaschema.Namespace)Current; + Current_Cast.Text.Add (Text); + break; + } + throw new Expected("Expected Text"); + + + case StateCode.Client_Start: + + if (Token == TokenType.BEGIN) { + State = StateCode.Client__Entries; + } + else { + Pop (); + Represent = true; + } + break; + case StateCode.Client__Entries: + if (Token == TokenType.END) { + Pop(); + break; + } + + // Parser transition for LIST $$$$$ + + + /// Label + else { + Goedel.Tool.Yaschema.Client Current_Cast = (Goedel.Tool.Yaschema.Client)Current; + Current_Cast.Entries.Add (NewPacket ()); + Represent = true; + } + + break; + + + case StateCode.Host_Start: + + if (Token == TokenType.BEGIN) { + State = StateCode.Host__Entries; + } + else { + Pop (); + Represent = true; + } + break; + case StateCode.Host__Entries: + if (Token == TokenType.END) { + Pop(); + break; + } + + // Parser transition for LIST $$$$$ + + + /// Label + else { + Goedel.Tool.Yaschema.Host Current_Cast = (Goedel.Tool.Yaschema.Host)Current; + Current_Cast.Entries.Add (NewPacket ()); + Represent = true; + } + + break; + + + case StateCode.Packet_Start: + if ((Token == TokenType.LABEL) | (Token == TokenType.LITERAL)) { + Goedel.Tool.Yaschema.Packet Current_Cast = (Goedel.Tool.Yaschema.Packet)Current; + Current_Cast.Id = Registry.ID(Position, Text, TYPE__PacketType, Current_Cast); + State = StateCode.Packet__Id; + break; + } + throw new Expected("Expected LABEL or LITERAL"); + + case StateCode.Packet__Id: + if (Token == TokenType.BEGIN) { + State = StateCode.Packet__Options; + } + else { + Pop (); + Represent = true; + } + break; + case StateCode.Packet__Options: + if (Token == TokenType.END) { + Pop(); + break; + } + + // Parser transition for OPTIONS $$$$$ + else if (Token == TokenType.LABEL) { + Goedel.Tool.Yaschema.Packet Current_Cast = (Goedel.Tool.Yaschema.Packet)Current; + Goedel.Tool.Yaschema.YaschemaStructType LabelType = _Reserved (Text); + switch (LabelType) { + case Goedel.Tool.Yaschema.YaschemaStructType.Initial : { + + // Initial Initial + Current_Cast.Initial = NewInitial (); + break; + } + case Goedel.Tool.Yaschema.YaschemaStructType.Respond : { + + // Respond Respond + Current_Cast.Respond = NewRespond (); + break; + } + case Goedel.Tool.Yaschema.YaschemaStructType.Plaintext : { + + // Plaintext Plaintext + Current_Cast.Plaintext = NewPlaintext (); + break; + } + case Goedel.Tool.Yaschema.YaschemaStructType.Mezzanine : { + + // Mezzanine Mezzanine + Current_Cast.Mezzanine = NewMezzanine (); + break; + } + case Goedel.Tool.Yaschema.YaschemaStructType.Encrypted : { + + // Encrypted Encrypted + Current_Cast.Encrypted = NewEncrypted (); + break; + } + default : { + throw new Expected("Parser Error Expected [Initial Respond Plaintext Mezzanine Encrypted ]"); + } + } + } + break; + + case StateCode.Initial_Start: + if (Token == TokenType.BEGIN) { + State = StateCode.Initial__Options; + } + else { + Pop (); + Represent = true; + } + break; + case StateCode.Initial__Options: + if (Token == TokenType.END) { + Pop(); + break; + } + + // Parser transition for OPTIONS $$$$$ + else if (Token == TokenType.LABEL) { + Goedel.Tool.Yaschema.Initial Current_Cast = (Goedel.Tool.Yaschema.Initial)Current; + Goedel.Tool.Yaschema.YaschemaStructType LabelType = _Reserved (Text); + switch (LabelType) { + case Goedel.Tool.Yaschema.YaschemaStructType.HostCredential : { + + // HostCredential HostCredential + Current_Cast.HostCredential = NewHostCredential (); + break; + } + default : { + throw new Expected("Parser Error Expected [HostCredential ]"); + } + } + } + break; + + case StateCode.Respond_Start: + + if (Token == TokenType.BEGIN) { + State = StateCode.Respond__To; + } + else { + Pop (); + Represent = true; + } + break; + case StateCode.Respond__To: + if (Token == TokenType.END) { + Pop(); + break; + } + + // Parser transition for LIST $$$$$ + + else if ((Token == TokenType.LABEL) | (Token == TokenType.LITERAL)) { + Goedel.Tool.Yaschema.Respond Current_Cast = (Goedel.Tool.Yaschema.Respond)Current; + Current_Cast.To.Add ( Registry.REF(Position, Text, TYPE__PacketType, Current_Cast ) ); + break; + } + + break; + + + case StateCode.Plaintext_Start: + + if (Token == TokenType.BEGIN) { + State = StateCode.Plaintext__Entries; + } + else { + Pop (); + Represent = true; + } + break; + case StateCode.Plaintext__Entries: + if (Token == TokenType.END) { + Pop(); + break; + } + + // Parser transition for LIST $$$$$ + + else if (Token == TokenType.LABEL) { + Goedel.Tool.Yaschema.Plaintext Current_Cast = (Goedel.Tool.Yaschema.Plaintext)Current; + Goedel.Tool.Yaschema.YaschemaStructType LabelType = _Reserved (Text); + if ( false | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.ClientEphemerals) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.ClientEphemeral) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.HostKeyID) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.HostCredential) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.HostEphemerals) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.Response) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.Challenge) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.Payload) ) { + Current_Cast.Entries.Add (New_Choice(Text)); + } + else { + throw new Expected ("Parser Error Expected [ClientEphemerals ClientEphemeral HostKeyID HostCredential HostEphemerals Response Challenge Payload ]"); + } + } + break; + + + case StateCode.Mezzanine_Start: + + if (Token == TokenType.BEGIN) { + State = StateCode.Mezzanine__Entries; + } + else { + Pop (); + Represent = true; + } + break; + case StateCode.Mezzanine__Entries: + if (Token == TokenType.END) { + Pop(); + break; + } + + // Parser transition for LIST $$$$$ + + else if (Token == TokenType.LABEL) { + Goedel.Tool.Yaschema.Mezzanine Current_Cast = (Goedel.Tool.Yaschema.Mezzanine)Current; + Goedel.Tool.Yaschema.YaschemaStructType LabelType = _Reserved (Text); + if ( false | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.ClientCredential) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.ClientKeyID) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.Payload) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.HostEphemeral) | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.HostEphemerals) ) { + Current_Cast.Entries.Add (New_Choice(Text)); + } + else { + throw new Expected ("Parser Error Expected [ClientCredential ClientKeyID Payload HostEphemeral HostEphemerals ]"); + } + } + break; + + + case StateCode.Encrypted_Start: + + if (Token == TokenType.BEGIN) { + State = StateCode.Encrypted__Entries; + } + else { + Pop (); + Represent = true; + } + break; + case StateCode.Encrypted__Entries: + if (Token == TokenType.END) { + Pop(); + break; + } + + // Parser transition for LIST $$$$$ + + else if (Token == TokenType.LABEL) { + Goedel.Tool.Yaschema.Encrypted Current_Cast = (Goedel.Tool.Yaschema.Encrypted)Current; + Goedel.Tool.Yaschema.YaschemaStructType LabelType = _Reserved (Text); + if ( false | + (LabelType == Goedel.Tool.Yaschema.YaschemaStructType.Payload) ) { + Current_Cast.Entries.Add (New_Choice(Text)); + } + else { + throw new Expected ("Parser Error Expected [Payload ]"); + } + } + break; + + + case StateCode.Payload_Start: + Pop (); + Represent = true; + break; + case StateCode.HostCredential_Start: + Pop (); + Represent = true; + break; + case StateCode.ClientCredential_Start: + Pop (); + Represent = true; + break; + case StateCode.ClientEphemerals_Start: + Pop (); + Represent = true; + break; + case StateCode.ClientEphemeral_Start: + Pop (); + Represent = true; + break; + case StateCode.HostEphemerals_Start: + Pop (); + Represent = true; + break; + case StateCode.HostEphemeral_Start: + Pop (); + Represent = true; + break; + case StateCode.Challenge_Start: + Pop (); + Represent = true; + break; + case StateCode.Response_Start: + Pop (); + Represent = true; + break; + case StateCode.HostKeyID_Start: + Pop (); + Represent = true; + break; + case StateCode.ClientKeyID_Start: + Pop (); + Represent = true; + break; + + default: { + throw new UnreachableCode(); + } + } + } + } + } + } +#pragma warning restore IDE0022 + diff --git a/YASchema/Goedel.Tool.Yashima/YaschemaSchema.gdl b/YASchema/Goedel.Tool.Yashima/YaschemaSchema.gdl new file mode 100644 index 000000000..bb6236516 --- /dev/null +++ b/YASchema/Goedel.Tool.Yashima/YaschemaSchema.gdl @@ -0,0 +1,65 @@ +Copyright "ThresholdSecrets" "2020" MITLicense + +Class Goedel.Tool.Yaschema YaschemaStruct + + TopType Namespace + Id Token Name + Class Token Label + Text Text + + TopType Client + Entries List Packet + + TopType Host + Entries List Packet + + Type Packet + Id ID PacketType + Options Options + Initial Initial Single + Respond Respond Single + Plaintext Plaintext Single + Mezzanine Mezzanine Single + Encrypted Encrypted Single + + Type Initial + Options Options + HostCredential HostCredential Single + + Type Respond + To List REF PacketType + + Type Plaintext + Entries List Choice + ClientEphemerals + ClientEphemeral + HostKeyID + HostCredential + HostEphemerals + Response + Challenge + Payload + + Type Mezzanine + Entries List Choice + ClientCredential + ClientKeyID + Payload + HostEphemeral + HostEphemerals + + Type Encrypted + Entries List Choice + Payload + + Type Payload + Type HostCredential + Type ClientCredential + Type ClientEphemerals + Type ClientEphemeral + Type HostEphemerals + Type HostEphemeral + Type Challenge + Type Response + Type HostKeyID + Type ClientKeyID \ No newline at end of file diff --git a/YASchema/Goedel.Tool.Yashima/version.version b/YASchema/Goedel.Tool.Yashima/version.version new file mode 100644 index 000000000..e69de29bb diff --git a/YASchema/yaschema/AssemblyVersion.cs b/YASchema/yaschema/AssemblyVersion.cs new file mode 100644 index 000000000..0e0ab4ed1 --- /dev/null +++ b/YASchema/yaschema/AssemblyVersion.cs @@ -0,0 +1,6 @@ +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.538")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.538")] + diff --git a/YASchema/yaschema/PHBLogo256.ico b/YASchema/yaschema/PHBLogo256.ico new file mode 100644 index 000000000..67d73bf31 Binary files /dev/null and b/YASchema/yaschema/PHBLogo256.ico differ diff --git a/YASchema/yaschema/PacketSchema.yaschema b/YASchema/yaschema/PacketSchema.yaschema new file mode 100644 index 000000000..b63f20b73 --- /dev/null +++ b/YASchema/yaschema/PacketSchema.yaschema @@ -0,0 +1,83 @@ + + + +Client + + ClientInitial + Initial + Plaintext + ClientEphemerals + Payload + + ClientExchange + Initial + HostCredential + Plaintext + HostKeyID + ClientEphemeral + Mezzanine + ClientCredential + Payload + + ClientComplete + Respond + HostExchange + Mezzanine + ClientKeyID + ClientCredential + Encrypted + Payload + + ClientCompleteDeferred + Respond + HostChallenge1 + HostChallenge2 + Plaintext + HostKeyID + ClientEphemeral + Response + Mezzanine + ClientKeyID + ClientCredential + Encrypted + Payload + + + +Host + HostExchange + Respond + ClientInitial + Plaintext + HostKeyID + HostCredential + HostEphemerals + Mezzanine + Payload + + HostChallenge1 + Respond + ClientInitial + Plaintext + HostEphemerals + HostCredential + Challenge + Payload + + HostChallenge2 + Respond + ClientExchange + Plaintext + HostEphemerals + Challenge + Payload + + HostComplete + Respond + ClientExchange + Mezzanine + ClientKeyID + HostEphemeral + Encrypted + Payload + diff --git a/YASchema/yaschema/Properties/launchSettings.json b/YASchema/yaschema/Properties/launchSettings.json new file mode 100644 index 000000000..dd3ae8f34 --- /dev/null +++ b/YASchema/yaschema/Properties/launchSettings.json @@ -0,0 +1,9 @@ +{ + "profiles": { + "constant": { + "commandName": "Project", + "commandLineArgs": "..\\..\\..\\mmm\\Libraries\\Goedel.Protocol.Presentation\\PacketSchema.yaschema /cs", + "workingDirectory": "C:\\Users\\hallam\\Work\\mmm\\Libraries\\Goedel.Protocol.Presentation" + } + } +} \ No newline at end of file diff --git a/YASchema/yaschema/VS.Make b/YASchema/yaschema/VS.Make new file mode 100644 index 000000000..e1091302b --- /dev/null +++ b/YASchema/yaschema/VS.Make @@ -0,0 +1,46 @@ + +# Supplemental Makefile for Visual Studios Projects +# +# Visual Studio runs tools for most projects but not for shared projects. +# +# Prebuild items supported: +# [None currently] +# +# PostBuild items supported: +# * Copy library to locations on disk +# * Build ilMerge executables +# * Postprocess VSIX projects +# * Copy executables + + +.PHONY : all always clean install publish prebuild prebuildRecurse postbuild postbuildRecurse + +MSBuildThisFileDirectory = + +LinkFiles = \ + Goedel.Tool.Core.dll\ + Goedel.Tool.Yaschema.dll + +ToolTargets = \ + Yaschema.cs +Yaschema.cs : Yaschema.command + commandparse Yaschema.command /cs Yaschema.cs + + + +prebuildRecurse : + + +postbuildRecurse : + +# Non shared project, nothing to do +prebuild : prebuildRecurse $(ToolTargets) + version version.version AssemblyVersion.cs + + +postbuild : postbuildRecurse + + +postbuildwindows : + powershell publishtarget yaschema.exe $(LinkFiles) + diff --git a/YASchema/yaschema/Yaschema.command b/YASchema/yaschema/Yaschema.command new file mode 100644 index 000000000..b9168fc77 --- /dev/null +++ b/YASchema/yaschema/Yaschema.command @@ -0,0 +1,24 @@ +Class Goedel.Shell.Yaschema YaschemaShell + Brief "Yaschema compiler" + + Type NewFile "file" + Type ExistingFile "file" + Type Flag "flag" + + About "about" + + Command Yaschema "yaschema" + DefaultCommand + Lazy Lazy "lazy" + Brief "Only generate code if source or generator have changed" + + + Parser Goedel.Tool.Yaschema YaschemaStruct "yaschema" + + Script Goedel.Tool.Yaschema Generate GenerateCS "cs" + Brief "Generate code in C#" + Default "cs" + + Script Goedel.Tool.Yaschema Generate GenerateMD "md" + Brief "Generate Markdown documentation" + Default "md" \ No newline at end of file diff --git a/YASchema/yaschema/Yaschema.cs b/YASchema/yaschema/Yaschema.cs new file mode 100644 index 000000000..6ad9376aa --- /dev/null +++ b/YASchema/yaschema/Yaschema.cs @@ -0,0 +1,309 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Goedel.Command; +using Goedel.Registry; +using Goedel.Utilities; +#pragma warning disable IDE1006 +#pragma warning disable CS1591 + +namespace Goedel.Shell.Yaschema { + + + + public partial class CommandLineInterpreter : CommandLineInterpreterBase { + + + + + /// The command entries + public static SortedDictionary Entries; + /// The default command. + public static DescribeCommandEntry DefaultCommand; + /// Description of the comman + public static string Description = ""; + + static char UnixFlag = '-'; + static char WindowsFlag = '/'; + + /// + /// Describe the application invoked by the command. + /// + /// The command description. + /// The set of arguments. + /// The first unparsed argument. + public static void About (DispatchShell Dispatch, string[] args, int index) => + FileTools.About(); + + + public static DescribeCommandEntry DescribeAbout = new DescribeCommandEntry() { + Identifier = "about", + HandleDelegate = About, + Entries = new List() { } + }; + + + static bool IsFlag(char c) => + (c == UnixFlag) | (c == WindowsFlag) ; + + + + + + static CommandLineInterpreter () { + System.OperatingSystem OperatingSystem = System.Environment.OSVersion; + + if (OperatingSystem.Platform == PlatformID.Unix | + OperatingSystem.Platform == PlatformID.MacOSX) { + FlagIndicator = UnixFlag; + } + else { + FlagIndicator = WindowsFlag; + } + + DefaultCommand = _Yaschema._DescribeCommand; + Description = "Yaschema compiler"; + + Entries = new SortedDictionary () { + {"yaschema", _Yaschema._DescribeCommand }, + {"about", DescribeAbout } + }; // End Entries + + + + } + + static void Main(string[] args) { + var CLI = new CommandLineInterpreter (); + CLI.MainMethod (args); + } + + public void MainMethod(string[] Args) { + YaschemaShell Dispatch = new YaschemaShell (); + + try { + MainMethod (Dispatch, Args); + } + catch (Goedel.Command.ParserException) { + Brief(Description, DefaultCommand, Entries); + } + catch (System.Exception Exception) { + Console.WriteLine("Application: {0}", Exception.Message); + } + } + + + public void MainMethod(YaschemaShell Dispatch, string[] Args) => + Dispatcher (Entries, DefaultCommand, Dispatch, Args, 0); + + + + + public static void Handle_Yaschema ( + DispatchShell DispatchIn, string[] Args, int Index) { + YaschemaShell Dispatch = DispatchIn as YaschemaShell; + Yaschema Options = new Yaschema (); + ProcessOptions (Args, Index, Options); + Dispatch._PreProcess (Options); + Dispatch.Yaschema (Options); + } + + + } // class Main + + + // The stub class for carrying optional parameters for each command type + // As with the main class each consists of an abstract main class + // with partial virtual that can be extended as required. + + // All subclasses inherit from the abstract classes Goedel.Regisrty.Dispatch + // and Goedel.Command.Type + + + public class _Yaschema : Goedel.Command.Dispatch { + + public override Goedel.Command.Type[] _Data {get; set;} = new Goedel.Command.Type [] { + new Flag (), + new ExistingFile (), + new NewFile (), + new NewFile () } ; + + + + + + /// Field accessor for parameter [lazy] + public virtual Flag Lazy { + get => _Data[0] as Flag; + set => _Data[0] = value; + } + + public virtual string _Lazy { + set => _Data[0].Parameter (value); + } + /// Field accessor for parameter [] + public virtual ExistingFile YaschemaStruct { + get => _Data[1] as ExistingFile; + set => _Data[1] = value; + } + + public virtual string _YaschemaStruct { + set => _Data[1].Parameter (value); + } + /// Field accessor for option [cs] + public virtual NewFile GenerateCS { + get => _Data[2] as NewFile; + set => _Data[2] = value; + } + + public virtual string _GenerateCS { + set => _Data[2].Parameter (value); + } + /// Field accessor for option [md] + public virtual NewFile GenerateMD { + get => _Data[3] as NewFile; + set => _Data[3] = value; + } + + public virtual string _GenerateMD { + set => _Data[3].Parameter (value); + } + public override DescribeCommandEntry DescribeCommand {get; set;} = _DescribeCommand; + + public static DescribeCommandEntry _DescribeCommand = new DescribeCommandEntry () { + Identifier = "yaschema", + Brief = "", + HandleDelegate = CommandLineInterpreter.Handle_Yaschema, + Lazy = true, + IsDefault = true, + Entries = new List () { + new DescribeEntryParameter () { + Identifier = "YaschemaStruct", + Default = null, // null if null + Brief = "", + Index = 1, + Key = "" + }, + new DescribeEntryOption () { + Identifier = "GenerateCS", + Default = "cs", // null if null + Brief = "Generate code in C#", + Index = 2, + Key = "cs" + }, + new DescribeEntryOption () { + Identifier = "GenerateMD", + Default = "md", // null if null + Brief = "Generate Markdown documentation", + Index = 3, + Key = "md" + } + } + }; + + } + + public partial class Yaschema : _Yaschema { + } // class Yaschema + + + public partial class Flag : Goedel.Command._Flag { + public Flag(string value=null) : base (value) {} + } // Flag + + public partial class File : Goedel.Command._File { + public File(string value=null) : base (value) {} + } // File + + public partial class NewFile : Goedel.Command._NewFile { + public NewFile(string value=null) : base (value) {} + } // NewFile + + public partial class ExistingFile : Goedel.Command._ExistingFile { + public ExistingFile(string value=null) : base (value) {} + } // ExistingFile + + public partial class Integer : Goedel.Command._Integer { + public Integer(string value=null) : base (value) {} + } // Integer + + public partial class String : Goedel.Command._String { + public String(string value=null) : base (value) {} + } // String + + + + public partial class Enumeration : _Enumeration { + public Enumeration(DescribeEntryEnumerate description) : base(description){ + } + } // _Enumeration + + // The stub class just contains routines that echo their arguments and + // write 'not yet implemented' + + // Eventually there will be a compiler option to suppress the debugging + // to eliminate the redundant code + public class _YaschemaShell : global::Goedel.Command.DispatchShell { + + public virtual void Yaschema ( Yaschema Options) { + string inputfile = null; + + inputfile = Options.YaschemaStruct.Text; + + Goedel.Tool.Yaschema.YaschemaStruct Parse = new Goedel.Tool.Yaschema.YaschemaStruct() { + }; + + + using (Stream infile = + new FileStream(inputfile, FileMode.Open, FileAccess.Read)) { + + Lexer Schema = new Lexer(inputfile); + + Schema.Process(infile, Parse); + } + + + // Script output of type GenerateCS cs + if (Options.GenerateCS.Text != null) { + string outputfile = Options.GenerateCS.Text; // Automatically defaults + if (Options.Lazy.Value & FileTools.UpToDate (inputfile, outputfile)) { + return; + } + using (Stream outputStream = + new FileStream(outputfile, FileMode.Create, FileAccess.Write)) { + using (TextWriter OutputWriter = new StreamWriter(outputStream, Encoding.UTF8)) { + + Goedel.Tool.Yaschema.Generate Script = new Goedel.Tool.Yaschema.Generate () { _Output= OutputWriter }; + + Script.GenerateCS (Parse); + } + } + } + // Script output of type GenerateMD md + if (Options.GenerateMD.Text != null) { + string outputfile = Options.GenerateMD.Text; // Automatically defaults + if (Options.Lazy.Value & FileTools.UpToDate (inputfile, outputfile)) { + return; + } + using (Stream outputStream = + new FileStream(outputfile, FileMode.Create, FileAccess.Write)) { + using (TextWriter OutputWriter = new StreamWriter(outputStream, Encoding.UTF8)) { + + Goedel.Tool.Yaschema.Generate Script = new Goedel.Tool.Yaschema.Generate () { _Output= OutputWriter }; + + Script.GenerateMD (Parse); + } + } + } + } + + + } // class _YaschemaShell + + public partial class YaschemaShell : _YaschemaShell { + } // class YaschemaShell + + } // namespace YaschemaShell + + diff --git a/YASchema/yaschema/version.version b/YASchema/yaschema/version.version new file mode 100644 index 000000000..3fbf35c01 --- /dev/null +++ b/YASchema/yaschema/version.version @@ -0,0 +1,2 @@ +3.0.0.538 +3.0.0.538 diff --git a/YASchema/yaschema/yaschema.csproj b/YASchema/yaschema/yaschema.csproj new file mode 100644 index 000000000..26b9bcdb7 --- /dev/null +++ b/YASchema/yaschema/yaschema.csproj @@ -0,0 +1,47 @@ + + + + net5.0 + PHBLogo256.ico + Exe + Phill Hallam-Baker + build$([System.DateTime]::UtcNow.ToString("yyyyMMddHHmmss")) + Constant Manager + Generates RFC format documentation from OOXML or Markdown source. + © 2015-2019 + Constant Manager + false + false + + + + + + + + + + + + + + + + + + + + Yaschema.command + True + True + + + + + + Yaschema.cs + CommandCS + + + +