de.dhbwstuttgart.syntaxtree.statement

## Class LambdaExpression

- java.lang.Object
- - de.dhbwstuttgart.syntaxtree.SyntaxTreeNode
  - - de.dhbwstuttgart.syntaxtree.statement.Statement
    - - de.dhbwstuttgart.syntaxtree.statement.ExprStmt
      - - de.dhbwstuttgart.syntaxtree.statement.Expr
        - - de.dhbwstuttgart.syntaxtree.statement.LambdaExpression

- All Implemented Interfaces:
    IItemWithOffset, Typeable

      public class LambdaExpression
      extends Expr

  Author:
    A10023 - Andreas Stadelmeier Momentan erweitert LambdaExpression noch Expr und erbt dadurch auch von ExprStatement ist also auch ein Statement LambdaExpression Aufbau: ( ParameterList ) -> { method_body };

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private Block` | `method_body`
    `private ParameterList` | `params`

    - ### Fields inherited from class de.dhbwstuttgart.syntaxtree.statement.Expr

      `usedid`

    - ### Fields inherited from class de.dhbwstuttgart.syntaxtree.statement.ExprStmt

      `inferencelog`

    - ### Fields inherited from class de.dhbwstuttgart.syntaxtree.statement.Statement

      `offset, type`

    - ### Fields inherited from class de.dhbwstuttgart.syntaxtree.SyntaxTreeNode

      `parent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LambdaExpression(int offset, int variableLength)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `get_Name()`
    `Menge<SyntaxTreeNode>` | `getChildren()`
    `java.lang.String` | `getTypeInformation()`
    `JavaCodeResult` | `printJavaCode(ResultSet resultSet)`
    `void` | `setBody(Block block)`
    `void` | `setExpr(Expr expression)`
    `void` | `setParameterList(ParameterList params)`
    `java.lang.String` | `toString()`
    `ConstraintsSet` | `TYPEExpr(TypeAssumptions assumptions)` Spezifikation: TYPEExpr( Ass, Lambda( (x1 , . . . , xN ), expr|stmt ) ) = let AssArgs = { xi : ai | ai fresh type variables } (exprt : rty, ConS) = TYPEExpr( Ass Ã¢ÂÂª AssArgs, expr ) | (stmtt : rty, ConS) = TYPEStmt( Ass u AssArgs, stmt ) in (Lambda( (x1 : a1 , . . . , xN : aN ), exprt : rty|stmtt : rty ) : a, ConS Ã¢ÂÂª { (FunN a) }), where a is a fresh type variable
    `ConstraintsSet` | `TYPEStmt(TypeAssumptions ass)`
    `void` | `wandleRefTypeAttributes2GenericAttributes(Menge<Type> paralist, Menge<GenericTypeVar> genericMethodParameters)`

    - ### Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.Expr

      `get_Name_Menge, get_Type_Menge, get_UsedId, set_Type, set_UsedId`

    - ### Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.ExprStmt

      `getTypeLineNumber, getTypeName`

    - ### Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.Statement

      `getDescription, getOffset, getReturnType, getType, getVariableLength, setReturnType, setType`

    - ### Methods inherited from class de.dhbwstuttgart.syntaxtree.SyntaxTreeNode

      `addTypeInsertPoints, equals, getGTVDeclarationContext, getMatchingParentNode, getParent, getParentClass, parserPostProcessing, seesType`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### method_body

          private Block method_body

    - #### params

          private ParameterList params

  - ### Constructor Detail

    - #### LambdaExpression

          public LambdaExpression(int offset,
                                  int variableLength)

  - ### Method Detail

    - #### setBody

          public void setBody(Block block)

    - #### setExpr

          public void setExpr(Expr expression)

    - #### setParameterList

          public void setParameterList(ParameterList params)

    - #### wandleRefTypeAttributes2GenericAttributes

          public void wandleRefTypeAttributes2GenericAttributes(Menge<Type> paralist,
                                                                Menge<GenericTypeVar> genericMethodParameters)

      Specified by:
        `wandleRefTypeAttributes2GenericAttributes` in class `Statement`

    - #### get_Name

          public java.lang.String get_Name()

      Specified by:
        `get_Name` in class `Expr`

    - #### TYPEExpr

          public ConstraintsSet TYPEExpr(TypeAssumptions assumptions)

      Spezifikation: TYPEExpr( Ass, Lambda( (x1 , . . . , xN ), expr|stmt ) ) = let AssArgs = { xi : ai | ai fresh type variables } (exprt : rty, ConS) = TYPEExpr( Ass Ã¢ÂÂª AssArgs, expr ) | (stmtt : rty, ConS) = TYPEStmt( Ass u AssArgs, stmt ) in (Lambda( (x1 : a1 , . . . , xN : aN ), exprt : rty|stmtt : rty ) : a, ConS Ã¢ÂÂª { (FunN a) }), where a is a fresh type variable
      Specified by:
        `TYPEExpr` in class `Expr`

    - #### TYPEStmt

          public ConstraintsSet TYPEStmt(TypeAssumptions ass)

      Overrides:
        `TYPEStmt` in class `Expr`

    - #### getTypeInformation

          public java.lang.String getTypeInformation()

      Overrides:
        `getTypeInformation` in class `Statement`
      Returns:

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### printJavaCode

          public JavaCodeResult printJavaCode(ResultSet resultSet)

      Specified by:
        `printJavaCode` in class `Statement`

    - #### getChildren

          public Menge<SyntaxTreeNode> getChildren()

      Specified by:
        `getChildren` in class `SyntaxTreeNode`