<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" title="Pretty print" ?>
<?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css" title="Easy editing stylesheet" ?>
<!--
Ukrainian grammar and typo rules for LanguageTool
Copyright (C) 2007 Andriy Rysin

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
-->
<rules lang="uk" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.xsd">

    <category name="Пунктуація" id="PUNCTUATION">
        <rulegroup id="PLEASE_NO_COMMA" name="«будь ласка» виділяється комами">
            <rule>
                <pattern>
                    <token>будь</token>
                    <token>ласка</token>
                    <token negate="yes" regexp="yes">[,\.!?:»]|[.!?]{3}</token>
                </pattern>
                <message>Відсутня права кома: <suggestion>\1 \2, \3</suggestion>.</message>
                <example correction="будь ласка, у">Запитайте, <marker>будь ласка у</marker> водія.</example>
            </rule>
            <rule>
                <pattern>
                    <token negate="yes" regexp="yes">[\p{Punct}–—\(«]|[!?.]{3}
                      <exception postag="SENT_START"/>
                    </token>
                    <token>будь</token>
                    <token>ласка</token>
                </pattern>
                <message>Відсутня ліва кома: <suggestion>\1, \2 \3</suggestion>.</message>
                <example>Запитайте, будь ласка, у водія.</example>
                <example correction="Запитайте, будь ласка"><marker>Запитайте будь ласка</marker>, у водія.</example>
            </rule>
        </rulegroup>

        <rulegroup id="INSERTED_WORDS_NO_COMMA" name="вставні слова, напр., «мабуть», «щоправда», виділяються комами">
            <rule>
                <pattern>
                    <token regexp="yes">мабуть|по-перше|по-друге|по-третє|щоправда|о?крім того|а втім</token>
                    <token>
                      <exception regexp="yes">[!?:;,"»\(\)\[\]/–—-]|[!?.]{3}</exception>
                      <exception postag="SENT_END">.</exception>
                    </token>
                </pattern>
                <message>Відсутня права кома: <suggestion>\1, \2</suggestion>.</message>
                <example>Це, мабуть, його водій.</example>
                <example>По-третє.</example>
                <example correction="мабуть, його">Це, <marker>мабуть його</marker> водій.</example>
            </rule>
            <rule>
                <pattern case_sensitive="yes">
                    <token negate="yes" regexp="yes">[!?:;,\(\)\[\]/"«АаІіЙй–—-]|[!?.]{3}
                      <exception postag="SENT_START"/>
                    </token>
                    <token regexp="yes">мабуть|щоправда|о?крім того|втім</token>
                </pattern>
                <message>Відсутня ліва кома: <suggestion>\1, \3</suggestion>.</message>
                <example>Мабуть, це водій.</example>
                <example>Це, мабуть, водій.</example>
                <example>Але це... мабуть, водій.</example>
                <example correction="Це, мабуть"><marker>Це мабуть</marker>, водій.</example>
                <!-- крапка замість коми, TODO: fix correction -->
                <example correction="., щоправда">призначає нового    прем’єра<marker>. щоправда</marker>, у Держдуми</example>
            </rule>
            <rule>
                <pattern case_sensitive="yes">
                    <token negate="yes" regexp="yes">[!?:;,\(\)\[\]/"«АаІі–—-]|[!?.]{3}|[Цц]е
                      <exception postag="SENT_START"/>
                      <exception>Ну</exception>
                    </token>
                    <token regexp="yes">по-перше|по-друге|по-третє</token>
                    <token negate="yes">ж</token>
                </pattern>
                <message>Відсутня ліва кома: <suggestion>\1, \2</suggestion>.</message>
                <example>Це по-перше.</example>
                <example>Ну по-перше, треба зробити оце.</example>
                <example correction="нашпигувати, по-друге">По-перше, треба його <marker>нашпигувати по-друге,</marker> запекти.</example>
            </rule>
        </rulegroup>

        <rulegroup name="Відсутня кома перед «але», «однак», ..." id="COMMA_BEFORE_BUT">
            <rule>
                <antipattern>
                  <token>одне</token>
                  <token>але</token>
                </antipattern>
                <pattern case_sensitive="yes">
                  <marker>
                    <token regexp="yes" negate="yes">[!?:;,…"«\(\)\[\]/"«„–—-]|[!?.]{3}|[?!]\.\.|[нН]у|[АаІіЙй]|але
                      <exception postag="SENT_START"></exception>
                    </token>
                    <token regexp="yes">а|але|однак|проте|зате</token>
                  </marker>
                  <token regexp="yes" negate="yes">[\p{Punct}"«\(\)–—]|ля</token>
                </pattern>
                <message>Відсутня кома перед сполучником: <suggestion>\1, \2</suggestion></message>
                <example>Вгадав всі літери — але не зміг прочитати слово.</example>
                <example>почалося щось а ля комедія</example>
                <example>Якби не одне але</example>
                <example>Всесвіт припинить своє існування, а це неможливо!</example>
                <example>Всесвіт припинить своє існування! а це неможливо!</example>
                <example>Всесвіт припинить своє існування!!! а це неможливо!</example>
                <example>Всесвіт припинить своє існування!.. а це неможливо!</example>
                <example>Боже мій! а що буде з матір'ю</example>
                <example correction="літери, але">Вгадав всі <marker>літери але</marker> не зміг прочитати слово.</example>
            </rule>
        </rulegroup>
<!--
   На жаль правило впирається в семантичний рівень, можна хіба що спробувати ловити перед числом або числівником
        <rulegroup name="Зайва кома в оборотах «більш ніж…»" id="NO_COMMA_BEFORE_NIZH">
            <rule>
                <pattern>
                  <marker>
                    <token regexp="yes">(більше?|менше?|раніше?|пізніше?|довше?|коротше?)</token>
                    <token>,</token>
                    <token regexp="yes">ніж|як</token>
                  </marker>
                  <token postag_regexp="yes" postag="numr.*|number"/>
                </pattern>
                <message>Не ставиться кома перед як, ніж у виразах (не) більш як, (не) раніше ніж, (не) довше ніж тощо</message>
                <suggestion>\1 \3</suggestion>
                <url>http://pravopys.kiev.ua/pravopys.aspx?SectionID=2128</url>
                <example correction="більше ніж">Додано <marker>більше, ніж</marker> 10 тис слів.</example>
                <example>Ви більше, ніж актор.</example>
            </rule>
        </rulegroup>
 -->

    </category>

</rules>
