├── .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 | }
--------------------------------------------------------------------------------