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#import "ANTLRPtrBuffer.h"
32
33#define ANTLR_INT_ARRAY_INITIAL_SIZE 10
34
35@interface ANTLRIntArray : ANTLRPtrBuffer
36{
37}
38
39+ (ANTLRIntArray *)newANTLRIntArray;
40+ (ANTLRIntArray *)newANTLRIntArrayWithLen:(NSInteger)aLen;
41
42- (id) init;
43- (id) initWithLen:(NSInteger)aLen;
44
45- (void) dealloc;
46
47- (id) copyWithZone:(NSZone *)aZone;
48
49- (void) addInteger:(NSInteger) v;
50- (void) push:(NSInteger) v;
51- (NSInteger) pop;
52- (NSInteger) integerAtIndex:(NSInteger) i;
53- (void) insertInteger:(NSInteger)anInteger AtIndex:(NSInteger) idx;
54- (NSInteger) size;
55- (void) reset;
56
57- (NSInteger) count;
58- (NSInteger) size;
59
60@end
61