Package

ast

dsl

Permalink

package dsl

This package contains the abstract syntax tree of Scade programs.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. dsl
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed trait ASTException extends Exception

    Permalink
  2. sealed trait ASTNode extends SourceMapped

    Permalink

    Abstract type for all AST nodes.

  3. case class And(kid1: BoolExpr, kid2: BoolExpr) extends BoolExpr with BoolExprKidsSameTypeRule[BoolExpr] with Product with Serializable

    Permalink

    Logical conjunction.

  4. case class BasicFlowIdent(baseId: DSLSymbol) extends FlowIdent with Product with Serializable

    Permalink

    Basic flow identifier (without special characters).

  5. sealed trait BoolExpr extends Expr

    Permalink

    Type for Boolean-valued expressions.

  6. trait BoolExprKidsSameTypeRule[K <: Expr] extends AnyRef

    Permalink

    Typing rule for BoolExpr with K kids which must have the same type.

  7. case class BoolIdent(baseId: DSLSymbol) extends BoolExpr with IdentLike with Product with Serializable

    Permalink

    Basic boolean identifier (with or withtout special characters).

  8. case class CompAlternative(compId: CompIdent, lambdaValues: List[(BoolIdent, DecRealLit)]) extends ASTNode with Product with Serializable

    Permalink
  9. case class CompCall(compId: CompIdent, instId: DSLSymbol, args: List[FlowExpr]) extends CompExpr with Product with Serializable

    Permalink

    Component Instanciation.

  10. case class CompCallFlowDefinition(lhs: List[BasicFlowIdent], rhs: CompCall) extends FlowDefinition with Product with Serializable

    Permalink

    Definition of a list of flows by component instanciation.

  11. sealed trait CompExpr extends ASTNode

    Permalink

    Base type for component-based expressions.

  12. case class CompIdent(baseId: DSLSymbol, pkgId: PackageIdent = NilPackageIdent()) extends IdentLike with Product with Serializable

    Permalink

    Component identifier, located in a package.

  13. case class CompInstanceIdent(path: List[DSLSymbol]) extends IdentLike with Product with Serializable

    Permalink

    Component instance identifier, representing a path in the call tree relative to some root instance.

  14. case class CompSubstitution(instance: CompInstanceIdent, alternatives: List[CompAlternative], init: CompAlternative) extends ASTNode with Product with Serializable

    Permalink

    Represents the information that component instance can be replaced by alternative components.

  15. case class ComponentBody(events: List[BoolIdent], locals: List[FlowDeclaration], definitions: List[FlowDefinition]) extends ASTNode with ParentField[ComponentDeclaration] with NamespaceField[ComponentBodyNamespace] with Product with Serializable

    Permalink

    Component body.

  16. case class ComponentDeclaration(ident: CompIdent, inputs: List[FlowDeclaration], outputs: List[FlowDeclaration], body: ComponentBody, isPrimary: Boolean = false) extends ProgramDeclaration with NamespaceField[ComponentNamespace] with Product with Serializable

    Permalink

    Declares a component.

  17. sealed trait CompositeTypeExpr extends TypeExpr

    Permalink
  18. case class ConfigIdent(baseId: DSLSymbol, pkgId: PackageIdent = NilPackageIdent()) extends IdentLike with Product with Serializable

    Permalink

    Component identifier, located in a package.

  19. case class ConfigurationDeclaration(ident: ConfigIdent, rootCompId: CompIdent, minCardValue: Option[DecIntLit], failureCondition: BoolExpr, duration: Option[DecRealLit], reliability: Option[DecRealLit], designSpace: List[CompSubstitution]) extends ProgramDeclaration with NamespaceField[ConfigurationNamespace] with Product with Serializable

    Permalink

    Declaration of a configuration for an analysis.

  20. sealed trait DSLSymbol extends ASTNode

    Permalink

    Abstract trait for symbols handled in the DSL.

  21. case class DecIntLit(repr: String) extends IntExpr with Product with Serializable

    Permalink

    Integer literal in decimal notation.

  22. case class DecRealLit(repr: String) extends RealExpr with Product with Serializable

    Permalink

    Integer literal in decimal notation.

  23. sealed trait Declaration extends ASTNode

    Permalink

    Type for all declarations allowed in a DSL model.

  24. sealed trait Expr extends ASTNode

    Permalink

    Type for value-carrying expressions.

  25. sealed trait FlowConst extends FlowIdent

    Permalink
  26. case class FlowContains(kid1: FlowExpr, kid2: FlowExpr) extends BoolExpr with BoolExprKidsSameTypeRule[FlowExpr] with Product with Serializable

    Permalink

    Flow containment test.

  27. case class FlowDeclaration(ident: BasicFlowIdent, typeId: TypeIdent) extends Declaration with ParentEitherField[ComponentDeclaration, ComponentBody] with Product with Serializable

    Permalink

    Declares a new data-flow.

  28. sealed trait FlowDefinition extends ASTNode with ParentField[ComponentBody]

    Permalink

    Type for all data-flow definitions.

  29. case class FlowEq(kid1: FlowExpr, kid2: FlowExpr) extends BoolExpr with BoolExprKidsSameTypeRule[FlowExpr] with Product with Serializable

    Permalink

    Flow equality.

  30. sealed trait FlowExpr extends Expr

    Permalink

    Flow-valued expressions.

  31. trait FlowExprKidsSameTypeRule extends AnyRef

    Permalink
  32. sealed trait FlowIdent extends FlowExpr with IdentLike with FlowIdentTypeRule

    Permalink

    Type for identifier-like flow-valued expressions.

  33. trait FlowIdentTypeRule extends AnyRef

    Permalink
  34. case class FlowInter(kid1: FlowExpr, kid2: FlowExpr) extends FlowExpr with FlowExprKidsSameTypeRule with Product with Serializable

    Permalink

    Flow intersection operator.

  35. case class FlowIte(kid1: BoolExpr, kid2: FlowExpr, kid3: FlowExpr) extends FlowExpr with Product with Serializable

    Permalink

    Flow intersection operator.

  36. case class FlowNeq(kid1: FlowExpr, kid2: FlowExpr) extends BoolExpr with BoolExprKidsSameTypeRule[FlowExpr] with Product with Serializable

    Permalink

    Flow inequality.

  37. case class FlowUnion(kid1: FlowExpr, kid2: FlowExpr) extends FlowExpr with FlowExprKidsSameTypeRule with Product with Serializable

    Permalink

    Flow union operator.

  38. sealed trait IdentLike extends ASTNode

    Permalink

    Abstract type for identifiers-like nodes.

  39. case class Iff(kid1: BoolExpr, kid2: BoolExpr) extends BoolExpr with BoolExprKidsSameTypeRule[BoolExpr] with Product with Serializable

    Permalink

    Logical equivalence.

  40. case class Implies(kid1: BoolExpr, kid2: BoolExpr) extends BoolExpr with BoolExprKidsSameTypeRule[BoolExpr] with Product with Serializable

    Permalink

    Logical implication.

  41. case class InFile(filename: String, line: Int, column: Int, posInFile: Int, size: Int) extends SourceLocation with Product with Serializable

    Permalink

    Location of an ASTNode in some source file

    Location of an ASTNode in some source file

    filename

    the source filename

    line

    line number in the file

    column

    column number in the line

  42. case class IncludeDeclaration(filePath: String) extends ProgramDeclaration with Product with Serializable

    Permalink

    Includes a file.

  43. case class InstBoolIdent(baseId: BoolIdent, instId: CompInstanceIdent) extends Product with Serializable

    Permalink

    Component instance prefixed boolean identifier

  44. case class InstFlowIdent(baseId: DSLSymbol, instId: CompInstanceIdent) extends FlowIdent with Product with Serializable

    Permalink

    Flow identifier wrapped in a instance prefix.

  45. sealed trait IntExpr extends ASTNode

    Permalink

    Base type for integer-valued expressions.

  46. trait NamespaceField[N <: Namespace] extends AnyRef

    Permalink

    Adds a namespace field to a node.

  47. case class NamespaceNotSet(node: ASTNode) extends Exception with ASTException with Product with Serializable

    Permalink

    Thrown when accessing a NamespaceField that has not been set yet.

  48. case class Not(kid1: BoolExpr) extends BoolExpr with Product with Serializable

    Permalink

    Logical negation.

  49. case class OpenDeclaration(pkgId: PackageIdent) extends ProgramDeclaration with TargetDeclField[PackageDeclaration] with Product with Serializable

    Permalink

    Opens a package.

  50. case class Or(kid1: BoolExpr, kid2: BoolExpr) extends BoolExpr with BoolExprKidsSameTypeRule[BoolExpr] with Product with Serializable

    Permalink

    Logical disjuction.

  51. case class PackageDeclaration(ident: PackageIdent, declarations: List[ProgramDeclaration], visibility: VisibilityStatus = PublicStatus) extends ProgramDeclaration with NamespaceField[PackageNamespace] with Product with Serializable

    Permalink

    Declares a package.

  52. case class PackageIdent(path: List[DSLSymbol]) extends ASTNode with IdentLike with Product with Serializable

    Permalink
  53. trait ParentEitherField[A <: ASTNode, B <: ASTNode] extends AnyRef

    Permalink

    Adds a disjunction of parents to a node.

  54. trait ParentEitherFieldAMagic extends AnyRef

    Permalink

    Magic object used to circumvent type erasure.

  55. trait ParentEitherFieldBMagic extends AnyRef

    Permalink

    Magic object used to circumvent type erasure.

  56. trait ParentField[A <: ASTNode] extends AnyRef

    Permalink

    Adds a parent node to a node.

  57. case class ParentNotSet(node: ASTNode) extends Exception with ASTException with Product with Serializable

    Permalink

    Thrown when accessing a ParentField that has not been set yet.

  58. case class PipedDSLSymbol(symbol: Symbol) extends DSLSymbol with Product with Serializable

    Permalink

    Piped symbols matching the PIPED_IDENT rule of the parser.

  59. case class PointedDSLSymbol(symbol: Symbol) extends DSLSymbol with Product with Serializable

    Permalink

    Piped symbols matching the POINTED_IDENT rule of the parser.

  60. case class PopCount(kids: List[BoolExpr], relop: RelOp, cst: DecIntLit) extends BoolExpr with Product with Serializable

    Permalink

    Population count: predicates equvalent to """ \Sigma_{kid \in kids }{kid} \langle relop \rangle cst""".

  61. sealed trait ProgramDeclaration extends Declaration with ParentField[PackageDeclaration]

    Permalink

    Type for all program-level declarations.

  62. sealed trait RealExpr extends ASTNode

    Permalink

    Base type for integer-valued expressions.

  63. sealed trait RelOp extends AnyRef

    Permalink

    Type for relational operators used in population counts.

  64. sealed trait ScalarTypeExpr extends TypeExpr

    Permalink
  65. case class SingleFlowDefinition(lhs: BasicFlowIdent, rhs: FlowExpr) extends FlowDefinition with Product with Serializable

    Permalink

    Definition of a single flow definition by a flow expression.

  66. sealed trait SourceLocation extends AnyRef

    Permalink

    Locates an ASTNode in a source file.

  67. trait SourceMapped extends AnyRef

    Permalink

    Adds source location information to an ASTNode.

  68. case class StdDSLSymbol(symbol: Symbol) extends DSLSymbol with Product with Serializable

    Permalink

    Standard symbols mathching the IDENT rule of the parser.

  69. trait TargetDeclField[D <: ProgramDeclaration] extends AnyRef

    Permalink

    Adds a pointed to a target declaration to a node.

  70. case class TargetNotSet(node: ASTNode) extends Exception with ASTException with Product with Serializable

    Permalink

    Thrown when accessing a TargetField that has not been set yet.

  71. case class TupleType(kids: List[ScalarTypeExpr]) extends CompositeTypeExpr with Product with Serializable

    Permalink
  72. case class TypeDeclaration(ident: TypeIdent, values: List[DSLSymbol]) extends ProgramDeclaration with Product with Serializable

    Permalink

    Declares a type.

  73. sealed trait TypeExpr extends ASTNode

    Permalink

    Type expressions.

  74. case class TypeIdent(baseId: DSLSymbol, pkgId: PackageIdent = NilPackageIdent()) extends ScalarTypeExpr with IdentLike with Product with Serializable

    Permalink

    Type identifiers.

    Type identifiers. P1 :: ... :: Pn :: T | pkgId | baseId

  75. case class TypeValueFlowEmpty(typeId: TypeIdent) extends FlowConst with Product with Serializable

    Permalink

    The empty set litteral of a given type.

    The empty set litteral of a given type. P1 :: ... :: Pn :: T ! empty | typeId |

  76. case class TypeValueFlowIdent(typeId: TypeIdent, valueId: DSLSymbol) extends FlowConst with Product with Serializable

    Permalink

    Flow identifier corresponding to a type constructor P1 :: ...

    Flow identifier corresponding to a type constructor P1 :: ... :: Pn :: T ! v | typeId | | valueId |

  77. sealed trait VisibilityStatus extends AnyRef

    Permalink

Value Members

  1. object BoolType extends ScalarTypeExpr with IdentLike with Product with Serializable

    Permalink

    The type of boolean expressions.

  2. implicit object EitherA extends ParentEitherFieldAMagic

    Permalink
  3. implicit object EitherB extends ParentEitherFieldBMagic

    Permalink
  4. object Eq extends RelOp with Product with Serializable

    Permalink

    Equal operator.

  5. object Ge extends RelOp with Product with Serializable

    Permalink

    Greater-than-or-equal operator.

  6. object Gt extends RelOp with Product with Serializable

    Permalink

    Greater-than operator.

  7. object Le extends RelOp with Product with Serializable

    Permalink

    Less-than-or-equal operator.

  8. object Lt extends RelOp with Product with Serializable

    Permalink

    Less-than operator.

  9. object NilPackageIdent

    Permalink
  10. object PrivateStatus extends VisibilityStatus with Product with Serializable

    Permalink
  11. object PublicStatus extends VisibilityStatus with Product with Serializable

    Permalink
  12. object RootPackage

    Permalink

    Creates the root package from a list of declarations.

  13. object Transformer

    Permalink

    Generate a new system by applying substitution

  14. object UnknownLocation extends SourceLocation with Product with Serializable

    Permalink

    Unknown source location.

Inherited from AnyRef

Inherited from Any

Ungrouped