1 /**
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package net.sourceforge.pmd.lang.ecmascript.ast;
5
6 import net.sourceforge.pmd.lang.ast.Node;
7
8 import org.mozilla.javascript.ast.AstNode;
9
10 public interface EcmascriptNode<T extends AstNode> extends Node {
11
12 /**
13 * Accept the visitor. *
14 */
15 Object jjtAccept(EcmascriptParserVisitor visitor, Object data);
16
17 /**
18 * Accept the visitor. *
19 */
20 Object childrenAccept(EcmascriptParserVisitor visitor, Object data);
21
22 /**
23 * Get the underlying Rhino AST node.
24 */
25 T getNode();
26
27 /**
28 * Get the JsDoc associated with the given node. If there is no JsDoc on
29 * this node, it may be associated with a parent node, on more representative
30 * of the entire expression containing this node.
31 * @return The JsDoc comment for the node, may be <code>null</code>.
32 */
33 String getJsDoc();
34
35 boolean hasSideEffects();
36 }