001    /* This file was generated with JastAdd2 (http://jastadd.org) version R20130213 */
002    package AST;
003    
004    import java.util.HashSet;
005    import java.io.File;
006    import java.util.*;
007    import beaver.*;
008    import java.util.ArrayList;
009    import java.util.zip.*;
010    import java.io.*;
011    import java.io.FileNotFoundException;
012    import java.util.Collection;
013    /**
014     * @production AssignMultiplicativeExpr : {@link AssignExpr};
015     * @ast node
016     * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/java.ast:110
017     */
018    public abstract class AssignMultiplicativeExpr extends AssignExpr implements Cloneable {
019      /**
020       * @apilevel low-level
021       */
022      public void flushCache() {
023      }
024      /**
025       * @apilevel internal
026       */
027      public void flushCollectionCache() {
028      }
029      /**
030       * @apilevel internal
031       */
032      @SuppressWarnings({"unchecked", "cast"})
033      public AssignMultiplicativeExpr clone() throws CloneNotSupportedException {
034        AssignMultiplicativeExpr node = (AssignMultiplicativeExpr)super.clone();
035        node.in$Circle(false);
036        node.is$Final(false);
037        return node;
038      }
039      /**
040       * @ast method 
041       * @aspect TypeCheck
042       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeCheck.jrag:65
043       */
044      public void typeCheck() {
045        if(sourceType().isBoolean() || getDest().type().isBoolean())
046          error("Multiplicative operators do not operate on boolean types");
047        super.typeCheck();
048      }
049      /**
050       * @ast method 
051       * 
052       */
053      public AssignMultiplicativeExpr() {
054        super();
055    
056    
057      }
058      /**
059       * Initializes the child array to the correct size.
060       * Initializes List and Opt nta children.
061       * @apilevel internal
062       * @ast method
063       * @ast method 
064       * 
065       */
066      public void init$Children() {
067        children = new ASTNode[2];
068      }
069      /**
070       * @ast method 
071       * 
072       */
073      public AssignMultiplicativeExpr(Expr p0, Expr p1) {
074        setChild(p0, 0);
075        setChild(p1, 1);
076      }
077      /**
078       * @apilevel low-level
079       * @ast method 
080       * 
081       */
082      protected int numChildren() {
083        return 2;
084      }
085      /**
086       * @apilevel internal
087       * @ast method 
088       * 
089       */
090      public boolean mayHaveRewrite() {
091        return false;
092      }
093      /**
094       * Replaces the Dest child.
095       * @param node The new node to replace the Dest child.
096       * @apilevel high-level
097       * @ast method 
098       * 
099       */
100      public void setDest(Expr node) {
101        setChild(node, 0);
102      }
103      /**
104       * Retrieves the Dest child.
105       * @return The current node used as the Dest child.
106       * @apilevel high-level
107       * @ast method 
108       * 
109       */
110      public Expr getDest() {
111        return (Expr)getChild(0);
112      }
113      /**
114       * Retrieves the Dest child.
115       * <p><em>This method does not invoke AST transformations.</em></p>
116       * @return The current node used as the Dest child.
117       * @apilevel low-level
118       * @ast method 
119       * 
120       */
121      public Expr getDestNoTransform() {
122        return (Expr)getChildNoTransform(0);
123      }
124      /**
125       * Replaces the Source child.
126       * @param node The new node to replace the Source child.
127       * @apilevel high-level
128       * @ast method 
129       * 
130       */
131      public void setSource(Expr node) {
132        setChild(node, 1);
133      }
134      /**
135       * Retrieves the Source child.
136       * @return The current node used as the Source child.
137       * @apilevel high-level
138       * @ast method 
139       * 
140       */
141      public Expr getSource() {
142        return (Expr)getChild(1);
143      }
144      /**
145       * Retrieves the Source child.
146       * <p><em>This method does not invoke AST transformations.</em></p>
147       * @return The current node used as the Source child.
148       * @apilevel low-level
149       * @ast method 
150       * 
151       */
152      public Expr getSourceNoTransform() {
153        return (Expr)getChildNoTransform(1);
154      }
155      /**
156       * @apilevel internal
157       */
158      public ASTNode rewriteTo() {
159        return super.rewriteTo();
160      }
161    }