//
//
//
//
// $Revision$
//
using System;
using System.Collections.Generic;
namespace NRefactoryASTGenerator.Ast
{
[CustomImplementation]
abstract class Expression : AbstractNode, INullable {}
[CustomImplementation]
class PrimitiveExpression : Expression {}
enum ParameterModifiers { In }
class ParameterDeclarationExpression : Expression {
List attributes;
[QuestionMarkDefault]
string parameterName;
TypeReference typeReference;
ParameterModifiers paramModifier;
Expression defaultValue;
public ParameterDeclarationExpression(TypeReference typeReference, string parameterName) {}
public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier) {}
public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier, Expression defaultValue) {}
}
class NamedArgumentExpression : Expression {
string name;
Expression expression;
public NamedArgumentExpression(string name, Expression expression) {}
}
[IncludeBoolProperty("IsAnonymousType", "return createType.IsNull || string.IsNullOrEmpty(createType.Type);")]
class ObjectCreateExpression : Expression {
TypeReference createType;
List parameters;
CollectionInitializerExpression objectInitializer;
public ObjectCreateExpression(TypeReference createType, List parameters) {}
}
[IncludeBoolProperty("IsImplicitlyTyped", "return createType.IsNull || string.IsNullOrEmpty(createType.Type);")]
class ArrayCreateExpression : Expression {
TypeReference createType;
List arguments;
CollectionInitializerExpression arrayInitializer;
public ArrayCreateExpression(TypeReference createType) {}
public ArrayCreateExpression(TypeReference createType, List arguments) {}
public ArrayCreateExpression(TypeReference createType, CollectionInitializerExpression arrayInitializer) {}
}
[ImplementNullable(NullableImplementation.Shadow)]
class CollectionInitializerExpression : Expression {
List createExpressions;
public CollectionInitializerExpression() {}
public CollectionInitializerExpression(List createExpressions) {}
}
enum AssignmentOperatorType {}
class AssignmentExpression : Expression {
Expression left;
AssignmentOperatorType op;
Expression right;
public AssignmentExpression(Expression left, AssignmentOperatorType op, Expression right) {}
}
class BaseReferenceExpression : Expression {}
enum BinaryOperatorType {}
class BinaryOperatorExpression : Expression
{
Expression left;
BinaryOperatorType op;
Expression right;
public BinaryOperatorExpression(Expression left, BinaryOperatorType op, Expression right) {}
}
enum CastType {}
class CastExpression : Expression
{
TypeReference castTo;
Expression expression;
CastType castType;
public CastExpression(TypeReference castTo) {}
public CastExpression(TypeReference castTo, Expression expression, CastType castType) {}
}
[IncludeMember("[Obsolete] public string FieldName { get { return MemberName; } set { MemberName = value; } }")]
class MemberReferenceExpression : Expression
{
Expression targetObject;
string memberName;
List typeArguments;
public MemberReferenceExpression(Expression targetObject, string memberName) {}
}
class PointerReferenceExpression : Expression {
Expression targetObject;
string identifier;
List typeArguments;
public PointerReferenceExpression(Expression targetObject, string identifier) {}
}
class IdentifierExpression : Expression {
string identifier;
List typeArguments;
public IdentifierExpression(string identifier) {}
}
class InvocationExpression : Expression {
Expression targetObject;
List arguments;
public InvocationExpression(Expression targetObject) {}
public InvocationExpression(Expression targetObject, List arguments) {}
}
class ParenthesizedExpression : Expression {
Expression expression;
public ParenthesizedExpression(Expression expression) {}
}
class ThisReferenceExpression : Expression {}
class TypeOfExpression : Expression {
TypeReference typeReference;
public TypeOfExpression(TypeReference typeReference) {}
}
[IncludeMember("public TypeReferenceExpression(string typeName) : this(new TypeReference(typeName)) {}")]
class TypeReferenceExpression : Expression {
TypeReference typeReference;
public TypeReferenceExpression(TypeReference typeReference) {}
}
enum UnaryOperatorType {}
class UnaryOperatorExpression : Expression {
UnaryOperatorType op;
Expression expression;
public UnaryOperatorExpression(UnaryOperatorType op) {}
public UnaryOperatorExpression(Expression expression, UnaryOperatorType op) {}
}
class AnonymousMethodExpression : Expression {
List parameters;
BlockStatement body;
bool hasParameterList;
}
class LambdaExpression : Expression {
List parameters;
BlockStatement statementBody;
Expression expressionBody;
}
class CheckedExpression : Expression {
Expression expression;
public CheckedExpression(Expression expression) {}
}
class ConditionalExpression : Expression {
Expression condition;
Expression trueExpression;
Expression falseExpression;
public ConditionalExpression(Expression condition, Expression trueExpression, Expression falseExpression) {}
}
class DefaultValueExpression : Expression {
TypeReference typeReference;
public DefaultValueExpression(TypeReference typeReference) {}
}
enum FieldDirection {}
class DirectionExpression : Expression {
FieldDirection fieldDirection;
Expression expression;
public DirectionExpression(FieldDirection fieldDirection, Expression expression) {}
}
class IndexerExpression : Expression {
Expression targetObject;
List indexes;
public IndexerExpression(Expression targetObject, List indexes) {}
}
class SizeOfExpression : Expression {
TypeReference typeReference;
public SizeOfExpression(TypeReference typeReference) {}
}
class StackAllocExpression : Expression {
TypeReference typeReference;
Expression expression;
public StackAllocExpression(TypeReference typeReference, Expression expression) {}
}
class UncheckedExpression : Expression {
Expression expression;
public UncheckedExpression(Expression expression) {}
}
class AddressOfExpression : Expression {
Expression expression;
public AddressOfExpression(Expression expression) {}
}
class ClassReferenceExpression : Expression {}
class TypeOfIsExpression : Expression {
Expression expression;
TypeReference typeReference;
public TypeOfIsExpression(Expression expression, TypeReference typeReference) {}
}
[ImplementNullable(NullableImplementation.Shadow)]
class QueryExpression : Expression {
QueryExpressionFromClause fromClause;
List fromLetWhereClauses;
List orderings;
QueryExpressionClause selectOrGroupClause;
QueryExpressionIntoClause intoClause;
}
[ImplementNullable]
abstract class QueryExpressionClause : AbstractNode, INullable { }
class QueryExpressionWhereClause : QueryExpressionClause {
Expression condition;
}
class QueryExpressionLetClause : QueryExpressionClause {
[QuestionMarkDefault]
string identifier;
Expression expression;
}
abstract class QueryExpressionFromOrJoinClause : QueryExpressionClause {
TypeReference type;
[QuestionMarkDefault]
string identifier;
Expression inExpression;
}
[ImplementNullable(NullableImplementation.Shadow)]
class QueryExpressionFromClause : QueryExpressionFromOrJoinClause { }
class QueryExpressionJoinClause : QueryExpressionFromOrJoinClause {
Expression onExpression;
Expression equalsExpression;
string intoIdentifier;
}
class QueryExpressionOrdering : AbstractNode {
Expression criteria;
QueryExpressionOrderingDirection direction;
}
enum QueryExpressionOrderingDirection {
None, Ascending, Descending
}
class QueryExpressionSelectClause : QueryExpressionClause {
Expression projection;
}
class QueryExpressionGroupClause : QueryExpressionClause {
Expression projection;
Expression groupBy;
}
[ImplementNullable(NullableImplementation.Shadow)]
class QueryExpressionIntoClause : QueryExpressionClause {
[QuestionMarkDefault]
string intoIdentifier;
QueryExpression continuedQuery;
}
}