<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" | |
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"[ | |
<!ENTITY imgroot "images/tools/tools.ruta/" > | |
<!ENTITY % uimaents SYSTEM "../../target/docbook-shared/entities.ent" > | |
%uimaents; | |
]> | |
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor | |
license agreements. See the NOTICE file distributed with this work for additional | |
information regarding copyright ownership. The ASF licenses this file to | |
you under the Apache License, Version 2.0 (the "License"); you may not use | |
this file except in compliance with the License. You may obtain a copy of | |
the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required | |
by applicable law or agreed to in writing, software distributed under the | |
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS | |
OF ANY KIND, either express or implied. See the License for the specific | |
language governing permissions and limitations under the License. --> | |
<section id="ugr.tools.ruta.language.quantifier"> | |
<title>Quantifiers</title> | |
<para> | |
</para> | |
<section id="ugr.tools.ruta.language.quantifier.sg"> | |
<title>* Star Greedy</title> | |
<para> | |
The Star Greedy quantifier matches on any amount of annotations and | |
evaluates always true. Please mind that a rule element with a Star | |
Greedy quantifier needs to match on different annotations as the | |
next rule element. | |
Examples: | |
<programlisting><![CDATA[Input: small Big Big Big small | |
Rule: CW* | |
Matched: Big Big Big | |
Matched: Big Big | |
Matched: Big]]></programlisting> | |
</para> | |
</section> | |
<section id="ugr.tools.ruta.language.quantifier.sr"> | |
<title>*? Star Reluctant</title> | |
<para> | |
The Star Reluctant quantifier matches on any amount of annotations | |
and evaluates always true, but stops to match on new annotations, | |
when the next rule element matches and evaluates true on this | |
annotation. | |
Examples: | |
<programlisting><![CDATA[Input: 123 456 small small Big | |
Rule: W*? CW | |
Matched: small small Big | |
Matched: small Big | |
Matched: Big]]></programlisting> | |
</para> | |
<para> | |
The last match <quote>Big</quote> can be problematic using different types | |
if the rule starts matching with the first rule element. | |
</para> | |
</section> | |
<section id="ugr.tools.ruta.language.quantifier.pg"> | |
<title>+ Plus Greedy</title> | |
<para> | |
The Plus Greedy quantifier needs to match on at least one | |
annotation. | |
Please mind that a rule element after a rule element | |
with a Plus | |
Greedy quantifier matches and evaluates on different | |
conditions. | |
Examples: | |
<programlisting><![CDATA[Input: 123 456 small small Big | |
Rule: SW+ | |
Matched: small small | |
Matched: small]]></programlisting> | |
</para> | |
</section> | |
<section id="ugr.tools.ruta.language.quantifier.pr"> | |
<title>+? Plus Reluctant</title> | |
<para> | |
The Plus Reluctant quantifier has to match on at least one | |
annotation | |
in order to evaluate true, but stops when the next rule | |
element is | |
able to match on this annotation. | |
Examples: | |
<programlisting><![CDATA[Input: 123 456 small small Big | |
Rule: W+? CW | |
Matched: small small Big | |
Matched: small Big]]></programlisting> | |
</para> | |
</section> | |
<section id="ugr.tools.ruta.language.quantifier.qg"> | |
<title>? Question Greedy</title> | |
<para> | |
The Question Greedy quantifier matches optionally on an annotation | |
and therefore always evaluates true. | |
Examples: | |
<programlisting><![CDATA[Input: 123 456 small Big small Big | |
Rule: SW CW? SW | |
Matched: small Big small]]></programlisting> | |
</para> | |
</section> | |
<section id="ugr.tools.ruta.language.quantifier.qr"> | |
<title>?? Question Reluctant</title> | |
<para> | |
The Question Reluctant quantifier matches optionally on an | |
annotation, | |
if the next rule element does not match on the same | |
annotation and | |
therefore always evaluates true. | |
Examples: | |
<programlisting><![CDATA[Input: 123 456 small Big small Big | |
Rule: SW CW?? SW | |
Matched: small Big small]]></programlisting> | |
</para> | |
</section> | |
<section id="ugr.tools.ruta.language.quantifier.mmg"> | |
<title>[x,y] Min Max Greedy</title> | |
<para> | |
The Min Max Greedy quantifier has to match at least x and at most y | |
annotations of its rule element to evaluate true. | |
Examples: | |
<programlisting><![CDATA[Input: 123 456 small Big small Big | |
Rule: SW CW[1,2] SW | |
Matched: small Big small]]></programlisting> | |
</para> | |
</section> | |
<section id="ugr.tools.ruta.language.quantifier.mmr"> | |
<title>[x,y]? Min Max Reluctant</title> | |
<para> | |
The Min Max Greedy quantifier has to match at least x and at most y | |
annotations of its rule element to evaluate true, but stops to | |
match on additional annotations, if the next rule element is able to | |
match on this annotation. | |
Examples: | |
<programlisting><![CDATA[Input: 123 456 small Big Big Big small Big | |
Rule: SW CW[2,100]? SW | |
Matched: small Big Big Big small]]></programlisting> | |
</para> | |
</section> | |
</section> |