Chromium Code Reviews| Index: Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java |
| diff --git a/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java b/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java |
| index a85680b86f6827f49c961018c22f9598840b581b..b1bf28326be66809a3a60fd7de78303a1041f86c 100644 |
| --- a/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java |
| +++ b/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java |
| @@ -4,9 +4,12 @@ import com.google.javascript.rhino.head.Token; |
| import com.google.javascript.rhino.head.ast.Assignment; |
| import com.google.javascript.rhino.head.ast.AstNode; |
| import com.google.javascript.rhino.head.ast.FunctionNode; |
| +import com.google.javascript.rhino.head.ast.ObjectProperty; |
| public class AstUtil { |
| + static final String PROTOTYPE_SUFFIX = ".prototype"; |
|
eustas
2014/01/28 08:47:21
private?
apavlov
2014/01/28 10:40:17
Done.
|
| + |
| static boolean hasParentOfType(AstNode node, int tokenType) { |
| AstNode parent = node.getParent(); |
| if (parent == null) { |
| @@ -21,6 +24,10 @@ public class AstUtil { |
| return nameNode; |
| } |
| + if (AstUtil.hasParentOfType(functionNode, Token.COLON)) { |
| + return ((ObjectProperty) functionNode.getParent()).getLeft(); |
| + } |
| + |
| if (AstUtil.hasParentOfType(functionNode, Token.ASSIGN)) { |
| Assignment assignment = (Assignment) functionNode.getParent(); |
| if (assignment.getRight() == functionNode) { |
| @@ -30,5 +37,21 @@ public class AstUtil { |
| return null; |
| } |
| + static String getTypeNameFromPrototype(String value) { |
| + return value.substring(0, value.length() - PROTOTYPE_SUFFIX.length()); |
| + } |
| + |
| + static boolean isPrototypeName(String typeName) { |
| + return typeName.endsWith(PROTOTYPE_SUFFIX); |
| + } |
| + |
| + static AstNode getAssignedTypeNameNode(Assignment assignment) { |
| + AstNode typeNameNode = assignment.getLeft(); |
| + if (typeNameNode.getType() != Token.GETPROP && typeNameNode.getType() != Token.NAME) { |
| + return null; |
| + } |
| + return typeNameNode; |
| + } |
| + |
| private AstUtil() {} |
| } |