Expression
type: Class
subclass of: Class
  intersection of: Restriction
    on property: isLeftHandSideOf
    all values from: AssignmentExpression
  intersection of: Restriction
    on property: isLeftHandSideOf
    max qualified cardinality: 1
    on class: AssignmentExpression
subclass of: Class
  intersection of: Restriction
    on property: hasLine
    all values from: int
  intersection of: Restriction
    on property: hasLine
    on data range: int
    qualified cardinality: 1
subclass of: Restriction
  on property: hasSubExpression
  all values from: Class
    union of: Expression
    union of: Variable
subclass of: Class
  intersection of: Restriction
    on property: isCaseExpressionOf
    all values from: CaseLabeledBlock
  intersection of: Restriction
    on property: isCaseExpressionOf
    max qualified cardinality: 1
    on class: CaseLabeledBlock
subclass of: Class
  intersection of: Restriction
    on property: isRightHandSideOf
    all values from: AssignmentExpression
  intersection of: Restriction
    on property: isRightHandSideOf
    max qualified cardinality: 1
    on class: AssignmentExpression
subclass of: Class
  intersection of: Restriction
    on property: isForUpdateOf
    all values from: ForStatement
  intersection of: Restriction
    on property: isForUpdateOf
    max qualified cardinality: 1
    on class: ForStatement
subclass of: Class
  intersection of: Restriction
    on property: isSubExpressionOf
    all values from: Class
      union of: Expression
      union of: Statement
  intersection of: Restriction
    on property: isSubExpressionOf
    max qualified cardinality: 1
    on class: Class
      union of: Expression
      union of: Statement
subclass of: Class
  intersection of: Restriction
    on property: isForInitOf
    all values from: ForStatement
  intersection of: Restriction
    on property: isForInitOf
    max qualified cardinality: 1
    on class: ForStatement
subclass of: Class
  intersection of: Restriction
    on property: hasSourceCode
    all values from: string
  intersection of: Restriction
    on property: hasSourceCode
    on data range: string
    qualified cardinality: 1
subclass of: Class
  intersection of: Restriction
    on property: isConditionOf
    all values from: Class
      union of: DoWhileStatement
      union of: ForStatement
      union of: IfThenElseStatement
      union of: WhileStatement
  intersection of: Restriction
    on property: isConditionOf
    max qualified cardinality: 1
    on class: Class
      union of: DoWhileStatement
      union of: ForStatement
      union of: IfThenElseStatement
      union of: WhileStatement
subclass of: Class
  intersection of: Restriction
    on property: hasType
    all values from: Type
  intersection of: Restriction
    on property: hasType
    min qualified cardinality: 1
    on class: Type
subclass of: Class
  intersection of: Restriction
    on property: isSwitchExpressionOf
    all values from: SwitchStatement
  intersection of: Restriction
    on property: isSwitchExpressionOf
    max qualified cardinality: 1
    on class: SwitchStatement
subclass of: Class
  intersection of: Restriction
    on property: isInitializerOf
    all values from: VariableDeclarationStatement
  intersection of: Restriction
    on property: isInitializerOf
    max qualified cardinality: 1
    on class: VariableDeclarationStatement
subclass of: Class
  intersection of: Restriction
    on property: isAssertExpressionOf
    all values from: AssertStatement
  intersection of: Restriction
    on property: isAssertExpressionOf
    max qualified cardinality: 1
    on class: AssertStatement
subclass of: Class
  intersection of: Restriction
    on property: isReturnedExpressionOf
    all values from: ReturnStatement
  intersection of: Restriction
    on property: isReturnedExpressionOf
    max qualified cardinality: 1
    on class: ReturnStatement
subclass of: Class
  intersection of: Restriction
    on property: isThrownExpressionOf
    all values from: ThrowStatement
  intersection of: Restriction
    on property: isThrownExpressionOf
    max qualified cardinality: 1
    on class: ThrowStatement
subclass of: Class
  intersection of: Restriction
    on property: isIterableOf
    all values from: ForEachStatement
  intersection of: Restriction
    on property: isIterableOf
    max qualified cardinality: 1
    on class: ForEachStatement
subclass of: Class
  intersection of: Restriction
    on property: isTargetOf
    all values from: MethodInvocationExpression
  intersection of: Restriction
    on property: isTargetOf
    max qualified cardinality: 1
    on class: MethodInvocationExpression
subclass of: Restriction
  on property: hasSubExpression
  all values from: Class
    union of: Expression
    union of: Variable
subclass of: Class
  intersection of: Restriction
    on property: isCaseExpressionOf
    all values from: CaseLabeledBlock
  intersection of: Restriction
    on property: isCaseExpressionOf
    max qualified cardinality: 1
    on class: CaseLabeledBlock
subclass of: CodeElement
subclass of: Class
  intersection of: Restriction
    on property: isThrownExpressionOf
    all values from: ThrowStatement
  intersection of: Restriction
    on property: isThrownExpressionOf
    max qualified cardinality: 1
    on class: ThrowStatement
subclass of: Class
  intersection of: Restriction
    on property: isIterableOf
    all values from: ForEachStatement
  intersection of: Restriction
    on property: isIterableOf
    max qualified cardinality: 1
    on class: ForEachStatement
subclass of: Class
  intersection of: Restriction
    on property: hasType
    all values from: Type
  intersection of: Restriction
    on property: hasType
    min qualified cardinality: 1
    on class: Type
subclass of: Class
  intersection of: Restriction
    on property: isTargetOf
    all values from: MethodInvocationExpression
  intersection of: Restriction
    on property: isTargetOf
    max qualified cardinality: 1
    on class: MethodInvocationExpression
comment: An evaluable syntactic entity.

first: Restriction
  on property: isAssertExpressionOf
  all values from: AssertStatement
rest:
  first: Restriction
    on property: isAssertExpressionOf
    max qualified cardinality: 1
    on class: AssertStatement
  rest: nil

first: Restriction
  on property: isReturnedExpressionOf
  all values from: ReturnStatement
rest:
  first: Restriction
    on property: isReturnedExpressionOf
    max qualified cardinality: 1
    on class: ReturnStatement
  rest: nil

first: Restriction
  on property: isSwitchExpressionOf
  all values from: SwitchStatement
rest:
  first: Restriction
    on property: isSwitchExpressionOf
    max qualified cardinality: 1
    on class: SwitchStatement
  rest: nil

first: Restriction
  on property: isInitializerOf
  all values from: VariableDeclarationStatement
rest:
  first: Restriction
    on property: isInitializerOf
    max qualified cardinality: 1
    on class: VariableDeclarationStatement
  rest: nil

first: Restriction
  on property: isForInitOf
  all values from: ForStatement
rest:
  first: Restriction
    on property: isForInitOf
    max qualified cardinality: 1
    on class: ForStatement
  rest: nil

first: Restriction
  on property: hasSourceCode
  all values from: string
rest:
  first: Restriction
    on property: hasSourceCode
    on data range: string
    qualified cardinality: 1
  rest: nil

first: Restriction
  on property: isConditionOf
  all values from: Class
    union of: DoWhileStatement
    union of: ForStatement
    union of: IfThenElseStatement
    union of: WhileStatement
rest:
  first: Restriction
    on property: isConditionOf
    max qualified cardinality: 1
    on class: Class
      union of: DoWhileStatement
      union of: ForStatement
      union of: IfThenElseStatement
      union of: WhileStatement
  rest: nil

first: Restriction
  on property: isSubExpressionOf
  all values from: Class
    union of: Expression
    union of: Statement
rest:
  first: Restriction
    on property: isSubExpressionOf
    max qualified cardinality: 1
    on class: Class
      union of: Expression
      union of: Statement
  rest: nil

first: Restriction
  on property: isRightHandSideOf
  all values from: AssignmentExpression
rest:
  first: Restriction
    on property: isRightHandSideOf
    max qualified cardinality: 1
    on class: AssignmentExpression
  rest: nil

first: Restriction
  on property: isForUpdateOf
  all values from: ForStatement
rest:
  first: Restriction
    on property: isForUpdateOf
    max qualified cardinality: 1
    on class: ForStatement
  rest: nil

first: Restriction
  on property: isLeftHandSideOf
  all values from: AssignmentExpression
rest:
  first: Restriction
    on property: isLeftHandSideOf
    max qualified cardinality: 1
    on class: AssignmentExpression
  rest: nil

first: Restriction
  on property: hasLine
  all values from: int
rest:
  first: Restriction
    on property: hasLine
    on data range: int
    qualified cardinality: 1
  rest: nil