Browse Source

started work on VB.NET queryexpression AST

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3389 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Markus Palme 18 years ago
parent
commit
91f3864fc6
  1. 8
      src/Libraries/NRefactory/NRefactory.sln
  2. 18
      src/Libraries/NRefactory/NRefactoryASTGenerator/AST/Expressions.cs
  3. 3
      src/Libraries/NRefactory/Project/NRefactory.csproj
  4. 1074
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs
  5. 61
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG

8
src/Libraries/NRefactory/NRefactory.sln

@ -1,13 +1,15 @@ @@ -1,13 +1,15 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
# SharpDevelop 3.0.0.3328
# SharpDevelop 3.0.0.3337
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryTests", "Test\NRefactoryTests.csproj", "{870115DD-960A-4406-A6B9-600BCDC36A03}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryASTGenerator", "NRefactoryASTGenerator\NRefactoryASTGenerator.csproj", "{B22522AA-B5BF-4A58-AC6D-D4B45805521F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryDemo", "..\..\..\samples\NRefactoryDemo\NRefactoryDemo.csproj", "{63199047-9D5D-474C-B3CC-62ABBB071B67}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -26,6 +28,10 @@ Global @@ -26,6 +28,10 @@ Global
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Release|Any CPU.Build.0 = Release|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63199047-9D5D-474C-B3CC-62ABBB071B67}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63199047-9D5D-474C-B3CC-62ABBB071B67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63199047-9D5D-474C-B3CC-62ABBB071B67}.Release|Any CPU.Build.0 = Release|Any CPU
{63199047-9D5D-474C-B3CC-62ABBB071B67}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

18
src/Libraries/NRefactory/NRefactoryASTGenerator/AST/Expressions.cs

@ -253,9 +253,27 @@ namespace NRefactoryASTGenerator.Ast @@ -253,9 +253,27 @@ namespace NRefactoryASTGenerator.Ast
[ImplementNullable(NullableImplementation.Shadow)]
class QueryExpression : Expression {
/// <remarks>
/// Either from or aggregate clause.
/// </remarks>
QueryExpressionFromClause fromClause;
/// <remarks>
/// VB.NET only.
/// </remarks>
QueryExpressionAggregateClause aggregateClause;
List<QueryExpressionClause> middleClauses;
/// <remarks>
/// C# only.
/// </remarks>
QueryExpressionClause selectOrGroupClause;
/// <remarks>
/// C# only.
/// </remarks>
QueryExpressionIntoClause intoClause;
}

3
src/Libraries/NRefactory/Project/NRefactory.csproj

@ -140,10 +140,7 @@ @@ -140,10 +140,7 @@
<Content Include="Src\Parser\CSharp\cs.ATG" />
<Content Include="Src\Parser\CSharp\trace.txt" />
<Folder Include="Src\Parser\Frames" />
<Content Include="Src\Parser\Frames\OldSharpCoco.exe" />
<Content Include="Src\Parser\Frames\Parser.frame" />
<Content Include="Src\Parser\Frames\Parser.frame.new" />
<Content Include="Src\Parser\Frames\Parser.frame.old" />
<Content Include="Src\Parser\Frames\Scanner.frame" />
<Content Include="Src\Parser\Frames\SharpCoco.exe" />
<Content Include="Src\Parser\Frames\trace.txt" />

1074
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff

61
src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG

@ -2019,22 +2019,25 @@ LambdaExpr<out Expression expr> @@ -2019,22 +2019,25 @@ LambdaExpr<out Expression expr>
QueryExpr<out Expression expr>
(.
QueryExpression qexpr = new QueryExpression();
List<QueryExpressionFromClause> fromClauses = new List<QueryExpressionFromClause>();
expr = qexpr;
.) =
FromOrAggregateQueryOperator
FromOrAggregateQueryOperator<out fromClauses>
{ QueryOperator }
.
FromOrAggregateQueryOperator
(. .) =
FromQueryOperator
| AggregateQueryOperator
FromOrAggregateQueryOperator<out List<QueryExpressionFromClause> fromClauses>
(. fromClauses = null; .) =
FromQueryOperator<out fromClauses>
| AggregateQueryOperator<out fromClauses>
.
QueryOperator
(. .) =
FromQueryOperator
| AggregateQueryOperator
(.
List<QueryExpressionFromClause> fromClauses = null;
.) =
FromQueryOperator<out fromClauses>
| AggregateQueryOperator<out fromClauses>
| SelectQueryOperator
| DistinctQueryOperator
| WhereQueryOperator
@ -2080,9 +2083,10 @@ GroupJoinQueryOperator @@ -2080,9 +2083,10 @@ GroupJoinQueryOperator
"Into" ExpressionRangeVariableDeclarationList
.
FromQueryOperator
(. .) =
"From" CollectionRangeVariableDeclarationList
FromQueryOperator<out List<QueryExpressionFromClause> fromClauses>
(.
.) =
"From" CollectionRangeVariableDeclarationList<out fromClauses>
.
SelectQueryOperator
@ -2106,9 +2110,13 @@ PartitionQueryOperator @@ -2106,9 +2110,13 @@ PartitionQueryOperator
| "Skip" [ "While" ] Expr<out expr>
.
AggregateQueryOperator
(. .) =
"Aggregate" CollectionRangeVariableDeclaration { QueryOperator }
AggregateQueryOperator<out List<QueryExpressionFromClause> fromClauses>
(.
fromClauses =new List<QueryExpressionFromClause>();
QueryExpressionFromClause aggreateClause = null;
.) =
"Aggregate" CollectionRangeVariableDeclaration<out aggreateClause> { QueryOperator }
(. fromClauses.Add(aggreateClause); .)
"Into" ExpressionRangeVariableDeclarationList
.
@ -2135,27 +2143,34 @@ ExpressionRangeVariableDeclaration @@ -2135,27 +2143,34 @@ ExpressionRangeVariableDeclaration
.
JoinQueryOperator
(. .) =
"Join" CollectionRangeVariableDeclaration [ JoinQueryOperator ] "On"
(. QueryExpressionFromClause joinClause = null; .) =
"Join" CollectionRangeVariableDeclaration<out joinClause> [ JoinQueryOperator ] "On"
JoinCondition
{
"And" JoinCondition
}
.
CollectionRangeVariableDeclarationList
(. .) =
CollectionRangeVariableDeclaration
{ "," CollectionRangeVariableDeclaration }
.
CollectionRangeVariableDeclarationList<out List<QueryExpressionFromClause> fromClauses>
(.
fromClauses = new List<QueryExpressionFromClause>();
QueryExpressionFromClause fromClause = null;
.) =
CollectionRangeVariableDeclaration<out fromClause>
(. fromClauses.Add(fromClause); .)
{ "," CollectionRangeVariableDeclaration<out fromClause> (. fromClauses.Add(fromClause); .) }
.
CollectionRangeVariableDeclaration
CollectionRangeVariableDeclaration<out QueryExpressionFromClause fromClause>
(.
fromClause = new QueryExpressionFromClause();
TypeReference typeName = null;
Expression inExpr = null;
.) =
Identifier
[ "As" TypeName<out typeName> ] "In" Expr<out inExpr>
[ "As" TypeName<out typeName> (. fromClause.Type = typeName; .) ]
"In" Expr<out inExpr>
(. fromClause.InExpression = inExpr; .)
.
JoinCondition

Loading…
Cancel
Save