MCPcopy Index your code
hub / github.com/expr-lang/expr / parseConditionalIf

Method parseConditionalIf

parser/parser.go:338–364  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

336}
337
338func (p *Parser) parseConditionalIf() Node {
339 p.next()
340 if p.err != nil {
341 return nil
342 }
343 nodeCondition := p.parseExpression(0)
344 p.expect(Bracket, "{")
345 expr1 := p.parseSequenceExpression()
346 p.expect(Bracket, "}")
347 p.expect(Operator, "else")
348
349 var expr2 Node
350 if p.current.Is(Operator, "if") {
351 expr2 = p.parseConditionalIf()
352 } else {
353 p.expect(Bracket, "{")
354 expr2 = p.parseSequenceExpression()
355 p.expect(Bracket, "}")
356 }
357
358 return &ConditionalNode{
359 Cond: nodeCondition,
360 Exp1: expr1,
361 Exp2: expr2,
362 }
363
364}
365
366func (p *Parser) parseConditional(node Node) Node {
367 var expr1, expr2 Node

Callers 1

parseExpressionMethod · 0.95

Calls 5

nextMethod · 0.95
parseExpressionMethod · 0.95
expectMethod · 0.95
IsMethod · 0.80

Tested by

no test coverage detected