MCPcopy Create free account
hub / github.com/mozilla/rhino / unaryExpr

Method unaryExpr

rhino/src/main/java/org/mozilla/javascript/Parser.java:2945–3027  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2943 }
2944
2945 private AstNode unaryExpr() throws IOException {
2946 AstNode node;
2947 int tt = peekToken();
2948 if (tt == Token.COMMENT) {
2949 consumeToken();
2950 tt = peekUntilNonComment(tt);
2951 }
2952 int line, column;
2953
2954 switch (tt) {
2955 case Token.VOID:
2956 case Token.NOT:
2957 case Token.BITNOT:
2958 case Token.TYPEOF:
2959 consumeToken();
2960 line = lineNumber();
2961 column = columnNumber();
2962 node = new UnaryExpression(tt, ts.tokenBeg, unaryExpr());
2963 node.setLineColumnNumber(line, column);
2964 return node;
2965
2966 case Token.ADD:
2967 consumeToken();
2968 line = lineNumber();
2969 column = columnNumber();
2970 // Convert to special POS token in parse tree
2971 node = new UnaryExpression(Token.POS, ts.tokenBeg, unaryExpr());
2972 node.setLineColumnNumber(line, column);
2973 return node;
2974
2975 case Token.SUB:
2976 consumeToken();
2977 line = lineNumber();
2978 column = columnNumber();
2979 // Convert to special NEG token in parse tree
2980 node = new UnaryExpression(Token.NEG, ts.tokenBeg, unaryExpr());
2981 node.setLineColumnNumber(line, column);
2982 return node;
2983
2984 case Token.INC:
2985 case Token.DEC:
2986 consumeToken();
2987 line = lineNumber();
2988 column = columnNumber();
2989 UpdateExpression expr = new UpdateExpression(tt, ts.tokenBeg, memberExpr(true));
2990 expr.setLineColumnNumber(line, column);
2991 checkBadIncDec(expr);
2992 return expr;
2993
2994 case Token.DELPROP:
2995 consumeToken();
2996 line = lineNumber();
2997 column = columnNumber();
2998 node = new UnaryExpression(tt, ts.tokenBeg, unaryExpr());
2999 node.setLineColumnNumber(line, column);
3000 return node;
3001
3002 case Token.ERROR:

Callers 1

expExprMethod · 0.95

Calls 15

peekTokenMethod · 0.95
consumeTokenMethod · 0.95
peekUntilNonCommentMethod · 0.95
lineNumberMethod · 0.95
columnNumberMethod · 0.95
memberExprMethod · 0.95
checkBadIncDecMethod · 0.95
makeErrorNodeMethod · 0.95
memberExprTailMethod · 0.95
xmlInitializerMethod · 0.95
peekTokenOrEOLMethod · 0.95
getLinenoMethod · 0.95

Tested by

no test coverage detected