Rbe

sealed trait Rbe[+A] extends Product with Serializable

This trait defines Single Occurrence Regular Bag Expressions (Rbe)

== Further info ==

The algorithm to check that a Rbe contains a bag is PTIME The algorithm has been described in [1] and is based on intervals

[1] Complexity and Expressiveness of ShEx for RDF, S. Staworko, I. Boneva, J. Labra, S. Hym, E. Prud'hommeaux, H. Solbrig

Companion
object
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
class And[A]
object Empty
class Fail
class Or[A]
class Plus[A]
class Repeat[A]
class Star[A]
class Symbol[A]

Value members

Concrete methods

def deriv[U >: A](x: U, open: Boolean, controlled: Seq[U])(implicit r: Show[U]): Rbe[U]

derivative of this RBE with regards to a symbol

derivative of this RBE with regards to a symbol

Value Params
controlled

defines the symbols that are allowed in closed expressions

open

allows extra symbols

x

symbol

def derivBag[U >: A](bag: Bag[U], open: Boolean, controlled: Seq[U])(implicit r: Show[U]): Rbe[U]

Derivative over a bag of symbols

Derivative over a bag of symbols

Value Params
controlled

limits the extra symbols to those that don't appear in controlled

open

allows extra symbols

def nullable[U >: A]: Either[Map[U, Int], Unit]

Checks if a rbe is nullable

Checks if a rbe is nullable

Inherited methods

def canEqual(that: Any): Boolean
Inherited from
Equals
def productArity: Int
Inherited from
Product
def productElement(n: Int): Any
Inherited from
Product
def productElementName(n: Int): String
Inherited from
Product
def productElementNames: Iterator[String]
Inherited from
Product
def productIterator: Iterator[Any]
Inherited from
Product
def productPrefix: String
Inherited from
Product

Concrete fields

lazy val containsRepeats: Boolean

Checks if a RBE contains repetitions

Checks if a RBE contains repetitions

lazy val symbols: Seq[A]

Symbols that contains this rbe

Symbols that contains this rbe

Example:

symbols(Or(And(Symbol("a",1,3),Symbol("b",1,1)),Symbol("b",2,3))) == Seq("a","b")