]> err.no Git - sope/blob - sope-core/samples/parserule.m
fixed gcc 4.1 warnings
[sope] / sope-core / samples / parserule.m
1 /*
2   Copyright (C) 2000-2005 SKYRIX Software AG
3
4   This file is part of SOPE.
5
6   SOPE is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with SOPE; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21
22 #include <NGExtensions/NGRule.h>
23 #include "common.h"
24
25 /*
26   eg:
27
28   ./obj/parserule \
29      "a > b => a = 1; 10"           \
30      "*true* => color = 'green'; 1" \
31      "a>'b' => bool=YES; high"
32 */
33
34 static int runTest(NSArray *args) {
35   NSEnumerator *e;
36   NSString *arg;
37   
38   e = [args objectEnumerator];
39   [e nextObject];
40   
41   while ((arg = [e nextObject])) {
42     NGRule *rule;
43     
44     NSLog(@"Parse: '%@' (len=%i)", arg, [arg length]);
45     
46     if ((rule = [[NGRule alloc] initWithPropertyList:arg]) == nil) {
47       NSLog(@"  parsing failed.");
48       continue;
49     }
50     NSLog(@"  Rule:        %@", rule);
51     NSLog(@"    Qualifier: %@ (class=%@)", [rule qualifier],
52           NSStringFromClass([[rule qualifier] class]));
53     NSLog(@"    Action:    %@ (class=%@)", [rule action],
54           NSStringFromClass([[rule action] class]));
55     NSLog(@"    Priority:  %i", [rule priority]);
56     [rule release];
57   }
58   return 0;
59 }
60
61 int main(int argc, char **argv, char **env) {
62   NSAutoreleasePool *pool;
63   int res;
64   
65   pool = [NSAutoreleasePool new];
66   
67 #if LIB_FOUNDATION_LIBRARY  
68   [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
69 #endif
70   
71   res = runTest([[NSProcessInfo processInfo] argumentsWithoutDefaults]);
72   
73   [pool release];
74   exit(0);
75   /* static linking */
76   [NGExtensions class];
77   return 0;
78 }