├── .vs ├── AnalysisSQL │ ├── DesignTimeBuild │ │ └── .dtbcache.v2 │ ├── FileContentIndex │ │ ├── 6299ab61-8b87-4b5f-9854-395902e24c47.vsidx │ │ ├── a956bc8d-cd7a-4390-b9a0-16f4cbe9d989.vsidx │ │ └── a9e2e585-b897-457e-a1f4-dbf2beaa5cbc.vsidx │ └── v17 │ │ ├── .futdcache.v2 │ │ └── .suo └── ProjectEvaluation │ ├── analysissql.metadata.v7.bin │ └── analysissql.projects.v7.bin ├── AnalysisSQL.sln ├── AnalysisSQL ├── AnalysisSQL.csproj ├── BracesTag.cs ├── ForUpdateTag.cs ├── FromTag.cs ├── GroupByTag.cs ├── JoinTag.cs ├── OnTag.cs ├── OrderByTag.cs ├── ParserBase.cs ├── QuotedIdentifierTag.cs ├── SelectTag.cs ├── SimpleOneWordTag.cs ├── SimpleTwoWordTag.cs ├── SqlParser.cs ├── StartWith.cs ├── StringLiteralTag.cs ├── TagBase.cs ├── WhereTag.cs ├── bin │ └── Debug │ │ ├── net8.0 │ │ ├── AnalysisSQL.deps.json │ │ ├── AnalysisSQL.dll │ │ └── AnalysisSQL.pdb │ │ └── netstandard2.0 │ │ ├── AnalysisSQL.deps.json │ │ ├── AnalysisSQL.dll │ │ └── AnalysisSQL.pdb └── obj │ ├── AnalysisSQL.csproj.nuget.cache │ ├── AnalysisSQL.csproj.nuget.dgspec.json │ ├── AnalysisSQL.csproj.nuget.g.props │ ├── AnalysisSQL.csproj.nuget.g.targets │ ├── Debug │ ├── net8.0 │ │ ├── .NETCoreApp,Version=v8.0.AssemblyAttributes.cs │ │ ├── AnalysisSQL.AssemblyInfo.cs │ │ ├── AnalysisSQL.AssemblyInfoInputs.cache │ │ ├── AnalysisSQL.GeneratedMSBuildEditorConfig.editorconfig │ │ ├── AnalysisSQL.GlobalUsings.g.cs │ │ ├── AnalysisSQL.assets.cache │ │ ├── AnalysisSQL.csproj.BuildWithSkipAnalyzers │ │ ├── AnalysisSQL.csproj.CoreCompileInputs.cache │ │ ├── AnalysisSQL.csproj.FileListAbsolute.txt │ │ ├── AnalysisSQL.dll │ │ ├── AnalysisSQL.pdb │ │ ├── AnalysisSQL.sourcelink.json │ │ ├── ref │ │ │ └── AnalysisSQL.dll │ │ └── refint │ │ │ └── AnalysisSQL.dll │ └── netstandard2.0 │ │ ├── .NETStandard,Version=v2.0.AssemblyAttributes.cs │ │ ├── AnalysisSQL.AssemblyInfo.cs │ │ ├── AnalysisSQL.AssemblyInfoInputs.cache │ │ ├── AnalysisSQL.GeneratedMSBuildEditorConfig.editorconfig │ │ ├── AnalysisSQL.assets.cache │ │ ├── AnalysisSQL.csproj.AssemblyReference.cache │ │ ├── AnalysisSQL.csproj.BuildWithSkipAnalyzers │ │ ├── AnalysisSQL.csproj.CoreCompileInputs.cache │ │ ├── AnalysisSQL.csproj.FileListAbsolute.txt │ │ ├── AnalysisSQL.dll │ │ ├── AnalysisSQL.pdb │ │ └── AnalysisSQL.sourcelink.json │ ├── project.assets.json │ └── project.nuget.cache ├── ClassLibrary1 ├── Class1.cs ├── ClassLibrary1.csproj └── obj │ ├── ClassLibrary1.csproj.nuget.dgspec.json │ ├── ClassLibrary1.csproj.nuget.g.props │ ├── ClassLibrary1.csproj.nuget.g.targets │ ├── Debug │ └── net8.0 │ │ ├── .NETCoreApp,Version=v8.0.AssemblyAttributes.cs │ │ ├── ClassLibrary1.AssemblyInfo.cs │ │ ├── ClassLibrary1.AssemblyInfoInputs.cache │ │ ├── ClassLibrary1.GeneratedMSBuildEditorConfig.editorconfig │ │ ├── ClassLibrary1.GlobalUsings.g.cs │ │ └── ClassLibrary1.assets.cache │ ├── project.assets.json │ └── project.nuget.cache ├── ConsoleApp1 ├── App.config ├── ConsoleApp1.csproj ├── Program.cs ├── Properties │ └── AssemblyInfo.cs ├── bin │ └── Debug │ │ ├── AnalysisSQL.dll │ │ ├── AnalysisSQL.pdb │ │ ├── ConsoleApp1.exe │ │ ├── ConsoleApp1.exe.config │ │ ├── ConsoleApp1.pdb │ │ ├── Microsoft.Win32.Primitives.dll │ │ ├── System.AppContext.dll │ │ ├── System.Collections.Concurrent.dll │ │ ├── System.Collections.NonGeneric.dll │ │ ├── System.Collections.Specialized.dll │ │ ├── System.Collections.dll │ │ ├── System.ComponentModel.EventBasedAsync.dll │ │ ├── System.ComponentModel.Primitives.dll │ │ ├── System.ComponentModel.TypeConverter.dll │ │ ├── System.ComponentModel.dll │ │ ├── System.Console.dll │ │ ├── System.Data.Common.dll │ │ ├── System.Diagnostics.Contracts.dll │ │ ├── System.Diagnostics.Debug.dll │ │ ├── System.Diagnostics.FileVersionInfo.dll │ │ ├── System.Diagnostics.Process.dll │ │ ├── System.Diagnostics.StackTrace.dll │ │ ├── System.Diagnostics.TextWriterTraceListener.dll │ │ ├── System.Diagnostics.Tools.dll │ │ ├── System.Diagnostics.TraceSource.dll │ │ ├── System.Diagnostics.Tracing.dll │ │ ├── System.Drawing.Primitives.dll │ │ ├── System.Dynamic.Runtime.dll │ │ ├── System.Globalization.Calendars.dll │ │ ├── System.Globalization.Extensions.dll │ │ ├── System.Globalization.dll │ │ ├── System.IO.Compression.ZipFile.dll │ │ ├── System.IO.Compression.dll │ │ ├── System.IO.FileSystem.DriveInfo.dll │ │ ├── System.IO.FileSystem.Primitives.dll │ │ ├── System.IO.FileSystem.Watcher.dll │ │ ├── System.IO.FileSystem.dll │ │ ├── System.IO.IsolatedStorage.dll │ │ ├── System.IO.MemoryMappedFiles.dll │ │ ├── System.IO.Pipes.dll │ │ ├── System.IO.UnmanagedMemoryStream.dll │ │ ├── System.IO.dll │ │ ├── System.Linq.Expressions.dll │ │ ├── System.Linq.Parallel.dll │ │ ├── System.Linq.Queryable.dll │ │ ├── System.Linq.dll │ │ ├── System.Net.Http.dll │ │ ├── System.Net.NameResolution.dll │ │ ├── System.Net.NetworkInformation.dll │ │ ├── System.Net.Ping.dll │ │ ├── System.Net.Primitives.dll │ │ ├── System.Net.Requests.dll │ │ ├── System.Net.Security.dll │ │ ├── System.Net.Sockets.dll │ │ ├── System.Net.WebHeaderCollection.dll │ │ ├── System.Net.WebSockets.Client.dll │ │ ├── System.Net.WebSockets.dll │ │ ├── System.ObjectModel.dll │ │ ├── System.Reflection.Extensions.dll │ │ ├── System.Reflection.Primitives.dll │ │ ├── System.Reflection.dll │ │ ├── System.Resources.Reader.dll │ │ ├── System.Resources.ResourceManager.dll │ │ ├── System.Resources.Writer.dll │ │ ├── System.Runtime.CompilerServices.VisualC.dll │ │ ├── System.Runtime.Extensions.dll │ │ ├── System.Runtime.Handles.dll │ │ ├── System.Runtime.InteropServices.RuntimeInformation.dll │ │ ├── System.Runtime.InteropServices.dll │ │ ├── System.Runtime.Numerics.dll │ │ ├── System.Runtime.Serialization.Formatters.dll │ │ ├── System.Runtime.Serialization.Json.dll │ │ ├── System.Runtime.Serialization.Primitives.dll │ │ ├── System.Runtime.Serialization.Xml.dll │ │ ├── System.Runtime.dll │ │ ├── System.Security.Claims.dll │ │ ├── System.Security.Cryptography.Algorithms.dll │ │ ├── System.Security.Cryptography.Csp.dll │ │ ├── System.Security.Cryptography.Encoding.dll │ │ ├── System.Security.Cryptography.Primitives.dll │ │ ├── System.Security.Cryptography.X509Certificates.dll │ │ ├── System.Security.Principal.dll │ │ ├── System.Security.SecureString.dll │ │ ├── System.Text.Encoding.Extensions.dll │ │ ├── System.Text.Encoding.dll │ │ ├── System.Text.RegularExpressions.dll │ │ ├── System.Threading.Overlapped.dll │ │ ├── System.Threading.Tasks.Parallel.dll │ │ ├── System.Threading.Tasks.dll │ │ ├── System.Threading.Thread.dll │ │ ├── System.Threading.ThreadPool.dll │ │ ├── System.Threading.Timer.dll │ │ ├── System.Threading.dll │ │ ├── System.ValueTuple.dll │ │ ├── System.Xml.ReaderWriter.dll │ │ ├── System.Xml.XDocument.dll │ │ ├── System.Xml.XPath.XDocument.dll │ │ ├── System.Xml.XPath.dll │ │ ├── System.Xml.XmlDocument.dll │ │ ├── System.Xml.XmlSerializer.dll │ │ └── netstandard.dll └── obj │ └── Debug │ ├── .NETFramework,Version=v4.6.1.AssemblyAttributes.cs │ ├── ConsoleApp1.csproj.AssemblyReference.cache │ ├── ConsoleApp1.csproj.CopyComplete │ ├── ConsoleApp1.csproj.CoreCompileInputs.cache │ ├── ConsoleApp1.csproj.FileListAbsolute.txt │ ├── ConsoleApp1.csproj.SuggestedBindingRedirects.cache │ ├── ConsoleApp1.csprojAssemblyReference.cache │ ├── ConsoleApp1.exe │ ├── ConsoleApp1.exe.config │ ├── ConsoleApp1.pdb │ ├── DesignTimeResolveAssemblyReferences.cache │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs ├── README.md └── Test ├── Program.cs ├── Test.csproj ├── bin └── Debug │ └── net8.0 │ ├── AnalysisSQL.dll │ ├── AnalysisSQL.pdb │ ├── Test.deps.json │ ├── Test.dll │ ├── Test.exe │ ├── Test.pdb │ └── Test.runtimeconfig.json └── obj ├── Debug └── net8.0 │ ├── .NETCoreApp,Version=v8.0.AssemblyAttributes.cs │ ├── Test.AssemblyInfo.cs │ ├── Test.AssemblyInfoInputs.cache │ ├── Test.GeneratedMSBuildEditorConfig.editorconfig │ ├── Test.GlobalUsings.g.cs │ ├── Test.assets.cache │ ├── Test.csproj.AssemblyReference.cache │ ├── Test.csproj.BuildWithSkipAnalyzers │ ├── Test.csproj.CopyComplete │ ├── Test.csproj.CoreCompileInputs.cache │ ├── Test.csproj.FileListAbsolute.txt │ ├── Test.dll │ ├── Test.genruntimeconfig.cache │ ├── Test.pdb │ ├── Test.sourcelink.json │ ├── apphost.exe │ ├── ref │ └── Test.dll │ └── refint │ └── Test.dll ├── Test.csproj.nuget.dgspec.json ├── Test.csproj.nuget.g.props ├── Test.csproj.nuget.g.targets ├── project.assets.json └── project.nuget.cache /.vs/AnalysisSQL/DesignTimeBuild/.dtbcache.v2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/.vs/AnalysisSQL/DesignTimeBuild/.dtbcache.v2 -------------------------------------------------------------------------------- /.vs/AnalysisSQL/FileContentIndex/6299ab61-8b87-4b5f-9854-395902e24c47.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/.vs/AnalysisSQL/FileContentIndex/6299ab61-8b87-4b5f-9854-395902e24c47.vsidx -------------------------------------------------------------------------------- /.vs/AnalysisSQL/FileContentIndex/a956bc8d-cd7a-4390-b9a0-16f4cbe9d989.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/.vs/AnalysisSQL/FileContentIndex/a956bc8d-cd7a-4390-b9a0-16f4cbe9d989.vsidx -------------------------------------------------------------------------------- /.vs/AnalysisSQL/FileContentIndex/a9e2e585-b897-457e-a1f4-dbf2beaa5cbc.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/.vs/AnalysisSQL/FileContentIndex/a9e2e585-b897-457e-a1f4-dbf2beaa5cbc.vsidx -------------------------------------------------------------------------------- /.vs/AnalysisSQL/v17/.futdcache.v2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/.vs/AnalysisSQL/v17/.futdcache.v2 -------------------------------------------------------------------------------- /.vs/AnalysisSQL/v17/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/.vs/AnalysisSQL/v17/.suo -------------------------------------------------------------------------------- /.vs/ProjectEvaluation/analysissql.metadata.v7.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/.vs/ProjectEvaluation/analysissql.metadata.v7.bin -------------------------------------------------------------------------------- /.vs/ProjectEvaluation/analysissql.projects.v7.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/.vs/ProjectEvaluation/analysissql.projects.v7.bin -------------------------------------------------------------------------------- /AnalysisSQL.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.8.34511.84 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AnalysisSQL", "AnalysisSQL\AnalysisSQL.csproj", "{05CEB16D-46BC-475E-B6C4-0A844105B20B}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{28A97B92-1DA0-4BA7-822B-2C47988E9A5C}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {05CEB16D-46BC-475E-B6C4-0A844105B20B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {05CEB16D-46BC-475E-B6C4-0A844105B20B}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {05CEB16D-46BC-475E-B6C4-0A844105B20B}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {05CEB16D-46BC-475E-B6C4-0A844105B20B}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {28A97B92-1DA0-4BA7-822B-2C47988E9A5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 21 | {28A97B92-1DA0-4BA7-822B-2C47988E9A5C}.Debug|Any CPU.Build.0 = Debug|Any CPU 22 | {28A97B92-1DA0-4BA7-822B-2C47988E9A5C}.Release|Any CPU.ActiveCfg = Release|Any CPU 23 | {28A97B92-1DA0-4BA7-822B-2C47988E9A5C}.Release|Any CPU.Build.0 = Release|Any CPU 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | GlobalSection(ExtensibilityGlobals) = postSolution 29 | SolutionGuid = {0A6307CB-046F-463E-B83D-724A51560A4D} 30 | EndGlobalSection 31 | EndGlobal 32 | -------------------------------------------------------------------------------- /AnalysisSQL/AnalysisSQL.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /AnalysisSQL/BracesTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region BracesTag 8 | 9 | [TagType(BracesTag.cTagName)] 10 | [MatchBracesTag] 11 | internal class BracesTag : TagBase 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "BRACES"; 19 | 20 | /// 21 | /// The start of the tag. 22 | /// 23 | public const string cStartTag = "("; 24 | 25 | /// 26 | /// The end of the tag. 27 | /// 28 | public const string cEndTag = ")"; 29 | 30 | #endregion 31 | 32 | #region Methods 33 | 34 | #region Common 35 | 36 | /// 37 | /// Reads the tag at the specified position in the specified word and separator array. 38 | /// 39 | /// 40 | /// The position after the tag (at which to continue reading). 41 | /// 42 | protected override int InitializeCoreFromText(ParserBase parser, string sql, int position, TagBase parentTag) 43 | { 44 | #region Check the arguments 45 | 46 | ParserBase.CheckTextAndPositionArguments(sql, position); 47 | 48 | #endregion 49 | 50 | int myResult = MatchStartStatic(sql, position); 51 | 52 | if (myResult < 0) 53 | throw new Exception("Cannot read the Braces tag."); 54 | 55 | Parser = parser; 56 | 57 | HasContents = true; 58 | 59 | return myResult; 60 | } 61 | 62 | /// 63 | /// Returns a value indicating whether there is the tag ending at the specified position. /// 64 | /// 65 | /// 66 | /// If this value is less than zero, then there is no ending; otherwise the 67 | /// position after ending is returned. 68 | /// 69 | public override int MatchEnd(string sql, int position) 70 | { 71 | CheckInitialized(); 72 | 73 | #region Check the arguments 74 | 75 | ParserBase.CheckTextAndPositionArguments(sql, position); 76 | 77 | #endregion 78 | 79 | return MatchEndStatic(sql, position); 80 | } 81 | 82 | /// 83 | /// Writes the start of the tag. 84 | /// 85 | public override void WriteStart(StringBuilder output) 86 | { 87 | CheckInitialized(); 88 | 89 | #region Check the parameters 90 | 91 | if (output == null) 92 | throw new ArgumentNullException(); 93 | 94 | #endregion 95 | 96 | output.Append(cStartTag); 97 | } 98 | 99 | /// 100 | /// Writes the end of the tag. 101 | /// 102 | public override void WriteEnd(StringBuilder output) 103 | { 104 | CheckInitialized(); 105 | 106 | #region Check the parameters 107 | 108 | if (output == null) 109 | throw new ArgumentNullException(); 110 | 111 | #endregion 112 | 113 | output.Append(cEndTag); 114 | } 115 | 116 | #endregion 117 | 118 | #region Static 119 | 120 | /// 121 | /// Checks whether there is the tag start at the specified position 122 | /// in the specified sql. 123 | /// 124 | /// 125 | /// The position after the tag or -1 there is no tag start at the position. 126 | /// 127 | public static int MatchStartStatic(string sql, int position) 128 | { 129 | #region Check the arguments 130 | 131 | ParserBase.CheckTextAndPositionArguments(sql, position); 132 | 133 | #endregion 134 | 135 | if (string.Compare(sql, position, cStartTag, 0, cStartTag.Length, true) != 0) 136 | return -1; 137 | 138 | return position + cStartTag.Length; 139 | } 140 | 141 | /// 142 | /// Checks whether there is the tag end at the specified position 143 | /// in the specified sql. 144 | /// 145 | /// 146 | /// The position after the tag or -1 there is no tag end at the position. 147 | /// 148 | public static int MatchEndStatic(string sql, int position) 149 | { 150 | #region Check the arguments 151 | 152 | ParserBase.CheckTextAndPositionArguments(sql, position); 153 | 154 | #endregion 155 | 156 | if (string.Compare(sql, position, cEndTag, 0, cEndTag.Length, true) != 0) 157 | return -1; 158 | 159 | return position + cEndTag.Length; 160 | } 161 | 162 | #endregion 163 | 164 | #endregion 165 | } 166 | 167 | #endregion 168 | 169 | #region MatchBracesTagAttribute 170 | 171 | internal class MatchBracesTagAttribute : MatchTagAttributeBase 172 | { 173 | #region Methods 174 | 175 | public override bool Match(string sql, int position) 176 | { 177 | return BracesTag.MatchStartStatic(sql, position) >= 0; 178 | } 179 | 180 | #endregion 181 | } 182 | 183 | #endregion 184 | } 185 | -------------------------------------------------------------------------------- /AnalysisSQL/ForUpdateTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region ForUpdateTag 8 | 9 | [TagType(ForUpdateTag.cTagName)] 10 | [MatchForUpdateTag] 11 | internal class ForUpdateTag : SimpleTwoWordTag 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "FOR_UPDATE"; 19 | 20 | /// 21 | /// The first part of tag. 22 | /// 23 | public const string cTagFirstPart = "FOR"; 24 | 25 | /// 26 | /// The second part of tag. 27 | /// 28 | public const string cTagSecondPart = "UPDATE"; 29 | 30 | #endregion 31 | 32 | #region Properties 33 | 34 | /// 35 | /// Gets the name of the tag. 36 | /// 37 | protected override string Name 38 | { 39 | get 40 | { 41 | return cTagName; 42 | } 43 | } 44 | 45 | /// 46 | /// Gets the first word of the tag. 47 | /// 48 | protected override string FirstWord 49 | { 50 | get 51 | { 52 | return cTagFirstPart; 53 | } 54 | } 55 | 56 | /// 57 | /// Gets the second word of the tag. 58 | /// 59 | protected override string SecondWord 60 | { 61 | get 62 | { 63 | return cTagSecondPart; 64 | } 65 | } 66 | 67 | #endregion 68 | } 69 | 70 | #endregion 71 | 72 | #region MatchForUpdateTagAttribute 73 | 74 | internal class MatchForUpdateTagAttribute : MatchSimpleTwoWordTagAttribute 75 | { 76 | #region Properties 77 | 78 | /// 79 | /// Gets the name of the tag (its identifier and sql text) 80 | /// 81 | protected override string Name 82 | { 83 | get 84 | { 85 | return ForUpdateTag.cTagName; 86 | } 87 | } 88 | 89 | /// 90 | /// Gets the first word of the tag. 91 | /// 92 | protected override string FirstWord 93 | { 94 | get 95 | { 96 | return ForUpdateTag.cTagFirstPart; 97 | } 98 | } 99 | 100 | /// 101 | /// Gets the second word of the tag. 102 | /// 103 | protected override string SecondWord 104 | { 105 | get 106 | { 107 | return ForUpdateTag.cTagSecondPart; 108 | } 109 | } 110 | 111 | #endregion 112 | } 113 | 114 | #endregion 115 | } 116 | -------------------------------------------------------------------------------- /AnalysisSQL/FromTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region FromTag 8 | 9 | [TagType(FromTag.cTagName)] 10 | [MatchFromTag] 11 | internal class FromTag : SimpleOneWordTag 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "FROM"; 19 | 20 | #endregion 21 | 22 | #region Properties 23 | 24 | /// 25 | /// Gets the name of the tag (its identifier and sql text) 26 | /// 27 | protected override string Name 28 | { 29 | get 30 | { 31 | return cTagName; 32 | } 33 | } 34 | 35 | #endregion 36 | } 37 | 38 | #endregion 39 | 40 | #region MatchFromTagAttribute 41 | 42 | internal class MatchFromTagAttribute : MatchSimpleOneWordTagAttribute 43 | { 44 | #region Properties 45 | 46 | /// 47 | /// Gets the name of the tag (its identifier and sql text) 48 | /// 49 | protected override string Name 50 | { 51 | get 52 | { 53 | return FromTag.cTagName; 54 | } 55 | } 56 | 57 | #endregion 58 | } 59 | 60 | #endregion 61 | } 62 | -------------------------------------------------------------------------------- /AnalysisSQL/GroupByTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region GroupByTag 8 | 9 | [TagType(GroupByTag.cTagName)] 10 | [MatchGroupByTag] 11 | internal class GroupByTag : SimpleTwoWordTag 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "GROUP_BY"; 19 | 20 | /// 21 | /// The first part of tag. 22 | /// 23 | public const string cTagFirstPart = "GROUP"; 24 | 25 | /// 26 | /// The second part of tag. 27 | /// 28 | public const string cTagSecondPart = "BY"; 29 | 30 | #endregion 31 | 32 | #region Properties 33 | 34 | /// 35 | /// Gets the name of the tag. 36 | /// 37 | protected override string Name 38 | { 39 | get 40 | { 41 | return cTagName; 42 | } 43 | } 44 | 45 | /// 46 | /// Gets the first word of the tag. 47 | /// 48 | protected override string FirstWord 49 | { 50 | get 51 | { 52 | return cTagFirstPart; 53 | } 54 | } 55 | 56 | /// 57 | /// Gets the second word of the tag. 58 | /// 59 | protected override string SecondWord 60 | { 61 | get 62 | { 63 | return cTagSecondPart; 64 | } 65 | } 66 | 67 | #endregion 68 | } 69 | 70 | #endregion 71 | 72 | #region MatchGroupByTagAttribute 73 | 74 | internal class MatchGroupByTagAttribute : MatchSimpleTwoWordTagAttribute 75 | { 76 | #region Properties 77 | 78 | /// 79 | /// Gets the name of the tag (its identifier and sql text) 80 | /// 81 | protected override string Name 82 | { 83 | get 84 | { 85 | return GroupByTag.cTagName; 86 | } 87 | } 88 | 89 | /// 90 | /// Gets the first word of the tag. 91 | /// 92 | protected override string FirstWord 93 | { 94 | get 95 | { 96 | return GroupByTag.cTagFirstPart; 97 | } 98 | } 99 | 100 | /// 101 | /// Gets the second word of the tag. 102 | /// 103 | protected override string SecondWord 104 | { 105 | get 106 | { 107 | return GroupByTag.cTagSecondPart; 108 | } 109 | } 110 | 111 | #endregion 112 | } 113 | 114 | #endregion 115 | } 116 | -------------------------------------------------------------------------------- /AnalysisSQL/JoinTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | /** 6 | * 命名空间: AnalysisSQL 7 | * 类 名: JoinTag 8 | * CLR版本: 4.0.30319.42000 9 | * 版本 :v1.0 10 | * Copyright (c) jinyu 11 | */ 12 | 13 | namespace AnalysisSQL 14 | { 15 | /// 16 | /// 功能描述 :JoinTag 17 | /// 创 建 者 :jinyu 18 | /// 创建日期 :2018/11/9 0:32:34 19 | /// 最后修改者 :jinyu 20 | /// 最后修改日期:2018/11/9 0:32:34 21 | /// 22 | 23 | #region WhereTag 24 | 25 | [TagType(JoinTag.cTagName)] 26 | [MatchJoinTag] 27 | internal class JoinTag : SimpleOneWordTag 28 | { 29 | #region Consts 30 | 31 | /// 32 | /// The name of the tag (its identifier). 33 | /// 34 | public const string cTagName = "JOIN"; 35 | 36 | #endregion 37 | 38 | #region Properties 39 | 40 | /// 41 | /// Gets the name of the tag (its identifier and sql text) 42 | /// 43 | protected override string Name 44 | { 45 | get 46 | { 47 | return cTagName; 48 | } 49 | } 50 | 51 | #endregion 52 | } 53 | 54 | #endregion 55 | #region MatchWhereTagAttribute 56 | 57 | internal class MatchJoinTagAttribute : MatchSimpleOneWordTagAttribute 58 | { 59 | #region Properties 60 | 61 | /// 62 | /// Gets the name of the tag (its identifier and sql text) 63 | /// 64 | protected override string Name 65 | { 66 | get 67 | { 68 | return JoinTag.cTagName; 69 | } 70 | } 71 | 72 | #endregion 73 | } 74 | 75 | #endregion 76 | 77 | } 78 | -------------------------------------------------------------------------------- /AnalysisSQL/OnTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | /** 6 | * 命名空间: AnalysisSQL 7 | * 类 名: OnTag 8 | * CLR版本: 4.0.30319.42000 9 | * 版本 :v1.0 10 | * Copyright (c) jinyu 11 | */ 12 | 13 | namespace AnalysisSQL 14 | { 15 | /// 16 | /// 功能描述 :OnTag 17 | /// 创 建 者 :jinyu 18 | /// 创建日期 :2018/11/9 10:38:02 19 | /// 最后修改者 :jinyu 20 | /// 最后修改日期:2018/11/9 10:38:02 21 | /// 22 | /// 23 | [TagType(OnTag.cTagName)] 24 | [MatchOnTag] 25 | internal class OnTag:SimpleOneWordTag 26 | { 27 | #region Consts 28 | 29 | /// 30 | /// The name of the tag (its identifier). 31 | /// 32 | public const string cTagName = "ON"; 33 | 34 | #endregion 35 | 36 | #region Properties 37 | 38 | /// 39 | /// Gets the name of the tag (its identifier and sql text) 40 | /// 41 | protected override string Name 42 | { 43 | get 44 | { 45 | return cTagName; 46 | } 47 | } 48 | 49 | #endregion 50 | 51 | #region MatchWhereTagAttribute 52 | 53 | internal class MatchOnTagAttribute : MatchSimpleOneWordTagAttribute 54 | { 55 | #region Properties 56 | 57 | /// 58 | /// Gets the name of the tag (its identifier and sql text) 59 | /// 60 | protected override string Name 61 | { 62 | get 63 | { 64 | return OnTag.cTagName; 65 | } 66 | } 67 | 68 | #endregion 69 | } 70 | 71 | #endregion 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /AnalysisSQL/OrderByTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region OrderByTag 8 | 9 | [TagType(OrderByTag.cTagName)] 10 | [MatchOrderByTag] 11 | internal class OrderByTag : SimpleTwoWordTag 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "ORDER_BY"; 19 | 20 | /// 21 | /// The first part of tag. 22 | /// 23 | public const string cTagFirstPart = "ORDER"; 24 | 25 | /// 26 | /// The second part of tag. 27 | /// 28 | public const string cTagSecondPart = "BY"; 29 | 30 | #endregion 31 | 32 | #region Properties 33 | 34 | /// 35 | /// Gets the name of the tag. 36 | /// 37 | protected override string Name 38 | { 39 | get 40 | { 41 | return cTagName; 42 | } 43 | } 44 | 45 | /// 46 | /// Gets the first word of the tag. 47 | /// 48 | protected override string FirstWord 49 | { 50 | get 51 | { 52 | return cTagFirstPart; 53 | } 54 | } 55 | 56 | /// 57 | /// Gets the second word of the tag. 58 | /// 59 | protected override string SecondWord 60 | { 61 | get 62 | { 63 | return cTagSecondPart; 64 | } 65 | } 66 | 67 | #endregion 68 | } 69 | 70 | #endregion 71 | 72 | #region MatchOrderByTagAttribute 73 | 74 | internal class MatchOrderByTagAttribute : MatchSimpleTwoWordTagAttribute 75 | { 76 | #region Properties 77 | 78 | /// 79 | /// Gets the name of the tag (its identifier and sql text) 80 | /// 81 | protected override string Name 82 | { 83 | get 84 | { 85 | return OrderByTag.cTagName; 86 | } 87 | } 88 | 89 | /// 90 | /// Gets the first word of the tag. 91 | /// 92 | protected override string FirstWord 93 | { 94 | get 95 | { 96 | return OrderByTag.cTagFirstPart; 97 | } 98 | } 99 | 100 | /// 101 | /// Gets the second word of the tag. 102 | /// 103 | protected override string SecondWord 104 | { 105 | get 106 | { 107 | return OrderByTag.cTagSecondPart; 108 | } 109 | } 110 | 111 | #endregion 112 | } 113 | 114 | #endregion 115 | } 116 | -------------------------------------------------------------------------------- /AnalysisSQL/ParserBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using System.Xml; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region ParserBase 8 | 9 | /// 10 | /// An abstract class which is used as the base class for parsers. 11 | /// It contains basic methods which allow you to create a logical tree 12 | /// from a document. 13 | /// 14 | public abstract class ParserBase 15 | { 16 | #region Consts 17 | 18 | /// 19 | /// The name of the Value xml attribute. 20 | /// 21 | protected const string cValueXmlAttributeName = "Value"; 22 | 23 | /// 24 | /// The name of the Tag Type xml attribute. 25 | /// 26 | protected const string cTagTypeXmlAttributeName = "Type"; 27 | 28 | /// 29 | /// The name of the root node in the xml representation of a parsed text. 30 | /// 31 | protected const string cRootXmlNodeName = "ParsedDocument"; 32 | 33 | /// 34 | /// The name of the Tag xml node. 35 | /// 36 | protected const string cTagXmlNodeName = "Tag"; 37 | 38 | /// 39 | /// The name of the Text xml node. 40 | /// 41 | protected const string cTextXmlNodeName = "Text"; 42 | 43 | /// 44 | /// The white space text (is used when adding white 45 | /// spaces between text elements). 46 | /// 47 | public const string cWhiteSpace = " "; 48 | 49 | /// 50 | /// The new line string. 51 | /// 52 | public const string cNewLine = "\r\n"; 53 | 54 | #endregion 55 | 56 | #region Fields 57 | 58 | /// 59 | /// The tree representation of a parsed document as an xml document. 60 | /// 61 | private XmlDocument fParsedDocument; 62 | 63 | #endregion 64 | 65 | #region Methods 66 | 67 | /// 68 | /// Parses the specified text. 69 | /// 70 | public void Parse(string text) 71 | { 72 | #region Check the arguments 73 | 74 | if (text == null) 75 | throw new ArgumentNullException("text"); 76 | 77 | #endregion 78 | 79 | fParsedDocument = new XmlDocument(); 80 | XmlNode myRootNode = fParsedDocument.CreateElement(cRootXmlNodeName); 81 | fParsedDocument.AppendChild(myRootNode); 82 | 83 | try 84 | { 85 | ParseBlock(myRootNode, null, text, 0); 86 | } 87 | catch 88 | { 89 | fParsedDocument = null; 90 | throw; 91 | } 92 | 93 | // m_ParsedDocument.Save(@"D:\Temp\ParserTest.xml"); 94 | } 95 | 96 | /// 97 | /// Parses the specified block of a text. 98 | /// 99 | /// 100 | /// Returns the end position of the parsed block. 101 | /// 102 | protected int ParseBlock(XmlNode parentNode, TagBase parentTag, string text, int position) 103 | { 104 | #region Check the arguments 105 | 106 | if (parentNode == null) 107 | throw new ArgumentNullException("parentNode"); 108 | 109 | CheckTextAndPositionArguments(text, position); 110 | 111 | #endregion 112 | 113 | while (position < text.Length) 114 | { 115 | if (IsSkipWhiteSpace) 116 | SkipWhiteSpace(text, ref position); 117 | 118 | if (position == text.Length) 119 | break; 120 | 121 | #region Read the parent tag ending 122 | 123 | if (parentTag != null) 124 | { 125 | int myParentTagEndingEndPosition = parentTag.MatchEnd(text, position); 126 | if (myParentTagEndingEndPosition >= 0) 127 | { 128 | position = myParentTagEndingEndPosition; 129 | return position; 130 | } 131 | } 132 | 133 | #endregion 134 | 135 | Type myTagType = IsTag(text, position); 136 | if (myTagType != null) 137 | { 138 | #region Read a tag 139 | 140 | #region Create the tag class instance 141 | 142 | TagBase myTag = Activator.CreateInstance(myTagType) as TagBase; 143 | position = myTag.InitializeFromText(this, text, position, parentTag); 144 | 145 | #endregion 146 | 147 | #region Create an xml node for the tag 148 | 149 | XmlNode myTagXmlNode = CreateTagXmlNode(myTag); 150 | parentNode.AppendChild(myTagXmlNode); 151 | 152 | #endregion 153 | 154 | if (myTag.HasContents) 155 | position = ParseBlock(myTagXmlNode, myTag, text, position); 156 | 157 | #endregion 158 | } 159 | else 160 | { 161 | #region Read text 162 | 163 | string myText = ReadWordOrSeparator(text, ref position, !IsSkipWhiteSpace); 164 | parentNode.AppendChild(CreateTextXmlNode(myText)); 165 | 166 | #endregion 167 | } 168 | } 169 | 170 | if (parentTag != null && !parentTag.CanTerminateByStringEnd) 171 | throw new Exception("Invalid format"); 172 | 173 | return position; 174 | } 175 | 176 | /// 177 | /// Checks whether there is a tag in the text at the specified position, and returns its type. 178 | /// 179 | protected Type IsTag(string text, int position) 180 | { 181 | foreach (Type myTagType in Tags) 182 | { 183 | MatchTagAttributeBase myMatchTagAttribute = TagBase.GetTagMatchAttribute(myTagType); 184 | if (myMatchTagAttribute.Match(text, position)) 185 | return myTagType; 186 | } 187 | 188 | return null; 189 | } 190 | 191 | /// 192 | /// Creates an xml node for the specified tag. 193 | /// 194 | protected XmlNode CreateTagXmlNode(TagBase tag) 195 | { 196 | #region Check the arguments 197 | 198 | if (tag == null) 199 | throw new ArgumentNullException(); 200 | 201 | #endregion 202 | 203 | CheckXmlDocInitialized(); 204 | 205 | XmlElement myTagNode = fParsedDocument.CreateElement(cTagXmlNodeName); 206 | 207 | XmlAttribute myTypeAttribute = fParsedDocument.CreateAttribute(cTagTypeXmlAttributeName); 208 | myTypeAttribute.Value = tag.Type; 209 | myTagNode.Attributes.Append(myTypeAttribute); 210 | 211 | if (tag.Value != null) 212 | { 213 | XmlAttribute myValueAttribute = fParsedDocument.CreateAttribute(cValueXmlAttributeName); 214 | myValueAttribute.Value = tag.Value; 215 | myTagNode.Attributes.Append(myValueAttribute); 216 | } 217 | 218 | return myTagNode; 219 | } 220 | 221 | /// 222 | /// Creates an xml node for the specified text. 223 | /// 224 | protected XmlNode CreateTextXmlNode(string text) 225 | { 226 | #region Check the arguments 227 | 228 | if (text == null) 229 | throw new ArgumentNullException("text"); 230 | 231 | #endregion 232 | 233 | CheckXmlDocInitialized(); 234 | 235 | XmlElement myTextNode = fParsedDocument.CreateElement(cTextXmlNodeName); 236 | 237 | XmlAttribute myValueAttribute = fParsedDocument.CreateAttribute(cValueXmlAttributeName); 238 | myValueAttribute.Value = text; 239 | myTextNode.Attributes.Append(myValueAttribute); 240 | 241 | return myTextNode; 242 | } 243 | 244 | /// 245 | /// Skips the white space symbols located at the specified position. 246 | /// 247 | public static void SkipWhiteSpace(string text, ref int position) 248 | { 249 | #region Check the parameters 250 | 251 | CheckTextAndPositionArguments(text, position); 252 | 253 | #endregion 254 | 255 | while (position < text.Length) 256 | { 257 | if (!char.IsWhiteSpace(text, position)) 258 | break; 259 | position++; 260 | } 261 | } 262 | 263 | /// 264 | /// Reads a single word or separator at the specified position. 265 | /// 266 | public static string ReadWordOrSeparator(string text, ref int position, bool treatWhiteSpaceAsSeparator) 267 | { 268 | #region Check the parameters 269 | 270 | CheckTextAndPositionArguments(text, position); 271 | 272 | #endregion 273 | 274 | int myStartPosition = position; 275 | 276 | while (position < text.Length) 277 | { 278 | #region Check is white space 279 | 280 | if (char.IsWhiteSpace(text, position)) 281 | { 282 | if (position == myStartPosition && treatWhiteSpaceAsSeparator) 283 | { 284 | if (position + cNewLine.Length <= text.Length && text.Substring(position, cNewLine.Length) == cNewLine) 285 | position += cNewLine.Length; 286 | else 287 | position += 1; 288 | } 289 | break; 290 | } 291 | 292 | #endregion 293 | 294 | #region Check is separator 295 | 296 | if (!char.IsLetterOrDigit(text, position) && text[position] != '_') 297 | { 298 | if (position == myStartPosition) 299 | position++; 300 | break; 301 | } 302 | 303 | #endregion 304 | 305 | position++; 306 | } 307 | 308 | if (position == myStartPosition) 309 | return string.Empty; 310 | 311 | return text.Substring(myStartPosition, position - myStartPosition); 312 | } 313 | 314 | /// 315 | /// Checks the text and position parameters. 316 | /// 317 | public static void CheckTextAndPositionArguments(string text, int position) 318 | { 319 | #region Check the parameters 320 | 321 | if (text == null) 322 | throw new ArgumentNullException("text"); 323 | 324 | if (position < 0 || position >= text.Length) 325 | throw new ArgumentOutOfRangeException("position"); 326 | 327 | #endregion 328 | } 329 | 330 | /// 331 | /// Checks whether the m_ParsedDocument is initialized. 332 | /// 333 | protected void CheckXmlDocInitialized() 334 | { 335 | if (fParsedDocument == null) 336 | throw new Exception("Xml document is not initialized"); 337 | } 338 | 339 | /// 340 | /// Returns the text string processed by the parser. 341 | /// 342 | public string ToText() 343 | { 344 | CheckXmlDocInitialized(); 345 | 346 | StringBuilder myStringBuilder = new StringBuilder(); 347 | 348 | XmlNodesToText(myStringBuilder, fParsedDocument.ChildNodes[0].ChildNodes); 349 | 350 | return myStringBuilder.ToString(); 351 | } 352 | 353 | /// 354 | /// Converts the specified xml node collection to the text. 355 | /// 356 | protected void XmlNodesToText(StringBuilder output, XmlNodeList nodes) 357 | { 358 | #region Check arguments 359 | 360 | if (nodes == null) 361 | throw new ArgumentNullException("nodes"); 362 | 363 | if (output == null) 364 | throw new ArgumentNullException("output"); 365 | 366 | #endregion 367 | 368 | foreach (XmlNode myNode in nodes) 369 | XmlNodeToText(output, myNode); 370 | } 371 | 372 | /// 373 | /// Converts the specified xml node to text. 374 | /// 375 | protected void XmlNodeToText(StringBuilder output, XmlNode node) 376 | { 377 | #region Check arguments 378 | 379 | if (node == null) 380 | throw new ArgumentNullException("node"); 381 | 382 | if (output == null) 383 | throw new ArgumentNullException("output"); 384 | 385 | #endregion 386 | 387 | if (IsTagXmlNode(node)) 388 | { 389 | TagXmlNodeToText(output, node); 390 | } 391 | else if (IsTextXmlNode(node)) 392 | { 393 | output.Append(GetTextNodeText(node)); 394 | 395 | if (IsSkipWhiteSpace) 396 | output.Append(cWhiteSpace); 397 | } 398 | else 399 | { 400 | throw new Exception("Unrecognized xml node."); 401 | } 402 | 403 | //m_ParsedDocument.Save(@"D:\Temp\testparser.xml"); 404 | } 405 | 406 | /// 407 | /// Determines whether the specified node is a tag node. 408 | /// 409 | protected bool IsTagXmlNode(XmlNode node) 410 | { 411 | #region Check arguments 412 | 413 | if (node == null) 414 | throw new ArgumentNullException("node"); 415 | 416 | #endregion 417 | 418 | return node.Name == cTagXmlNodeName; 419 | } 420 | 421 | /// 422 | /// Determines whether the specified node is a text node. 423 | /// 424 | protected bool IsTextXmlNode(XmlNode node) 425 | { 426 | #region Check arguments 427 | 428 | if (node == null) 429 | throw new ArgumentNullException("node"); 430 | 431 | #endregion 432 | 433 | return node.Name == cTextXmlNodeName; 434 | } 435 | 436 | /// 437 | /// Returns the text stored in the text node. 438 | /// 439 | protected string GetTextNodeText(XmlNode node) 440 | { 441 | string myValue = GetXmlNodeValue(node); 442 | if (myValue == null) 443 | throw new Exception("Cannot get text node's value."); 444 | 445 | return myValue; 446 | } 447 | 448 | /// 449 | /// Retrieves the value of the specified tag xml node. 450 | /// 451 | protected string GetXmlNodeValue(XmlNode node) 452 | { 453 | #region Check arguments 454 | 455 | if (node == null) 456 | throw new ArgumentNullException("node"); 457 | 458 | #endregion 459 | 460 | XmlAttribute myValueXmlAttribute = node.Attributes[cValueXmlAttributeName]; 461 | if (myValueXmlAttribute == null) 462 | return null; 463 | 464 | return myValueXmlAttribute.Value; 465 | } 466 | 467 | /// 468 | /// Converts the specified tag xml node to text. 469 | /// 470 | private void TagXmlNodeToText(StringBuilder output, XmlNode node) 471 | { 472 | #region Check arguments 473 | 474 | if (node == null) 475 | throw new ArgumentNullException("node"); 476 | 477 | if (output == null) 478 | throw new ArgumentNullException("output"); 479 | 480 | #endregion 481 | 482 | TagBase myTag = TagXmlNodeToTag(node); 483 | 484 | myTag.WriteStart(output); 485 | 486 | if (IsSkipWhiteSpace) 487 | output.Append(cWhiteSpace); 488 | 489 | if (node.ChildNodes.Count > 0) 490 | XmlNodesToText(output, node.ChildNodes); 491 | 492 | myTag.WriteEnd(output); 493 | 494 | if (IsSkipWhiteSpace) 495 | output.Append(cWhiteSpace); 496 | } 497 | 498 | /// 499 | /// Converts the specified tag xml node into a tag. 500 | /// 501 | protected TagBase TagXmlNodeToTag(XmlNode node) 502 | { 503 | #region Check arguments 504 | 505 | if (node == null) 506 | throw new ArgumentNullException("node"); 507 | 508 | #endregion 509 | 510 | #region Get tag parameters 511 | 512 | XmlAttribute myTagTypeXmlAttribute = node.Attributes[cTagTypeXmlAttributeName]; 513 | if (myTagTypeXmlAttribute == null) 514 | throw new Exception("Cannot find the tag type attribute"); 515 | string myTagType = myTagTypeXmlAttribute.Value; 516 | 517 | XmlAttribute myValueXmlAttribute = node.Attributes[cValueXmlAttributeName]; 518 | string myTagValue; 519 | if (myValueXmlAttribute == null) 520 | myTagValue = null; 521 | else 522 | myTagValue = myValueXmlAttribute.Value; 523 | 524 | #endregion 525 | 526 | return GetTagFromType(myTagType, myTagValue, node.ChildNodes.Count > 0); 527 | } 528 | 529 | /// 530 | /// Retrurns the tag instance from its type and value. 531 | /// 532 | protected TagBase GetTagFromType(string type, string value, bool hasContents) 533 | { 534 | foreach (Type myTagType in Tags) 535 | { 536 | string myType = TagBase.GetTagType(myTagType); 537 | if (string.Compare(myType, type, true) == 0) 538 | { 539 | TagBase myTag = Activator.CreateInstance(myTagType) as TagBase; 540 | myTag.InitializeFromData(this, value, hasContents); 541 | return myTag; 542 | } 543 | } 544 | 545 | throw new Exception(string.Format("Tag cannot be found: {0}", type)); 546 | } 547 | 548 | /// 549 | /// Removes all the sub nodes from the specified node. 550 | /// 551 | protected static void ClearXmlNode(XmlNode node) 552 | { 553 | #region Check arguments 554 | 555 | if (node == null) 556 | throw new ArgumentNullException("node"); 557 | 558 | #endregion 559 | 560 | for (int myChildIndex = node.ChildNodes.Count - 1; myChildIndex >= 0; myChildIndex--) 561 | node.RemoveChild(node.ChildNodes[myChildIndex]); 562 | } 563 | 564 | /// 565 | /// Returns how many continuous specified strings are before of the specified 566 | /// position in the specified text 567 | /// 568 | public static int CountStringsBefore(string text, int position, string @string) 569 | { 570 | CheckTextAndPositionArguments(text, position); 571 | 572 | #region Count the Strings before 573 | 574 | int myStringsBeforeCount = 0; 575 | int myPrevPosition = position - @string.Length; 576 | while (myPrevPosition >= 0) 577 | { 578 | // If it is not the specified string prefix 579 | if (string.Compare(text, myPrevPosition, @string, 0, @string.Length, true) != 0) 580 | break; 581 | 582 | myStringsBeforeCount++; 583 | myPrevPosition -= @string.Length; 584 | } 585 | 586 | #endregion 587 | 588 | return myStringsBeforeCount; 589 | } 590 | 591 | #endregion 592 | 593 | #region Properties 594 | 595 | /// 596 | /// Indicates whether the white space is considered as a non-valuable 597 | /// character. 598 | /// 599 | protected abstract bool IsSkipWhiteSpace { get; } 600 | 601 | /// 602 | /// The list of all available tags. 603 | /// 604 | protected abstract Type[] Tags { get; } 605 | 606 | /// 607 | /// Gets the parsed document in xml format. 608 | /// 609 | protected XmlDocument ParsedDocument 610 | { 611 | get 612 | { 613 | CheckXmlDocInitialized(); 614 | 615 | return fParsedDocument; 616 | } 617 | } 618 | 619 | #endregion 620 | } 621 | 622 | #endregion 623 | } 624 | -------------------------------------------------------------------------------- /AnalysisSQL/QuotedIdentifierTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region QuotedIdentifierTag 8 | 9 | [TagType(QuotedIdentifierTag.cTagName)] 10 | [MatchQuotedIdentifierTag] 11 | internal class QuotedIdentifierTag : TagBase 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "QUOTED_IDENTIFIER"; 19 | 20 | /// 21 | /// The tag delimiter. 22 | /// 23 | public const string cTagDelimiter = "\""; 24 | 25 | #endregion 26 | 27 | #region Methods 28 | 29 | #region Common 30 | 31 | /// 32 | /// Reads the tag at the specified position in the specified word and separator array. 33 | /// 34 | /// 35 | /// The position after the tag (at which to continue reading). 36 | /// 37 | protected override int InitializeCoreFromText(ParserBase parser, string sql, int position, TagBase parentTag) 38 | { 39 | #region Check the arguments 40 | 41 | ParserBase.CheckTextAndPositionArguments(sql, position); 42 | 43 | #endregion 44 | 45 | int myAfterTagStartPos = MatchStartStatic(sql, position); 46 | 47 | if (myAfterTagStartPos < 0) 48 | throw new Exception("Cannot read the QuotedIdentifier tag."); 49 | 50 | #region Read the identifier's value 51 | 52 | int myTagEndPos = sql.IndexOf(cTagDelimiter, myAfterTagStartPos, StringComparison.InvariantCultureIgnoreCase); 53 | if (myTagEndPos < 0) 54 | throw new Exception("Cannot read the QuotedIdentifier tag."); 55 | 56 | if (myAfterTagStartPos == myTagEndPos) 57 | Value = string.Empty; 58 | else 59 | Value = sql.Substring(myAfterTagStartPos, myTagEndPos - myAfterTagStartPos); 60 | 61 | #endregion 62 | 63 | Parser = parser; 64 | 65 | HasContents = false; 66 | 67 | return myTagEndPos + cTagDelimiter.Length; 68 | } 69 | 70 | /// 71 | /// Writes the start of the tag. 72 | /// 73 | public override void WriteStart(StringBuilder output) 74 | { 75 | CheckInitialized(); 76 | 77 | #region Check the parameters 78 | 79 | if (output == null) 80 | throw new ArgumentNullException(); 81 | 82 | #endregion 83 | 84 | output.Append(cTagDelimiter); 85 | output.Append(Value); 86 | output.Append(cTagDelimiter); 87 | } 88 | 89 | #endregion 90 | 91 | #region Static 92 | 93 | /// 94 | /// Checks whether there is the tag start at the specified position 95 | /// in the specified sql. 96 | /// 97 | /// 98 | /// The position after the tag or -1 there is no tag start at the position. 99 | /// 100 | public static int MatchStartStatic(string sql, int position) 101 | { 102 | #region Check the arguments 103 | 104 | ParserBase.CheckTextAndPositionArguments(sql, position); 105 | 106 | #endregion 107 | 108 | if (string.Compare(sql, position, cTagDelimiter, 0, cTagDelimiter.Length, true) != 0) 109 | return -1; 110 | 111 | return position + cTagDelimiter.Length; 112 | } 113 | 114 | #endregion 115 | 116 | #endregion 117 | } 118 | 119 | #endregion 120 | 121 | #region MatchQuotedIdentifierTagAttribute 122 | 123 | internal class MatchQuotedIdentifierTagAttribute : MatchTagAttributeBase 124 | { 125 | #region Methods 126 | 127 | public override bool Match(string sql, int position) 128 | { 129 | return QuotedIdentifierTag.MatchStartStatic(sql, position) >= 0; 130 | } 131 | 132 | #endregion 133 | } 134 | 135 | #endregion 136 | } 137 | -------------------------------------------------------------------------------- /AnalysisSQL/SelectTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region SelectTag 8 | 9 | [TagType(SelectTag.cTagName)] 10 | [MatchSelectTag] 11 | internal class SelectTag : SimpleOneWordTag 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "SELECT"; 19 | 20 | #endregion 21 | 22 | #region Properties 23 | 24 | /// 25 | /// Gets the name of the tag (its identifier and sql text) 26 | /// 27 | protected override string Name 28 | { 29 | get 30 | { 31 | return cTagName; 32 | } 33 | } 34 | 35 | #endregion 36 | } 37 | 38 | #endregion 39 | 40 | #region MatchSelectTagAttribute 41 | 42 | internal class MatchSelectTagAttribute : MatchSimpleOneWordTagAttribute 43 | { 44 | #region Properties 45 | 46 | /// 47 | /// Gets the name of the tag (its identifier and sql text) 48 | /// 49 | protected override string Name 50 | { 51 | get 52 | { 53 | return SelectTag.cTagName; 54 | } 55 | } 56 | 57 | #endregion 58 | } 59 | 60 | #endregion 61 | } 62 | -------------------------------------------------------------------------------- /AnalysisSQL/SimpleOneWordTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region SimpleOneWordTag 8 | 9 | /// 10 | /// The base class for such tags as Select, From etc. 11 | /// 12 | internal abstract class SimpleOneWordTag: TagBase 13 | { 14 | #region Fields 15 | 16 | /// 17 | /// The value of the ParentTag property. 18 | /// 19 | private TagBase fParentTag; 20 | 21 | #endregion 22 | 23 | #region Methods 24 | 25 | #region Common 26 | 27 | /// 28 | /// Reads the tag at the specified position in the specified sql. 29 | /// 30 | /// 31 | /// The position after the tag (at which to continue reading). 32 | /// 33 | protected override int InitializeCoreFromText(ParserBase parser, string sql, int position, TagBase parentTag) 34 | { 35 | #region Check the arguments 36 | 37 | ParserBase.CheckTextAndPositionArguments(sql, position); 38 | 39 | #endregion 40 | 41 | int myResult = MatchStart(sql, position); 42 | 43 | if (myResult < 0) 44 | throw new Exception(string.Format("Cannot read the {0} tag.", Name)); 45 | 46 | Parser = parser; 47 | 48 | HasContents = true; 49 | 50 | ParentTag = parentTag; 51 | 52 | return myResult; 53 | } 54 | 55 | /// 56 | /// Checks whether there is the tag at the specified position 57 | /// in the specified sql. 58 | /// 59 | /// 60 | /// The position after the tag or -1 there is no tag at the position. 61 | /// 62 | protected virtual int MatchStart(string sql, int position) 63 | { 64 | return MatchStart(Name, sql, position); 65 | } 66 | 67 | /// 68 | /// Writes the start of the tag. 69 | /// 70 | public override void WriteStart(StringBuilder output) 71 | { 72 | CheckInitialized(); 73 | 74 | #region Check the parameters 75 | 76 | if (output == null) 77 | throw new ArgumentNullException(); 78 | 79 | #endregion 80 | 81 | output.Append(Name); 82 | } 83 | 84 | /// 85 | /// Writes the end of the tag. 86 | /// 87 | public override void WriteEnd(StringBuilder output) 88 | { 89 | CheckInitialized(); 90 | 91 | #region Check the parameters 92 | 93 | if (output == null) 94 | throw new ArgumentNullException(); 95 | 96 | #endregion 97 | 98 | return; 99 | } 100 | 101 | /// 102 | /// Returns a value indicating whether there is the tag ending at the specified position. 103 | /// 104 | /// 105 | /// If this value is less than zero, then there is no ending; otherwise the 106 | /// position after ending is returned. 107 | /// 108 | public override int MatchEnd(string sql, int position) 109 | { 110 | CheckInitialized(); 111 | 112 | #region Check the arguments 113 | 114 | ParserBase.CheckTextAndPositionArguments(sql, position); 115 | 116 | #endregion 117 | 118 | if (ParentTag != null && ParentTag.MatchEnd(sql, position) >= 0) 119 | return position; 120 | 121 | Type myTag = (Parser as SqlParser).IsTag(sql, position); 122 | if ( 123 | myTag != null && 124 | !myTag.IsAssignableFrom(typeof(StringLiteralTag)) && 125 | !myTag.IsAssignableFrom(typeof(BracesTag)) 126 | ) 127 | return position; 128 | 129 | return -1; 130 | } 131 | 132 | #endregion 133 | 134 | #region Static 135 | 136 | /// 137 | /// Checks whether there is the tag at the specified position 138 | /// in the specified sql. 139 | /// 140 | /// The value of the Name property. 141 | /// 142 | /// The position after the tag or -1 there is no tag at the position. 143 | /// 144 | internal static int MatchStart(string name, string sql, int position) 145 | { 146 | #region Check the arguments 147 | 148 | if (name == null) 149 | throw new ArgumentNullException("name"); 150 | 151 | ParserBase.CheckTextAndPositionArguments(sql, position); 152 | 153 | #endregion 154 | 155 | if (string.Compare(sql, position, name, 0, name.Length, true) != 0) 156 | return -1; 157 | 158 | return position + name.Length; 159 | } 160 | 161 | #endregion 162 | 163 | #endregion 164 | 165 | #region Properties 166 | 167 | /// 168 | /// Gets the name of the tag (its identifier and sql text) 169 | /// 170 | protected abstract string Name { get; } 171 | 172 | /// 173 | /// Inidicates whether the string end can be treated as the end of the tag. 174 | /// 175 | public override bool CanTerminateByStringEnd 176 | { 177 | get 178 | { 179 | CheckInitialized(); 180 | 181 | return true; 182 | } 183 | } 184 | 185 | /// 186 | /// Returns the parent tag of this tag in the sql being parsed. 187 | /// 188 | public TagBase ParentTag 189 | { 190 | get 191 | { 192 | return fParentTag; 193 | } 194 | private set 195 | { 196 | fParentTag = value; 197 | } 198 | } 199 | 200 | #endregion 201 | } 202 | 203 | #endregion 204 | 205 | #region MatchSimpleOneWordTagAttribute 206 | 207 | internal abstract class MatchSimpleOneWordTagAttribute: MatchTagAttributeBase 208 | { 209 | #region Methods 210 | 211 | public override bool Match(string sql, int position) 212 | { 213 | return SimpleOneWordTag.MatchStart(Name, sql, position) >= 0; 214 | } 215 | 216 | #endregion 217 | 218 | #region Properties 219 | 220 | /// 221 | /// Gets the name of the tag (its identifier and sql text) 222 | /// 223 | protected abstract string Name { get; } 224 | 225 | #endregion 226 | } 227 | 228 | #endregion 229 | } 230 | -------------------------------------------------------------------------------- /AnalysisSQL/SimpleTwoWordTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region SimpleTwoWordTag 8 | 9 | /// 10 | /// The base class for such tags as Order By, Group By etc. 11 | /// 12 | internal abstract class SimpleTwoWordTag : SimpleOneWordTag 13 | { 14 | #region Methods 15 | 16 | #region Common 17 | 18 | /// 19 | /// Checks whether there is the tag at the specified position 20 | /// in the specified sql. 21 | /// 22 | /// 23 | /// The position after the tag or -1 there is no tag at the position. 24 | /// 25 | protected override int MatchStart(string sql, int position) 26 | { 27 | return MatchStart(FirstWord, SecondWord, sql, position); 28 | } 29 | 30 | /// 31 | /// Writes the start of the tag. 32 | /// 33 | public override void WriteStart(StringBuilder output) 34 | { 35 | CheckInitialized(); 36 | 37 | #region Check the parameters 38 | 39 | if (output == null) 40 | throw new ArgumentNullException(); 41 | 42 | #endregion 43 | 44 | output.Append(FirstWord); 45 | output.Append(ParserBase.cWhiteSpace); 46 | output.Append(SecondWord); 47 | } 48 | 49 | #endregion 50 | 51 | #region Static 52 | 53 | /// 54 | /// Checks whether there is the tag at the specified position 55 | /// in the specified sql. 56 | /// 57 | /// The value of the Name property. 58 | /// 59 | /// The position after the tag or -1 there is no tag at the position. 60 | /// 61 | internal static int MatchStart(string firstWord, string secondWord, string sql, int position) 62 | { 63 | #region Check the arguments 64 | 65 | ParserBase.CheckTextAndPositionArguments(sql, position); 66 | 67 | #endregion 68 | 69 | if (string.Compare(sql, position, firstWord, 0, firstWord.Length, true) != 0) 70 | return -1; 71 | 72 | position += firstWord.Length; 73 | 74 | ParserBase.SkipWhiteSpace(sql, ref position); 75 | if (position == sql.Length) 76 | return -1; 77 | 78 | if (string.Compare(sql, position, secondWord, 0, secondWord.Length, true) != 0) 79 | return -1; 80 | 81 | return position + secondWord.Length; 82 | } 83 | 84 | #endregion 85 | 86 | #endregion 87 | 88 | #region Properties 89 | 90 | /// 91 | /// Gets the first word of the tag. 92 | /// 93 | protected abstract string FirstWord { get; } 94 | 95 | /// 96 | /// Gets the second word of the tag. 97 | /// 98 | protected abstract string SecondWord { get; } 99 | 100 | #endregion 101 | } 102 | 103 | #endregion 104 | 105 | #region MatchSimpleTwoWordTagAttribute 106 | 107 | internal abstract class MatchSimpleTwoWordTagAttribute : MatchSimpleOneWordTagAttribute 108 | { 109 | #region Methods 110 | 111 | public override bool Match(string sql, int position) 112 | { 113 | return SimpleTwoWordTag.MatchStart(FirstWord, SecondWord, sql, position) >= 0; 114 | } 115 | 116 | #endregion 117 | 118 | #region Properties 119 | 120 | /// 121 | /// Gets the first word of the tag. 122 | /// 123 | protected abstract string FirstWord { get; } 124 | 125 | /// 126 | /// Gets the second word of the tag. 127 | /// 128 | protected abstract string SecondWord { get; } 129 | 130 | #endregion 131 | } 132 | 133 | #endregion 134 | } 135 | -------------------------------------------------------------------------------- /AnalysisSQL/SqlParser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using System.Xml; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region SqlParser 8 | 9 | public class SqlParser: ParserBase 10 | { 11 | #region Base class implementation 12 | 13 | #region Fields 14 | 15 | /// 16 | /// Stores the types of all the possible tags. 17 | /// 18 | Type[] fTags; 19 | 20 | #endregion 21 | 22 | #region Properties 23 | 24 | /// 25 | /// Indicates whether the white space is a non-valueable character. 26 | /// 27 | protected override bool IsSkipWhiteSpace 28 | { 29 | get 30 | { 31 | return true; 32 | } 33 | } 34 | 35 | /// 36 | /// Returns the list of all the available tags. 37 | /// 38 | protected override Type[] Tags 39 | { 40 | get 41 | { 42 | if (fTags == null) 43 | { 44 | fTags = new Type[] { 45 | typeof(SelectTag), 46 | typeof(FromTag), 47 | typeof(WhereTag), 48 | typeof(OrderByTag), 49 | typeof(BracesTag), 50 | typeof(StringLiteralTag), 51 | typeof(ForUpdateTag), 52 | typeof(StartWith), 53 | typeof(GroupByTag), 54 | typeof(QuotedIdentifierTag), 55 | typeof(JoinTag), 56 | typeof(OnTag) 57 | 58 | }; 59 | } 60 | 61 | return fTags; 62 | } 63 | } 64 | 65 | #endregion 66 | 67 | #endregion 68 | 69 | #region Common 70 | 71 | #region Methods 72 | 73 | /// 74 | /// Returns the xml node which corresponds to the From tag. 75 | /// If this node does not exist, this method generates an 76 | /// exception. 77 | /// 78 | private XmlNode GetFromTagXmlNode() 79 | { 80 | XmlNode myFromNode = ParsedDocument.SelectSingleNode(string.Format(@"{0}/{1}[@{2}='{3}']", cRootXmlNodeName, cTagXmlNodeName, cTagTypeXmlAttributeName, FromTag.cTagName)); 81 | if (myFromNode == null) 82 | throw new Exception(ToText()); 83 | 84 | return myFromNode; 85 | } 86 | 87 | /// 88 | /// Returns the xml node which corresponds to the For Update tag. 89 | /// 90 | private XmlNode GetForUpdateTagXmlNode() 91 | { 92 | XmlNode myForUpdateNode = ParsedDocument.SelectSingleNode(string.Format(@"{0}/{1}[@{2}='{3}']", cRootXmlNodeName, cTagXmlNodeName, cTagTypeXmlAttributeName, ForUpdateTag.cTagName)); 93 | 94 | return myForUpdateNode; 95 | } 96 | 97 | /// 98 | /// Checks whether there is a tag in the text at the specified position, and returns its tag. 99 | /// 100 | internal new Type IsTag(string text, int position) 101 | { 102 | return base.IsTag(text, position); 103 | } 104 | 105 | #endregion 106 | 107 | #endregion 108 | 109 | #region Where Clause 110 | 111 | #region Methods 112 | 113 | /// 114 | /// Returns the xml node which corresponds to the Where tag. 115 | /// If this node does not exist, creates a new one (if needed). 116 | /// 117 | private XmlNode GetWhereTagXmlNode(bool createNew) 118 | { 119 | XmlNode myWhereNode = ParsedDocument.SelectSingleNode(string.Format(@"{0}/{1}[@{2}='{3}']", cRootXmlNodeName, cTagXmlNodeName, cTagTypeXmlAttributeName, WhereTag.cTagName)); 120 | if (myWhereNode == null && createNew) 121 | { 122 | WhereTag myWhereTag = new WhereTag(); 123 | myWhereTag.InitializeFromData(this, null, false); 124 | myWhereNode = CreateTagXmlNode(myWhereTag); 125 | 126 | XmlNode myFromNode = GetFromTagXmlNode(); 127 | myFromNode.ParentNode.InsertAfter(myWhereNode, myFromNode); 128 | } 129 | 130 | return myWhereNode; 131 | } 132 | 133 | private XmlNode GetJoinTagXmlNode() 134 | { 135 | XmlNode myFromNode = ParsedDocument.SelectSingleNode(string.Format(@"{0}/{1}[@{2}='{3}']", cRootXmlNodeName, cTagXmlNodeName, cTagTypeXmlAttributeName, JoinTag.cTagName)); 136 | if (myFromNode == null) 137 | throw new Exception(ToText()); 138 | 139 | return myFromNode; 140 | } 141 | 142 | private XmlNode GetOnTagXmlNode() 143 | { 144 | XmlNode myFromNode = ParsedDocument.SelectSingleNode(string.Format(@"{0}/{1}[@{2}='{3}']", cRootXmlNodeName, cTagXmlNodeName, cTagTypeXmlAttributeName, OnTag.cTagName)); 145 | if (myFromNode == null) 146 | throw new Exception(ToText()); 147 | 148 | return myFromNode; 149 | } 150 | 151 | #endregion 152 | 153 | #region Properties 154 | 155 | /// 156 | /// Gets or sets the Where clause of the parsed sql. 157 | /// 158 | public string WhereClause 159 | { 160 | get 161 | { 162 | #region Get the Where xml node 163 | 164 | XmlNode myWhereTagXmlNode = GetWhereTagXmlNode(false); 165 | if (myWhereTagXmlNode == null) 166 | return string.Empty; 167 | 168 | #endregion 169 | 170 | StringBuilder myStringBuilder = new StringBuilder(); 171 | XmlNodesToText(myStringBuilder, myWhereTagXmlNode.ChildNodes); 172 | return myStringBuilder.ToString(); 173 | } 174 | set 175 | { 176 | if (string.IsNullOrEmpty(value)) 177 | { 178 | #region Remove the Where xml node 179 | 180 | XmlNode myWhereXmlNode = GetWhereTagXmlNode(false); 181 | if (myWhereXmlNode != null) 182 | myWhereXmlNode.ParentNode.RemoveChild(myWhereXmlNode); 183 | 184 | #endregion 185 | } 186 | else 187 | { 188 | #region Modify the Where xml node 189 | 190 | XmlNode myWhereXmlNode = GetWhereTagXmlNode(true); 191 | 192 | ClearXmlNode(myWhereXmlNode); 193 | 194 | TagBase myWhereTag = TagXmlNodeToTag(myWhereXmlNode); 195 | 196 | ParseBlock(myWhereXmlNode, myWhereTag, value, 0); 197 | 198 | #endregion 199 | } 200 | } 201 | } 202 | 203 | #endregion 204 | 205 | #endregion 206 | 207 | #region Order By Clause 208 | 209 | #region Methods 210 | 211 | /// 212 | /// Returns the xml node which corresponds to the Order By tag. 213 | /// If this node does not exist, creates a new one (if needed). 214 | /// 215 | private XmlNode GetOrderByTagXmlNode(bool createNew) 216 | { 217 | XmlNode myOrderByNode = ParsedDocument.SelectSingleNode(string.Format(@"{0}/{1}[@{2}='{3}']", cRootXmlNodeName, cTagXmlNodeName, cTagTypeXmlAttributeName, OrderByTag.cTagName)); 218 | if (myOrderByNode == null && createNew) 219 | { 220 | OrderByTag myOrderByTag = new OrderByTag(); 221 | myOrderByTag.InitializeFromData(this, null, false); 222 | myOrderByNode = CreateTagXmlNode(myOrderByTag); 223 | 224 | XmlNode myForUpdateNode = GetForUpdateTagXmlNode(); 225 | if (myForUpdateNode != null) 226 | { 227 | myForUpdateNode.ParentNode.InsertBefore(myOrderByNode, myForUpdateNode); 228 | return myOrderByNode; 229 | } 230 | 231 | XmlNode myFromNode = GetFromTagXmlNode(); 232 | myFromNode.ParentNode.AppendChild(myOrderByNode); 233 | } 234 | 235 | return myOrderByNode; 236 | } 237 | 238 | #endregion 239 | 240 | #region Properties 241 | 242 | /// 243 | /// Gets or sets the Order By clause of the parsed sql. 244 | /// 245 | public string OrderByClause 246 | { 247 | get 248 | { 249 | #region Get the Order By xml node 250 | 251 | XmlNode myOrderByTagXmlNode = GetOrderByTagXmlNode(false); 252 | if (myOrderByTagXmlNode == null) 253 | return string.Empty; 254 | 255 | #endregion 256 | 257 | StringBuilder myStringBuilder = new StringBuilder(); 258 | XmlNodesToText(myStringBuilder, myOrderByTagXmlNode.ChildNodes); 259 | return myStringBuilder.ToString(); 260 | } 261 | set 262 | { 263 | if (string.IsNullOrEmpty(value)) 264 | { 265 | #region Remove the Order By xml node 266 | 267 | XmlNode myOrderByXmlNode = GetOrderByTagXmlNode(false); 268 | if (myOrderByXmlNode != null) 269 | myOrderByXmlNode.ParentNode.RemoveChild(myOrderByXmlNode); 270 | 271 | #endregion 272 | } 273 | else 274 | { 275 | #region Modify the Order By xml node 276 | 277 | XmlNode myOrderByXmlNode = GetOrderByTagXmlNode(true); 278 | 279 | ClearXmlNode(myOrderByXmlNode); 280 | 281 | TagBase myOrderByTag = TagXmlNodeToTag(myOrderByXmlNode); 282 | 283 | ParseBlock(myOrderByXmlNode, myOrderByTag, value, 0); 284 | 285 | #endregion 286 | } 287 | } 288 | } 289 | 290 | #endregion 291 | 292 | #endregion 293 | } 294 | 295 | #endregion 296 | } 297 | -------------------------------------------------------------------------------- /AnalysisSQL/StartWith.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region StartWith 8 | 9 | [TagType(StartWith.cTagName)] 10 | [MatchStartWithTag] 11 | internal class StartWith : SimpleTwoWordTag 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "START_WITH"; 19 | 20 | /// 21 | /// The first part of tag. 22 | /// 23 | public const string cTagFirstPart = "START"; 24 | 25 | /// 26 | /// The second part of tag. 27 | /// 28 | public const string cTagSecondPart = "WITH"; 29 | 30 | #endregion 31 | 32 | #region Properties 33 | 34 | /// 35 | /// Gets the name of the tag. 36 | /// 37 | protected override string Name 38 | { 39 | get 40 | { 41 | return cTagName; 42 | } 43 | } 44 | 45 | /// 46 | /// Gets the first word of the tag. 47 | /// 48 | protected override string FirstWord 49 | { 50 | get 51 | { 52 | return cTagFirstPart; 53 | } 54 | } 55 | 56 | /// 57 | /// Gets the second word of the tag. 58 | /// 59 | protected override string SecondWord 60 | { 61 | get 62 | { 63 | return cTagSecondPart; 64 | } 65 | } 66 | 67 | #endregion 68 | } 69 | 70 | #endregion 71 | 72 | #region MatchOrderByTagAttribute 73 | 74 | internal class MatchStartWithTagAttribute : MatchSimpleTwoWordTagAttribute 75 | { 76 | #region Properties 77 | 78 | /// 79 | /// Gets the name of the tag (its identifier and sql text) 80 | /// 81 | protected override string Name 82 | { 83 | get 84 | { 85 | return StartWith.cTagName; 86 | } 87 | } 88 | 89 | /// 90 | /// Gets the first word of the tag. 91 | /// 92 | protected override string FirstWord 93 | { 94 | get 95 | { 96 | return StartWith.cTagFirstPart; 97 | } 98 | } 99 | 100 | /// 101 | /// Gets the second word of the tag. 102 | /// 103 | protected override string SecondWord 104 | { 105 | get 106 | { 107 | return StartWith.cTagSecondPart; 108 | } 109 | } 110 | 111 | #endregion 112 | } 113 | 114 | #endregion 115 | } 116 | -------------------------------------------------------------------------------- /AnalysisSQL/StringLiteralTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region StringLiteralTag 8 | 9 | [TagType(StringLiteralTag.cTagName)] 10 | [MatchStringLiteralTag] 11 | internal class StringLiteralTag : TagBase 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "STRING_LITERAL"; 19 | 20 | /// 21 | /// The tag. 22 | /// 23 | public const string cTagDelimiter = "'"; 24 | 25 | #endregion 26 | 27 | #region Methods 28 | 29 | #region Common 30 | 31 | /// 32 | /// Reads the tag at the specified position in the specified sql string. 33 | /// 34 | /// 35 | /// The position after the tag (at which to continue reading). 36 | /// 37 | protected override int InitializeCoreFromText(ParserBase parser, string sql, int position, TagBase parentTag) 38 | { 39 | #region Check the arguments 40 | 41 | ParserBase.CheckTextAndPositionArguments(sql, position); 42 | 43 | #endregion 44 | 45 | int myLiteralStartPos = position; 46 | 47 | position = MatchStartStatic(sql, position); 48 | 49 | if (position < 0) 50 | throw new Exception("Cannot read the StringLiteral tag."); 51 | 52 | #region Read the literal value 53 | 54 | int myResult = -1; 55 | int myValueStartPos = position; 56 | while (position < sql.Length) 57 | { 58 | myResult = MatchEnd(sql, position, myLiteralStartPos); 59 | if (myResult >= 0) 60 | { 61 | if (position == myValueStartPos) 62 | Value = string.Empty; 63 | else 64 | Value = sql.Substring(myValueStartPos, position - myValueStartPos); 65 | break; 66 | } 67 | position++; 68 | } 69 | 70 | if (myResult < 0) 71 | throw new Exception("Cannot read the StringLiteral tag."); 72 | 73 | #endregion 74 | 75 | Parser = parser; 76 | 77 | HasContents = false; 78 | 79 | return myResult; 80 | } 81 | 82 | /// 83 | /// Returns a value indicating whether there is the tag ending at the specified position. 84 | /// 85 | /// 86 | /// If this value is less than zero, then there is no ending; otherwise the 87 | /// position after ending is returned. 88 | /// 89 | private int MatchEnd(string sql, int position, int literalStartPos) 90 | { 91 | #region Check the arguments 92 | 93 | ParserBase.CheckTextAndPositionArguments(sql, position); 94 | 95 | #endregion 96 | 97 | if (string.Compare(sql, position, cTagDelimiter, 0, cTagDelimiter.Length, true) != 0) 98 | return -1; 99 | 100 | #region Check the next and previous symbols (where there are ' symbols) 101 | 102 | #region Determine the number of ' symbols before 103 | 104 | int myNumberOfApostBefore = 0; 105 | for (int myCurPos = position - 1; myCurPos >= literalStartPos; myCurPos--) 106 | { 107 | if (string.Compare(sql, myCurPos, cTagDelimiter, 0, cTagDelimiter.Length, true) == 0) 108 | myNumberOfApostBefore++; 109 | else 110 | break; 111 | } 112 | 113 | #endregion 114 | 115 | if (!(myNumberOfApostBefore == 1 && position == literalStartPos + 1)) 116 | { 117 | if (myNumberOfApostBefore % 2 == 1) 118 | return -1; 119 | 120 | #region Check whether the next symbol is ' 121 | 122 | if (position + 1 < sql.Length) 123 | { 124 | if (string.Compare(sql, position + 1, cTagDelimiter, 0, cTagDelimiter.Length, true) == 0) 125 | return -1; 126 | } 127 | 128 | #endregion 129 | } 130 | 131 | #endregion 132 | 133 | return position + cTagDelimiter.Length; 134 | } 135 | 136 | /// 137 | /// Writes the start of the tag. 138 | /// 139 | public override void WriteStart(StringBuilder output) 140 | { 141 | CheckInitialized(); 142 | 143 | #region Check the parameters 144 | 145 | if (output == null) 146 | throw new ArgumentNullException(); 147 | 148 | #endregion 149 | 150 | output.Append(cTagDelimiter); 151 | output.Append(Value); 152 | WriteEnd(output); 153 | } 154 | 155 | /// 156 | /// Writes the end of the tag. 157 | /// 158 | private new void WriteEnd(StringBuilder output) 159 | { 160 | CheckInitialized(); 161 | 162 | #region Check the parameters 163 | 164 | if (output == null) 165 | throw new ArgumentNullException(); 166 | 167 | #endregion 168 | 169 | output.Append(cTagDelimiter); 170 | } 171 | 172 | #endregion 173 | 174 | #region Static 175 | 176 | /// 177 | /// Checks whether there is the tag start at the specified position 178 | /// in the specified sql. 179 | /// 180 | /// 181 | /// The position after the tag or -1 there is no tag start at the position. 182 | /// 183 | public static int MatchStartStatic(string sql, int position) 184 | { 185 | #region Check the arguments 186 | 187 | ParserBase.CheckTextAndPositionArguments(sql, position); 188 | 189 | #endregion 190 | 191 | if (string.Compare(sql, position, cTagDelimiter, 0, cTagDelimiter.Length, true) != 0) 192 | return -1; 193 | 194 | return position + cTagDelimiter.Length; 195 | } 196 | 197 | #endregion 198 | 199 | #endregion 200 | } 201 | 202 | #endregion 203 | 204 | #region MatchStringLiteralTagAttribute 205 | 206 | internal class MatchStringLiteralTagAttribute : MatchTagAttributeBase 207 | { 208 | #region Methods 209 | 210 | public override bool Match(string sql, int position) 211 | { 212 | return StringLiteralTag.MatchStartStatic(sql, position) >= 0; 213 | } 214 | 215 | #endregion 216 | } 217 | 218 | #endregion 219 | } 220 | -------------------------------------------------------------------------------- /AnalysisSQL/TagBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Xml; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region TagBase 8 | 9 | /// 10 | /// The base class for all the tags. 11 | /// 12 | public abstract class TagBase 13 | { 14 | #region Fields 15 | 16 | /// 17 | /// The value of the IsInitialized property. 18 | /// 19 | private bool fIsInitialized = false; 20 | 21 | /// 22 | /// The value of the HasContents property. 23 | /// 24 | private bool fHasContents = false; 25 | 26 | /// 27 | /// The value of the Value property. 28 | /// 29 | private string fValue; 30 | 31 | /// 32 | /// The value of the Parser property. 33 | /// 34 | private ParserBase fParser; 35 | 36 | #endregion 37 | 38 | #region Methods 39 | 40 | #region Initialization 41 | 42 | /// 43 | /// Reads the tag at the specified position in the specified word and separator array. 44 | /// 45 | /// 46 | /// The parent tag of this tag. This argument is used to determine 47 | /// the end of the tag (it can be the end of the parent tag). 48 | /// 49 | /// 50 | /// The position after the tag (at which to continue reading). 51 | /// 52 | public int InitializeFromText(ParserBase parser, string text, int position, TagBase parentTag) 53 | { 54 | #region Check the arguments 55 | 56 | if (parser == null) 57 | throw new ArgumentNullException("parser"); 58 | 59 | #endregion 60 | 61 | int myResult = InitializeCoreFromText(parser, text, position, parentTag); 62 | 63 | IsInitialized = true; 64 | 65 | return myResult; 66 | } 67 | 68 | /// 69 | /// Reads the tag at the specified position in the specified word and separator array. 70 | /// 71 | /// 72 | /// The parent tag of this tag. This argument is used to determine 73 | /// the end of the tag (it can be the end of the parent tag). 74 | /// 75 | /// 76 | /// The position after the tag (at which to continue reading). 77 | /// 78 | protected abstract int InitializeCoreFromText(ParserBase parser, string text, int position, TagBase parentTag); 79 | 80 | /// 81 | /// Reads the tag from the specified data. 82 | /// 83 | public void InitializeFromData(ParserBase parser, string value, bool hasContents) 84 | { 85 | #region Check the arguments 86 | 87 | if (parser == null) 88 | throw new ArgumentNullException("parser"); 89 | 90 | #endregion 91 | 92 | InitializeFromDataCore(parser, value, hasContents); 93 | 94 | IsInitialized = true; 95 | } 96 | 97 | /// 98 | /// Reads the tag from the specified data. 99 | /// 100 | protected virtual void InitializeFromDataCore(ParserBase parser, string value, bool hasContents) 101 | { 102 | Parser = parser; 103 | 104 | Value = value; 105 | 106 | HasContents = hasContents; 107 | 108 | IsInitialized = true; 109 | } 110 | 111 | #endregion 112 | 113 | #region Attributes-Related (Static) 114 | 115 | /// 116 | /// Returns the type of the specified tag (its identifier). 117 | /// This method is used by the Type property. 118 | /// 119 | public static string GetTagType(Type tag) 120 | { 121 | #region Check the arguments 122 | 123 | if (tag == null) 124 | throw new ArgumentNullException("tag"); 125 | 126 | #endregion 127 | 128 | object[] myTagTypeAttributes = tag.GetCustomAttributes(typeof(TagTypeAttribute), true); 129 | 130 | if (myTagTypeAttributes == null || myTagTypeAttributes.Length == 0) 131 | throw new Exception("Cannot find a tag type attribute."); 132 | 133 | if (myTagTypeAttributes.Length > 1) 134 | throw new Exception("Ambiguous tag type."); 135 | 136 | return (myTagTypeAttributes[0] as TagTypeAttribute).Type; 137 | } 138 | 139 | /// 140 | /// Returns the match attribute of the specified class. 141 | /// This attribute is used to identify a tag in a text. 142 | /// 143 | public static MatchTagAttributeBase GetTagMatchAttribute(Type tag) 144 | { 145 | #region Check the arguments 146 | 147 | if (tag == null) 148 | throw new ArgumentNullException("tag"); 149 | 150 | #endregion 151 | 152 | object[] myMatchTagAttributes = tag.GetCustomAttributes(typeof(MatchTagAttributeBase), true); 153 | 154 | if (myMatchTagAttributes == null || myMatchTagAttributes.Length == 0) 155 | throw new Exception("Cannot find a match tag attribute."); 156 | 157 | if (myMatchTagAttributes.Length > 1) 158 | throw new Exception("Ambiguous match tag."); 159 | 160 | return myMatchTagAttributes[0] as MatchTagAttributeBase; 161 | } 162 | 163 | #endregion 164 | 165 | #region Common 166 | 167 | /// 168 | /// Returns a value indicating whether there is the tag ending 169 | /// at the specified position. 170 | /// 171 | /// 172 | /// If this value is less than zero, then there is no ending; otherwise the 173 | /// position after ending is returned. 174 | /// 175 | public virtual int MatchEnd(string text, int position) 176 | { 177 | CheckInitialized(); 178 | 179 | throw new System.NotImplementedException(); 180 | } 181 | 182 | /// 183 | /// Writes the start of the tag. 184 | /// 185 | public abstract void WriteStart(StringBuilder output); 186 | 187 | /// 188 | /// Writes the end of the tag. 189 | /// 190 | public virtual void WriteEnd(StringBuilder output) 191 | { 192 | CheckInitialized(); 193 | } 194 | 195 | /// 196 | /// Checks whether the tag is initialized, and throws an exception if not. This method should be called before a tag porperty or method is accessed. 197 | /// 198 | protected void CheckInitialized() 199 | { 200 | if (!IsInitialized) 201 | throw new Exception("Tag is not initialized."); 202 | } 203 | 204 | #endregion 205 | 206 | #endregion 207 | 208 | #region Properties 209 | 210 | /// 211 | /// Returns the type of the tag (its identifier). 212 | /// 213 | public string Type 214 | { 215 | get 216 | { 217 | return GetTagType(GetType()); 218 | } 219 | } 220 | 221 | /// 222 | /// The value of the tag (it can be the text of a string literal for example). 223 | /// 224 | public string Value 225 | { 226 | get 227 | { 228 | CheckInitialized(); 229 | 230 | return fValue; 231 | } 232 | protected set 233 | { 234 | fValue = value; 235 | } 236 | } 237 | 238 | /// 239 | /// Gets a value indicating whether this tag has contents to be parsed. 240 | /// 241 | public virtual bool HasContents 242 | { 243 | get 244 | { 245 | CheckInitialized(); 246 | 247 | return fHasContents; 248 | } 249 | protected set 250 | { 251 | fHasContents = value; 252 | } 253 | } 254 | 255 | /// 256 | /// Inidicates whether the string end can be treated as the end of the tag. 257 | /// 258 | public virtual bool CanTerminateByStringEnd 259 | { 260 | get 261 | { 262 | CheckInitialized(); 263 | 264 | return false; 265 | } 266 | } 267 | 268 | /// 269 | /// Indicates whether the tag has been initialized. 270 | /// 271 | protected bool IsInitialized 272 | { 273 | get 274 | { 275 | return fIsInitialized; 276 | } 277 | private set 278 | { 279 | fIsInitialized = value; 280 | } 281 | } 282 | 283 | /// 284 | /// The parser which has created this instance. 285 | /// 286 | public ParserBase Parser 287 | { 288 | get 289 | { 290 | CheckInitialized(); 291 | 292 | return fParser; 293 | } 294 | protected set 295 | { 296 | fParser = value; 297 | } 298 | } 299 | 300 | #endregion 301 | } 302 | 303 | #endregion 304 | 305 | #region MatchTagAttributeBase 306 | 307 | /// 308 | /// This attribute is used to determine whether there is certain tag 309 | /// at a position in a text. 310 | /// 311 | public abstract class MatchTagAttributeBase : Attribute 312 | { 313 | public abstract bool Match(string text, int position); 314 | } 315 | 316 | #endregion 317 | 318 | #region TagTypeAttribute 319 | 320 | /// 321 | /// This attribute is used to determine the name (identifier) of a tag. 322 | /// 323 | public sealed class TagTypeAttribute : Attribute 324 | { 325 | #region Fields 326 | 327 | private string fType; 328 | 329 | #endregion 330 | 331 | #region Methods 332 | 333 | public TagTypeAttribute(string type) 334 | { 335 | Type = type; 336 | } 337 | 338 | #endregion 339 | 340 | #region Properties 341 | 342 | public string Type 343 | { 344 | get 345 | { 346 | return fType; 347 | } 348 | private set 349 | { 350 | fType = value; 351 | } 352 | } 353 | 354 | #endregion 355 | } 356 | 357 | #endregion 358 | } -------------------------------------------------------------------------------- /AnalysisSQL/WhereTag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace AnalysisSQL 6 | { 7 | #region WhereTag 8 | 9 | [TagType(WhereTag.cTagName)] 10 | [MatchWhereTag] 11 | internal class WhereTag : SimpleOneWordTag 12 | { 13 | #region Consts 14 | 15 | /// 16 | /// The name of the tag (its identifier). 17 | /// 18 | public const string cTagName = "WHERE"; 19 | 20 | #endregion 21 | 22 | #region Properties 23 | 24 | /// 25 | /// Gets the name of the tag (its identifier and sql text) 26 | /// 27 | protected override string Name 28 | { 29 | get 30 | { 31 | return cTagName; 32 | } 33 | } 34 | 35 | #endregion 36 | } 37 | 38 | #endregion 39 | 40 | #region MatchWhereTagAttribute 41 | 42 | internal class MatchWhereTagAttribute : MatchSimpleOneWordTagAttribute 43 | { 44 | #region Properties 45 | 46 | /// 47 | /// Gets the name of the tag (its identifier and sql text) 48 | /// 49 | protected override string Name 50 | { 51 | get 52 | { 53 | return WhereTag.cTagName; 54 | } 55 | } 56 | 57 | #endregion 58 | } 59 | 60 | #endregion 61 | } 62 | -------------------------------------------------------------------------------- /AnalysisSQL/bin/Debug/net8.0/AnalysisSQL.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETCoreApp,Version=v8.0", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETCoreApp,Version=v8.0": { 9 | "AnalysisSQL/1.0.0": { 10 | "runtime": { 11 | "AnalysisSQL.dll": {} 12 | } 13 | } 14 | } 15 | }, 16 | "libraries": { 17 | "AnalysisSQL/1.0.0": { 18 | "type": "project", 19 | "serviceable": false, 20 | "sha512": "" 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /AnalysisSQL/bin/Debug/net8.0/AnalysisSQL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/bin/Debug/net8.0/AnalysisSQL.dll -------------------------------------------------------------------------------- /AnalysisSQL/bin/Debug/net8.0/AnalysisSQL.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/bin/Debug/net8.0/AnalysisSQL.pdb -------------------------------------------------------------------------------- /AnalysisSQL/bin/Debug/netstandard2.0/AnalysisSQL.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETStandard,Version=v2.0/", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETStandard,Version=v2.0": {}, 9 | ".NETStandard,Version=v2.0/": { 10 | "AnalysisSQL/1.0.0": { 11 | "dependencies": { 12 | "NETStandard.Library": "2.0.3" 13 | }, 14 | "runtime": { 15 | "AnalysisSQL.dll": {} 16 | } 17 | }, 18 | "Microsoft.NETCore.Platforms/1.1.0": {}, 19 | "NETStandard.Library/2.0.3": { 20 | "dependencies": { 21 | "Microsoft.NETCore.Platforms": "1.1.0" 22 | } 23 | } 24 | } 25 | }, 26 | "libraries": { 27 | "AnalysisSQL/1.0.0": { 28 | "type": "project", 29 | "serviceable": false, 30 | "sha512": "" 31 | }, 32 | "Microsoft.NETCore.Platforms/1.1.0": { 33 | "type": "package", 34 | "serviceable": true, 35 | "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", 36 | "path": "microsoft.netcore.platforms/1.1.0", 37 | "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" 38 | }, 39 | "NETStandard.Library/2.0.3": { 40 | "type": "package", 41 | "serviceable": true, 42 | "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", 43 | "path": "netstandard.library/2.0.3", 44 | "hashPath": "netstandard.library.2.0.3.nupkg.sha512" 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /AnalysisSQL/bin/Debug/netstandard2.0/AnalysisSQL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/bin/Debug/netstandard2.0/AnalysisSQL.dll -------------------------------------------------------------------------------- /AnalysisSQL/bin/Debug/netstandard2.0/AnalysisSQL.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/bin/Debug/netstandard2.0/AnalysisSQL.pdb -------------------------------------------------------------------------------- /AnalysisSQL/obj/AnalysisSQL.csproj.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "dgSpecHash": "ZkgmsUHD1ukANHPceNYcWwzqsMIk5p5tEdqGzClyoWA8qK7zU4FlSCAaY8VWpoXP9mF4JJDciQY98n4lGqFy5w==", 4 | "success": true 5 | } -------------------------------------------------------------------------------- /AnalysisSQL/obj/AnalysisSQL.csproj.nuget.dgspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": 1, 3 | "restore": { 4 | "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj": {} 5 | }, 6 | "projects": { 7 | "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj": { 8 | "version": "1.0.0", 9 | "restore": { 10 | "projectUniqueName": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj", 11 | "projectName": "AnalysisSQL", 12 | "projectPath": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj", 13 | "packagesPath": "C:\\Users\\jinyu\\.nuget\\packages\\", 14 | "outputPath": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\obj\\", 15 | "projectStyle": "PackageReference", 16 | "fallbackFolders": [ 17 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" 18 | ], 19 | "configFilePaths": [ 20 | "C:\\Users\\jinyu\\AppData\\Roaming\\NuGet\\NuGet.Config", 21 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", 22 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 23 | ], 24 | "originalTargetFrameworks": [ 25 | "net8.0" 26 | ], 27 | "sources": { 28 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 29 | "C:\\Program Files\\dotnet\\library-packs": {}, 30 | "https://api.nuget.org/v3/index.json": {} 31 | }, 32 | "frameworks": { 33 | "net8.0": { 34 | "targetAlias": "net8.0", 35 | "projectReferences": {} 36 | } 37 | }, 38 | "warningProperties": { 39 | "warnAsError": [ 40 | "NU1605" 41 | ] 42 | } 43 | }, 44 | "frameworks": { 45 | "net8.0": { 46 | "targetAlias": "net8.0", 47 | "imports": [ 48 | "net461", 49 | "net462", 50 | "net47", 51 | "net471", 52 | "net472", 53 | "net48", 54 | "net481" 55 | ], 56 | "assetTargetFallback": true, 57 | "warn": true, 58 | "frameworkReferences": { 59 | "Microsoft.NETCore.App": { 60 | "privateAssets": "all" 61 | } 62 | }, 63 | "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.101/PortableRuntimeIdentifierGraph.json" 64 | } 65 | } 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /AnalysisSQL/obj/AnalysisSQL.csproj.nuget.g.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | True 5 | NuGet 6 | $(MSBuildThisFileDirectory)project.assets.json 7 | $(UserProfile)\.nuget\packages\ 8 | C:\Users\jinyu\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages 9 | PackageReference 10 | 6.8.0 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/AnalysisSQL.csproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System; 3 | using System.Reflection; 4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] 5 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("AnalysisSQL")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7fd020832b0922cc785aec5c367d0986603539c1")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("AnalysisSQL")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("AnalysisSQL")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // 由 MSBuild WriteCodeFragment 类生成。 23 | 24 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 0058f4b4ffc30edfd84a6287083cd8536104d66d4fdd925ae2ac602d3ee9fc3f 2 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.GeneratedMSBuildEditorConfig.editorconfig: -------------------------------------------------------------------------------- 1 | is_global = true 2 | build_property.TargetFramework = net8.0 3 | build_property.TargetPlatformMinVersion = 4 | build_property.UsingMicrosoftNETSdkWeb = 5 | build_property.ProjectTypeGuids = 6 | build_property.InvariantGlobalization = 7 | build_property.PlatformNeutralAssembly = 8 | build_property.EnforceExtendedAnalyzerRules = 9 | build_property._SupportedPlatformList = Linux,macOS,Windows 10 | build_property.RootNamespace = AnalysisSQL 11 | build_property.ProjectDir = E:\study\gggggg\sqlparser\AnalysisSQL\ 12 | build_property.EnableComHosting = 13 | build_property.EnableGeneratedComInterfaceComImportInterop = 14 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.GlobalUsings.g.cs: -------------------------------------------------------------------------------- 1 | // 2 | global using global::System; 3 | global using global::System.Collections.Generic; 4 | global using global::System.IO; 5 | global using global::System.Linq; 6 | global using global::System.Net.Http; 7 | global using global::System.Threading; 8 | global using global::System.Threading.Tasks; 9 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.assets.cache -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.csproj.BuildWithSkipAnalyzers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.csproj.BuildWithSkipAnalyzers -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | cd0cad13606ee1e292ffa569b7ca09ead1f635228176cc6427c8c87029035d6a 2 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\study\gggggg\sqlparser\AnalysisSQL\bin\Debug\net8.0\AnalysisSQL.deps.json 2 | E:\study\gggggg\sqlparser\AnalysisSQL\bin\Debug\net8.0\AnalysisSQL.dll 3 | E:\study\gggggg\sqlparser\AnalysisSQL\bin\Debug\net8.0\AnalysisSQL.pdb 4 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\net8.0\AnalysisSQL.GeneratedMSBuildEditorConfig.editorconfig 5 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\net8.0\AnalysisSQL.AssemblyInfoInputs.cache 6 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\net8.0\AnalysisSQL.AssemblyInfo.cs 7 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\net8.0\AnalysisSQL.csproj.CoreCompileInputs.cache 8 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\net8.0\AnalysisSQL.sourcelink.json 9 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\net8.0\AnalysisSQL.dll 10 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\net8.0\refint\AnalysisSQL.dll 11 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\net8.0\AnalysisSQL.pdb 12 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\net8.0\ref\AnalysisSQL.dll 13 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.dll -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.pdb -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/AnalysisSQL.sourcelink.json: -------------------------------------------------------------------------------- 1 | {"documents":{"E:\\study\\gggggg\\sqlparser\\*":"https://raw.githubusercontent.com/jinyuttt/sqlparser/7fd020832b0922cc785aec5c367d0986603539c1/*"}} -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/ref/AnalysisSQL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/net8.0/ref/AnalysisSQL.dll -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/net8.0/refint/AnalysisSQL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/net8.0/refint/AnalysisSQL.dll -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System; 3 | using System.Reflection; 4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")] 5 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("AnalysisSQL")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7fd020832b0922cc785aec5c367d0986603539c1")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("AnalysisSQL")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("AnalysisSQL")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // 由 MSBuild WriteCodeFragment 类生成。 23 | 24 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 0058f4b4ffc30edfd84a6287083cd8536104d66d4fdd925ae2ac602d3ee9fc3f 2 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.GeneratedMSBuildEditorConfig.editorconfig: -------------------------------------------------------------------------------- 1 | is_global = true 2 | build_property.RootNamespace = AnalysisSQL 3 | build_property.ProjectDir = E:\study\gggggg\sqlparser\AnalysisSQL\ 4 | build_property.EnableComHosting = 5 | build_property.EnableGeneratedComInterfaceComImportInterop = 6 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.assets.cache -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.csproj.AssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.csproj.AssemblyReference.cache -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.csproj.BuildWithSkipAnalyzers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.csproj.BuildWithSkipAnalyzers -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 635cadb2264147494d9b2950e028f78995f633f51785b26e4813fdf0582c13ef 2 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\Study\vs\analysis\AnalysisSQL\AnalysisSQL\bin\Debug\netstandard2.0\AnalysisSQL.deps.json 2 | E:\Study\vs\analysis\AnalysisSQL\AnalysisSQL\bin\Debug\netstandard2.0\AnalysisSQL.dll 3 | E:\Study\vs\analysis\AnalysisSQL\AnalysisSQL\bin\Debug\netstandard2.0\AnalysisSQL.pdb 4 | E:\Study\vs\analysis\AnalysisSQL\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.csproj.CoreCompileInputs.cache 5 | E:\Study\vs\analysis\AnalysisSQL\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.AssemblyInfoInputs.cache 6 | E:\Study\vs\analysis\AnalysisSQL\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.AssemblyInfo.cs 7 | E:\Study\vs\analysis\AnalysisSQL\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.dll 8 | E:\Study\vs\analysis\AnalysisSQL\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.pdb 9 | E:\study\gggggg\sqlparser\AnalysisSQL\bin\Debug\netstandard2.0\AnalysisSQL.deps.json 10 | E:\study\gggggg\sqlparser\AnalysisSQL\bin\Debug\netstandard2.0\AnalysisSQL.dll 11 | E:\study\gggggg\sqlparser\AnalysisSQL\bin\Debug\netstandard2.0\AnalysisSQL.pdb 12 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.csproj.AssemblyReference.cache 13 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.GeneratedMSBuildEditorConfig.editorconfig 14 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.AssemblyInfoInputs.cache 15 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.AssemblyInfo.cs 16 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.csproj.CoreCompileInputs.cache 17 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.sourcelink.json 18 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.dll 19 | E:\study\gggggg\sqlparser\AnalysisSQL\obj\Debug\netstandard2.0\AnalysisSQL.pdb 20 | -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.dll -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.pdb -------------------------------------------------------------------------------- /AnalysisSQL/obj/Debug/netstandard2.0/AnalysisSQL.sourcelink.json: -------------------------------------------------------------------------------- 1 | {"documents":{"E:\\study\\gggggg\\sqlparser\\*":"https://raw.githubusercontent.com/jinyuttt/sqlparser/7fd020832b0922cc785aec5c367d0986603539c1/*"}} -------------------------------------------------------------------------------- /AnalysisSQL/obj/project.assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "targets": { 4 | "net8.0": {} 5 | }, 6 | "libraries": {}, 7 | "projectFileDependencyGroups": { 8 | "net8.0": [] 9 | }, 10 | "packageFolders": { 11 | "C:\\Users\\jinyu\\.nuget\\packages\\": {}, 12 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} 13 | }, 14 | "project": { 15 | "version": "1.0.0", 16 | "restore": { 17 | "projectUniqueName": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj", 18 | "projectName": "AnalysisSQL", 19 | "projectPath": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj", 20 | "packagesPath": "C:\\Users\\jinyu\\.nuget\\packages\\", 21 | "outputPath": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\obj\\", 22 | "projectStyle": "PackageReference", 23 | "fallbackFolders": [ 24 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" 25 | ], 26 | "configFilePaths": [ 27 | "C:\\Users\\jinyu\\AppData\\Roaming\\NuGet\\NuGet.Config", 28 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", 29 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 30 | ], 31 | "originalTargetFrameworks": [ 32 | "net8.0" 33 | ], 34 | "sources": { 35 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 36 | "C:\\Program Files\\dotnet\\library-packs": {}, 37 | "https://api.nuget.org/v3/index.json": {} 38 | }, 39 | "frameworks": { 40 | "net8.0": { 41 | "targetAlias": "net8.0", 42 | "projectReferences": {} 43 | } 44 | }, 45 | "warningProperties": { 46 | "warnAsError": [ 47 | "NU1605" 48 | ] 49 | } 50 | }, 51 | "frameworks": { 52 | "net8.0": { 53 | "targetAlias": "net8.0", 54 | "imports": [ 55 | "net461", 56 | "net462", 57 | "net47", 58 | "net471", 59 | "net472", 60 | "net48", 61 | "net481" 62 | ], 63 | "assetTargetFallback": true, 64 | "warn": true, 65 | "frameworkReferences": { 66 | "Microsoft.NETCore.App": { 67 | "privateAssets": "all" 68 | } 69 | }, 70 | "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.101/PortableRuntimeIdentifierGraph.json" 71 | } 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /AnalysisSQL/obj/project.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "dgSpecHash": "yHtuUTHiPP9Frahfp7i27J9OaBcgLJRCYUf7jHLMJvFWtcW6IE2HCtl7QPYrnETPkkkuDpu05JVf4a7VRkYvSw==", 4 | "success": true, 5 | "projectFilePath": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj", 6 | "expectedPackageFiles": [], 7 | "logs": [] 8 | } -------------------------------------------------------------------------------- /ClassLibrary1/Class1.cs: -------------------------------------------------------------------------------- 1 | namespace ClassLibrary1 2 | { 3 | public class Class1 4 | { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ClassLibrary1/ClassLibrary1.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ClassLibrary1/obj/ClassLibrary1.csproj.nuget.dgspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": 1, 3 | "restore": { 4 | "E:\\study\\gggggg\\sqlparser\\ClassLibrary1\\ClassLibrary1.csproj": {} 5 | }, 6 | "projects": { 7 | "E:\\study\\gggggg\\sqlparser\\ClassLibrary1\\ClassLibrary1.csproj": { 8 | "version": "1.0.0", 9 | "restore": { 10 | "projectUniqueName": "E:\\study\\gggggg\\sqlparser\\ClassLibrary1\\ClassLibrary1.csproj", 11 | "projectName": "ClassLibrary1", 12 | "projectPath": "E:\\study\\gggggg\\sqlparser\\ClassLibrary1\\ClassLibrary1.csproj", 13 | "packagesPath": "C:\\Users\\jinyu\\.nuget\\packages\\", 14 | "outputPath": "E:\\study\\gggggg\\sqlparser\\ClassLibrary1\\obj\\", 15 | "projectStyle": "PackageReference", 16 | "fallbackFolders": [ 17 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" 18 | ], 19 | "configFilePaths": [ 20 | "C:\\Users\\jinyu\\AppData\\Roaming\\NuGet\\NuGet.Config", 21 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", 22 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 23 | ], 24 | "originalTargetFrameworks": [ 25 | "net8.0" 26 | ], 27 | "sources": { 28 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 29 | "C:\\Program Files\\dotnet\\library-packs": {}, 30 | "https://api.nuget.org/v3/index.json": {} 31 | }, 32 | "frameworks": { 33 | "net8.0": { 34 | "targetAlias": "net8.0", 35 | "projectReferences": {} 36 | } 37 | }, 38 | "warningProperties": { 39 | "warnAsError": [ 40 | "NU1605" 41 | ] 42 | } 43 | }, 44 | "frameworks": { 45 | "net8.0": { 46 | "targetAlias": "net8.0", 47 | "imports": [ 48 | "net461", 49 | "net462", 50 | "net47", 51 | "net471", 52 | "net472", 53 | "net48", 54 | "net481" 55 | ], 56 | "assetTargetFallback": true, 57 | "warn": true, 58 | "frameworkReferences": { 59 | "Microsoft.NETCore.App": { 60 | "privateAssets": "all" 61 | } 62 | }, 63 | "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.101/PortableRuntimeIdentifierGraph.json" 64 | } 65 | } 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /ClassLibrary1/obj/ClassLibrary1.csproj.nuget.g.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | True 5 | NuGet 6 | $(MSBuildThisFileDirectory)project.assets.json 7 | $(UserProfile)\.nuget\packages\ 8 | C:\Users\jinyu\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages 9 | PackageReference 10 | 6.8.0 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ClassLibrary1/obj/ClassLibrary1.csproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /ClassLibrary1/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System; 3 | using System.Reflection; 4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] 5 | -------------------------------------------------------------------------------- /ClassLibrary1/obj/Debug/net8.0/ClassLibrary1.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("ClassLibrary1")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7fd020832b0922cc785aec5c367d0986603539c1")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("ClassLibrary1")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("ClassLibrary1")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // 由 MSBuild WriteCodeFragment 类生成。 23 | 24 | -------------------------------------------------------------------------------- /ClassLibrary1/obj/Debug/net8.0/ClassLibrary1.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 1fcb68181a5a052e25e6c7a63c10cb7f2384b1783891d3976eb20e7d5aa56e58 2 | -------------------------------------------------------------------------------- /ClassLibrary1/obj/Debug/net8.0/ClassLibrary1.GeneratedMSBuildEditorConfig.editorconfig: -------------------------------------------------------------------------------- 1 | is_global = true 2 | build_property.TargetFramework = net8.0 3 | build_property.TargetPlatformMinVersion = 4 | build_property.UsingMicrosoftNETSdkWeb = 5 | build_property.ProjectTypeGuids = 6 | build_property.InvariantGlobalization = 7 | build_property.PlatformNeutralAssembly = 8 | build_property.EnforceExtendedAnalyzerRules = 9 | build_property._SupportedPlatformList = Linux,macOS,Windows 10 | build_property.RootNamespace = ClassLibrary1 11 | build_property.ProjectDir = E:\study\gggggg\sqlparser\ClassLibrary1\ 12 | build_property.EnableComHosting = 13 | build_property.EnableGeneratedComInterfaceComImportInterop = 14 | -------------------------------------------------------------------------------- /ClassLibrary1/obj/Debug/net8.0/ClassLibrary1.GlobalUsings.g.cs: -------------------------------------------------------------------------------- 1 | // 2 | global using global::System; 3 | global using global::System.Collections.Generic; 4 | global using global::System.IO; 5 | global using global::System.Linq; 6 | global using global::System.Net.Http; 7 | global using global::System.Threading; 8 | global using global::System.Threading.Tasks; 9 | -------------------------------------------------------------------------------- /ClassLibrary1/obj/Debug/net8.0/ClassLibrary1.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ClassLibrary1/obj/Debug/net8.0/ClassLibrary1.assets.cache -------------------------------------------------------------------------------- /ClassLibrary1/obj/project.assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "targets": { 4 | "net8.0": {} 5 | }, 6 | "libraries": {}, 7 | "projectFileDependencyGroups": { 8 | "net8.0": [] 9 | }, 10 | "packageFolders": { 11 | "C:\\Users\\jinyu\\.nuget\\packages\\": {}, 12 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} 13 | }, 14 | "project": { 15 | "version": "1.0.0", 16 | "restore": { 17 | "projectUniqueName": "E:\\study\\gggggg\\sqlparser\\ClassLibrary1\\ClassLibrary1.csproj", 18 | "projectName": "ClassLibrary1", 19 | "projectPath": "E:\\study\\gggggg\\sqlparser\\ClassLibrary1\\ClassLibrary1.csproj", 20 | "packagesPath": "C:\\Users\\jinyu\\.nuget\\packages\\", 21 | "outputPath": "E:\\study\\gggggg\\sqlparser\\ClassLibrary1\\obj\\", 22 | "projectStyle": "PackageReference", 23 | "fallbackFolders": [ 24 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" 25 | ], 26 | "configFilePaths": [ 27 | "C:\\Users\\jinyu\\AppData\\Roaming\\NuGet\\NuGet.Config", 28 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", 29 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 30 | ], 31 | "originalTargetFrameworks": [ 32 | "net8.0" 33 | ], 34 | "sources": { 35 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 36 | "C:\\Program Files\\dotnet\\library-packs": {}, 37 | "https://api.nuget.org/v3/index.json": {} 38 | }, 39 | "frameworks": { 40 | "net8.0": { 41 | "targetAlias": "net8.0", 42 | "projectReferences": {} 43 | } 44 | }, 45 | "warningProperties": { 46 | "warnAsError": [ 47 | "NU1605" 48 | ] 49 | } 50 | }, 51 | "frameworks": { 52 | "net8.0": { 53 | "targetAlias": "net8.0", 54 | "imports": [ 55 | "net461", 56 | "net462", 57 | "net47", 58 | "net471", 59 | "net472", 60 | "net48", 61 | "net481" 62 | ], 63 | "assetTargetFallback": true, 64 | "warn": true, 65 | "frameworkReferences": { 66 | "Microsoft.NETCore.App": { 67 | "privateAssets": "all" 68 | } 69 | }, 70 | "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.101/PortableRuntimeIdentifierGraph.json" 71 | } 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /ClassLibrary1/obj/project.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "dgSpecHash": "S0giHAUvRUj28nQAYSYp5sbkMioziRyr+Ydqhq6ROBTa9volQFP2FNz4S0cnvnWo2uHVfqjkMMi7rvmQqESkLg==", 4 | "success": true, 5 | "projectFilePath": "E:\\study\\gggggg\\sqlparser\\ClassLibrary1\\ClassLibrary1.csproj", 6 | "expectedPackageFiles": [], 7 | "logs": [] 8 | } -------------------------------------------------------------------------------- /ConsoleApp1/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ConsoleApp1/ConsoleApp1.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {9123C6BD-0612-4768-9418-0D2796DDCE6C} 8 | Exe 9 | ConsoleApp1 10 | ConsoleApp1 11 | v4.6.1 12 | 512 13 | true 14 | true 15 | 16 | 17 | AnyCPU 18 | true 19 | full 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | prompt 24 | 4 25 | 26 | 27 | AnyCPU 28 | pdbonly 29 | true 30 | bin\Release\ 31 | TRACE 32 | prompt 33 | 4 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | {05ceb16d-46bc-475e-b6c4-0a844105b20b} 55 | AnalysisSQL 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /ConsoleApp1/Program.cs: -------------------------------------------------------------------------------- 1 | using AnalysisSQL; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace ConsoleApp1 9 | { 10 | class Program 11 | { 12 | static void Main(string[] args) 13 | { 14 | string sql = "select * from student m join Test n on m.id=n.id"; 15 | SqlParser parser = new SqlParser(); 16 | parser.Parse(sql); 17 | Console.WriteLine(parser.ToText()); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ConsoleApp1/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的一般信息由以下 6 | // 控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("ConsoleApp1")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ConsoleApp1")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 将 ComVisible 设置为 false 会使此程序集中的类型 18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 19 | //请将此类型的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(false)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("9123c6bd-0612-4768-9418-0d2796ddce6c")] 24 | 25 | // 程序集的版本信息由下列四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 33 | // 方法是按如下所示使用“*”: : 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/AnalysisSQL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/AnalysisSQL.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/AnalysisSQL.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/AnalysisSQL.pdb -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/ConsoleApp1.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/ConsoleApp1.exe -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/ConsoleApp1.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/ConsoleApp1.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/ConsoleApp1.pdb -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/Microsoft.Win32.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/Microsoft.Win32.Primitives.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.AppContext.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.AppContext.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Collections.Concurrent.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Collections.Concurrent.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Collections.NonGeneric.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Collections.NonGeneric.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Collections.Specialized.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Collections.Specialized.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Collections.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Collections.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.ComponentModel.EventBasedAsync.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.ComponentModel.EventBasedAsync.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.ComponentModel.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.ComponentModel.Primitives.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.ComponentModel.TypeConverter.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.ComponentModel.TypeConverter.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.ComponentModel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.ComponentModel.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Console.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Console.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Data.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Data.Common.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Diagnostics.Contracts.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Diagnostics.Contracts.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Diagnostics.Debug.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Diagnostics.Debug.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Diagnostics.FileVersionInfo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Diagnostics.FileVersionInfo.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Diagnostics.Process.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Diagnostics.Process.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Diagnostics.StackTrace.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Diagnostics.StackTrace.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Diagnostics.TextWriterTraceListener.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Diagnostics.TextWriterTraceListener.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Diagnostics.Tools.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Diagnostics.Tools.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Diagnostics.TraceSource.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Diagnostics.TraceSource.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Diagnostics.Tracing.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Diagnostics.Tracing.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Drawing.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Drawing.Primitives.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Dynamic.Runtime.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Dynamic.Runtime.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Globalization.Calendars.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Globalization.Calendars.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Globalization.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Globalization.Extensions.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Globalization.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Globalization.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.Compression.ZipFile.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.Compression.ZipFile.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.Compression.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.Compression.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.FileSystem.DriveInfo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.FileSystem.DriveInfo.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.FileSystem.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.FileSystem.Primitives.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.FileSystem.Watcher.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.FileSystem.Watcher.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.FileSystem.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.FileSystem.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.IsolatedStorage.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.IsolatedStorage.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.MemoryMappedFiles.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.MemoryMappedFiles.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.Pipes.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.Pipes.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.UnmanagedMemoryStream.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.UnmanagedMemoryStream.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.IO.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.IO.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Linq.Expressions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Linq.Expressions.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Linq.Parallel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Linq.Parallel.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Linq.Queryable.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Linq.Queryable.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Linq.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Linq.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.Http.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.NameResolution.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.NameResolution.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.NetworkInformation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.NetworkInformation.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.Ping.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.Ping.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.Primitives.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.Requests.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.Requests.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.Security.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.Security.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.Sockets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.Sockets.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.WebHeaderCollection.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.WebHeaderCollection.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.WebSockets.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.WebSockets.Client.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Net.WebSockets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Net.WebSockets.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.ObjectModel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.ObjectModel.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Reflection.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Reflection.Extensions.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Reflection.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Reflection.Primitives.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Reflection.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Reflection.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Resources.Reader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Resources.Reader.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Resources.ResourceManager.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Resources.ResourceManager.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Resources.Writer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Resources.Writer.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.CompilerServices.VisualC.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.CompilerServices.VisualC.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.Extensions.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.Handles.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.Handles.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.InteropServices.RuntimeInformation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.InteropServices.RuntimeInformation.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.InteropServices.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.InteropServices.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.Numerics.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.Numerics.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.Serialization.Formatters.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.Serialization.Formatters.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.Serialization.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.Serialization.Json.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.Serialization.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.Serialization.Primitives.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.Serialization.Xml.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.Serialization.Xml.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Runtime.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Runtime.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Security.Claims.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Security.Claims.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Security.Cryptography.Algorithms.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Security.Cryptography.Algorithms.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Security.Cryptography.Csp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Security.Cryptography.Csp.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Security.Cryptography.Encoding.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Security.Cryptography.Encoding.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Security.Cryptography.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Security.Cryptography.Primitives.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Security.Cryptography.X509Certificates.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Security.Cryptography.X509Certificates.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Security.Principal.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Security.Principal.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Security.SecureString.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Security.SecureString.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Text.Encoding.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Text.Encoding.Extensions.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Text.Encoding.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Text.Encoding.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Text.RegularExpressions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Text.RegularExpressions.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Threading.Overlapped.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Threading.Overlapped.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Threading.Tasks.Parallel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Threading.Tasks.Parallel.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Threading.Tasks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Threading.Tasks.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Threading.Thread.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Threading.Thread.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Threading.ThreadPool.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Threading.ThreadPool.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Threading.Timer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Threading.Timer.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Threading.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Threading.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.ValueTuple.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.ValueTuple.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Xml.ReaderWriter.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Xml.ReaderWriter.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Xml.XDocument.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Xml.XDocument.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Xml.XPath.XDocument.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Xml.XPath.XDocument.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Xml.XPath.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Xml.XPath.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Xml.XmlDocument.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Xml.XmlDocument.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/System.Xml.XmlSerializer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/System.Xml.XmlSerializer.dll -------------------------------------------------------------------------------- /ConsoleApp1/bin/Debug/netstandard.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/bin/Debug/netstandard.dll -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System; 3 | using System.Reflection; 4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")] 5 | -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/ConsoleApp1.csproj.AssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.AssemblyReference.cache -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/ConsoleApp1.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/ConsoleApp1.csproj.CopyComplete -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/ConsoleApp1.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | d193cba9abf155bdff7f30a6141b64658ed844e9897283d67d4248de618b9022 2 | -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/ConsoleApp1.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\ConsoleApp1.exe.config 2 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\ConsoleApp1.exe 3 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\ConsoleApp1.pdb 4 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\Microsoft.Win32.Primitives.dll 5 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\netstandard.dll 6 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.AppContext.dll 7 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Collections.Concurrent.dll 8 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Collections.dll 9 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Collections.NonGeneric.dll 10 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Collections.Specialized.dll 11 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.ComponentModel.dll 12 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.ComponentModel.EventBasedAsync.dll 13 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.ComponentModel.Primitives.dll 14 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.ComponentModel.TypeConverter.dll 15 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Console.dll 16 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Data.Common.dll 17 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Diagnostics.Contracts.dll 18 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Diagnostics.Debug.dll 19 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Diagnostics.FileVersionInfo.dll 20 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Diagnostics.Process.dll 21 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Diagnostics.StackTrace.dll 22 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Diagnostics.TextWriterTraceListener.dll 23 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Diagnostics.Tools.dll 24 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Diagnostics.TraceSource.dll 25 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Diagnostics.Tracing.dll 26 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Drawing.Primitives.dll 27 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Dynamic.Runtime.dll 28 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Globalization.Calendars.dll 29 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Globalization.dll 30 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Globalization.Extensions.dll 31 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.Compression.dll 32 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.Compression.ZipFile.dll 33 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.dll 34 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.FileSystem.dll 35 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.FileSystem.DriveInfo.dll 36 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.FileSystem.Primitives.dll 37 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.FileSystem.Watcher.dll 38 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.IsolatedStorage.dll 39 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.MemoryMappedFiles.dll 40 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.Pipes.dll 41 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.IO.UnmanagedMemoryStream.dll 42 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Linq.dll 43 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Linq.Expressions.dll 44 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Linq.Parallel.dll 45 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Linq.Queryable.dll 46 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.Http.dll 47 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.NameResolution.dll 48 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.NetworkInformation.dll 49 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.Ping.dll 50 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.Primitives.dll 51 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.Requests.dll 52 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.Security.dll 53 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.Sockets.dll 54 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.WebHeaderCollection.dll 55 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.WebSockets.Client.dll 56 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Net.WebSockets.dll 57 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.ObjectModel.dll 58 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Reflection.dll 59 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Reflection.Extensions.dll 60 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Reflection.Primitives.dll 61 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Resources.Reader.dll 62 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Resources.ResourceManager.dll 63 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Resources.Writer.dll 64 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.CompilerServices.VisualC.dll 65 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.dll 66 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.Extensions.dll 67 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.Handles.dll 68 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.InteropServices.dll 69 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.InteropServices.RuntimeInformation.dll 70 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.Numerics.dll 71 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.Serialization.Formatters.dll 72 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.Serialization.Json.dll 73 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.Serialization.Primitives.dll 74 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Runtime.Serialization.Xml.dll 75 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Security.Claims.dll 76 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Security.Cryptography.Algorithms.dll 77 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Security.Cryptography.Csp.dll 78 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Security.Cryptography.Encoding.dll 79 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Security.Cryptography.Primitives.dll 80 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Security.Cryptography.X509Certificates.dll 81 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Security.Principal.dll 82 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Security.SecureString.dll 83 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Text.Encoding.dll 84 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Text.Encoding.Extensions.dll 85 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Text.RegularExpressions.dll 86 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Threading.dll 87 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Threading.Overlapped.dll 88 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Threading.Tasks.dll 89 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Threading.Tasks.Parallel.dll 90 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Threading.Thread.dll 91 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Threading.ThreadPool.dll 92 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Threading.Timer.dll 93 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.ValueTuple.dll 94 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Xml.ReaderWriter.dll 95 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Xml.XDocument.dll 96 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Xml.XmlDocument.dll 97 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Xml.XmlSerializer.dll 98 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Xml.XPath.dll 99 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\System.Xml.XPath.XDocument.dll 100 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\AnalysisSQL.dll 101 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\bin\Debug\AnalysisSQL.pdb 102 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\obj\Debug\ConsoleApp1.csprojAssemblyReference.cache 103 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\obj\Debug\ConsoleApp1.exe.config 104 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.CoreCompileInputs.cache 105 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.CopyComplete 106 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\obj\Debug\ConsoleApp1.exe 107 | E:\Study\vs\analysis\AnalysisSQL\ConsoleApp1\obj\Debug\ConsoleApp1.pdb 108 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\ConsoleApp1.exe.config 109 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\ConsoleApp1.exe 110 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\ConsoleApp1.pdb 111 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\Microsoft.Win32.Primitives.dll 112 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\netstandard.dll 113 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.AppContext.dll 114 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Collections.Concurrent.dll 115 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Collections.dll 116 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Collections.NonGeneric.dll 117 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Collections.Specialized.dll 118 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.ComponentModel.dll 119 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.ComponentModel.EventBasedAsync.dll 120 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.ComponentModel.Primitives.dll 121 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.ComponentModel.TypeConverter.dll 122 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Console.dll 123 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Data.Common.dll 124 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Diagnostics.Contracts.dll 125 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Diagnostics.Debug.dll 126 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Diagnostics.FileVersionInfo.dll 127 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Diagnostics.Process.dll 128 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Diagnostics.StackTrace.dll 129 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Diagnostics.TextWriterTraceListener.dll 130 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Diagnostics.Tools.dll 131 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Diagnostics.TraceSource.dll 132 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Diagnostics.Tracing.dll 133 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Drawing.Primitives.dll 134 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Dynamic.Runtime.dll 135 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Globalization.Calendars.dll 136 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Globalization.dll 137 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Globalization.Extensions.dll 138 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.Compression.dll 139 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.Compression.ZipFile.dll 140 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.dll 141 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.FileSystem.dll 142 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.FileSystem.DriveInfo.dll 143 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.FileSystem.Primitives.dll 144 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.FileSystem.Watcher.dll 145 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.IsolatedStorage.dll 146 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.MemoryMappedFiles.dll 147 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.Pipes.dll 148 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.IO.UnmanagedMemoryStream.dll 149 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Linq.dll 150 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Linq.Expressions.dll 151 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Linq.Parallel.dll 152 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Linq.Queryable.dll 153 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.Http.dll 154 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.NameResolution.dll 155 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.NetworkInformation.dll 156 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.Ping.dll 157 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.Primitives.dll 158 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.Requests.dll 159 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.Security.dll 160 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.Sockets.dll 161 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.WebHeaderCollection.dll 162 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.WebSockets.Client.dll 163 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Net.WebSockets.dll 164 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.ObjectModel.dll 165 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Reflection.dll 166 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Reflection.Extensions.dll 167 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Reflection.Primitives.dll 168 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Resources.Reader.dll 169 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Resources.ResourceManager.dll 170 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Resources.Writer.dll 171 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.CompilerServices.VisualC.dll 172 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.dll 173 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.Extensions.dll 174 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.Handles.dll 175 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.InteropServices.dll 176 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.InteropServices.RuntimeInformation.dll 177 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.Numerics.dll 178 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.Serialization.Formatters.dll 179 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.Serialization.Json.dll 180 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.Serialization.Primitives.dll 181 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Runtime.Serialization.Xml.dll 182 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Security.Claims.dll 183 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Security.Cryptography.Algorithms.dll 184 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Security.Cryptography.Csp.dll 185 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Security.Cryptography.Encoding.dll 186 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Security.Cryptography.Primitives.dll 187 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Security.Cryptography.X509Certificates.dll 188 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Security.Principal.dll 189 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Security.SecureString.dll 190 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Text.Encoding.dll 191 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Text.Encoding.Extensions.dll 192 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Text.RegularExpressions.dll 193 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Threading.dll 194 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Threading.Overlapped.dll 195 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Threading.Tasks.dll 196 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Threading.Tasks.Parallel.dll 197 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Threading.Thread.dll 198 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Threading.ThreadPool.dll 199 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Threading.Timer.dll 200 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.ValueTuple.dll 201 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Xml.ReaderWriter.dll 202 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Xml.XDocument.dll 203 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Xml.XmlDocument.dll 204 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Xml.XmlSerializer.dll 205 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Xml.XPath.dll 206 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\System.Xml.XPath.XDocument.dll 207 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\AnalysisSQL.dll 208 | E:\study\gggggg\sqlparser\ConsoleApp1\bin\Debug\AnalysisSQL.pdb 209 | E:\study\gggggg\sqlparser\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.AssemblyReference.cache 210 | E:\study\gggggg\sqlparser\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.SuggestedBindingRedirects.cache 211 | E:\study\gggggg\sqlparser\ConsoleApp1\obj\Debug\ConsoleApp1.exe.config 212 | E:\study\gggggg\sqlparser\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.CoreCompileInputs.cache 213 | E:\study\gggggg\sqlparser\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.CopyComplete 214 | E:\study\gggggg\sqlparser\ConsoleApp1\obj\Debug\ConsoleApp1.exe 215 | E:\study\gggggg\sqlparser\ConsoleApp1\obj\Debug\ConsoleApp1.pdb 216 | -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/ConsoleApp1.csproj.SuggestedBindingRedirects.cache: -------------------------------------------------------------------------------- 1 | fdb0ba8cbb20c8d5270b7e25ac1247670e0d4f74c91407caf9c809e4a47f9cba 2 | -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/ConsoleApp1.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/ConsoleApp1.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/ConsoleApp1.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/ConsoleApp1.exe -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/ConsoleApp1.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/ConsoleApp1.pdb -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /ConsoleApp1/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/ConsoleApp1/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sqlparser 2 | c#解析SQL语句(分析语句) 3 | 4 | 将SQL语句按照关键字填入XML,构造成节点方便查询使用。 5 | SqlParser parser = new SqlParser(); 6 | parser.Parse(sql); 7 | -------------------------------------------------------------------------------- /Test/Program.cs: -------------------------------------------------------------------------------- 1 | // See https://aka.ms/new-console-template for more information 2 | using AnalysisSQL; 3 | 4 | Console.WriteLine("Hello, World!"); 5 | string sql = "select * from student m join Test n on m.id=n.id"; 6 | SqlParser parser = new SqlParser(); 7 | parser.Parse(sql); 8 | Console.WriteLine(parser.ToText()); 9 | -------------------------------------------------------------------------------- /Test/Test.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | net8.0 6 | enable 7 | enable 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Test/bin/Debug/net8.0/AnalysisSQL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/bin/Debug/net8.0/AnalysisSQL.dll -------------------------------------------------------------------------------- /Test/bin/Debug/net8.0/AnalysisSQL.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/bin/Debug/net8.0/AnalysisSQL.pdb -------------------------------------------------------------------------------- /Test/bin/Debug/net8.0/Test.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETCoreApp,Version=v8.0", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETCoreApp,Version=v8.0": { 9 | "Test/1.0.0": { 10 | "dependencies": { 11 | "AnalysisSQL": "1.0.0" 12 | }, 13 | "runtime": { 14 | "Test.dll": {} 15 | } 16 | }, 17 | "AnalysisSQL/1.0.0": { 18 | "runtime": { 19 | "AnalysisSQL.dll": {} 20 | } 21 | } 22 | } 23 | }, 24 | "libraries": { 25 | "Test/1.0.0": { 26 | "type": "project", 27 | "serviceable": false, 28 | "sha512": "" 29 | }, 30 | "AnalysisSQL/1.0.0": { 31 | "type": "project", 32 | "serviceable": false, 33 | "sha512": "" 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Test/bin/Debug/net8.0/Test.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/bin/Debug/net8.0/Test.dll -------------------------------------------------------------------------------- /Test/bin/Debug/net8.0/Test.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/bin/Debug/net8.0/Test.exe -------------------------------------------------------------------------------- /Test/bin/Debug/net8.0/Test.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/bin/Debug/net8.0/Test.pdb -------------------------------------------------------------------------------- /Test/bin/Debug/net8.0/Test.runtimeconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "tfm": "net8.0", 4 | "framework": { 5 | "name": "Microsoft.NETCore.App", 6 | "version": "8.0.0" 7 | }, 8 | "configProperties": { 9 | "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System; 3 | using System.Reflection; 4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] 5 | -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("Test")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7fd020832b0922cc785aec5c367d0986603539c1")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("Test")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("Test")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // 由 MSBuild WriteCodeFragment 类生成。 23 | 24 | -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 2ca4f75740aea69c7a3fee45b186a9a581a18c9fd722f8534a0b34a847dc23d9 2 | -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.GeneratedMSBuildEditorConfig.editorconfig: -------------------------------------------------------------------------------- 1 | is_global = true 2 | build_property.TargetFramework = net8.0 3 | build_property.TargetPlatformMinVersion = 4 | build_property.UsingMicrosoftNETSdkWeb = 5 | build_property.ProjectTypeGuids = 6 | build_property.InvariantGlobalization = 7 | build_property.PlatformNeutralAssembly = 8 | build_property.EnforceExtendedAnalyzerRules = 9 | build_property._SupportedPlatformList = Linux,macOS,Windows 10 | build_property.RootNamespace = Test 11 | build_property.ProjectDir = E:\study\gggggg\sqlparser\Test\ 12 | build_property.EnableComHosting = 13 | build_property.EnableGeneratedComInterfaceComImportInterop = 14 | -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.GlobalUsings.g.cs: -------------------------------------------------------------------------------- 1 | // 2 | global using global::System; 3 | global using global::System.Collections.Generic; 4 | global using global::System.IO; 5 | global using global::System.Linq; 6 | global using global::System.Net.Http; 7 | global using global::System.Threading; 8 | global using global::System.Threading.Tasks; 9 | -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/obj/Debug/net8.0/Test.assets.cache -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.csproj.AssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/obj/Debug/net8.0/Test.csproj.AssemblyReference.cache -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.csproj.BuildWithSkipAnalyzers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/obj/Debug/net8.0/Test.csproj.BuildWithSkipAnalyzers -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/obj/Debug/net8.0/Test.csproj.CopyComplete -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 78a4c47cbe2d88c193d36a3d034df62dd13c94ae294d725555bebce318d609b2 2 | -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.csproj.AssemblyReference.cache 2 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.GeneratedMSBuildEditorConfig.editorconfig 3 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.AssemblyInfoInputs.cache 4 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.AssemblyInfo.cs 5 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.csproj.CoreCompileInputs.cache 6 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.sourcelink.json 7 | E:\study\gggggg\sqlparser\Test\bin\Debug\net8.0\Test.exe 8 | E:\study\gggggg\sqlparser\Test\bin\Debug\net8.0\Test.deps.json 9 | E:\study\gggggg\sqlparser\Test\bin\Debug\net8.0\Test.runtimeconfig.json 10 | E:\study\gggggg\sqlparser\Test\bin\Debug\net8.0\Test.dll 11 | E:\study\gggggg\sqlparser\Test\bin\Debug\net8.0\Test.pdb 12 | E:\study\gggggg\sqlparser\Test\bin\Debug\net8.0\AnalysisSQL.dll 13 | E:\study\gggggg\sqlparser\Test\bin\Debug\net8.0\AnalysisSQL.pdb 14 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.csproj.CopyComplete 15 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.dll 16 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\refint\Test.dll 17 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.pdb 18 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\Test.genruntimeconfig.cache 19 | E:\study\gggggg\sqlparser\Test\obj\Debug\net8.0\ref\Test.dll 20 | -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/obj/Debug/net8.0/Test.dll -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.genruntimeconfig.cache: -------------------------------------------------------------------------------- 1 | d687b576e75dc680b69eae5771196abafdacaf1f2702a4f03c0e7c499d7c832f 2 | -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/obj/Debug/net8.0/Test.pdb -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/Test.sourcelink.json: -------------------------------------------------------------------------------- 1 | {"documents":{"E:\\study\\gggggg\\sqlparser\\*":"https://raw.githubusercontent.com/jinyuttt/sqlparser/7fd020832b0922cc785aec5c367d0986603539c1/*"}} -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/apphost.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/obj/Debug/net8.0/apphost.exe -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/ref/Test.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/obj/Debug/net8.0/ref/Test.dll -------------------------------------------------------------------------------- /Test/obj/Debug/net8.0/refint/Test.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jinyuttt/sqlparser/64ce9b40e30c0e8180c8d2af9f88115cd3da1dbb/Test/obj/Debug/net8.0/refint/Test.dll -------------------------------------------------------------------------------- /Test/obj/Test.csproj.nuget.dgspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": 1, 3 | "restore": { 4 | "E:\\study\\gggggg\\sqlparser\\Test\\Test.csproj": {} 5 | }, 6 | "projects": { 7 | "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj": { 8 | "version": "1.0.0", 9 | "restore": { 10 | "projectUniqueName": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj", 11 | "projectName": "AnalysisSQL", 12 | "projectPath": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj", 13 | "packagesPath": "C:\\Users\\jinyu\\.nuget\\packages\\", 14 | "outputPath": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\obj\\", 15 | "projectStyle": "PackageReference", 16 | "fallbackFolders": [ 17 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" 18 | ], 19 | "configFilePaths": [ 20 | "C:\\Users\\jinyu\\AppData\\Roaming\\NuGet\\NuGet.Config", 21 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", 22 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 23 | ], 24 | "originalTargetFrameworks": [ 25 | "net8.0" 26 | ], 27 | "sources": { 28 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 29 | "C:\\Program Files\\dotnet\\library-packs": {}, 30 | "https://api.nuget.org/v3/index.json": {} 31 | }, 32 | "frameworks": { 33 | "net8.0": { 34 | "targetAlias": "net8.0", 35 | "projectReferences": {} 36 | } 37 | }, 38 | "warningProperties": { 39 | "warnAsError": [ 40 | "NU1605" 41 | ] 42 | } 43 | }, 44 | "frameworks": { 45 | "net8.0": { 46 | "targetAlias": "net8.0", 47 | "imports": [ 48 | "net461", 49 | "net462", 50 | "net47", 51 | "net471", 52 | "net472", 53 | "net48", 54 | "net481" 55 | ], 56 | "assetTargetFallback": true, 57 | "warn": true, 58 | "frameworkReferences": { 59 | "Microsoft.NETCore.App": { 60 | "privateAssets": "all" 61 | } 62 | }, 63 | "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.101/PortableRuntimeIdentifierGraph.json" 64 | } 65 | } 66 | }, 67 | "E:\\study\\gggggg\\sqlparser\\Test\\Test.csproj": { 68 | "version": "1.0.0", 69 | "restore": { 70 | "projectUniqueName": "E:\\study\\gggggg\\sqlparser\\Test\\Test.csproj", 71 | "projectName": "Test", 72 | "projectPath": "E:\\study\\gggggg\\sqlparser\\Test\\Test.csproj", 73 | "packagesPath": "C:\\Users\\jinyu\\.nuget\\packages\\", 74 | "outputPath": "E:\\study\\gggggg\\sqlparser\\Test\\obj\\", 75 | "projectStyle": "PackageReference", 76 | "fallbackFolders": [ 77 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" 78 | ], 79 | "configFilePaths": [ 80 | "C:\\Users\\jinyu\\AppData\\Roaming\\NuGet\\NuGet.Config", 81 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", 82 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 83 | ], 84 | "originalTargetFrameworks": [ 85 | "net8.0" 86 | ], 87 | "sources": { 88 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 89 | "C:\\Program Files\\dotnet\\library-packs": {}, 90 | "https://api.nuget.org/v3/index.json": {} 91 | }, 92 | "frameworks": { 93 | "net8.0": { 94 | "targetAlias": "net8.0", 95 | "projectReferences": { 96 | "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj": { 97 | "projectPath": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj" 98 | } 99 | } 100 | } 101 | }, 102 | "warningProperties": { 103 | "warnAsError": [ 104 | "NU1605" 105 | ] 106 | } 107 | }, 108 | "frameworks": { 109 | "net8.0": { 110 | "targetAlias": "net8.0", 111 | "imports": [ 112 | "net461", 113 | "net462", 114 | "net47", 115 | "net471", 116 | "net472", 117 | "net48", 118 | "net481" 119 | ], 120 | "assetTargetFallback": true, 121 | "warn": true, 122 | "frameworkReferences": { 123 | "Microsoft.NETCore.App": { 124 | "privateAssets": "all" 125 | } 126 | }, 127 | "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.101/PortableRuntimeIdentifierGraph.json" 128 | } 129 | } 130 | } 131 | } 132 | } -------------------------------------------------------------------------------- /Test/obj/Test.csproj.nuget.g.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | True 5 | NuGet 6 | $(MSBuildThisFileDirectory)project.assets.json 7 | $(UserProfile)\.nuget\packages\ 8 | C:\Users\jinyu\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages 9 | PackageReference 10 | 6.8.0 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Test/obj/Test.csproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /Test/obj/project.assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "targets": { 4 | "net8.0": { 5 | "AnalysisSQL/1.0.0": { 6 | "type": "project", 7 | "framework": ".NETCoreApp,Version=v8.0", 8 | "compile": { 9 | "bin/placeholder/AnalysisSQL.dll": {} 10 | }, 11 | "runtime": { 12 | "bin/placeholder/AnalysisSQL.dll": {} 13 | } 14 | } 15 | } 16 | }, 17 | "libraries": { 18 | "AnalysisSQL/1.0.0": { 19 | "type": "project", 20 | "path": "../AnalysisSQL/AnalysisSQL.csproj", 21 | "msbuildProject": "../AnalysisSQL/AnalysisSQL.csproj" 22 | } 23 | }, 24 | "projectFileDependencyGroups": { 25 | "net8.0": [ 26 | "AnalysisSQL >= 1.0.0" 27 | ] 28 | }, 29 | "packageFolders": { 30 | "C:\\Users\\jinyu\\.nuget\\packages\\": {}, 31 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} 32 | }, 33 | "project": { 34 | "version": "1.0.0", 35 | "restore": { 36 | "projectUniqueName": "E:\\study\\gggggg\\sqlparser\\Test\\Test.csproj", 37 | "projectName": "Test", 38 | "projectPath": "E:\\study\\gggggg\\sqlparser\\Test\\Test.csproj", 39 | "packagesPath": "C:\\Users\\jinyu\\.nuget\\packages\\", 40 | "outputPath": "E:\\study\\gggggg\\sqlparser\\Test\\obj\\", 41 | "projectStyle": "PackageReference", 42 | "fallbackFolders": [ 43 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" 44 | ], 45 | "configFilePaths": [ 46 | "C:\\Users\\jinyu\\AppData\\Roaming\\NuGet\\NuGet.Config", 47 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", 48 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 49 | ], 50 | "originalTargetFrameworks": [ 51 | "net8.0" 52 | ], 53 | "sources": { 54 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 55 | "C:\\Program Files\\dotnet\\library-packs": {}, 56 | "https://api.nuget.org/v3/index.json": {} 57 | }, 58 | "frameworks": { 59 | "net8.0": { 60 | "targetAlias": "net8.0", 61 | "projectReferences": { 62 | "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj": { 63 | "projectPath": "E:\\study\\gggggg\\sqlparser\\AnalysisSQL\\AnalysisSQL.csproj" 64 | } 65 | } 66 | } 67 | }, 68 | "warningProperties": { 69 | "warnAsError": [ 70 | "NU1605" 71 | ] 72 | } 73 | }, 74 | "frameworks": { 75 | "net8.0": { 76 | "targetAlias": "net8.0", 77 | "imports": [ 78 | "net461", 79 | "net462", 80 | "net47", 81 | "net471", 82 | "net472", 83 | "net48", 84 | "net481" 85 | ], 86 | "assetTargetFallback": true, 87 | "warn": true, 88 | "frameworkReferences": { 89 | "Microsoft.NETCore.App": { 90 | "privateAssets": "all" 91 | } 92 | }, 93 | "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.101/PortableRuntimeIdentifierGraph.json" 94 | } 95 | } 96 | } 97 | } -------------------------------------------------------------------------------- /Test/obj/project.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "dgSpecHash": "9EAvD0rOhjz85TKwHevRI/OQ35exHqJgoWlr4QSCLWDzoaLTlixIs4+R80/O1Lz0c14BsH0p6pzRozu+zu+kDg==", 4 | "success": true, 5 | "projectFilePath": "E:\\study\\gggggg\\sqlparser\\Test\\Test.csproj", 6 | "expectedPackageFiles": [], 7 | "logs": [] 8 | } --------------------------------------------------------------------------------