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

Method primaryExpr

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

Source from the content-addressed store, hash-verified

3546 }
3547
3548 private AstNode primaryExpr() throws IOException {
3549 int ttFlagged = peekFlaggedToken();
3550 int tt = ttFlagged & CLEAR_TI_MASK;
3551
3552 switch (tt) {
3553 case Token.FUNCTION:
3554 consumeToken();
3555 return function(FunctionNode.FUNCTION_EXPRESSION);
3556
3557 case Token.LB:
3558 consumeToken();
3559 return arrayLiteral();
3560
3561 case Token.LC:
3562 consumeToken();
3563 return objectLiteral();
3564
3565 case Token.LET:
3566 consumeToken();
3567 return let(false, ts.tokenBeg);
3568
3569 case Token.LP:
3570 consumeToken();
3571 return parenExpr();
3572
3573 case Token.XMLATTR:
3574 consumeToken();
3575 mustHaveXML();
3576 return attributeAccess();
3577
3578 case Token.NAME:
3579 consumeToken();
3580 return name(ttFlagged, tt);
3581
3582 case Token.NUMBER:
3583 case Token.BIGINT:
3584 {
3585 consumeToken();
3586 return createNumericLiteral(tt, false);
3587 }
3588
3589 case Token.STRING:
3590 consumeToken();
3591 return createStringLiteral();
3592
3593 case Token.DIV:
3594 case Token.ASSIGN_DIV:
3595 consumeToken();
3596 // Got / or /= which in this context means a regexp
3597 ts.readRegExp(tt);
3598 int pos = ts.tokenBeg, end = ts.tokenEnd;
3599 RegExpLiteral re = new RegExpLiteral(pos, end - pos);
3600 re.setValue(ts.getString());
3601 re.setFlags(ts.readAndClearRegExpFlags());
3602 re.setLineColumnNumber(lineNumber(), columnNumber());
3603 return re;
3604
3605 case Token.UNDEFINED:

Callers 2

memberExprMethod · 0.95

Calls 15

peekFlaggedTokenMethod · 0.95
consumeTokenMethod · 0.95
functionMethod · 0.95
arrayLiteralMethod · 0.95
objectLiteralMethod · 0.95
letMethod · 0.95
parenExprMethod · 0.95
mustHaveXMLMethod · 0.95
attributeAccessMethod · 0.95
nameMethod · 0.95
createNumericLiteralMethod · 0.95
createStringLiteralMethod · 0.95

Tested by

no test coverage detected