about summary refs log tree commit diff stats
path: root/central/trunk/xmlrpc/is_a.php
blob: d98db1f14828450cb586e6d766cbcb384c40c36b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group                                |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/3_0.txt.                                  |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | license@php.net so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net>                                |
// +----------------------------------------------------------------------+
//
// $Id: is_a.php,v 1.2 2005/11/21 10:57:23 ggiunta Exp $


/**
 * Replace function is_a()
 *
 * @category    PHP
 * @package     PHP_Compat
 * @link        http://php.net/function.is_a
 * @author      Aidan Lister <aidan@php.net>
 * @version     $Revision: 1.2 $
 * @since       PHP 4.2.0
 * @require     PHP 4.0.0 (user_error) (is_subclass_of)
 */
if (!function_exists('is_a')) {
    function is_a($object, $class)
    {
        if (!is_object($object)) {
            return false;
        }

        if (get_class($object) == strtolower($class)) {
            return true;
        } else {
            return is_subclass_of($object, $class);
        }
    }
}

?>
ss="w"> const field form::proper = field::booleanField(object::form, "proper"); const field form::lemma = field::joinField(object::form, "form_id", object::lemma); const field form::pronunciation = field::joinThrough(object::form, "form_id", object::pronunciation, "forms_pronunciations", "pronunciation_id"); form::form(const database& db, sqlite3_stmt* row) : db_(&db), valid_(true) { id_ = sqlite3_column_int(row, 0); text_ = std::string(reinterpret_cast<const char*>(sqlite3_column_text(row, 1))); complexity_ = sqlite3_column_int(row, 2); proper_ = (sqlite3_column_int(row, 3) == 1); } const std::vector<pronunciation>& form::getPronunciations() const { if (!valid_) { throw std::domain_error("Bad access to uninitialized form"); } if (!initializedPronunciations_) { pronunciations_ = db_->pronunciations(pronunciation::form %= *this, verbly::pronunciation::id, -1).all(); initializedPronunciations_ = true; } return pronunciations_; } bool form::startsWithVowelSound() const { if (!valid_) { throw std::domain_error("Bad access to uninitialized form"); } const std::vector<verbly::pronunciation>& pronunciations = getPronunciations(); if (!pronunciations.empty()) { return std::any_of(std::begin(pronunciations), std::end(pronunciations), [] (const verbly::pronunciation& p) { return p.getPhonemes().front().find_first_of("012") != std::string::npos; }); } else { // If the word is not in CMUDICT, fall back to checking whether the first letter is a vowel. // Not perfect but will work in most cases. char ch = std::tolower(text_.front()); return (ch == 'a') || (ch == 'e') || (ch == 'i') || (ch == 'o') || (ch == 'u'); } } };