MCPcopy Index your code
hub / github.com/nodejs/node / parseUnaryExpressionOrHigher

Function parseUnaryExpressionOrHigher

test/fixtures/snapshot/typescript.js:34924–34964  ·  view source on GitHub ↗

* Parse ES7 exponential expression and await expression * * ES7 ExponentiationExpression: * 1) UnaryExpression[?Yield] * 2) UpdateExpression[?Yield] ** ExponentiationExpression[?Yield] *

()

Source from the content-addressed store, hash-verified

34922 *
34923 */
34924 function parseUnaryExpressionOrHigher() {
34925 /**
34926 * ES7 UpdateExpression:
34927 * 1) LeftHandSideExpression[?Yield]
34928 * 2) LeftHandSideExpression[?Yield][no LineTerminator here]++
34929 * 3) LeftHandSideExpression[?Yield][no LineTerminator here]--
34930 * 4) ++UnaryExpression[?Yield]
34931 * 5) --UnaryExpression[?Yield]
34932 */
34933 if (isUpdateExpression()) {
34934 var pos = getNodePos();
34935 var updateExpression = parseUpdateExpression();
34936 return token() === 42 /* SyntaxKind.AsteriskAsteriskToken */ ?
34937 parseBinaryExpressionRest(ts.getBinaryOperatorPrecedence(token()), updateExpression, pos) :
34938 updateExpression;
34939 }
34940 /**
34941 * ES7 UnaryExpression:
34942 * 1) UpdateExpression[?yield]
34943 * 2) delete UpdateExpression[?yield]
34944 * 3) void UpdateExpression[?yield]
34945 * 4) typeof UpdateExpression[?yield]
34946 * 5) + UpdateExpression[?yield]
34947 * 6) - UpdateExpression[?yield]
34948 * 7) ~ UpdateExpression[?yield]
34949 * 8) ! UpdateExpression[?yield]
34950 */
34951 var unaryOperator = token();
34952 var simpleUnaryExpression = parseSimpleUnaryExpression();
34953 if (token() === 42 /* SyntaxKind.AsteriskAsteriskToken */) {
34954 var pos = ts.skipTrivia(sourceText, simpleUnaryExpression.pos);
34955 var end = simpleUnaryExpression.end;
34956 if (simpleUnaryExpression.kind === 211 /* SyntaxKind.TypeAssertionExpression */) {
34957 parseErrorAt(pos, end, ts.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses);
34958 }
34959 else {
34960 parseErrorAt(pos, end, ts.Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses, ts.tokenToString(unaryOperator));
34961 }
34962 }
34963 return simpleUnaryExpression;
34964 }
34965 /**
34966 * Parse ES7 simple-unary expression or higher:
34967 *

Callers 2

parseTypeParameterFunction · 0.85

Calls 7

isUpdateExpressionFunction · 0.85
getNodePosFunction · 0.85
parseUpdateExpressionFunction · 0.85
parseErrorAtFunction · 0.85
tokenFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…