HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers84/zuiderbos.nl/vendor/nqxcode/phpmorphy/src/phpMorphy/UserDict/Pattern.php
<?php
/*
* This file is part of phpMorphy project
*
* Copyright (c) 2007-2012 Kamaev Vladimir <heromantor@users.sourceforge.net>
*
*     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 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., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/

class phpMorphy_UserDict_Pattern {
    protected
        /** @var string */
        $word,
        /** @var phpMorphy_UserDict_GrammarIdentifier */
        $grammar;

    /**
     * @param string $word
     * @param phpMorphy_UserDict_GrammarIdentifier $grammar
     */
    function __construct($word, phpMorphy_UserDict_GrammarIdentifier $grammar) {
        $this->word = $word;
        $this->grammar = $grammar;
    }

    /**
     * @param string $string
     * @return phpMorphy_UserDict_Pattern
     */
    static function constructFromString($string) {
        $string = trim($string);

        $sp_pos = strpos($string, ' ');
        $pattern = null;
        $word = $string;

        if(false !== $sp_pos) {
            $pattern_string = trim(substr($string, $sp_pos + 1));

            if(strlen($pattern_string)) {
                $pattern = phpMorphy_UserDict_GrammarIdentifier::constructFromString($pattern_string);

                $word = substr($string, 0, $sp_pos);
            }
        }

        if(null === $pattern) {
            $pattern = phpMorphy_UserDict_GrammarIdentifier::construct(null, array());
        }

        $clazz = __CLASS__;
        return new $clazz($word, $pattern);
    }

    /**
     * @return string
     */
    function getWord() {
        return $this->word;
    }

    /**
     * @return phpMorphy_UserDict_GrammarIdentifier
     */
    function getGrammarIdentifier() {
        return $this->grammar;
    }

    /**
     * @param string $word
     * @return bool
     */
    function matchWord($word) {
        return $word === $this->getWord();
    }

    /**
     * @param string $word
     * @param string $partOfSpeech
     * @param string[] $grammems
     * @return bool
     */
    function match($word, $partOfSpeech, array $grammems) {
        if(!$this->matchWord($word)) {
            return false;
        }

        return $this->getGrammarIdentifier()->match($partOfSpeech, $grammems);
    }

    /**
     * @return string
     */
    function  __toString() {
        return $this->getWord() . ' [' . $this->getGrammarIdentifier() . ']';
    }
}