Home | History | Annotate | Download | only in Framework
      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