blob: b18fcc5c6eca298d2a13933758e69e88eb071533 [file] [log] [blame]
The Ruta language is an imperative rule language extended with scripting elements.
A Ruta rule defines a pattern of annotations with additional conditions. If this
pattern applies, then the actions of the rule are performed on the matched annotations.
A rule is composed of a sequence of rule elements and a rule element essentially consists
of four parts: A matching condition, an optional quantifier, a list of conditions and a
list of actions. The matching condition is typically a type of an annotation by which the
rule element matches on the covered text of one of those annotations. The quantifier
specifies, whether it is necessary that the rule element successfully matches and how often
the rule element may match. The list of conditions specifies additional constraints that
the matched text or annotations need to fulfill. The list of actions defines the
consequences of the rule and often creates new annotations or modifies existing annotations.