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

Method parse_test

deps/v8/third_party/jinja2/parser.py:941–977  ·  view source on GitHub ↗
(self, node: nodes.Expr)

Source from the content-addressed store, hash-verified

939 return node
940
941 def parse_test(self, node: nodes.Expr) -> nodes.Expr:
942 token = next(self.stream)
943 if self.stream.current.test("name:not"):
944 next(self.stream)
945 negated = True
946 else:
947 negated = False
948 name = self.stream.expect("name").value
949 while self.stream.current.type == "dot":
950 next(self.stream)
951 name += "." + self.stream.expect("name").value
952 dyn_args = dyn_kwargs = None
953 kwargs = []
954 if self.stream.current.type == "lparen":
955 args, kwargs, dyn_args, dyn_kwargs = self.parse_call_args()
956 elif self.stream.current.type in {
957 "name",
958 "string",
959 "integer",
960 "float",
961 "lparen",
962 "lbracket",
963 "lbrace",
964 } and not self.stream.current.test_any("name:else", "name:or", "name:and"):
965 if self.stream.current.test("name:is"):
966 self.fail("You cannot chain multiple tests with is")
967 arg_node = self.parse_primary()
968 arg_node = self.parse_postfix(arg_node)
969 args = [arg_node]
970 else:
971 args = []
972 node = nodes.Test(
973 node, name, args, kwargs, dyn_args, dyn_kwargs, lineno=token.lineno
974 )
975 if negated:
976 node = nodes.Not(node, lineno=token.lineno)
977 return node
978
979 def subparse(
980 self, end_tokens: t.Optional[t.Tuple[str, ...]] = None

Callers 1

parse_filter_exprMethod · 0.95

Calls 8

parse_call_argsMethod · 0.95
failMethod · 0.95
parse_primaryMethod · 0.95
parse_postfixMethod · 0.95
nextFunction · 0.50
testMethod · 0.45
expectMethod · 0.45
test_anyMethod · 0.45

Tested by

no test coverage detected