1// 2// ANTLRRuleMapElement.m 3// ANTLR 4// 5// Created by Alan Condit on 6/16/10. 6// [The "BSD licence"] 7// Copyright (c) 2010 Alan Condit 8// All rights reserved. 9// 10// Redistribution and use in source and binary forms, with or without 11// modification, are permitted provided that the following conditions 12// are met: 13// 1. Redistributions of source code must retain the above copyright 14// notice, this list of conditions and the following disclaimer. 15// 2. Redistributions in binary form must reproduce the above copyright 16// notice, this list of conditions and the following disclaimer in the 17// documentation and/or other materials provided with the distribution. 18// 3. The name of the author may not be used to endorse or promote products 19// derived from this software without specific prior written permission. 20// 21// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 22// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 23// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 24// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 25// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 26// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 32#import "ANTLRRuleMapElement.h" 33 34 35@implementation ANTLRRuleMapElement 36 37@synthesize ruleNum; 38 39+ (ANTLRRuleMapElement *)newANTLRRuleMapElement 40{ 41 return [[ANTLRRuleMapElement alloc] init]; 42} 43 44+ (ANTLRRuleMapElement *)newANTLRRuleMapElementWithIndex:(NSNumber *)aNumber 45{ 46 return [[ANTLRRuleMapElement alloc] initWithAnIndex:(NSNumber *)aNumber]; 47} 48 49+ (ANTLRRuleMapElement *)newANTLRRuleMapElementWithIndex:(NSNumber *)aNumber RuleNum:(NSNumber *)aRuleNum 50{ 51 return [[ANTLRRuleMapElement alloc] initWithAnIndex:aNumber RuleNum:aRuleNum]; 52} 53 54- (id) init 55{ 56 if ((self = [super init]) != nil ) { 57 index = nil; 58 ruleNum = nil; 59 } 60 return (self); 61} 62 63- (id) initWithAnIndex:(NSNumber *)aNumber 64{ 65 if ((self = [super initWithAnIndex:aNumber]) != nil ) { 66 ruleNum = nil; 67 } 68 return (self); 69} 70 71- (id) initWithAnIndex:(NSNumber *)aNumber RuleNum:(NSNumber *)aRuleNum 72{ 73 if ((self = [super initWithAnIndex:aNumber]) != nil ) { 74 [aRuleNum retain]; 75 ruleNum = aRuleNum; 76 } 77 return (self); 78} 79 80- (id) copyWithZone:(NSZone *)aZone 81{ 82 ANTLRRuleMapElement *copy; 83 84 copy = [super copyWithZone:aZone]; 85 copy.ruleNum = ruleNum; 86 return( copy ); 87} 88 89- (id)getRuleNum 90{ 91 return ruleNum; 92} 93 94- (void)setRuleNum:(id)aRuleNum 95{ 96 if ( aRuleNum != ruleNum ) { 97 if ( ruleNum ) [ruleNum release]; 98 [aRuleNum retain]; 99 } 100 ruleNum = aRuleNum; 101} 102 103- (NSInteger)size 104{ 105 NSInteger aSize = 0; 106 if (ruleNum != nil) aSize++; 107 if (index != nil) aSize++; 108 return( aSize ); 109} 110 111@end 112