• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 //  ANTLRIntArray.h
3 //  ANTLR
4 //
5 // Copyright (c) 2010 Ian Michell 2010 Alan Condit
6 // All rights reserved.
7 //
8 // Redistribution and use in source and binary forms, with or without
9 // modification, are permitted provided that the following conditions
10 // are met:
11 // 1. Redistributions of source code must retain the above copyright
12 //    notice, this list of conditions and the following disclaimer.
13 // 2. Redistributions in binary form must reproduce the above copyright
14 //    notice, this list of conditions and the following disclaimer in the
15 //    documentation and/or other materials provided with the distribution.
16 // 3. The name of the author may not be used to endorse or promote products
17 //    derived from this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 
30 #import <Cocoa/Cocoa.h>
31 
32 #define ANTLR_INT_ARRAY_INITIAL_SIZE 10
33 
34 @interface ANTLRIntArray : NSObject
35 {
36     NSUInteger BuffSize;
37     NSUInteger count;
38     NSInteger idx;
39     NSMutableData *buffer;
40     __strong NSInteger *intBuffer;
41     BOOL SPARSE;
42 }
43 
44 + (ANTLRIntArray *)newArray;
45 + (ANTLRIntArray *)newArrayWithLen:(NSUInteger)aLen;
46 
47 - (id) init;
48 - (id) initWithLen:(NSUInteger)aLen;
49 
50 - (void) dealloc;
51 
52 - (id) copyWithZone:(NSZone *)aZone;
53 
54 - (void) addInteger:(NSInteger) value;
55 - (NSInteger) pop;
56 - (void) push:(NSInteger) value;
57 - (NSInteger) integerAtIndex:(NSUInteger) index;
58 - (void) insertInteger:(NSInteger)anInteger AtIndex:(NSUInteger) anIndex;
59 - (NSInteger)removeIntegerAtIndex:(NSUInteger) anIndex;
60 - (void)replaceInteger:(NSInteger)aValue AtIndex:(NSUInteger)anIndex;
61 - (void) reset;
62 
63 - (NSUInteger) count;
64 - (NSUInteger) size;
65 - (void) ensureCapacity:(NSUInteger) anIndex;
66 
67 @property (assign) NSUInteger BuffSize;
68 @property (assign) NSUInteger count;
69 @property (assign) NSInteger idx;
70 @property (retain) NSMutableData *buffer;
71 @property (assign) NSInteger *intBuffer;
72 @property (assign) BOOL SPARSE;
73 
74 @end
75