]> err.no Git - sope/blob - sope-core/samples/parserule.m
added FHS install hack
[sope] / sope-core / samples / parserule.m
1 /*
2   Copyright (C) 2000-2003 SKYRIX Software AG
3
4   This file is part of OGo
5
6   OGo 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   OGo 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 OGo; 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 // $Id$
22
23 #include <NGExtensions/NGRule.h>
24 #include "common.h"
25
26 /*
27   eg:
28
29   ./obj/parserule \
30      "a > b => a = 1; 10"           \
31      "*true* => color = 'green'; 1" \
32      "a>'b' => bool=YES; high"
33 */
34
35 static int runTest(NSArray *args) {
36   NSEnumerator *e;
37   NSString *arg;
38   
39   e = [args objectEnumerator];
40   [e nextObject];
41   
42   while ((arg = [e nextObject])) {
43     NGRule *rule;
44     
45     NSLog(@"Parse: '%@' (len=%i)", arg, [arg length]);
46     
47     if ((rule = [[NGRule alloc] initWithPropertyList:arg]) == nil) {
48       NSLog(@"  parsing failed.");
49       continue;
50     }
51     NSLog(@"  Rule:        %@", rule);
52     NSLog(@"    Qualifier: %@ (class=%@)", [rule qualifier],
53           NSStringFromClass([[rule qualifier] class]));
54     NSLog(@"    Action:    %@ (class=%@)", [rule action],
55           NSStringFromClass([[rule action] class]));
56     NSLog(@"    Priority:  %i", [rule priority]);
57     [rule release];
58   }
59   return 0;
60 }
61
62 int main(int argc, char **argv, char **env) {
63   NSAutoreleasePool *pool;
64   int res;
65   
66   pool = [NSAutoreleasePool new];
67   
68 #if LIB_FOUNDATION_LIBRARY  
69   [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
70 #endif
71   
72   res = runTest([[NSProcessInfo processInfo] argumentsWithoutDefaults]);
73   
74   [pool release];
75   exit(0);
76   /* static linking */
77   [NGExtensions class];
78   return 0;
79 }