MCPcopy Create free account
hub / github.com/brimdata/super / parseExprWrap

Method parseExprWrap

compiler/parser/parser.go:25283–25302  ·  view source on GitHub ↗
(expr any)

Source from the content-addressed store, hash-verified

25281}
25282
25283func (p *parser) parseExprWrap(expr any) (any, bool) {
25284 var pt savepoint
25285
25286 isLeftRecusion := p.rstack[len(p.rstack)-1].leftRecursive
25287 if p.memoize && !isLeftRecusion {
25288 res, ok := p.getMemoized(expr)
25289 if ok {
25290 p.restore(res.end)
25291 return res.v, res.b
25292 }
25293 pt = p.pt
25294 }
25295
25296 val, ok := p.parseExpr(expr)
25297
25298 if p.memoize && !isLeftRecusion {
25299 p.setMemoized(pt, expr, resultTuple{val, ok, p.pt})
25300 }
25301 return val, ok
25302}
25303
25304func (p *parser) parseExpr(expr any) (any, bool) {
25305 p.ExprCnt++

Callers 12

parseRuleMethod · 0.95
parseActionExprMethod · 0.95
parseAndExprMethod · 0.95
parseChoiceExprMethod · 0.95
parseLabeledExprMethod · 0.95
parseNotExprMethod · 0.95
parseOneOrMoreExprMethod · 0.95
parseRecoveryExprMethod · 0.95
parseSeqExprMethod · 0.95
parseThrowExprMethod · 0.95
parseZeroOrMoreExprMethod · 0.95
parseZeroOrOneExprMethod · 0.95

Calls 4

getMemoizedMethod · 0.95
restoreMethod · 0.95
parseExprMethod · 0.95
setMemoizedMethod · 0.95

Tested by

no test coverage detected