Skip to content

Commit aa73692

Browse files
committed
Obsolete managed expression class machinery.
1 parent f62b6f8 commit aa73692

File tree

10 files changed

+73
-73
lines changed

10 files changed

+73
-73
lines changed

src/AST/Expression.cs

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44

55
namespace CppSharp.AST
66
{
7-
public abstract class Expression : Statement
7+
public abstract class ExpressionObsolete : Statement
88
{
99
public string DebugText;
1010

11-
public abstract TV Visit<TV>(IExpressionVisitor<TV> visitor);
11+
public abstract TV Visit<TV>(IExpressionVisitorObsolete<TV> visitor);
1212

13-
public abstract Expression Clone();
13+
public abstract ExpressionObsolete Clone();
1414
}
1515

16-
public class BuiltinTypeExpression : Expression
16+
public class BuiltinTypeExpressionObsolete : ExpressionObsolete
1717
{
1818
public long Value { get; set; }
1919

@@ -39,14 +39,14 @@ public override string ToString()
3939
return printAsHex ? "0x" + value : value;
4040
}
4141

42-
public override T Visit<T>(IExpressionVisitor<T> visitor)
42+
public override T Visit<T>(IExpressionVisitorObsolete<T> visitor)
4343
{
4444
return visitor.VisitExpression(this);
4545
}
4646

47-
public override Expression Clone()
47+
public override ExpressionObsolete Clone()
4848
{
49-
return new BuiltinTypeExpression
49+
return new BuiltinTypeExpressionObsolete
5050
{
5151
Value = this.Value,
5252
Type = this.Type,
@@ -58,28 +58,28 @@ public override Expression Clone()
5858
}
5959
}
6060

61-
public class BinaryOperator : Expression
61+
public class BinaryOperatorObsolete : ExpressionObsolete
6262
{
63-
public BinaryOperator(Expression lhs, Expression rhs, string opcodeStr)
63+
public BinaryOperatorObsolete(ExpressionObsolete lhs, ExpressionObsolete rhs, string opcodeStr)
6464
{
6565
Class = StatementClass.BinaryOperator;
6666
LHS = lhs;
6767
RHS = rhs;
6868
OpcodeStr = opcodeStr;
6969
}
7070

71-
public Expression LHS { get; set; }
72-
public Expression RHS { get; set; }
71+
public ExpressionObsolete LHS { get; set; }
72+
public ExpressionObsolete RHS { get; set; }
7373
public string OpcodeStr { get; set; }
7474

75-
public override T Visit<T>(IExpressionVisitor<T> visitor)
75+
public override T Visit<T>(IExpressionVisitorObsolete<T> visitor)
7676
{
7777
return visitor.VisitExpression(this);
7878
}
7979

80-
public override Expression Clone()
80+
public override ExpressionObsolete Clone()
8181
{
82-
return new BinaryOperator(LHS.Clone(), RHS.Clone(), OpcodeStr)
82+
return new BinaryOperatorObsolete(LHS.Clone(), RHS.Clone(), OpcodeStr)
8383
{
8484
DebugText = this.DebugText,
8585
Declaration = this.Declaration,
@@ -88,24 +88,24 @@ public override Expression Clone()
8888
}
8989
}
9090

91-
public class CallExpr : Expression
91+
public class CallExprObsolete : ExpressionObsolete
9292
{
93-
public CallExpr()
93+
public CallExprObsolete()
9494
{
9595
Class = StatementClass.Call;
96-
Arguments = new List<Expression>();
96+
Arguments = new List<ExpressionObsolete>();
9797
}
9898

99-
public List<Expression> Arguments { get; private set; }
99+
public List<ExpressionObsolete> Arguments { get; private set; }
100100

101-
public override T Visit<T>(IExpressionVisitor<T> visitor)
101+
public override T Visit<T>(IExpressionVisitorObsolete<T> visitor)
102102
{
103103
return visitor.VisitExpression(this);
104104
}
105105

106-
public override Expression Clone()
106+
public override ExpressionObsolete Clone()
107107
{
108-
var clone = new CallExpr
108+
var clone = new CallExprObsolete
109109
{
110110
DebugText = this.DebugText,
111111
Declaration = this.Declaration,
@@ -116,24 +116,24 @@ public override Expression Clone()
116116
}
117117
}
118118

119-
public class CXXConstructExpr : Expression
119+
public class CXXConstructExprObsolete : ExpressionObsolete
120120
{
121-
public CXXConstructExpr()
121+
public CXXConstructExprObsolete()
122122
{
123123
Class = StatementClass.ConstructorReference;
124-
Arguments = new List<Expression>();
124+
Arguments = new List<ExpressionObsolete>();
125125
}
126126

127-
public List<Expression> Arguments { get; private set; }
127+
public List<ExpressionObsolete> Arguments { get; private set; }
128128

129-
public override T Visit<T>(IExpressionVisitor<T> visitor)
129+
public override T Visit<T>(IExpressionVisitorObsolete<T> visitor)
130130
{
131131
return visitor.VisitExpression(this);
132132
}
133133

134-
public override Expression Clone()
134+
public override ExpressionObsolete Clone()
135135
{
136-
var clone = new CXXConstructExpr
136+
var clone = new CXXConstructExprObsolete
137137
{
138138
DebugText = this.DebugText,
139139
Declaration = this.Declaration,
@@ -144,8 +144,8 @@ public override Expression Clone()
144144
}
145145
}
146146

147-
public interface IExpressionVisitor<out T>
147+
public interface IExpressionVisitorObsolete<out T>
148148
{
149-
T VisitExpression(Expression exp);
149+
T VisitExpression(ExpressionObsolete exp);
150150
}
151151
}

src/AST/Function.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public Parameter(Parameter p)
6363
public ParameterUsage Usage { get; set; }
6464
public bool HasDefaultValue { get; set; }
6565

66-
public Expression DefaultArgument
66+
public ExpressionObsolete DefaultArgument
6767
{
6868
get
6969
{
@@ -77,7 +77,7 @@ public Expression DefaultArgument
7777
}
7878
}
7979

80-
public Expression OriginalDefaultArgument { get; set; }
80+
public ExpressionObsolete OriginalDefaultArgument { get; set; }
8181

8282
public bool IsIn => Usage == ParameterUsage.In;
8383
public bool IsOut => Usage == ParameterUsage.Out;
@@ -100,7 +100,7 @@ public bool IsConst
100100
get { return DebugText.StartsWith("const ", System.StringComparison.Ordinal); }
101101
}
102102

103-
Expression defaultArgument;
103+
ExpressionObsolete defaultArgument;
104104
}
105105

106106
public class ParameterTypeComparer : IEqualityComparer<Parameter>

src/AST/IExpressionPrinter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ public interface IExpressionPrinter
55
string ToString(Type type);
66
}
77

8-
public interface IExpressionPrinter<out T> : IExpressionPrinter, IExpressionVisitor<T>
8+
public interface IExpressionPrinter<out T> : IExpressionPrinter, IExpressionVisitorObsolete<T>
99
{
1010
}
1111
}

src/AST/LayoutField.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class LayoutField
99
public string Name { get; set; }
1010
public IntPtr FieldPtr { get; set; }
1111
public bool IsVTablePtr { get { return FieldPtr == IntPtr.Zero; } }
12-
public Expression Expression { get; set; }
12+
public ExpressionObsolete Expression { get; set; }
1313

1414
public override string ToString()
1515
{

src/AST/Template.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public class NonTypeTemplateParameter : Declaration
9393
/// </summary>
9494
public bool IsParameterPack { get; set; }
9595

96-
public Expression DefaultArgument { get; set; }
96+
public ExpressionObsolete DefaultArgument { get; set; }
9797

9898
/// <summary>
9999
/// Get the position of the template parameter within its parameter list.

src/CppParser/Parser.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,7 +1365,7 @@ NonTypeTemplateParameter* Parser::WalkNonTypeTemplateParameter(const clang::NonT
13651365
NTP->name = GetDeclName(NTTPD);
13661366
HandleDeclaration(NTTPD, NTP);
13671367
if (NTTPD->hasDefaultArgument())
1368-
NTP->defaultArgument = WalkExpression(NTTPD->getDefaultArgument());
1368+
NTP->defaultArgument = WalkExpressionObsolete(NTTPD->getDefaultArgument());
13691369
NTP->depth = NTTPD->getDepth();
13701370
NTP->index = NTTPD->getIndex();
13711371
NTP->isParameterPack = NTTPD->isParameterPack();
@@ -2980,9 +2980,9 @@ Parameter* Parser::WalkParameter(const clang::ParmVarDecl* PVD,
29802980
if (PVD->hasDefaultArg() && !PVD->hasUnparsedDefaultArg())
29812981
{
29822982
if (PVD->hasUninstantiatedDefaultArg())
2983-
P->defaultArgument = WalkExpression(PVD->getUninstantiatedDefaultArg());
2983+
P->defaultArgument = WalkExpressionObsolete(PVD->getUninstantiatedDefaultArg());
29842984
else
2985-
P->defaultArgument = WalkExpression(PVD->getDefaultArg());
2985+
P->defaultArgument = WalkExpressionObsolete(PVD->getDefaultArg());
29862986
}
29872987
HandleDeclaration(PVD, P);
29882988
walkedParameters[PVD] = P;
@@ -3020,10 +3020,10 @@ static bool IsInvalid(clang::Stmt* Body, std::unordered_set<clang::Stmt*>& Bodie
30203020
switch (Body->getStmtClass())
30213021
{
30223022
case clang::Stmt::StmtClass::DeclRefExprClass:
3023-
D = cast<DeclRefExpr>(Body)->getDecl();
3023+
D = cast<clang::DeclRefExpr>(Body)->getDecl();
30243024
break;
30253025
case clang::Stmt::StmtClass::MemberExprClass:
3026-
D = cast<MemberExpr>(Body)->getMemberDecl();
3026+
D = cast<clang::MemberExpr>(Body)->getMemberDecl();
30273027
break;
30283028
}
30293029
if (D)
@@ -3512,7 +3512,7 @@ void Parser::HandlePreprocessedEntities(Declaration* Decl)
35123512
}
35133513
}
35143514

3515-
AST::ExpressionObsolete* Parser::WalkExpression(const clang::Expr* Expr)
3515+
AST::ExpressionObsolete* Parser::WalkExpressionObsolete(const clang::Expr* Expr)
35163516
{
35173517
using namespace clang;
35183518

@@ -3522,7 +3522,7 @@ AST::ExpressionObsolete* Parser::WalkExpression(const clang::Expr* Expr)
35223522
{
35233523
auto BinaryOperator = cast<clang::BinaryOperator>(Expr);
35243524
return new AST::BinaryOperatorObsolete(GetStringFromStatement(Expr),
3525-
WalkExpression(BinaryOperator->getLHS()), WalkExpression(BinaryOperator->getRHS()),
3525+
WalkExpressionObsolete(BinaryOperator->getLHS()), WalkExpressionObsolete(BinaryOperator->getRHS()),
35263526
BinaryOperator->getOpcodeStr().str());
35273527
}
35283528
case clang::Stmt::CallExprClass:
@@ -3532,24 +3532,24 @@ AST::ExpressionObsolete* Parser::WalkExpression(const clang::Expr* Expr)
35323532
CallExpr->getCalleeDecl() ? WalkDeclaration(CallExpr->getCalleeDecl()) : 0);
35333533
for (auto arg : CallExpr->arguments())
35343534
{
3535-
CallExpression->Arguments.push_back(WalkExpression(arg));
3535+
CallExpression->Arguments.push_back(WalkExpressionObsolete(arg));
35363536
}
35373537
return CallExpression;
35383538
}
35393539
case clang::Stmt::DeclRefExprClass:
35403540
return new AST::ExpressionObsolete(GetStringFromStatement(Expr), StatementClassObsolete::DeclRefExprClass,
3541-
WalkDeclaration(cast<DeclRefExpr>(Expr)->getDecl()));
3541+
WalkDeclaration(cast<clang::DeclRefExpr>(Expr)->getDecl()));
35423542
case clang::Stmt::CStyleCastExprClass:
35433543
case clang::Stmt::CXXConstCastExprClass:
35443544
case clang::Stmt::CXXDynamicCastExprClass:
35453545
case clang::Stmt::CXXFunctionalCastExprClass:
35463546
case clang::Stmt::CXXReinterpretCastExprClass:
35473547
case clang::Stmt::CXXStaticCastExprClass:
35483548
case clang::Stmt::ImplicitCastExprClass:
3549-
return WalkExpression(cast<CastExpr>(Expr)->getSubExprAsWritten());
3549+
return WalkExpressionObsolete(cast<clang::CastExpr>(Expr)->getSubExprAsWritten());
35503550
case clang::Stmt::CXXOperatorCallExprClass:
35513551
{
3552-
auto OperatorCallExpr = cast<CXXOperatorCallExpr>(Expr);
3552+
auto OperatorCallExpr = cast<clang::CXXOperatorCallExpr>(Expr);
35533553
return new AST::ExpressionObsolete(GetStringFromStatement(Expr), StatementClassObsolete::CXXOperatorCallExpr,
35543554
OperatorCallExpr->getCalleeDecl() ? WalkDeclaration(OperatorCallExpr->getCalleeDecl()) : 0);
35553555
}
@@ -3564,11 +3564,11 @@ AST::ExpressionObsolete* Parser::WalkExpression(const clang::Expr* Expr)
35643564
if (TemporaryExpr)
35653565
{
35663566
auto SubTemporaryExpr = TemporaryExpr->GetTemporaryExpr();
3567-
auto Cast = dyn_cast<CastExpr>(SubTemporaryExpr);
3567+
auto Cast = dyn_cast<clang::CastExpr>(SubTemporaryExpr);
35683568
if (!Cast ||
35693569
(Cast->getSubExprAsWritten()->getStmtClass() != clang::Stmt::IntegerLiteralClass &&
35703570
Cast->getSubExprAsWritten()->getStmtClass() != clang::Stmt::CXXNullPtrLiteralExprClass))
3571-
return WalkExpression(SubTemporaryExpr);
3571+
return WalkExpressionObsolete(SubTemporaryExpr);
35723572
return new AST::CXXConstructExprObsolete(GetStringFromStatement(Expr),
35733573
WalkDeclaration(ConstructorExpr->getConstructor()));
35743574
}
@@ -3577,16 +3577,16 @@ AST::ExpressionObsolete* Parser::WalkExpression(const clang::Expr* Expr)
35773577
WalkDeclaration(ConstructorExpr->getConstructor()));
35783578
for (auto arg : ConstructorExpr->arguments())
35793579
{
3580-
ConstructorExpression->Arguments.push_back(WalkExpression(arg));
3580+
ConstructorExpression->Arguments.push_back(WalkExpressionObsolete(arg));
35813581
}
35823582
return ConstructorExpression;
35833583
}
35843584
case clang::Stmt::CXXBindTemporaryExprClass:
3585-
return WalkExpression(cast<CXXBindTemporaryExpr>(Expr)->getSubExpr());
3585+
return WalkExpressionObsolete(cast<clang::CXXBindTemporaryExpr>(Expr)->getSubExpr());
35863586
case clang::Stmt::CXXDefaultArgExprClass:
3587-
return WalkExpression(cast<CXXDefaultArgExpr>(Expr)->getExpr());
3587+
return WalkExpressionObsolete(cast<clang::CXXDefaultArgExpr>(Expr)->getExpr());
35883588
case clang::Stmt::MaterializeTemporaryExprClass:
3589-
return WalkExpression(cast<MaterializeTemporaryExpr>(Expr)->GetTemporaryExpr());
3589+
return WalkExpressionObsolete(cast<clang::MaterializeTemporaryExpr>(Expr)->GetTemporaryExpr());
35903590
default:
35913591
break;
35923592
}

src/CppParser/Parser.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class Parser
118118
VTableComponent WalkVTableComponent(const clang::VTableComponent& Component);
119119
PreprocessedEntity* WalkPreprocessedEntity(Declaration* Decl,
120120
clang::PreprocessedEntity* PPEntity);
121-
AST::ExpressionObsolete* WalkExpression(const clang::Expr* Expression);
121+
AST::ExpressionObsolete* WalkExpressionObsolete(const clang::Expr* Expression);
122122
std::string GetStringFromStatement(const clang::Stmt* Statement);
123123
std::string GetFunctionBody(const clang::FunctionDecl* FD);
124124

src/Generator/Generators/CSharp/CSharpExpressionPrinter.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace CppSharp.Generators.CSharp
88
{
99
public static class CSharpExpressionPrinterExtensions
1010
{
11-
public static string CSharpValue(this Expression value, CSharpExpressionPrinter printer)
11+
public static string CSharpValue(this ExpressionObsolete value, CSharpExpressionPrinter printer)
1212
{
1313
return value.Visit(printer);
1414
}
@@ -37,12 +37,12 @@ public string VisitParameter(Parameter parameter)
3737
return expression;
3838
}
3939

40-
public string VisitExpression(Expression expr)
40+
public string VisitExpression(ExpressionObsolete expr)
4141
{
4242
switch (expr.Class)
4343
{
4444
case StatementClass.Call:
45-
var callExpr = (CallExpr) expr;
45+
var callExpr = (CallExprObsolete) expr;
4646
switch (callExpr.Declaration.GenerationKind)
4747
{
4848
case GenerationKind.Generate:
@@ -65,7 +65,7 @@ public string VisitExpression(Expression expr)
6565
return expr.Declaration.Visit(typePrinter).Type;
6666
goto default;
6767
case StatementClass.BinaryOperator:
68-
var binaryOperator = (BinaryOperator) expr;
68+
var binaryOperator = (BinaryOperatorObsolete) expr;
6969

7070
var lhsResult = binaryOperator.LHS.String;
7171
if (binaryOperator.LHS.Declaration is Enumeration.Item)
@@ -77,7 +77,7 @@ public string VisitExpression(Expression expr)
7777

7878
return $"{lhsResult} {binaryOperator.OpcodeStr} {rhsResult}";
7979
case StatementClass.ConstructorReference:
80-
var constructorExpr = (CXXConstructExpr) expr;
80+
var constructorExpr = (CXXConstructExprObsolete) expr;
8181
if (constructorExpr.Arguments.Count == 1 &&
8282
constructorExpr.Arguments[0].Declaration is Enumeration.Item)
8383
return constructorExpr.Arguments[0].Declaration.Visit(typePrinter).Type;

0 commit comments

Comments
 (0)