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.type
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 parameters:
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 parameters:
controlled

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

matched

bag of matched symbols

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
Inherited from:
Product
def productElement(n: Int): Any
Inherited from:
Product
Inherited from:
Product
Inherited from:
Product
Inherited from:
Product

Concrete fields

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")