<?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="SPELLING">

    <rulegroup id="SLOVA_Z_NAPIV_RAZOM" name="Слова з напів- пишемо разом">
      <rule>   
        <pattern>
         <marker>
          <token>напів</token>
          <token postag_regexp="yes" postag="(noun|adj|adv).*"></token>
         </marker>
        </pattern>
        <message>Слова з «напів» пишемо разом <suggestion>напів<match no="2"/></suggestion></message>
        <short>Правильно писати разом</short>
        <example correction="напівгіркий">У цього овоча <marker>напів гіркий</marker> присмак.</example>
        <example correction="напіввагон">Зелений <marker>напів вагон</marker></example>
        <example>У цього овоча напівгіркий присмак.</example>
      </rule>
    </rulegroup>
<!--
    <rulegroup id="SLOVA_Z_RAZOM" name="Слова з префіксами разом">
      <rule>   
        <pattern>
          <token case_sensitive="yes" regexp="yes">([Аа]нти|[Гг]іпер|[Ее]кстра|[Кк]вазі|[Кк]онтр|[Пп]севдо|[Пп]ост|[Тт]ранс|[Уу]льтра)[-–][а-яіїєґ].*
            <exception regexp="yes">[Кк]онтр[-–]адмір.*</exception>
          </token>
        </pattern>
        <message>Пишеться разом <suggestion><match no="1" regexp_match="(.*)[-–](.*)" regexp_replace="$1$2"/></suggestion></message>
        <url>http://www.pravopys.net/#search=25-33</url>
        <short>Правильно писати разом</short>
        <example correction="ультрагіркий">У цього овоча <marker>ультра-гіркий</marker> присмак.</example>
        <example correction="Квазісмішний"><marker>Квазі-смішний</marker> жарт.</example>
        <example>анти-Забужко</example>
      </rule>
    </rulegroup>
-->
    <rulegroup id="SLOVA_BEZ_DEFISU" name="Слова без дефісу">
      <rule>
        <antipattern>
          <token regexp="yes">[«"“„]</token>
          <token case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ].*</token>
          <token regexp="yes">[»"”“]</token>
        </antipattern>
        <pattern>
          <token regexp="yes">(авіа|авто|агро|анти|біо|вело|водо|газо|геліо|гео|гідро|гіпер|давньо|древньо|екзо|екстра|електро|зоо|ізо|квазі|кіно|космо|контр|лже|макро|мета|метео|мікро|мілі|моно|мото|мульти|нео|псевдо|пост|радіо|рентгено|стерео|супер|теле|транс|турбо|ультра|фоно|фото)[-–][а-яіїєґ][^-]{2,}
            <exception inflected="yes" regexp="yes">геліо-кадмієвий|водо-водяний|супер-пупер.*|водо-водо.*</exception>
            <exception regexp="yes">контр[-–]адмір.*</exception>
            <exception case_sensitive="yes" regexp="yes">.+[–-][А-ЯІЇЄҐ].*</exception>
          </token>
        </pattern>
        <message>Пишеться разом <suggestion><match no="1" regexp_match="(.*)[-–](.*)" regexp_replace="$1$2"/></suggestion></message>
        <url>http://www.pravopys.net/#search=25-33</url>
        <short>Правильно писати разом</short>
        <example correction="мультивалютний"><marker>мульти-валютний</marker> обмін.</example>
        <example correction="ультрагіркий">У цього овоча <marker>ультра-гіркий</marker> присмак.</example>
        <example correction="Квазісмішний"><marker>Квазі-смішний</marker> жарт.</example>
        <example>анти-Забужко</example>
        <example>мета-2013</example>
        <example>на «Супер-нова»</example>
        <example>не багато-не мало</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">(багато|високо|мало|низько)[-–][а-яіїєґ][^-]{2,}
            <exception regexp="yes">багато[–-](пре)?багато|високо[–-](пре)?високо|низько[–-]низ(ен)?ько|мало[–-]помалу|мало[–-]мало</exception>
            <!-- TODO: exception for everything tagged -->
            <exception regexp="yes">(багато|мало)[–-](хто|кому|кого|ким|що|чого|чому|чим|багато|мало|коли|де)</exception>
            <exception case_sensitive="yes" regexp="yes">.+[–-][А-ЯІЇЄҐ].*</exception>
          </token>
        </pattern>
        <message>Пишеться разом <suggestion><match no="1" regexp_match="(.*)[-–](.*)" regexp_replace="$1$2"/></suggestion></message>
        <url>http://www.pravopys.net/#search=25-33</url>
        <short>Правильно писати разом</short>
        <example correction="Багатоповерховий"><marker>Багато-поверховий</marker> будинок.</example>
        <example>багато-багато</example>
        <example>багато-кому</example>
        <example>мало-багато</example>
        <example>високо-високо</example>
        <example>мало-не</example>
        <example>село Мало-Янисоль</example>
        <example>Високо-Литовськ</example>
        <example>мало-коли</example>    <!-- пишеться окремо -->
      </rule>
    </rulegroup>

    <rulegroup id="PIV_Z_VLASN_NAZV" name="пів- з усіма власними назвами пишемо через дефіс">
      <rule>   
        <pattern>
         <marker>
          <token>пів</token>
          <!--
          <token regexp="yes">Європи|Києва|України|Польщі|Росії|Харкова|Америки|Австралії|Туреччини|Австрії|Відня|Китаю|Кореї|Франції|Іспанії|Італії|Угорщини|Москви|Казані|Швейцарії</token>
          -->
          <token postag_regexp="yes" postag="noun:.*:v_rod.*:prop.*"></token>
         </marker>
        </pattern>
        <message>«пів» з усіма власними назвами пишемо через дефіс: <suggestion><match no="1"/>-<match no="2"/></suggestion></message>
        <short>Правильно писати через дефіс</short>
        <example correction="пів-Європи">Снігопади паралізували <marker>пів Європи</marker>.</example>
        <example correction="пів-Євро́пи">Снігопади паралізували <marker>пів Євро́пи</marker>.</example>
        <example>Снігопади паралізували пів-Європи.</example>
      </rule>

      <rule>
        <pattern>
         <marker>
          <token>пів</token>
          <token regexp="yes">[яюєї].*</token>
         </marker>
        </pattern>
        <message>«пів» із загальними назвами на я, ю, є, ї пишемо через апостроф. Ви мали на увазі <suggestion>пів'<match no="2"/></suggestion>?</message>
        <short>Правильно «пів'яблука» тощо</short>
        <example correction="пів'яблука">З'їсти <marker>пів яблука</marker>.</example>
        <example>З'їсти пів'яблука.</example>
        <example correction="Пів'їдальні"><marker>Пів їдальні</marker> займали столи.</example>
        <example>Пів'їдальні займали столи. </example>
        <example correction="пів'юаня">Вартість квитка – <marker>пів юаня</marker>.</example>
        <example>Вартість квитка – пів'юаня.</example>
      </rule>
    </rulegroup>

    <rulegroup id="ALT_SPELLING" name="Альтернативний правопис">
      <rule>
      <pattern>
        <token postag_regexp="yes" postag=".*:alt.*">
         <exception negate_pos="yes" postag_regexp="yes" postag=".*:alt.*|SENT_END|SENT_START" />
        </token>
      </pattern>
      <message>Слово написане не за чинним правописом</message>
      <example correction=""><marker>проєкту</marker></example>
      <example correction=""><marker>хемія</marker></example>
      <example>проекту</example>
      <!-- TODO: fix marker position -->
      <example correction=""><marker>хе́мі</marker>я</example>
      <example>хоче прорости</example>
      <example>проекту</example>
      </rule>
    </rulegroup>

    <rulegroup id="DASH" name="Риска">
      <rule>
        <pattern>
          <token regexp="yes">[а-яіїєґ]+[—–][а-яіїєґ]+</token>
        </pattern>
        <message>Риска всередині слова. Всередині слова вживайте дефіс: <suggestion><match no="1" regexp_match="(.*)[—–](.*)" regexp_replace="$1-$2"/></suggestion
        >, між словами виокремлюйте риску пробілами: <suggestion><match no="1" regexp_match="(.*)[—–](.*)" regexp_replace="$1 — $2"/></suggestion></message>
        <example correction="січень-лютий|січень — лютий"><marker>січень—лютий</marker></example>
        <example correction="яскраво-рожевий|яскраво — рожевий"><marker>яскраво–рожевий</marker></example>
        <example correction="Вовка-Волкова|Вовка — Волкова"><marker>Вовка—Волкова</marker></example>
      </rule>
    </rulegroup>

    <rulegroup id="DIGITS_AND_LETTERS" name="Цифри та літери">
      <rule>
        <antipattern>
            <token>«</token>
            <token regexp="yes">[А-ЯІЇЄҐа-яіїєґ'-][а-яіїєґ]+[0-9]+[^а-яіїєґ]+</token>
            <token>»</token>
        </antipattern>
        <pattern>
          <marker>
            <token regexp="yes">[А-ЯІЇЄҐа-яіїєґ'-][а-яіїєґ]+[0-9]+[^а-яіїєґ]+
	          <exception regexp="yes">([кдсмн]|мк)?м[23]</exception>
	          <exception regexp="yes" case_sensitive="yes">[А-ЯІЇЄҐ-]+[0-9]+</exception>
	        </token>
          </marker>
        </pattern>
        <message>Відсутній дефіс або пробіл між словом і числом</message>
        <suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)" regexp_replace="$1-$2"/></suggestion>
        <suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)" regexp_replace="$1 $2"/></suggestion>
        <example correction="культивувати-170|культивувати 170">почали <marker>культивувати170</marker> років</example>
        <example correction="до-1600|до 1600"><marker>до1600</marker> ккал</example>
        <example correction="Євро-2012|Євро 2012">на хвилі <marker>Євро2012</marker></example>
        <example correction="майже-100%|майже 100%"><marker>майже100%</marker>.</example>
        <example>20 мм2</example>
        <example>ми скористалися службою «Інфо300»</example>
        <example>АН4774087</example>
      </rule>
      <rule id="UPPER_INDEX_FOR_M" name="Верхній індекс для метрів">
        <pattern>
          <token regexp="yes">([кдсмн]|мк)?м[23]</token>
        </pattern>
        <message>Можливо потрібен верхній індекс?</message>
        <suggestion><match no="1" regexp_match="([а-я]+)([23])" regexp_replace="$1²"/></suggestion>
        <suggestion><match no="1" regexp_match="([а-я]+)([23])" regexp_replace="$1³"/></suggestion>
        <example correction="км²|км³">900 тис. <marker>км2</marker></example>
        <example correction="м²|м³">900 <marker>м3</marker></example>
        <example>20 скм3</example>
      </rule>
      <rule id="DEGREES_FOR_C" name="Знак градусів">
        <pattern>
			<token case_sensitive="yes" regexp="yes">[+-]?[0-9,-]*[0-9][оo][СC]</token>	<!-- both lat and cyr o and C -->
        </pattern>
        <message>Можливо потрібен знак градуса?</message>
        <suggestion><match no="1" regexp_match="([+-]?[0-9,-]*[0-9])[оo][СC]" regexp_replace="$1°C"/></suggestion>
        <example correction="27°C">температура знизиться до <marker>27оC</marker>.</example>
        <example>20 ОС</example>
      </rule>
      <rule>
        <pattern>
          <marker>
            <token regexp="yes">[А-ЯІЇЄҐа-яіїєґ'-][а-яіїєґ]+[0-9]+[а-яіїєґ]+
	        </token>
          </marker>
        </pattern>
        <message>Цифри всередині слова</message>
        <suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)([а-яіїєґ'-])" regexp_replace="$1$3"/></suggestion>
        <suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)([а-яіїєґ'-])" regexp_replace="$1 $2 $3"/></suggestion>
        <example correction="напередодні|напе 1 редодні"><marker>напе1редодні</marker></example>
        <example>40х40х30</example>
      </rule>
      <rule>
        <antipattern>
            <token regexp="yes">[А-ЯІЇЄҐ].*</token>
         	<token regexp="yes">,</token>
            <token regexp="yes">[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*</token>
        </antipattern>
        <antipattern>
            <token regexp="yes">номер.*|нумерац.*|[/№]</token>
            <token regexp="yes">[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*</token>
        </antipattern>
        <antipattern>
            <token>«</token>
            <token regexp="yes">[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*</token>
            <token>»</token>
        </antipattern>
        <antipattern>
            <token regexp="yes">[0-9]{1,3}[а-яіїєґ]?</token>
            <token regexp="yes">,|і|та</token>
            <token regexp="yes">[0-9]{1,3}[а-яіїєґ]</token>
        </antipattern>
        <pattern>
          <marker>
            <token regexp="yes">[$+-]?[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*\.?
            	<exception case_sensitive="yes">1С</exception>
            	<exception regexp="yes">[0-9]+'</exception>
            	<exception case_sensitive="yes" regexp="yes">[+-]?[0-9,-]*[0-9][оo][СC]</exception>	<!-- both lat and cyr o and C -->
            </token>
          </marker>
        </pattern>
        <message>Відсутній дефіс або пробіл між числом і словом</message>
        <suggestion><match no="1" regexp_match="([0-9,-]*[0-9,])([а-яіїєґ'-])" regexp_replace="$1 $2"/></suggestion>
        <suggestion><match no="1" regexp_match="([0-9,-]*[0-9,])([а-яіїєґ'-])" regexp_replace="$1-$2"/></suggestion>
        <example correction="21 відсоток|21-відсоток">набрав <marker>21відсоток</marker>.</example>
        <example correction="505 грн|505-грн"><marker>505грн</marker>.</example>
        <example correction="5,05 грн|5,05-грн"><marker>5,05грн</marker>.</example>
        <example correction="1981 р.|1981-р.">З <marker>1981р.</marker></example>
        <example correction="1989 го|1989-го">15 лютого <marker>1989го</marker>.</example>
        <example correction="0,4-10 кВ|0,4-10-кВ">напруги <marker>0,4-10кВ</marker>.</example>
        <example>Естафета 4х100 м.</example>
        <example>Грушевського, 9а</example>
        <example>14,7оС</example>
        <example>та ж вулиця, номер 8ж</example>
        <example>автобусом № 441, 41к</example>
        <example>Будівля №36а</example>
        <example>у справі № 8/348а</example>
        <example>1С</example>
        <example>23° 27'</example>
        <example>програма «4М».</example>
        <example>від 27 грудня 1978 року за №44у—279 вирок</example>
      </rule>
    </rulegroup>

    <rulegroup id="ABBREVIATIONS" name="Скорочення">
    <!-- TODO: c - секунда, c. - село/сторінка; м — метр, м. — місто; т - тонна, т. - точка -->
      <url>http://www.library.ukma.edu.ua/fileadmin/documents/Bibliography/26_DCTU3582-97.pdf</url>
      <rule>
        <antipattern>
            <token>.</token>
            <token regexp="yes">[—–-]</token>
            <token regexp="yes">(авт\.|ред\.)</token>
        </antipattern>
        <pattern>
          <token case_sensitive="yes" regexp="yes">[мк]?г|мкг|грн|год|крб|м?л|млн|млрд|[мнсдк]м|мкм|[нм]с|мкс|смт|хв</token>
          <token negate_pos="yes" postag="SENT_END">.</token>
        </pattern>
        <message>Стягнені скорочення та метричні одиниці пишуться без крапки: <suggestion><match no="1"/></suggestion></message>
        <example correction="грн">100 <marker>грн.</marker> в банк.</example>
        <example correction="год">Двадцять <marker>год.</marker> їзди.</example>
        <example>Двадцять год.</example>
        <example>В м. Київ.</example>
        <example>Прийшов Л. Коцюба.</example>
        <example>штрафували на 30 тисяч злотих (близько 54 000 грн. – Авт.), конфіскували у нього машину.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">[0-9,-]+|кв\.|куб\.</token>
          <marker>
            <token case_sensitive="yes">м</token>
            <token negate_pos="yes" postag="SENT_END">.</token>
          </marker>
          <token case_sensitive="yes" negate="yes" regexp="yes">[А-ЯІЇЄҐ].*</token>
        </pattern>
        <message>Метричні одиниці пишуться без крапки: <suggestion><match no="2"/></suggestion></message>
        <example correction="м">100 <marker>м.</marker> дороги.</example>
        <example correction="м">100 кв. <marker>м.</marker> дороги.</example>
        <example>Останні 100 м.</example>
        <example>Прийшов М. Гориня.</example>
        <example>Проїхали м. Львів.</example>
        <example>Листи надсилайте на адресу: 79026    м. Львів, вул. Володимира Великого</example>
        <!-- TODO: важко розрізнити секунди від села від сторінки -->
        <!--
        <example correction="с">Останніх 37,8 <marker>с.</marker> шляху.</example>
        <example>Проїхали с. Веселе.</example>
        -->
      </rule>
      <rule>
        <pattern case_sensitive="yes">
          <token regexp="yes">р\.</token>
          <token regexp="yes">р\.</token>
        </pattern>
        <message>Роки скорочено пишуться <suggestion>рр.</suggestion></message>
        <example correction="рр.">70-80 <marker>р.р.</marker></example>
      </rule>
    </rulegroup>
<!--
    <rulegroup id="LAT_CYR" name="Латиниця/кирилиця">
      <rule>
        <pattern>
          <token regexp="yes">група|турнір|гепатит</token>
          <token case_sensitive="yes" regexp="yes">[АВСЕ]</token>
        </pattern>
        <message>Вжито кирилічну літеру замість <suggestion>рр.</suggestion></message>
        <example correction="рр.">70-80 <marker>р.р.</marker></example>
      </rule>
    </rulegroup>
-->
  </category>

</rules>
