Trait

de.fosd.typechef.typesystem

CDeclUse

Related Doc: package typesystem

Permalink

trait CDeclUse extends CDeclUseInterface with CEnv with CEnvCache

Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. CDeclUse
  2. CEnvCache
  3. CTypeSystemInterface
  4. CDeclUseInterface
  5. CEnv
  6. AnyRef
  7. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. type EnumEnv = Map[String, (FeatureExpr, Id)]

    Permalink

    Enum Environment: Just a set of names that are valid enums.

    Enum Environment: Just a set of names that are valid enums. No need to remember fields etc, because they are integers anyway and no further checking is done in C

    Definition Classes
    CEnv
  2. class Env extends AnyRef

    Permalink
    Attributes
    protected
    Definition Classes
    CEnv
  3. type LabelEnv = Map[String, FeatureExpr]

    Permalink

    label environment: stores which labels are reachable from a goto.

    label environment: stores which labels are reachable from a goto.

    the environment is filled upon function entry for the entire function and just stores under which condition a label is defined

    Definition Classes
    CEnv
  4. class StructEnv extends AnyRef

    Permalink
    Definition Classes
    CEnv
  5. case class StructTag(isComplete: Boolean, fields: ConditionalTypeMap, scope: Int, id: Option[Id] = None) extends Product with Serializable

    Permalink

    for struct and union ConditionalTypeMap represents for the fields of the struct

    for struct and union ConditionalTypeMap represents for the fields of the struct

    structs do not need to be defined, but they can be complete (with fields) or incomplete

    we store whether a structure with this name is complete (FeatureExpr). a redeclaration in an inner scope may reduce completeness again

    we do not distinguish between alternative structures. fields are merged in one ConditionalTypeMap entry, but by construction they cannot overlap if the structure declarations do not overlap variant-wise

    the structEnv maps a tag name to a conditional tuple (isComplete, fields, scope)

    Definition Classes
    CEnv
  6. type VarTypingContext = ConditionalVarEnv

    Permalink

    *** Variable-Typing context (collects all top-level and local declarations) variables with local scope overwrite variables with global scope

    *** Variable-Typing context (collects all top-level and local declarations) variables with local scope overwrite variables with global scope

    Definition Classes
    CEnv

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object EmptyEnv extends Env

    Permalink
    Definition Classes
    CEnv
  5. def addAnonStructUse(id: Id, fields: ConditionalTypeMap): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  6. def addDecl(current: Any, featureExpr: FeatureExpr, env: Env, isDefinition: Boolean = true): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  7. def addDefinition(definition: AST, env: Env, feature: FeatureExpr, isFunctionDeclarator: Boolean = false): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  8. def addEnumUse(entry: AST, env: Env, feature: FeatureExpr): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  9. def addEnv(ast: AST, env: Env): Unit

    Permalink

    invoked before every external decl, statement and expression with the environment of that node

    invoked before every external decl, statement and expression with the environment of that node

    for example to debug the environment

    mixed in from CEnvCache

    Attributes
    protected
    Definition Classes
    CEnvCacheCTypeSystemInterface
  10. def addJumpStatements(compoundStatement: CompoundStatement): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  11. def addOldStyleParameters(oldStyleParameters: List[Opt[OldParameterDeclaration]], declarator: Declarator, expr: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  12. def addStructDeclUse(entry: Id, env: Env, isUnion: Boolean, feature: FeatureExpr): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  13. def addStructDefinition(definition: AST, env: Env, feature: FeatureExpr): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  14. def addStructRedeclaration(env: Env, declaration: Id, feature: FeatureExpr, isUnion: Boolean): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  15. def addStructUse(entry: AST, featureExpr: FeatureExpr, env: Env, structName: String, isUnion: Boolean): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  16. def addTypeUse(entry: AST, env: Env, feature: FeatureExpr): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  17. def addUse(entry: AST, feature: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  18. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  19. def assertTypeSystemConstraint(condition: Boolean, featureExpr: FeatureExpr, msg: String, where: AST): Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  20. def checkDefuse(ast: AST, declUseMap: IdentityIdHashMap, useDeclMap: IdentityIdHashMap, fm: FeatureModel = ...): (String, Int, Int, Int)

    Permalink
  21. def checkingExternal(externalDef: ExternalDef): Unit

    Permalink

    invoked before checking an external declaration (for example used for progress reports)

    invoked before checking an external declaration (for example used for progress reports)

    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  22. def clearDeclUseMap(): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  23. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  25. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  26. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  27. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  28. def getDeclUseMap: IdentityIdHashMap

    Permalink
  29. def getUseDeclMap: IdentityIdHashMap

    Permalink
  30. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  31. def init(): Unit

    Permalink
    Definition Classes
    CDeclUseCDeclUseInterface
  32. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  33. def issueTypeError(severity: Severity, condition: FeatureExpr, msg: String, where: AST, severityExtra: String = ""): Unit

    Permalink

    error reporting for type errors

    error reporting for type errors

    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  34. def lookupEnv(ast: AST): Env

    Permalink
    Definition Classes
    CEnvCache
  35. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  36. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  37. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  38. val numberOfBuiltinFunctions: Int

    Permalink
  39. final def reportTypeError(featureExpr: FeatureExpr, txt: String, where: AST, severity: Severity = Severity.OtherError, severityExtra: String = ""): CUnknown

    Permalink
    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  40. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  41. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  42. def typedExpr(expr: Expr, ctype: Conditional[CType], featureExpr: FeatureExpr, env: Env): Unit

    Permalink

    invoked after typing an expression

    invoked after typing an expression

    refined by CTypeCache if desired

    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  43. def typedFunction(fun: FunctionDef, ctype: Conditional[CType], featureExpr: FeatureExpr): Unit

    Permalink

    invoked after typing a function definition (top level declaration, not nested function)

    invoked after typing a function definition (top level declaration, not nested function)

    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  44. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  45. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  46. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from CEnvCache

Inherited from CTypeSystemInterface

Inherited from CDeclUseInterface

Inherited from CEnv

Inherited from AnyRef

Inherited from Any

Ungrouped