index : verbly

this commit

hkutil

lingo

master

Natural language generation library |

summary refs log tree commit diff stats

log msg

author

committer

range

path: root/generator/schema.sql

| Commit message (Expand) | Author | Age | Files | Lines
* | Created database versioning system d1.0 | Kelly Rauchenberger | 2017-11-08 | 1 | -0/+5
* | Added length field to form table | Kelly Rauchenberger | 2017-10-16 | 1 | -1/+2
* | Tweaked database indexes | Kelly Rauchenberger | 2017-02-13 | 1 | -3/+3
* | Expanded some indexes | Kelly Rauchenberger | 2017-02-11 | 1 | -34/+34
* | Made pronunciation::rhymes join dynamic | Kelly Rauchenberger | 2017-02-06 | 1 | -0/+2
* | Flattened selrestrs | Kelly Rauchenberger | 2017-02-05 | 1 | -1/+7
* | Restructured verb frame schema to be more queryable | Kelly Rauchenberger | 2017-01-28 | 1 | -10/+23
* | Started structural rewrite | Kelly Rauchenberger | 2017-01-16 | 1 | -217/+135
* | Added pronunciation syllable count and stress structure | Kelly Rauchenberger | 2016-05-30 | 1 | -0/+8
* | Fixed perfect rhyming | Kelly Rauchenberger | 2016-04-17 | 1 | -0/+8
* | Added support for ImageNet and fixed bug with query interface | Kelly Rauchenberger | 2016-04-15 | 1 | -1/+3
* | Added prefix/suffix search, and word complexity search for nouns, adjectives,... | Kelly Rauchenberger | 2016-03-27 | 1 | -3/+6
* | Added verb frames | Kelly Rauchenberger | 2016-03-24 | 1 | -2/+14
* | Nouns with any uppercase letters are now considered proper | Kelly Rauchenberger | 2016-03-19 | 1 | -1/+2
* | Added word derivational relationships (kind of eh at the moment) and moved ve... | Kelly Rauchenberger | 2016-03-16 | 1 | -0/+252

.highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */

//
// ZFont.m
// FontLabel
//
// Created by Kevin Ballard on 7/2/09.
// Copyright © 2009 Zynga Game Networks
//
//
// Licensed 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.
//

#import "ZFont.h"

@interface ZFont ()
@property (nonatomic, readonly) CGFloat ratio;
- (NSString *)copyNameTableEntryForID:(UInt16)nameID;
@end

@implementation ZFont
@synthesize cgFont=_cgFont, pointSize=_pointSize, ratio=_ratio;

+ (ZFont *)fontWithCGFont:(CGFontRef)cgFont size:(CGFloat)fontSize {
return [[[self alloc] initWithCGFont:cgFont size:fontSize] autorelease];
}

+ (ZFont *)fontWithUIFont:(UIFont *)uiFont {
NSParameterAssert(uiFont != nil);
CGFontRef cgFont = CGFontCreateWithFontName((CFStringRef)uiFont.fontName);
ZFont *zFont = [[self alloc] initWithCGFont:cgFont size:uiFont.pointSize];
CGFontRelease(cgFont);
return [zFont autorelease];
}

- (id)initWithCGFont:(CGFontRef)cgFont size:(CGFloat)fontSize {
if ((self = [super init])) {
_cgFont = CGFontRetain(cgFont);
_pointSize = fontSize;
_ratio = fontSize/CGFontGetUnitsPerEm(cgFont);
}
return self;
}

- (id)init {
NSAssert(NO, @"-init is not valid for ZFont");
return nil;
}

- (CGFloat)ascender {
return ceilf(self.ratio * CGFontGetAscent(self.cgFont));
}

- (CGFloat)descender {
return floorf(self.ratio * CGFontGetDescent(self.cgFont));
}

- (CGFloat)leading {
return (self.ascender - self.descender);
}

- (CGFloat)capHeight {
return ceilf(self.ratio * CGFontGetCapHeight(self.cgFont));
}

- (CGFloat)xHeight {
return ceilf(self.ratio * CGFontGetXHeight(self.cgFont));
}

- (NSString *)familyName {
if (_familyName == nil) {
_familyName = [self copyNameTableEntryForID:1];
}
return _familyName;
}

- (NSString *)fontName {
if (_fontName == nil) {
_fontName = [self copyNameTableEntryForID:4];
}
return _fontName;
}

- (NSString *)postScriptName {
if (_postScriptName == nil) {
_postScriptName = [self copyNameTableEntryForID:6];
}
return _postScriptName;
}

- (ZFont *)fontWithSize:(CGFloat)fontSize {
if (fontSize == self.pointSize) return self;
NSParameterAssert(fontSize > 0.0);
return [[[ZFont alloc] initWithCGFont:self.cgFont size:fontSize] autorelease];
}

- (BOOL)isEqual:(id)object {
if (![object isKindOfClass:[ZFont class]]) return NO;
ZFont *font = (ZFont *)object;
return (font.cgFont == self.cgFont && font.pointSize == self.pointSize);
}

- (NSString *)copyNameTableEntryForID:(UInt16)aNameID {
CFDataRef nameTable = CGFontCopyTableForTag(self.cgFont, 'name');
NSAssert1(nameTable != NULL, @"CGFontCopyTableForTag returned NULL for 'name' tag in font %@",
[(id)CFCopyDescription(self.cgFont) autorelease]);
const UInt8 * const bytes = CFDataGetBytePtr(nameTable);
NSAssert1(OSReadBigInt16(bytes, 0) == 0, @"name table for font %@ has bad version number",
[(id)CFCopyDescription(self.cgFont) autorelease]);
const UInt16 count = OSReadBigInt16(bytes, 2);
const UInt16 stringOffset = OSReadBigInt16(bytes, 4);
const UInt8 * const nameRecords = &bytes[6];
UInt16 nameLength = 0;
UInt16 nameOffset = 0;
NSStringEncoding encoding = 0;
for (UInt16 idx = 0; idx < count; idx++) {
const uintptr_t recordOffset = 12 * idx;
const UInt16 nameID = OSReadBigInt16(nameRecords, recordOffset + 6);
if (nameID != aNameID) continue;
const UInt16 platformID = OSReadBigInt16(nameRecords, recordOffset + 0);
const UInt16 platformSpecificID = OSReadBigInt16(nameRecords, recordOffset + 2);
encoding = 0;
// for now, we only support a subset of encodings
switch (platformID) {
case 0: // Unicode
encoding = NSUTF16StringEncoding;
break;
case 1: // Macintosh
switch (platformSpecificID) {
case 0:
encoding = NSMacOSRomanStringEncoding;
break;
}
case 3: // Microsoft
switch (platformSpecificID) {
case 1:
encoding = NSUTF16StringEncoding;
break;
}
}
if (encoding == 0) continue;
nameLength = OSReadBigInt16(nameRecords, recordOffset + 8);
nameOffset = OSReadBigInt16(nameRecords, recordOffset + 10);
break;
}
NSString *result = nil;
if (nameOffset > 0) {
const UInt8 *nameBytes = &bytes[stringOffset + nameOffset];
result = [[NSString alloc] initWithBytes:nameBytes length:nameLength encoding:encoding];
}
CFRelease(nameTable);
return result;
}

- (void)dealloc {
CGFontRelease(_cgFont);
[_familyName release];
[_fontName release];
[_postScriptName release];
[super dealloc];
}
@end

generated by cgit-pink 1.4.1 (git 2.36.1) at 2024-10-07 10:54:05 +0000