Object

sigmastate.lang

Terms

Related Doc: package lang

Permalink

object Terms

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

Type Members

  1. case class Apply(func: Value[SType], args: IndexedSeq[Value[SType]]) extends Value[SType] with Product with Serializable

    Permalink
  2. case class ApplyTypes(input: Value[SType], tpeArgs: Seq[SType]) extends Value[SType] with Product with Serializable

    Permalink

    Apply types for type parameters of input value.

  3. case class Block(bindings: Seq[Val], result: SValue) extends Value[SType] with Product with Serializable

    Permalink

    Frontend representation of a block of Val definitions.

    Frontend representation of a block of Val definitions. { val x = ...; val y = ... } This node is not part of ErgoTree and hence have Undefined opCode.

  4. case class Ident(name: String, tpe: SType = NoType) extends Value[SType] with Product with Serializable

    Permalink

    Frontend node to represent variable names parsed in a source code.

    Frontend node to represent variable names parsed in a source code. Should be resolved during compilation to lambda argument, Val definition or compilation environment value.

  5. case class Lambda(tpeParams: Seq[STypeParam], args: IndexedSeq[(String, SType)], givenResType: SType, body: Option[Value[SType]]) extends Value[SFunc] with Product with Serializable

    Permalink

    Frontend implementation of lambdas.

    Frontend implementation of lambdas. Should be transformed to FuncValue.

  6. case class MethodCall(obj: Value[SType], method: SMethod, args: IndexedSeq[Value[SType]], typeSubst: Map[STypeVar, SType]) extends Value[SType] with Product with Serializable

    Permalink

    Represents in ErgoTree an invocation of method of the object obj with arguments args.

    Represents in ErgoTree an invocation of method of the object obj with arguments args. The SMethod instances in STypeCompanions may have type STypeIdent in methods types, but valid ErgoTree should have SMethod instances specialized for specific types of obj and args using specializeFor. This means, if we save typeId, mathodId, and we save all the arguments, we can restore the specialized SMethod instance. This work by induction, if we assume all arguments are monomorphic, then we can make MethodCall monomorphic. Thus, all ErgoTree instances are monomorphic by construction.

    obj

    object on which method will be invoked

    method

    method to be invoked

    args

    arguments passed to the method on invocation

    typeSubst

    a map of concrete type for each generic type parameter

  7. case class MethodCallLike(obj: Value[SType], name: String, args: IndexedSeq[Value[SType]], tpe: SType = NoType) extends Value[SType] with Product with Serializable

    Permalink

    Frontend node to represent potential method call in a source code.

    Frontend node to represent potential method call in a source code. Should be resolved during compilation to MethodCall. Cannot be serialized to ErgoTree.

  8. case class OperationId(name: String, opType: SFunc) extends Product with Serializable

    Permalink
  9. case class STypeParam(ident: STypeVar, upperBound: Option[SType] = None, lowerBound: Option[SType] = None) extends Product with Serializable

    Permalink
  10. case class Select(obj: Value[SType], field: String, resType: Option[SType] = None) extends Value[SType] with Product with Serializable

    Permalink

    Frontend node to select a field from an object.

    Frontend node to select a field from an object. Should be transformed to SelectField

  11. trait Val extends Value[SType]

    Permalink
  12. case class ValNode(name: String, givenType: SType, body: SValue) extends Val with Product with Serializable

    Permalink
  13. implicit final class ValueOps extends AnyVal

    Permalink
  14. case class ZKProofBlock(body: SigmaPropValue) extends BoolValue with Product with Serializable

    Permalink

    IR node to represent explicit Zero Knowledge scope in ErgoTree.

    IR node to represent explicit Zero Knowledge scope in ErgoTree. Compiler checks Zero Knowledge properties and issue error message is case of violations. ZK-scoping is optional, it can be used when the user want to ensure Zero Knowledge of specific set of operations. Usually it will require simple restructuring of the code to make the scope body explicit. Invariants checked by the compiler:

    • single ZKProof in ErgoTree in a root position
    • no boolean operations in the body, because otherwise the result may be disclosed
    • all the operations are over SigmaProp values

    For motivation and details see https://github.com/ScorexFoundation/sigmastate-interpreter/issues/236

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 Apply extends ValueCompanion with Serializable

    Permalink
  5. object ApplyTypes extends ValueCompanion with Serializable

    Permalink
  6. object Block extends ValueCompanion with Serializable

    Permalink
  7. object Ident extends ValueCompanion with Serializable

    Permalink
  8. object Lambda extends ValueCompanion with Serializable

    Permalink
  9. object MethodCall extends ValueCompanion with Serializable

    Permalink
  10. object MethodCallLike extends ValueCompanion with Serializable

    Permalink
  11. object PropertyCall extends ValueCompanion

    Permalink
  12. object STypeParam extends Serializable

    Permalink
  13. object Select extends ValueCompanion with Serializable

    Permalink
  14. object Val

    Permalink
  15. object ValNode extends ValueCompanion with Serializable

    Permalink
  16. object ZKProofBlock extends ValueCompanion with Serializable

    Permalink
  17. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  18. def clone(): AnyRef

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

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

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  23. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  24. final def isInstanceOf[T0]: Boolean

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

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

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

    Permalink
    Definition Classes
    AnyRef
  28. final def synchronized[T0](arg0: ⇒ T0): T0

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

    Permalink
    Definition Classes
    AnyRef → Any
  30. final def wait(): Unit

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

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

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

Inherited from AnyRef

Inherited from Any

Ungrouped