// Path: src/main/java/com/j2js/visitors/AbstractVisitor.java
// public abstract class AbstractVisitor {
// 
//  
//     public abstract void visit(ASTNode node);
//     
//     public void visit(TypeDeclaration node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(MethodDeclaration node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(DoStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(WhileStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(IfStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(TryStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(Block node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(InfixExpression node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(PrefixExpression node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(PostfixExpression node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(SwitchStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(SwitchCase node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(CatchClause node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ReturnStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(Assignment node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(NumberLiteral node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(StringLiteral node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(ClassLiteral node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(NullLiteral node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(MethodInvocation node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ClassInstanceCreation node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ArrayInitializer node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ArrayCreation node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ArrayAccess node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(VariableDeclaration node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(VariableBinding node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ThisExpression node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(FieldAccess node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(BreakStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ContinueStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(CastExpression node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(BooleanLiteral node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(ThrowStatement node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(Name node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(InstanceofExpression node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(ConditionalExpression node) {
//     	visit((ASTNode) node);
//     }
//     
//     public void visit(SynchronizedBlock node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(PrimitiveCast node) {
//         visit((ASTNode) node);
//     }
// 
// }


import java.util.HashMap;
import com.j2js.visitors.AbstractVisitor;
        static public Operator MINUS_ASSIGN = new Operator("-=");
        static public Operator TIMES_ASSIGN = new Operator("*=");
        static public Operator DIVIDE_ASSIGN = new Operator("/=");
        static public Operator BIT_AND_ASSIGN = new Operator("&=");
        static public Operator BIT_OR_ASSIGN = new Operator("|=");
        static public Operator BIT_XOR_ASSIGN = new Operator("^=");
        static public Operator REMAINDER_ASSIGN = new Operator("%=");
        static public Operator LEFT_SHIFT_ASSIGN = new Operator("<<=");
        static public Operator RIGHT_SHIFT_SIGNED_ASSIGN = new Operator(">>=");
        static public Operator RIGHT_SHIFT_UNSIGNED_ASSIGN = new Operator(">>>=");
        
        private String token;
        
        Operator(String theToken) {
            token = theToken;
            opsByToken.put(theToken, this);
        }
        
        public String toString() {
            return token;
        }
    }
    
    private Operator operator;
    
	public Assignment(Operator theOperator) {
		super();
		operator = theOperator;
	}
    
// Path: src/main/java/com/j2js/visitors/AbstractVisitor.java
// public abstract class AbstractVisitor {
// 
//  
//     public abstract void visit(ASTNode node);
//     
//     public void visit(TypeDeclaration node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(MethodDeclaration node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(DoStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(WhileStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(IfStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(TryStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(Block node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(InfixExpression node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(PrefixExpression node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(PostfixExpression node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(SwitchStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(SwitchCase node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(CatchClause node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ReturnStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(Assignment node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(NumberLiteral node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(StringLiteral node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(ClassLiteral node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(NullLiteral node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(MethodInvocation node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ClassInstanceCreation node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ArrayInitializer node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ArrayCreation node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ArrayAccess node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(VariableDeclaration node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(VariableBinding node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ThisExpression node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(FieldAccess node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(BreakStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(ContinueStatement node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(CastExpression node) {
//         visit((ASTNode) node);
//     }
// 
//     public void visit(BooleanLiteral node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(ThrowStatement node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(Name node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(InstanceofExpression node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(ConditionalExpression node) {
//     	visit((ASTNode) node);
//     }
//     
//     public void visit(SynchronizedBlock node) {
//         visit((ASTNode) node);
//     }
//     
//     public void visit(PrimitiveCast node) {
//         visit((ASTNode) node);
//     }
// 
// }


// Path: src/main/java/com/j2js/dom/Assignment.java
import java.util.HashMap;
import com.j2js.visitors.AbstractVisitor;

        static public Operator MINUS_ASSIGN = new Operator("-=");
        static public Operator TIMES_ASSIGN = new Operator("*=");
        static public Operator DIVIDE_ASSIGN = new Operator("/=");
        static public Operator BIT_AND_ASSIGN = new Operator("&=");
        static public Operator BIT_OR_ASSIGN = new Operator("|=");
        static public Operator BIT_XOR_ASSIGN = new Operator("^=");
        static public Operator REMAINDER_ASSIGN = new Operator("%=");
        static public Operator LEFT_SHIFT_ASSIGN = new Operator("<<=");
        static public Operator RIGHT_SHIFT_SIGNED_ASSIGN = new Operator(">>=");
        static public Operator RIGHT_SHIFT_UNSIGNED_ASSIGN = new Operator(">>>=");
        
        private String token;
        
        Operator(String theToken) {
            token = theToken;
            opsByToken.put(theToken, this);
        }
        
        public String toString() {
            return token;
        }
    }
    
    private Operator operator;
    
	public Assignment(Operator theOperator) {
		super();
		operator = theOperator;
	}
    
	public void visit(AbstractVisitor visitor) {