mirror of https://github.com/mono/CppSharp.git
c-sharpdotnetmonobindingsbridgecclangcpluspluscppsharpglueinteropparserparsingpinvokeswigsyntax-treevisitorsxamarinxamarin-bindings
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2083 lines
60 KiB
2083 lines
60 KiB
// ---------------------------------------------------------------------------- |
|
// <auto-generated> |
|
// This is autogenerated code by CppSharp. |
|
// Do not edit this file or all your changes will be lost after re-generation. |
|
// </auto-generated> |
|
// ---------------------------------------------------------------------------- |
|
|
|
using System; |
|
using System.Collections.Generic; |
|
|
|
namespace CppSharp.AST |
|
{ |
|
public enum CastKind |
|
{ |
|
Dependent = 0, |
|
BitCast = 1, |
|
LValueBitCast = 2, |
|
LValueToRValue = 3, |
|
NoOp = 4, |
|
BaseToDerived = 5, |
|
DerivedToBase = 6, |
|
UncheckedDerivedToBase = 7, |
|
Dynamic = 8, |
|
ToUnion = 9, |
|
ArrayToPointerDecay = 10, |
|
FunctionToPointerDecay = 11, |
|
NullToPointer = 12, |
|
NullToMemberPointer = 13, |
|
BaseToDerivedMemberPointer = 14, |
|
DerivedToBaseMemberPointer = 15, |
|
MemberPointerToBoolean = 16, |
|
ReinterpretMemberPointer = 17, |
|
UserDefinedConversion = 18, |
|
ConstructorConversion = 19, |
|
IntegralToPointer = 20, |
|
PointerToIntegral = 21, |
|
PointerToBoolean = 22, |
|
ToVoid = 23, |
|
VectorSplat = 24, |
|
IntegralCast = 25, |
|
IntegralToBoolean = 26, |
|
IntegralToFloating = 27, |
|
FixedPointCast = 28, |
|
FixedPointToBoolean = 29, |
|
FloatingToIntegral = 30, |
|
FloatingToBoolean = 31, |
|
BooleanToSignedIntegral = 32, |
|
FloatingCast = 33, |
|
CPointerToObjCPointerCast = 34, |
|
BlockPointerToObjCPointerCast = 35, |
|
AnyPointerToBlockPointerCast = 36, |
|
ObjCObjectLValueCast = 37, |
|
FloatingRealToComplex = 38, |
|
FloatingComplexToReal = 39, |
|
FloatingComplexToBoolean = 40, |
|
FloatingComplexCast = 41, |
|
FloatingComplexToIntegralComplex = 42, |
|
IntegralRealToComplex = 43, |
|
IntegralComplexToReal = 44, |
|
IntegralComplexToBoolean = 45, |
|
IntegralComplexCast = 46, |
|
IntegralComplexToFloatingComplex = 47, |
|
ARCProduceObject = 48, |
|
ARCConsumeObject = 49, |
|
ARCReclaimReturnedObject = 50, |
|
ARCExtendBlockObject = 51, |
|
AtomicToNonAtomic = 52, |
|
NonAtomicToAtomic = 53, |
|
CopyAndAutoreleaseBlockObject = 54, |
|
BuiltinFnToFnPtr = 55, |
|
ZeroToOCLOpaqueType = 56, |
|
AddressSpaceConversion = 57, |
|
IntToOCLSampler = 58 |
|
} |
|
|
|
public enum BinaryOperatorKind |
|
{ |
|
PtrMemD = 0, |
|
PtrMemI = 1, |
|
Mul = 2, |
|
Div = 3, |
|
Rem = 4, |
|
Add = 5, |
|
Sub = 6, |
|
Shl = 7, |
|
Shr = 8, |
|
Cmp = 9, |
|
LT = 10, |
|
GT = 11, |
|
LE = 12, |
|
GE = 13, |
|
EQ = 14, |
|
NE = 15, |
|
And = 16, |
|
Xor = 17, |
|
Or = 18, |
|
LAnd = 19, |
|
LOr = 20, |
|
Assign = 21, |
|
MulAssign = 22, |
|
DivAssign = 23, |
|
RemAssign = 24, |
|
AddAssign = 25, |
|
SubAssign = 26, |
|
ShlAssign = 27, |
|
ShrAssign = 28, |
|
AndAssign = 29, |
|
XorAssign = 30, |
|
OrAssign = 31, |
|
Comma = 32 |
|
} |
|
|
|
public enum UnaryOperatorKind |
|
{ |
|
PostInc = 0, |
|
PostDec = 1, |
|
PreInc = 2, |
|
PreDec = 3, |
|
AddrOf = 4, |
|
Deref = 5, |
|
Plus = 6, |
|
Minus = 7, |
|
Not = 8, |
|
LNot = 9, |
|
Real = 10, |
|
Imag = 11, |
|
Extension = 12, |
|
Coawait = 13 |
|
} |
|
|
|
public enum ObjCBridgeCastKind |
|
{ |
|
/// <summary> |
|
/// <para>Bridging via __bridge, which does nothing but reinterpret</para> |
|
/// <para>the bits.</para> |
|
/// </summary> |
|
Bridge = 0, |
|
/// <summary> |
|
/// <para>Bridging via __bridge_transfer, which transfers ownership of an</para> |
|
/// <para>Objective-C pointer into ARC.</para> |
|
/// </summary> |
|
BridgeTransfer = 1, |
|
/// <summary> |
|
/// <para>Bridging via __bridge_retain, which makes an ARC object available</para> |
|
/// <para>as a +1 C pointer.</para> |
|
/// </summary> |
|
BridgeRetained = 2 |
|
} |
|
|
|
public enum OverloadedOperatorKind |
|
{ |
|
/// <summary>Not an overloaded operator</summary> |
|
None = 0, |
|
New = 1, |
|
Delete = 2, |
|
ArrayNew = 3, |
|
ArrayDelete = 4, |
|
Plus = 5, |
|
Minus = 6, |
|
Star = 7, |
|
Slash = 8, |
|
Percent = 9, |
|
Caret = 10, |
|
Amp = 11, |
|
Pipe = 12, |
|
Tilde = 13, |
|
Exclaim = 14, |
|
Equal = 15, |
|
Less = 16, |
|
Greater = 17, |
|
PlusEqual = 18, |
|
MinusEqual = 19, |
|
StarEqual = 20, |
|
SlashEqual = 21, |
|
PercentEqual = 22, |
|
CaretEqual = 23, |
|
AmpEqual = 24, |
|
PipeEqual = 25, |
|
LessLess = 26, |
|
GreaterGreater = 27, |
|
LessLessEqual = 28, |
|
GreaterGreaterEqual = 29, |
|
EqualEqual = 30, |
|
ExclaimEqual = 31, |
|
LessEqual = 32, |
|
GreaterEqual = 33, |
|
Spaceship = 34, |
|
AmpAmp = 35, |
|
PipePipe = 36, |
|
PlusPlus = 37, |
|
MinusMinus = 38, |
|
Comma = 39, |
|
ArrowStar = 40, |
|
Arrow = 41, |
|
Call = 42, |
|
Subscript = 43, |
|
Conditional = 44, |
|
Coawait = 45, |
|
} |
|
|
|
public enum UnaryExprOrTypeTrait |
|
{ |
|
SizeOf = 0, |
|
/// <summary> |
|
/// <para>Used for C's _Alignof and C++'s alignof.</para> |
|
/// <para>_Alignof and alignof return the required ABI alignment.</para> |
|
/// </summary> |
|
AlignOf = 1, |
|
/// <summary> |
|
/// <para>Used for C's _Alignof and C++'s alignof.</para> |
|
/// <para>_Alignof and alignof return the required ABI alignment.</para> |
|
/// </summary> |
|
VecStep = 2, |
|
/// <summary> |
|
/// <para>Used for C's _Alignof and C++'s alignof.</para> |
|
/// <para>_Alignof and alignof return the required ABI alignment.</para> |
|
/// </summary> |
|
OpenMPRequiredSimdAlign = 3, |
|
/// <summary> |
|
/// <para>Used for GCC's __alignof.</para> |
|
/// <para>__alignof returns the preferred alignment of a type, the alignment</para> |
|
/// <para>clang will attempt to give an object of the type if allowed by ABI.</para> |
|
/// </summary> |
|
PreferredAlignOf = 4 |
|
} |
|
|
|
public abstract partial class Expr : Stmt |
|
{ |
|
public enum LValueClassification |
|
{ |
|
Valid = 0, |
|
NotObjectType = 1, |
|
IncompleteVoidType = 2, |
|
DuplicateVectorComponents = 3, |
|
InvalidExpression = 4, |
|
InvalidMessageExpression = 5, |
|
MemberFunction = 6, |
|
SubObjCPropertySetting = 7, |
|
ClassTemporary = 8, |
|
ArrayTemporary = 9 |
|
} |
|
|
|
public enum isModifiableLvalueResult |
|
{ |
|
Valid = 0, |
|
NotObjectType = 1, |
|
IncompleteVoidType = 2, |
|
DuplicateVectorComponents = 3, |
|
InvalidExpression = 4, |
|
LValueCast = 5, |
|
IncompleteType = 6, |
|
ConstQualified = 7, |
|
ConstQualifiedField = 8, |
|
ConstAddrSpace = 9, |
|
ArrayType = 10, |
|
NoSetterProperty = 11, |
|
MemberFunction = 12, |
|
SubObjCPropertySetting = 13, |
|
InvalidMessageExpression = 14, |
|
ClassTemporary = 15, |
|
ArrayTemporary = 16 |
|
} |
|
|
|
public enum SideEffectsKind |
|
{ |
|
/// <summary>Strictly evaluate the expression.</summary> |
|
NoSideEffects = 0, |
|
/// <summary> |
|
/// <para>Allow UB that we can give a value, but not</para> |
|
/// <para>arbitrary unmodeled side effects.</para> |
|
/// </summary> |
|
AllowUndefinedBehavior = 1, |
|
/// <summary>Allow any unmodeled side effect.</summary> |
|
AllowSideEffects = 2 |
|
} |
|
|
|
public enum ConstExprUsage |
|
{ |
|
EvaluateForCodeGen = 0, |
|
EvaluateForMangling = 1 |
|
} |
|
|
|
public enum NullPointerConstantKind |
|
{ |
|
/// <summary>Expression is not a Null pointer constant.</summary> |
|
NotNull = 0, |
|
/// <summary> |
|
/// <para>Expression is a Null pointer constant built from a zero integer</para> |
|
/// <para>expression that is not a simple, possibly parenthesized, zero literal.</para> |
|
/// <para>C++ Core Issue 903 will classify these expressions as "not pointers"</para> |
|
/// <para>once it is adopted.</para> |
|
/// <para>http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#903</para> |
|
/// </summary> |
|
ZeroExpression = 1, |
|
/// <summary>Expression is a Null pointer constant built from a literal zero.</summary> |
|
ZeroLiteral = 2, |
|
/// <summary>Expression is a C++11 nullptr.</summary> |
|
CXX11_nullptr = 3, |
|
/// <summary>Expression is a GNU-style __null constant.</summary> |
|
GNUNull = 4 |
|
} |
|
|
|
public enum NullPointerConstantValueDependence |
|
{ |
|
/// <summary>Specifies that the expression should never be value-dependent.</summary> |
|
NeverValueDependent = 0, |
|
/// <summary> |
|
/// <para>Specifies that a value-dependent expression of integral or</para> |
|
/// <para>dependent type should be considered a null pointer constant.</para> |
|
/// </summary> |
|
ValueDependentIsNull = 1, |
|
/// <summary> |
|
/// <para>Specifies that a value-dependent expression should be considered</para> |
|
/// <para>to never be a null pointer constant.</para> |
|
/// </summary> |
|
ValueDependentIsNotNull = 2 |
|
} |
|
|
|
public partial class Classification |
|
{ |
|
public enum Kinds |
|
{ |
|
LValue = 0, |
|
XValue = 1, |
|
Function = 2, |
|
Void = 3, |
|
AddressableVoid = 4, |
|
DuplicateVectorComponents = 5, |
|
MemberFunction = 6, |
|
SubObjCPropertySetting = 7, |
|
ClassTemporary = 8, |
|
ArrayTemporary = 9, |
|
ObjCMessageRValue = 10, |
|
PRValue = 11 |
|
} |
|
|
|
public enum ModifiableType |
|
{ |
|
Untested = 0, |
|
Modifiable = 1, |
|
RValue = 2, |
|
Function = 3, |
|
LValueCast = 4, |
|
NoSetterProperty = 5, |
|
ConstQualified = 6, |
|
ConstQualifiedField = 7, |
|
ConstAddrSpace = 8, |
|
ArrayType = 9, |
|
IncompleteType = 10 |
|
} |
|
|
|
public Classification() |
|
{ |
|
} |
|
|
|
public Expr.Classification.Kinds Kind { get; set; } |
|
public Expr.Classification.ModifiableType Modifiable { get; set; } |
|
public bool IsLValue { get; set; } |
|
public bool IsXValue { get; set; } |
|
public bool IsGLValue { get; set; } |
|
public bool IsPRValue { get; set; } |
|
public bool IsRValue { get; set; } |
|
public bool IsModifiable { get; set; } |
|
} |
|
|
|
public Expr() |
|
{ |
|
} |
|
|
|
public QualifiedType Type { get; set; } |
|
public bool ValueDependent { get; set; } |
|
public bool TypeDependent { get; set; } |
|
public bool InstantiationDependent { get; set; } |
|
public bool ContainsUnexpandedParameterPack { get; set; } |
|
public SourceLocation ExprLoc { get; set; } |
|
public bool IsLValue { get; set; } |
|
public bool IsRValue { get; set; } |
|
public bool IsXValue { get; set; } |
|
public bool IsGLValue { get; set; } |
|
public bool IsOrdinaryOrBitFieldObject { get; set; } |
|
public Field SourceBitField { get; set; } |
|
public Declaration ReferencedDeclOfCallee { get; set; } |
|
public bool HasPlaceholderType { get; set; } |
|
} |
|
|
|
public abstract partial class FullExpr : Expr |
|
{ |
|
public FullExpr() |
|
{ |
|
} |
|
|
|
public Expr SubExpr { get; set; } |
|
} |
|
|
|
public partial class ConstantExpr : FullExpr |
|
{ |
|
public ConstantExpr() |
|
{ |
|
} |
|
|
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitConstantExpr(this); |
|
} |
|
|
|
public partial class OpaqueValueExpr : Expr |
|
{ |
|
public OpaqueValueExpr() |
|
{ |
|
} |
|
|
|
public bool IsUnique { get; set; } |
|
public SourceLocation Location { get; set; } |
|
public Expr SourceExpr { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitOpaqueValueExpr(this); |
|
} |
|
|
|
public partial class DeclRefExpr : Expr |
|
{ |
|
public DeclRefExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation Location { get; set; } |
|
public bool HadMultipleCandidates { get; set; } |
|
public bool HasQualifier { get; set; } |
|
public Declaration FoundDecl { get; set; } |
|
public bool HasTemplateKWAndArgsInfo { get; set; } |
|
public SourceLocation TemplateKeywordLoc { get; set; } |
|
public SourceLocation LAngleLoc { get; set; } |
|
public SourceLocation RAngleLoc { get; set; } |
|
public bool HasTemplateKeyword { get; set; } |
|
public bool HasExplicitTemplateArgs { get; set; } |
|
public uint NumTemplateArgs { get; set; } |
|
public bool RefersToEnclosingVariableOrCapture { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitDeclRefExpr(this); |
|
} |
|
|
|
public partial class IntegerLiteral : Expr |
|
{ |
|
public IntegerLiteral() |
|
{ |
|
} |
|
|
|
public SourceLocation Location { get; set; } |
|
public ulong Value { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitIntegerLiteral(this); |
|
} |
|
|
|
public partial class FixedPointLiteral : Expr |
|
{ |
|
public FixedPointLiteral() |
|
{ |
|
} |
|
|
|
public SourceLocation Location { get; set; } |
|
public ulong Value { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitFixedPointLiteral(this); |
|
} |
|
|
|
public partial class CharacterLiteral : Expr |
|
{ |
|
public enum CharacterKind |
|
{ |
|
Ascii = 0, |
|
Wide = 1, |
|
UTF8 = 2, |
|
UTF16 = 3, |
|
UTF32 = 4 |
|
} |
|
|
|
public CharacterLiteral() |
|
{ |
|
} |
|
|
|
public SourceLocation Location { get; set; } |
|
public CharacterLiteral.CharacterKind Kind { get; set; } |
|
public uint Value { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCharacterLiteral(this); |
|
} |
|
|
|
public partial class FloatingLiteral : Expr |
|
{ |
|
public FloatingLiteral() |
|
{ |
|
} |
|
|
|
public bool Exact { get; set; } |
|
public SourceLocation Location { get; set; } |
|
public double ValueAsApproximateDouble { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitFloatingLiteral(this); |
|
} |
|
|
|
public partial class ImaginaryLiteral : Expr |
|
{ |
|
public ImaginaryLiteral() |
|
{ |
|
} |
|
|
|
public Expr SubExpr { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitImaginaryLiteral(this); |
|
} |
|
|
|
public partial class StringLiteral : Expr |
|
{ |
|
public enum StringKind |
|
{ |
|
Ascii = 0, |
|
Wide = 1, |
|
UTF8 = 2, |
|
UTF16 = 3, |
|
UTF32 = 4 |
|
} |
|
|
|
public StringLiteral() |
|
{ |
|
} |
|
|
|
public string String { get; set; } |
|
public string Bytes { get; set; } |
|
public uint ByteLength { get; set; } |
|
public uint Length { get; set; } |
|
public uint CharByteWidth { get; set; } |
|
public StringLiteral.StringKind Kind { get; set; } |
|
public bool IsAscii { get; set; } |
|
public bool IsWide { get; set; } |
|
public bool IsUTF8 { get; set; } |
|
public bool IsUTF16 { get; set; } |
|
public bool IsUTF32 { get; set; } |
|
public bool IsPascal { get; set; } |
|
public bool ContainsNonAscii { get; set; } |
|
public bool ContainsNonAsciiOrNull { get; set; } |
|
public uint NumConcatenated { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitStringLiteral(this); |
|
} |
|
|
|
public partial class PredefinedExpr : Expr |
|
{ |
|
public enum IdentKind |
|
{ |
|
Func = 0, |
|
Function = 1, |
|
LFunction = 2, |
|
FuncDName = 3, |
|
FuncSig = 4, |
|
LFuncSig = 5, |
|
PrettyFunction = 6, |
|
/// <summary> |
|
/// <para>The same as PrettyFunction, except that the</para> |
|
/// <para>'virtual' keyword is omitted for virtual member functions.</para> |
|
/// </summary> |
|
PrettyFunctionNoVirtual = 7 |
|
} |
|
|
|
public PredefinedExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation Location { get; set; } |
|
public PredefinedExpr.IdentKind identKind { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitPredefinedExpr(this); |
|
} |
|
|
|
public partial class ParenExpr : Expr |
|
{ |
|
public ParenExpr() |
|
{ |
|
} |
|
|
|
public Expr SubExpr { get; set; } |
|
public SourceLocation LParen { get; set; } |
|
public SourceLocation RParen { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitParenExpr(this); |
|
} |
|
|
|
public partial class UnaryOperator : Expr |
|
{ |
|
public UnaryOperator() |
|
{ |
|
} |
|
|
|
public UnaryOperatorKind Opcode { get; set; } |
|
public Expr SubExpr { get; set; } |
|
public SourceLocation OperatorLoc { get; set; } |
|
public bool CanOverflow { get; set; } |
|
public bool IsPrefix { get; set; } |
|
public bool IsPostfix { get; set; } |
|
public bool IsIncrementOp { get; set; } |
|
public bool IsDecrementOp { get; set; } |
|
public bool IsIncrementDecrementOp { get; set; } |
|
public bool IsArithmeticOp { get; set; } |
|
public bool IsFPContractableWithinStatement { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitUnaryOperator(this); |
|
} |
|
|
|
public partial class OffsetOfExpr : Expr |
|
{ |
|
public OffsetOfExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation OperatorLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public uint NumComponents { get; set; } |
|
public uint NumExpressions { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitOffsetOfExpr(this); |
|
} |
|
|
|
public partial class UnaryExprOrTypeTraitExpr : Expr |
|
{ |
|
public UnaryExprOrTypeTraitExpr() |
|
{ |
|
} |
|
|
|
public UnaryExprOrTypeTrait Kind { get; set; } |
|
public SourceLocation OperatorLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public bool IsArgumentType { get; set; } |
|
public QualifiedType ArgumentType { get; set; } |
|
public Expr ArgumentExpr { get; set; } |
|
public QualifiedType TypeOfArgument { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitUnaryExprOrTypeTraitExpr(this); |
|
} |
|
|
|
public partial class ArraySubscriptExpr : Expr |
|
{ |
|
public ArraySubscriptExpr() |
|
{ |
|
} |
|
|
|
public Expr LHS { get; set; } |
|
public Expr RHS { get; set; } |
|
public SourceLocation RBracketLoc { get; set; } |
|
public Expr Base { get; set; } |
|
public Expr Idx { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitArraySubscriptExpr(this); |
|
} |
|
|
|
public partial class CallExpr : Expr |
|
{ |
|
public CallExpr() |
|
{ |
|
} |
|
|
|
public List<Expr> Arguments { get; private set; } = new List<Expr>(); |
|
public Expr Callee { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public Declaration CalleeDecl { get; set; } |
|
public Function DirectCallee { get; set; } |
|
public uint NumArgs { get; set; } |
|
public uint NumCommas { get; set; } |
|
public uint BuiltinCallee { get; set; } |
|
public bool IsCallToStdMove { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCallExpr(this); |
|
} |
|
|
|
public partial class MemberExpr : Expr |
|
{ |
|
public MemberExpr() |
|
{ |
|
} |
|
|
|
public Expr Base { get; set; } |
|
public bool Arrow { get; set; } |
|
public SourceLocation MemberLoc { get; set; } |
|
public bool HadMultipleCandidates { get; set; } |
|
public bool HasQualifier { get; set; } |
|
public SourceLocation TemplateKeywordLoc { get; set; } |
|
public SourceLocation LAngleLoc { get; set; } |
|
public SourceLocation RAngleLoc { get; set; } |
|
public bool HasTemplateKeyword { get; set; } |
|
public bool HasExplicitTemplateArgs { get; set; } |
|
public uint NumTemplateArgs { get; set; } |
|
public SourceLocation OperatorLoc { get; set; } |
|
public bool IsImplicitAccess { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitMemberExpr(this); |
|
} |
|
|
|
public partial class CompoundLiteralExpr : Expr |
|
{ |
|
public CompoundLiteralExpr() |
|
{ |
|
} |
|
|
|
public Expr Initializer { get; set; } |
|
public bool FileScope { get; set; } |
|
public SourceLocation LParenLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCompoundLiteralExpr(this); |
|
} |
|
|
|
public abstract partial class CastExpr : Expr |
|
{ |
|
public CastExpr() |
|
{ |
|
} |
|
|
|
public CastKind CastKind { get; set; } |
|
public Expr SubExpr { get; set; } |
|
public string CastKindName { get; set; } |
|
public Expr SubExprAsWritten { get; set; } |
|
public Declaration ConversionFunction { get; set; } |
|
public bool PathEmpty { get; set; } |
|
public uint PathSize { get; set; } |
|
} |
|
|
|
public partial class ImplicitCastExpr : CastExpr |
|
{ |
|
public enum OnStack_t |
|
{ |
|
OnStack = 0 |
|
} |
|
|
|
public ImplicitCastExpr() |
|
{ |
|
} |
|
|
|
public bool IsPartOfExplicitCast { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitImplicitCastExpr(this); |
|
} |
|
|
|
public abstract partial class ExplicitCastExpr : CastExpr |
|
{ |
|
public ExplicitCastExpr() |
|
{ |
|
} |
|
|
|
public QualifiedType TypeAsWritten { get; set; } |
|
} |
|
|
|
public partial class CStyleCastExpr : ExplicitCastExpr |
|
{ |
|
public CStyleCastExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation LParenLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCStyleCastExpr(this); |
|
} |
|
|
|
public partial class BinaryOperator : Expr |
|
{ |
|
public BinaryOperator() |
|
{ |
|
} |
|
|
|
public SourceLocation OperatorLoc { get; set; } |
|
public BinaryOperatorKind Opcode { get; set; } |
|
public Expr LHS { get; set; } |
|
public Expr RHS { get; set; } |
|
public string OpcodeStr { get; set; } |
|
public bool IsPtrMemOp { get; set; } |
|
public bool IsMultiplicativeOp { get; set; } |
|
public bool IsAdditiveOp { get; set; } |
|
public bool IsShiftOp { get; set; } |
|
public bool IsBitwiseOp { get; set; } |
|
public bool IsRelationalOp { get; set; } |
|
public bool IsEqualityOp { get; set; } |
|
public bool IsComparisonOp { get; set; } |
|
public bool IsLogicalOp { get; set; } |
|
public bool IsAssignmentOp { get; set; } |
|
public bool IsCompoundAssignmentOp { get; set; } |
|
public bool IsShiftAssignOp { get; set; } |
|
public bool IsFPContractableWithinStatement { get; set; } |
|
public bool IsFEnvAccessOn { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitBinaryOperator(this); |
|
} |
|
|
|
public partial class CompoundAssignOperator : BinaryOperator |
|
{ |
|
public CompoundAssignOperator() |
|
{ |
|
} |
|
|
|
public QualifiedType ComputationLHSType { get; set; } |
|
public QualifiedType ComputationResultType { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCompoundAssignOperator(this); |
|
} |
|
|
|
public abstract partial class AbstractConditionalOperator : Expr |
|
{ |
|
public AbstractConditionalOperator() |
|
{ |
|
} |
|
|
|
public Expr Cond { get; set; } |
|
public Expr TrueExpr { get; set; } |
|
public Expr FalseExpr { get; set; } |
|
public SourceLocation QuestionLoc { get; set; } |
|
public SourceLocation ColonLoc { get; set; } |
|
} |
|
|
|
public partial class ConditionalOperator : AbstractConditionalOperator |
|
{ |
|
public ConditionalOperator() |
|
{ |
|
} |
|
|
|
public Expr LHS { get; set; } |
|
public Expr RHS { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitConditionalOperator(this); |
|
} |
|
|
|
public partial class BinaryConditionalOperator : AbstractConditionalOperator |
|
{ |
|
public BinaryConditionalOperator() |
|
{ |
|
} |
|
|
|
public Expr Common { get; set; } |
|
public OpaqueValueExpr OpaqueValue { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitBinaryConditionalOperator(this); |
|
} |
|
|
|
public partial class AddrLabelExpr : Expr |
|
{ |
|
public AddrLabelExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation AmpAmpLoc { get; set; } |
|
public SourceLocation LabelLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitAddrLabelExpr(this); |
|
} |
|
|
|
public partial class StmtExpr : Expr |
|
{ |
|
public StmtExpr() |
|
{ |
|
} |
|
|
|
public CompoundStmt SubStmt { get; set; } |
|
public SourceLocation LParenLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitStmtExpr(this); |
|
} |
|
|
|
public partial class ShuffleVectorExpr : Expr |
|
{ |
|
public ShuffleVectorExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation BuiltinLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public uint NumSubExprs { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitShuffleVectorExpr(this); |
|
} |
|
|
|
public partial class ConvertVectorExpr : Expr |
|
{ |
|
public ConvertVectorExpr() |
|
{ |
|
} |
|
|
|
public Expr SrcExpr { get; set; } |
|
public SourceLocation BuiltinLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitConvertVectorExpr(this); |
|
} |
|
|
|
public partial class ChooseExpr : Expr |
|
{ |
|
public ChooseExpr() |
|
{ |
|
} |
|
|
|
public bool IsConditionTrue { get; set; } |
|
public Expr Cond { get; set; } |
|
public Expr LHS { get; set; } |
|
public Expr RHS { get; set; } |
|
public SourceLocation BuiltinLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public bool IsConditionDependent { get; set; } |
|
public Expr ChosenSubExpr { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitChooseExpr(this); |
|
} |
|
|
|
public partial class GNUNullExpr : Expr |
|
{ |
|
public GNUNullExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation TokenLocation { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitGNUNullExpr(this); |
|
} |
|
|
|
public partial class VAArgExpr : Expr |
|
{ |
|
public VAArgExpr() |
|
{ |
|
} |
|
|
|
public Expr SubExpr { get; set; } |
|
public bool IsMicrosoftABI { get; set; } |
|
public SourceLocation BuiltinLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitVAArgExpr(this); |
|
} |
|
|
|
public partial class InitListExpr : Expr |
|
{ |
|
public InitListExpr() |
|
{ |
|
} |
|
|
|
public Expr ArrayFiller { get; set; } |
|
public SourceLocation LBraceLoc { get; set; } |
|
public SourceLocation RBraceLoc { get; set; } |
|
public InitListExpr SyntacticForm { get; set; } |
|
public uint NumInits { get; set; } |
|
public bool HasArrayFiller { get; set; } |
|
public bool IsExplicit { get; set; } |
|
public bool IsStringLiteralInit { get; set; } |
|
public bool IsTransparent { get; set; } |
|
public bool IsSemanticForm { get; set; } |
|
public InitListExpr SemanticForm { get; set; } |
|
public bool IsSyntacticForm { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitInitListExpr(this); |
|
} |
|
|
|
public partial class DesignatedInitExpr : Expr |
|
{ |
|
public partial class Designator |
|
{ |
|
public Designator() |
|
{ |
|
} |
|
|
|
public Field Field { get; set; } |
|
public bool IsFieldDesignator { get; set; } |
|
public bool IsArrayDesignator { get; set; } |
|
public bool IsArrayRangeDesignator { get; set; } |
|
public SourceLocation DotLoc { get; set; } |
|
public SourceLocation FieldLoc { get; set; } |
|
public SourceLocation LBracketLoc { get; set; } |
|
public SourceLocation RBracketLoc { get; set; } |
|
public SourceLocation EllipsisLoc { get; set; } |
|
public uint FirstExprIndex { get; set; } |
|
public SourceRange SourceRange { get; set; } |
|
} |
|
public partial class FieldDesignator |
|
{ |
|
public FieldDesignator() |
|
{ |
|
} |
|
|
|
} |
|
public partial class ArrayOrRangeDesignator |
|
{ |
|
public ArrayOrRangeDesignator() |
|
{ |
|
} |
|
|
|
} |
|
|
|
public DesignatedInitExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation EqualOrColonLoc { get; set; } |
|
public Expr Init { get; set; } |
|
public uint Size { get; set; } |
|
public bool UsesGNUSyntax { get; set; } |
|
public uint NumSubExprs { get; set; } |
|
public SourceRange DesignatorsSourceRange { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitDesignatedInitExpr(this); |
|
} |
|
|
|
public partial class NoInitExpr : Expr |
|
{ |
|
public NoInitExpr() |
|
{ |
|
} |
|
|
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitNoInitExpr(this); |
|
} |
|
|
|
public partial class DesignatedInitUpdateExpr : Expr |
|
{ |
|
public DesignatedInitUpdateExpr() |
|
{ |
|
} |
|
|
|
public Expr Base { get; set; } |
|
public InitListExpr Updater { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitDesignatedInitUpdateExpr(this); |
|
} |
|
|
|
public partial class ArrayInitLoopExpr : Expr |
|
{ |
|
public ArrayInitLoopExpr() |
|
{ |
|
} |
|
|
|
public OpaqueValueExpr CommonExpr { get; set; } |
|
public Expr SubExpr { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitArrayInitLoopExpr(this); |
|
} |
|
|
|
public partial class ArrayInitIndexExpr : Expr |
|
{ |
|
public ArrayInitIndexExpr() |
|
{ |
|
} |
|
|
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitArrayInitIndexExpr(this); |
|
} |
|
|
|
public partial class ImplicitValueInitExpr : Expr |
|
{ |
|
public ImplicitValueInitExpr() |
|
{ |
|
} |
|
|
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitImplicitValueInitExpr(this); |
|
} |
|
|
|
public partial class ParenListExpr : Expr |
|
{ |
|
public ParenListExpr() |
|
{ |
|
} |
|
|
|
public uint NumExprs { get; set; } |
|
public SourceLocation LParenLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitParenListExpr(this); |
|
} |
|
|
|
public partial class GenericSelectionExpr : Expr |
|
{ |
|
public GenericSelectionExpr() |
|
{ |
|
} |
|
|
|
public uint NumAssocs { get; set; } |
|
public SourceLocation GenericLoc { get; set; } |
|
public SourceLocation DefaultLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public Expr ControllingExpr { get; set; } |
|
public bool IsResultDependent { get; set; } |
|
public uint ResultIndex { get; set; } |
|
public Expr ResultExpr { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitGenericSelectionExpr(this); |
|
} |
|
|
|
public partial class ExtVectorElementExpr : Expr |
|
{ |
|
public ExtVectorElementExpr() |
|
{ |
|
} |
|
|
|
public Expr Base { get; set; } |
|
public SourceLocation AccessorLoc { get; set; } |
|
public uint NumElements { get; set; } |
|
public bool ContainsDuplicateElements { get; set; } |
|
public bool IsArrow { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitExtVectorElementExpr(this); |
|
} |
|
|
|
public partial class BlockExpr : Expr |
|
{ |
|
public BlockExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation CaretLocation { get; set; } |
|
public Stmt Body { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitBlockExpr(this); |
|
} |
|
|
|
public partial class AsTypeExpr : Expr |
|
{ |
|
public AsTypeExpr() |
|
{ |
|
} |
|
|
|
public Expr SrcExpr { get; set; } |
|
public SourceLocation BuiltinLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitAsTypeExpr(this); |
|
} |
|
|
|
public partial class PseudoObjectExpr : Expr |
|
{ |
|
public PseudoObjectExpr() |
|
{ |
|
} |
|
|
|
public Expr SyntacticForm { get; set; } |
|
public uint ResultExprIndex { get; set; } |
|
public Expr ResultExpr { get; set; } |
|
public uint NumSemanticExprs { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitPseudoObjectExpr(this); |
|
} |
|
|
|
public partial class AtomicExpr : Expr |
|
{ |
|
public enum AtomicOp |
|
{ |
|
C11AtomicInit = 0, |
|
C11AtomicLoad = 1, |
|
C11AtomicStore = 2, |
|
C11AtomicExchange = 3, |
|
C11AtomicCompareExchangeStrong = 4, |
|
C11AtomicCompareExchangeWeak = 5, |
|
C11AtomicFetchAdd = 6, |
|
C11AtomicFetchSub = 7, |
|
C11AtomicFetchAnd = 8, |
|
C11AtomicFetchOr = 9, |
|
C11AtomicFetchXor = 10, |
|
AtomicLoad = 11, |
|
AtomicLoadN = 12, |
|
AtomicStore = 13, |
|
AtomicStoreN = 14, |
|
AtomicExchange = 15, |
|
AtomicExchangeN = 16, |
|
AtomicCompareExchange = 17, |
|
AtomicCompareExchangeN = 18, |
|
AtomicFetchAdd = 19, |
|
AtomicFetchSub = 20, |
|
AtomicFetchAnd = 21, |
|
AtomicFetchOr = 22, |
|
AtomicFetchXor = 23, |
|
AtomicFetchNand = 24, |
|
AtomicAddFetch = 25, |
|
AtomicSubFetch = 26, |
|
AtomicAndFetch = 27, |
|
AtomicOrFetch = 28, |
|
AtomicXorFetch = 29, |
|
AtomicNandFetch = 30, |
|
OpenclAtomicInit = 31, |
|
OpenclAtomicLoad = 32, |
|
OpenclAtomicStore = 33, |
|
OpenclAtomicExchange = 34, |
|
OpenclAtomicCompareExchangeStrong = 35, |
|
OpenclAtomicCompareExchangeWeak = 36, |
|
OpenclAtomicFetchAdd = 37, |
|
OpenclAtomicFetchSub = 38, |
|
OpenclAtomicFetchAnd = 39, |
|
OpenclAtomicFetchOr = 40, |
|
OpenclAtomicFetchXor = 41, |
|
OpenclAtomicFetchMin = 42, |
|
OpenclAtomicFetchMax = 43, |
|
AtomicFetchMin = 44, |
|
AtomicFetchMax = 45, |
|
} |
|
|
|
public AtomicExpr() |
|
{ |
|
} |
|
|
|
public Expr Ptr { get; set; } |
|
public Expr Order { get; set; } |
|
public Expr Scope { get; set; } |
|
public Expr Val1 { get; set; } |
|
public Expr OrderFail { get; set; } |
|
public Expr Val2 { get; set; } |
|
public Expr Weak { get; set; } |
|
public QualifiedType ValueType { get; set; } |
|
public AtomicExpr.AtomicOp Op { get; set; } |
|
public uint NumSubExprs { get; set; } |
|
public bool IsVolatile { get; set; } |
|
public bool IsCmpXChg { get; set; } |
|
public bool IsOpenCL { get; set; } |
|
public SourceLocation BuiltinLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitAtomicExpr(this); |
|
} |
|
|
|
public partial class TypoExpr : Expr |
|
{ |
|
public TypoExpr() |
|
{ |
|
} |
|
|
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitTypoExpr(this); |
|
} |
|
|
|
public partial class CXXOperatorCallExpr : CallExpr |
|
{ |
|
public CXXOperatorCallExpr() |
|
{ |
|
} |
|
|
|
public OverloadedOperatorKind Operator { get; set; } |
|
public bool IsAssignmentOp { get; set; } |
|
public bool IsInfixBinaryOp { get; set; } |
|
public SourceLocation OperatorLoc { get; set; } |
|
public bool IsFPContractableWithinStatement { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXOperatorCallExpr(this); |
|
} |
|
|
|
public partial class CXXMemberCallExpr : CallExpr |
|
{ |
|
public CXXMemberCallExpr() |
|
{ |
|
} |
|
|
|
public Expr ImplicitObjectArgument { get; set; } |
|
public Method MethodDecl { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXMemberCallExpr(this); |
|
} |
|
|
|
public partial class CUDAKernelCallExpr : CallExpr |
|
{ |
|
public CUDAKernelCallExpr() |
|
{ |
|
} |
|
|
|
public CallExpr Config { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCUDAKernelCallExpr(this); |
|
} |
|
|
|
public abstract partial class CXXNamedCastExpr : ExplicitCastExpr |
|
{ |
|
public CXXNamedCastExpr() |
|
{ |
|
} |
|
|
|
public string CastName { get; set; } |
|
public SourceLocation OperatorLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public SourceRange AngleBrackets { get; set; } |
|
} |
|
|
|
public partial class CXXStaticCastExpr : CXXNamedCastExpr |
|
{ |
|
public CXXStaticCastExpr() |
|
{ |
|
} |
|
|
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXStaticCastExpr(this); |
|
} |
|
|
|
public partial class CXXDynamicCastExpr : CXXNamedCastExpr |
|
{ |
|
public CXXDynamicCastExpr() |
|
{ |
|
} |
|
|
|
public bool IsAlwaysNull { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXDynamicCastExpr(this); |
|
} |
|
|
|
public partial class CXXReinterpretCastExpr : CXXNamedCastExpr |
|
{ |
|
public CXXReinterpretCastExpr() |
|
{ |
|
} |
|
|
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXReinterpretCastExpr(this); |
|
} |
|
|
|
public partial class CXXConstCastExpr : CXXNamedCastExpr |
|
{ |
|
public CXXConstCastExpr() |
|
{ |
|
} |
|
|
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXConstCastExpr(this); |
|
} |
|
|
|
public partial class UserDefinedLiteral : CallExpr |
|
{ |
|
public enum LiteralOperatorKind |
|
{ |
|
/// <summary>Raw form: operator "" X (const char *)</summary> |
|
Raw = 0, |
|
/// <summary>Raw form: operator "" X...> ()</summary> |
|
Template = 1, |
|
/// <summary>operator "" X (unsigned long long)</summary> |
|
Integer = 2, |
|
/// <summary>operator "" X (long double)</summary> |
|
Floating = 3, |
|
/// <summary>operator "" X (const CharT *, size_t)</summary> |
|
String = 4, |
|
/// <summary>operator "" X (CharT)</summary> |
|
Character = 5 |
|
} |
|
|
|
public UserDefinedLiteral() |
|
{ |
|
} |
|
|
|
public UserDefinedLiteral.LiteralOperatorKind literalOperatorKind { get; set; } |
|
public Expr CookedLiteral { get; set; } |
|
public SourceLocation UDSuffixLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitUserDefinedLiteral(this); |
|
} |
|
|
|
public partial class CXXBoolLiteralExpr : Expr |
|
{ |
|
public CXXBoolLiteralExpr() |
|
{ |
|
} |
|
|
|
public bool Value { get; set; } |
|
public SourceLocation Location { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXBoolLiteralExpr(this); |
|
} |
|
|
|
public partial class CXXNullPtrLiteralExpr : Expr |
|
{ |
|
public CXXNullPtrLiteralExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation Location { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXNullPtrLiteralExpr(this); |
|
} |
|
|
|
public partial class CXXStdInitializerListExpr : Expr |
|
{ |
|
public CXXStdInitializerListExpr() |
|
{ |
|
} |
|
|
|
public Expr SubExpr { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXStdInitializerListExpr(this); |
|
} |
|
|
|
public partial class CXXTypeidExpr : Expr |
|
{ |
|
public CXXTypeidExpr() |
|
{ |
|
} |
|
|
|
public Expr ExprOperand { get; set; } |
|
public bool IsPotentiallyEvaluated { get; set; } |
|
public bool IsTypeOperand { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXTypeidExpr(this); |
|
} |
|
|
|
public partial class MSPropertyRefExpr : Expr |
|
{ |
|
public MSPropertyRefExpr() |
|
{ |
|
} |
|
|
|
public bool IsImplicitAccess { get; set; } |
|
public Expr BaseExpr { get; set; } |
|
public bool IsArrow { get; set; } |
|
public SourceLocation MemberLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitMSPropertyRefExpr(this); |
|
} |
|
|
|
public partial class MSPropertySubscriptExpr : Expr |
|
{ |
|
public MSPropertySubscriptExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation RBracketLoc { get; set; } |
|
public Expr Base { get; set; } |
|
public Expr Idx { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitMSPropertySubscriptExpr(this); |
|
} |
|
|
|
public partial class CXXUuidofExpr : Expr |
|
{ |
|
public CXXUuidofExpr() |
|
{ |
|
} |
|
|
|
public Expr ExprOperand { get; set; } |
|
public string UuidStr { get; set; } |
|
public bool IsTypeOperand { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXUuidofExpr(this); |
|
} |
|
|
|
public partial class CXXThisExpr : Expr |
|
{ |
|
public CXXThisExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation Location { get; set; } |
|
public bool Implicit { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXThisExpr(this); |
|
} |
|
|
|
public partial class CXXThrowExpr : Expr |
|
{ |
|
public CXXThrowExpr() |
|
{ |
|
} |
|
|
|
public Expr SubExpr { get; set; } |
|
public SourceLocation ThrowLoc { get; set; } |
|
public bool IsThrownVariableInScope { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXThrowExpr(this); |
|
} |
|
|
|
public partial class CXXDefaultArgExpr : Expr |
|
{ |
|
public CXXDefaultArgExpr() |
|
{ |
|
} |
|
|
|
public Expr Expr { get; set; } |
|
public SourceLocation UsedLocation { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXDefaultArgExpr(this); |
|
} |
|
|
|
public partial class CXXDefaultInitExpr : Expr |
|
{ |
|
public CXXDefaultInitExpr() |
|
{ |
|
} |
|
|
|
public Field Field { get; set; } |
|
public Expr Expr { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXDefaultInitExpr(this); |
|
} |
|
|
|
public partial class CXXBindTemporaryExpr : Expr |
|
{ |
|
public CXXBindTemporaryExpr() |
|
{ |
|
} |
|
|
|
public Expr SubExpr { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXBindTemporaryExpr(this); |
|
} |
|
|
|
public partial class CXXConstructExpr : Expr |
|
{ |
|
public enum ConstructionKind |
|
{ |
|
Complete = 0, |
|
NonVirtualBase = 1, |
|
VirtualBase = 2, |
|
Delegating = 3 |
|
} |
|
|
|
public CXXConstructExpr() |
|
{ |
|
} |
|
|
|
public List<Expr> Arguments { get; private set; } = new List<Expr>(); |
|
public SourceLocation Location { get; set; } |
|
public bool Elidable { get; set; } |
|
public bool HadMultipleCandidates { get; set; } |
|
public bool ListInitialization { get; set; } |
|
public bool StdInitListInitialization { get; set; } |
|
public bool RequiresZeroInitialization { get; set; } |
|
public SourceRange ParenOrBraceRange { get; set; } |
|
public uint NumArgs { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXConstructExpr(this); |
|
} |
|
|
|
public partial class CXXInheritedCtorInitExpr : Expr |
|
{ |
|
public CXXInheritedCtorInitExpr() |
|
{ |
|
} |
|
|
|
public bool ConstructsVBase { get; set; } |
|
public bool InheritedFromVBase { get; set; } |
|
public SourceLocation Location { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXInheritedCtorInitExpr(this); |
|
} |
|
|
|
public partial class CXXFunctionalCastExpr : ExplicitCastExpr |
|
{ |
|
public CXXFunctionalCastExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation LParenLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public bool IsListInitialization { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXFunctionalCastExpr(this); |
|
} |
|
|
|
public partial class CXXTemporaryObjectExpr : CXXConstructExpr |
|
{ |
|
public CXXTemporaryObjectExpr() |
|
{ |
|
} |
|
|
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXTemporaryObjectExpr(this); |
|
} |
|
|
|
public partial class LambdaExpr : Expr |
|
{ |
|
public LambdaExpr() |
|
{ |
|
} |
|
|
|
public List<Expr> CaptureInits { get; private set; } = new List<Expr>(); |
|
public SourceLocation CaptureDefaultLoc { get; set; } |
|
public uint CaptureSize { get; set; } |
|
public SourceRange IntroducerRange { get; set; } |
|
public Method CallOperator { get; set; } |
|
public bool IsGenericLambda { get; set; } |
|
public CompoundStmt Body { get; set; } |
|
public bool IsMutable { get; set; } |
|
public bool HasExplicitParameters { get; set; } |
|
public bool HasExplicitResultType { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitLambdaExpr(this); |
|
} |
|
|
|
public partial class CXXScalarValueInitExpr : Expr |
|
{ |
|
public CXXScalarValueInitExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation RParenLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXScalarValueInitExpr(this); |
|
} |
|
|
|
public partial class CXXNewExpr : Expr |
|
{ |
|
public enum InitializationStyle |
|
{ |
|
/// <summary>New-expression has no initializer as written.</summary> |
|
NoInit = 0, |
|
/// <summary>New-expression has a C++98 paren-delimited initializer.</summary> |
|
CallInit = 1, |
|
/// <summary>New-expression has a C++11 list-initializer.</summary> |
|
ListInit = 2 |
|
} |
|
|
|
public CXXNewExpr() |
|
{ |
|
} |
|
|
|
public List<Expr> PlacementArguments { get; private set; } = new List<Expr>(); |
|
public Function OperatorNew { get; set; } |
|
public Function OperatorDelete { get; set; } |
|
public QualifiedType AllocatedType { get; set; } |
|
public bool IsArray { get; set; } |
|
public Expr ArraySize { get; set; } |
|
public uint NumPlacementArgs { get; set; } |
|
public bool IsParenTypeId { get; set; } |
|
public SourceRange TypeIdParens { get; set; } |
|
public bool IsGlobalNew { get; set; } |
|
public bool HasInitializer { get; set; } |
|
public CXXNewExpr.InitializationStyle initializationStyle { get; set; } |
|
public Expr Initializer { get; set; } |
|
public CXXConstructExpr ConstructExpr { get; set; } |
|
public SourceRange DirectInitRange { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXNewExpr(this); |
|
} |
|
|
|
public partial class CXXDeleteExpr : Expr |
|
{ |
|
public CXXDeleteExpr() |
|
{ |
|
} |
|
|
|
public bool IsGlobalDelete { get; set; } |
|
public bool IsArrayForm { get; set; } |
|
public bool IsArrayFormAsWritten { get; set; } |
|
public Function OperatorDelete { get; set; } |
|
public Expr Argument { get; set; } |
|
public QualifiedType DestroyedType { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXDeleteExpr(this); |
|
} |
|
|
|
public partial class CXXPseudoDestructorExpr : Expr |
|
{ |
|
public CXXPseudoDestructorExpr() |
|
{ |
|
} |
|
|
|
public Expr Base { get; set; } |
|
public bool HasQualifier { get; set; } |
|
public bool IsArrow { get; set; } |
|
public SourceLocation OperatorLoc { get; set; } |
|
public SourceLocation ColonColonLoc { get; set; } |
|
public SourceLocation TildeLoc { get; set; } |
|
public QualifiedType DestroyedType { get; set; } |
|
public SourceLocation DestroyedTypeLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXPseudoDestructorExpr(this); |
|
} |
|
|
|
public partial class TypeTraitExpr : Expr |
|
{ |
|
public TypeTraitExpr() |
|
{ |
|
} |
|
|
|
public bool Value { get; set; } |
|
public uint NumArgs { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitTypeTraitExpr(this); |
|
} |
|
|
|
public partial class ArrayTypeTraitExpr : Expr |
|
{ |
|
public ArrayTypeTraitExpr() |
|
{ |
|
} |
|
|
|
public QualifiedType QueriedType { get; set; } |
|
public ulong Value { get; set; } |
|
public Expr DimensionExpression { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitArrayTypeTraitExpr(this); |
|
} |
|
|
|
public partial class ExpressionTraitExpr : Expr |
|
{ |
|
public ExpressionTraitExpr() |
|
{ |
|
} |
|
|
|
public Expr QueriedExpression { get; set; } |
|
public bool Value { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitExpressionTraitExpr(this); |
|
} |
|
|
|
public abstract partial class OverloadExpr : Expr |
|
{ |
|
public partial class FindResult |
|
{ |
|
public FindResult() |
|
{ |
|
} |
|
|
|
} |
|
|
|
public OverloadExpr() |
|
{ |
|
} |
|
|
|
public uint NumDecls { get; set; } |
|
public SourceLocation NameLoc { get; set; } |
|
public SourceLocation TemplateKeywordLoc { get; set; } |
|
public SourceLocation LAngleLoc { get; set; } |
|
public SourceLocation RAngleLoc { get; set; } |
|
public bool HasTemplateKeyword { get; set; } |
|
public bool HasExplicitTemplateArgs { get; set; } |
|
public uint NumTemplateArgs { get; set; } |
|
} |
|
|
|
public partial class UnresolvedLookupExpr : OverloadExpr |
|
{ |
|
public UnresolvedLookupExpr() |
|
{ |
|
} |
|
|
|
public bool RequiresADL { get; set; } |
|
public bool IsOverloaded { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitUnresolvedLookupExpr(this); |
|
} |
|
|
|
public partial class DependentScopeDeclRefExpr : Expr |
|
{ |
|
public DependentScopeDeclRefExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation Location { get; set; } |
|
public SourceLocation TemplateKeywordLoc { get; set; } |
|
public SourceLocation LAngleLoc { get; set; } |
|
public SourceLocation RAngleLoc { get; set; } |
|
public bool HasTemplateKeyword { get; set; } |
|
public bool HasExplicitTemplateArgs { get; set; } |
|
public uint NumTemplateArgs { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitDependentScopeDeclRefExpr(this); |
|
} |
|
|
|
public partial class ExprWithCleanups : FullExpr |
|
{ |
|
public ExprWithCleanups() |
|
{ |
|
} |
|
|
|
public uint NumObjects { get; set; } |
|
public bool CleanupsHaveSideEffects { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitExprWithCleanups(this); |
|
} |
|
|
|
public partial class CXXUnresolvedConstructExpr : Expr |
|
{ |
|
public CXXUnresolvedConstructExpr() |
|
{ |
|
} |
|
|
|
public List<Expr> Arguments { get; private set; } = new List<Expr>(); |
|
public SourceLocation LParenLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public QualifiedType TypeAsWritten { get; set; } |
|
public bool IsListInitialization { get; set; } |
|
public uint ArgSize { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXUnresolvedConstructExpr(this); |
|
} |
|
|
|
public partial class CXXDependentScopeMemberExpr : Expr |
|
{ |
|
public CXXDependentScopeMemberExpr() |
|
{ |
|
} |
|
|
|
public bool IsImplicitAccess { get; set; } |
|
public Expr Base { get; set; } |
|
public QualifiedType BaseType { get; set; } |
|
public bool IsArrow { get; set; } |
|
public SourceLocation OperatorLoc { get; set; } |
|
public Declaration FirstQualifierFoundInScope { get; set; } |
|
public SourceLocation MemberLoc { get; set; } |
|
public SourceLocation TemplateKeywordLoc { get; set; } |
|
public SourceLocation LAngleLoc { get; set; } |
|
public SourceLocation RAngleLoc { get; set; } |
|
public bool HasTemplateKeyword { get; set; } |
|
public bool HasExplicitTemplateArgs { get; set; } |
|
public uint NumTemplateArgs { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXDependentScopeMemberExpr(this); |
|
} |
|
|
|
public partial class UnresolvedMemberExpr : OverloadExpr |
|
{ |
|
public UnresolvedMemberExpr() |
|
{ |
|
} |
|
|
|
public bool IsImplicitAccess { get; set; } |
|
public Expr Base { get; set; } |
|
public QualifiedType BaseType { get; set; } |
|
public bool HasUnresolvedUsing { get; set; } |
|
public bool IsArrow { get; set; } |
|
public SourceLocation OperatorLoc { get; set; } |
|
public SourceLocation MemberLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitUnresolvedMemberExpr(this); |
|
} |
|
|
|
public partial class CXXNoexceptExpr : Expr |
|
{ |
|
public CXXNoexceptExpr() |
|
{ |
|
} |
|
|
|
public Expr Operand { get; set; } |
|
public bool Value { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXNoexceptExpr(this); |
|
} |
|
|
|
public partial class PackExpansionExpr : Expr |
|
{ |
|
public PackExpansionExpr() |
|
{ |
|
} |
|
|
|
public Expr Pattern { get; set; } |
|
public SourceLocation EllipsisLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitPackExpansionExpr(this); |
|
} |
|
|
|
public partial class SizeOfPackExpr : Expr |
|
{ |
|
public SizeOfPackExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation OperatorLoc { get; set; } |
|
public SourceLocation PackLoc { get; set; } |
|
public SourceLocation RParenLoc { get; set; } |
|
public Declaration Pack { get; set; } |
|
public uint PackLength { get; set; } |
|
public bool IsPartiallySubstituted { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitSizeOfPackExpr(this); |
|
} |
|
|
|
public partial class SubstNonTypeTemplateParmExpr : Expr |
|
{ |
|
public SubstNonTypeTemplateParmExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation NameLoc { get; set; } |
|
public Expr Replacement { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitSubstNonTypeTemplateParmExpr(this); |
|
} |
|
|
|
public partial class SubstNonTypeTemplateParmPackExpr : Expr |
|
{ |
|
public SubstNonTypeTemplateParmPackExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation ParameterPackLocation { get; set; } |
|
public TemplateArgument ArgumentPack { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitSubstNonTypeTemplateParmPackExpr(this); |
|
} |
|
|
|
public partial class FunctionParmPackExpr : Expr |
|
{ |
|
public FunctionParmPackExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation ParameterPackLocation { get; set; } |
|
public uint NumExpansions { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitFunctionParmPackExpr(this); |
|
} |
|
|
|
public partial class MaterializeTemporaryExpr : Expr |
|
{ |
|
public partial class ExtraState |
|
{ |
|
public ExtraState() |
|
{ |
|
} |
|
|
|
} |
|
|
|
public MaterializeTemporaryExpr() |
|
{ |
|
} |
|
|
|
public Stmt Temporary { get; set; } |
|
public Expr TemporaryExpr { get; set; } |
|
public uint ManglingNumber { get; set; } |
|
public bool IsBoundToLvalueReference { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitMaterializeTemporaryExpr(this); |
|
} |
|
|
|
public partial class CXXFoldExpr : Expr |
|
{ |
|
public CXXFoldExpr() |
|
{ |
|
} |
|
|
|
public Expr LHS { get; set; } |
|
public Expr RHS { get; set; } |
|
public bool IsRightFold { get; set; } |
|
public bool IsLeftFold { get; set; } |
|
public Expr Pattern { get; set; } |
|
public Expr Init { get; set; } |
|
public SourceLocation EllipsisLoc { get; set; } |
|
public BinaryOperatorKind Operator { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCXXFoldExpr(this); |
|
} |
|
|
|
public abstract partial class CoroutineSuspendExpr : Expr |
|
{ |
|
internal enum SubExpr |
|
{ |
|
Common = 0, |
|
Ready = 1, |
|
Suspend = 2, |
|
Resume = 3, |
|
Count = 4 |
|
} |
|
|
|
public CoroutineSuspendExpr() |
|
{ |
|
} |
|
|
|
public SourceLocation KeywordLoc { get; set; } |
|
public Expr CommonExpr { get; set; } |
|
public OpaqueValueExpr OpaqueValue { get; set; } |
|
public Expr ReadyExpr { get; set; } |
|
public Expr SuspendExpr { get; set; } |
|
public Expr ResumeExpr { get; set; } |
|
} |
|
|
|
public partial class CoawaitExpr : CoroutineSuspendExpr |
|
{ |
|
public CoawaitExpr() |
|
{ |
|
} |
|
|
|
public bool IsImplicit { get; set; } |
|
public Expr Operand { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCoawaitExpr(this); |
|
} |
|
|
|
public partial class DependentCoawaitExpr : Expr |
|
{ |
|
public DependentCoawaitExpr() |
|
{ |
|
} |
|
|
|
public Expr Operand { get; set; } |
|
public UnresolvedLookupExpr OperatorCoawaitLookup { get; set; } |
|
public SourceLocation KeywordLoc { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitDependentCoawaitExpr(this); |
|
} |
|
|
|
public partial class CoyieldExpr : CoroutineSuspendExpr |
|
{ |
|
public CoyieldExpr() |
|
{ |
|
} |
|
|
|
public Expr Operand { get; set; } |
|
|
|
public override T Visit<T>(IStmtVisitor<T> visitor) => |
|
visitor.VisitCoyieldExpr(this); |
|
} |
|
}
|
|
|