File: Functions.m

package info (click to toggle)
steptalk 0.10.0%2Bgit20200629-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,732 kB
  • sloc: objc: 12,182; yacc: 400; makefile: 40; sh: 34; csh: 4; awk: 3; lisp: 3
file content (56 lines) | stat: -rw-r--r-- 2,045 bytes parent folder | download | duplicates (23)
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
48
49
50
51
52
53
54
55
56
/**
   Functions.m
  
   Copyright (c) 2002 Free Software Foundation
  
   Written by: Stefan Urbanek <urbanek@host.sk>
   Date: 2001 Nov 14
 
   This file is part of the StepTalk project.
 
   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
*/

#import <Foundation/NSDictionary.h>
#import <Foundation/NSString.h>

#define function_template(type, class, selector) \
            NSDictionary *_ST_##type##_namesDictionary(type *vals, \
                                                       NSString **names,  \
                                                       int count) \
            { \
                NSMutableDictionary *dict = [NSMutableDictionary dictionary]; \
                 \
                for(i = 0; i<count; i++) \
                { \
                    [dict addObject:[class selector:vals[i]]  \
                             forKey:names[i]]; \
                } \
            \
                return dict;\
            }

function_template(int,NSNumber,numberWithInt)
function_template(float,NSNumber,numberWithFloat)

NSDictionary *_ST_id_namesDictionary(id *vals, 
                                     NSString **names, 
                                     int count)
{
    return [NSDictionary dictionaryWithObjects:vals
                                       forKeys:names
                                         count:count];
}