# NotExpr
Keywords: mycompiler.mystatement.NotExpr class

## mycompiler.mystatement
Class NotExpr

    java.lang.Object
      mycompiler.mystatement.Statement
          mycompiler.mystatement.ExprStmt
              mycompiler.mystatement.Expr
                  mycompiler.mystatement.UnaryExpr
                      mycompiler.mystatement.NotExpr

All Implemented Interfaces:
  ITypeReplacementListener

    public class NotExpr

extends UnaryExpr

Field Summary

Fields inherited from class mycompiler.mystatement.Expr
`usedid`

Fields inherited from class mycompiler.mystatement.ExprStmt
`type`

Constructor Summary
`NotExpr()`

Method Summary
`void` `codegen(ClassFile classfile, CodeAttribute code, de.dhbwstuttgart.typeinference.Menge paralist)`
`Expr` `get_Expr()`
`java.lang.String` `get_Name()`
`void` `not_codegen(ClassFile classfile, CodeAttribute code, de.dhbwstuttgart.typeinference.Menge paralist)`
`void` `sc_check(de.dhbwstuttgart.typeinference.Menge classname, java.util.Hashtable ch, java.util.Hashtable bh, boolean ext, java.util.Hashtable parach, java.util.Hashtable parabh)`
`void` `set_Expr(Expr ex)`
`void` `set_UnaryNot(UnaryNot unot)`
`CTripleSet` `TRExp(CSubstitutionSet sigma, CTypeAssumptionSet V, CSupportData supportData)` Implementierung des Algorithmus 5.42 von Martin Pl�micke Achtung Workaround: Wenn die BaseTypes endlich korrekt implementiert sind, dann sollte der RefType "Boolean" �berall durch den BaseType "BooleanType" ersetzt werden!!!
`CTripleSet` `TRStatement(CSubstitutionSet sigma, CTypeAssumptionSet V, CSupportData supportData)`

Methods inherited from class mycompiler.mystatement.Expr
`get_Name_Menge, get_Type_Menge, get_UsedId, set_Type, set_UsedId, TRMultiply, TRTuple`

Methods inherited from class mycompiler.mystatement.ExprStmt
`getType, getTypeLineNumber, getTypeName, replaceType, setType`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### NotExpr

    public NotExpr()

Method Detail

### sc_check

    public void sc_check(de.dhbwstuttgart.typeinference.Menge classname,
                         java.util.Hashtable ch,
                         java.util.Hashtable bh,
                         boolean ext,
                         java.util.Hashtable parach,
                         java.util.Hashtable parabh)
                  throws SCStatementException

  Specified by:
    `sc_check` in class `Expr`
  Throws:
    `SCStatementException`

### get_Name

    public java.lang.String get_Name()

  Specified by:
    `get_Name` in class `Expr`

### get_Expr

    public Expr get_Expr()

### set_UnaryNot

    public void set_UnaryNot(UnaryNot unot)

### set_Expr

    public void set_Expr(Expr ex)

### codegen

    public void codegen(ClassFile classfile,
                        CodeAttribute code,
                        de.dhbwstuttgart.typeinference.Menge paralist)
                 throws JVMCodeException

  Specified by:
    `codegen` in class `UnaryExpr`
  Throws:
    `JVMCodeException`

### not_codegen

    public void not_codegen(ClassFile classfile,
                            CodeAttribute code,
                            de.dhbwstuttgart.typeinference.Menge paralist)
                     throws JVMCodeException

  Throws:
    `JVMCodeException`

### TRExp

    public CTripleSet TRExp(CSubstitutionSet sigma,
                            CTypeAssumptionSet V,
                            CSupportData supportData)

  Implementierung des Algorithmus 5.42 von Martin Pl�micke
  Achtung Workaround: Wenn die BaseTypes endlich korrekt implementiert sind, dann sollte der RefType "Boolean" �berall durch den BaseType "BooleanType" ersetzt werden!!!
  Author: J�rg B�uerle

  Specified by:
    `TRExp` in class `Expr`
  Parameters:
    `sigma` -
    `V` -
    `supportData` -
  Returns:

### TRStatement

    public CTripleSet TRStatement(CSubstitutionSet sigma,
                                  CTypeAssumptionSet V,
                                  CSupportData supportData)

  Specified by:
    `TRStatement` in class `Statement`