001    // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
002    // for details. All rights reserved. Use of this source code is governed by a
003    // BSD-style license that can be found in the LICENSE file.
004    
005    package com.google.dart.compiler.backend.js.ast;
006    
007    public interface JsNode {
008        /**
009         * Causes this object to have the visitor visit itself and its children.
010         *
011         * @param visitor the visitor that should traverse this node
012         */
013        void accept(JsVisitor visitor);
014    
015        void acceptChildren(JsVisitor visitor);
016    
017        /**
018         * Return the source info associated with this object.
019         */
020        Object getSource();
021    
022        /**
023         * Set the source info associated with this object.
024         *
025         * @param info
026         */
027        void setSource(Object info);
028    
029        JsNode source(Object info);
030    }