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

Method parseExpr

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

Source from the content-addressed store, hash-verified

25302}
25303
25304func (p *parser) parseExpr(expr any) (any, bool) {
25305 p.ExprCnt++
25306 if p.ExprCnt > p.maxExprCnt {
25307 panic(errMaxExprCnt)
25308 }
25309
25310 var val any
25311 var ok bool
25312 switch expr := expr.(type) {
25313 case *actionExpr:
25314 val, ok = p.parseActionExpr(expr)
25315 case *andCodeExpr:
25316 val, ok = p.parseAndCodeExpr(expr)
25317 case *andExpr:
25318 val, ok = p.parseAndExpr(expr)
25319 case *anyMatcher:
25320 val, ok = p.parseAnyMatcher(expr)
25321 case *charClassMatcher:
25322 val, ok = p.parseCharClassMatcher(expr)
25323 case *choiceExpr:
25324 val, ok = p.parseChoiceExpr(expr)
25325 case *labeledExpr:
25326 val, ok = p.parseLabeledExpr(expr)
25327 case *litMatcher:
25328 val, ok = p.parseLitMatcher(expr)
25329 case *notCodeExpr:
25330 val, ok = p.parseNotCodeExpr(expr)
25331 case *notExpr:
25332 val, ok = p.parseNotExpr(expr)
25333 case *oneOrMoreExpr:
25334 val, ok = p.parseOneOrMoreExpr(expr)
25335 case *recoveryExpr:
25336 val, ok = p.parseRecoveryExpr(expr)
25337 case *ruleRefExpr:
25338 val, ok = p.parseRuleRefExpr(expr)
25339 case *seqExpr:
25340 val, ok = p.parseSeqExpr(expr)
25341 case *stateCodeExpr:
25342 val, ok = p.parseStateCodeExpr(expr)
25343 case *throwExpr:
25344 val, ok = p.parseThrowExpr(expr)
25345 case *zeroOrMoreExpr:
25346 val, ok = p.parseZeroOrMoreExpr(expr)
25347 case *zeroOrOneExpr:
25348 val, ok = p.parseZeroOrOneExpr(expr)
25349 default:
25350 panic(fmt.Sprintf("unknown expression type %T", expr))
25351 }
25352 return val, ok
25353}
25354
25355func (p *parser) parseActionExpr(act *actionExpr) (any, bool) {
25356 if p.debug {

Callers 1

parseExprWrapMethod · 0.95

Calls 15

parseActionExprMethod · 0.95
parseAndCodeExprMethod · 0.95
parseAndExprMethod · 0.95
parseAnyMatcherMethod · 0.95
parseCharClassMatcherMethod · 0.95
parseChoiceExprMethod · 0.95
parseLabeledExprMethod · 0.95
parseLitMatcherMethod · 0.95
parseNotCodeExprMethod · 0.95
parseNotExprMethod · 0.95
parseOneOrMoreExprMethod · 0.95
parseRecoveryExprMethod · 0.95

Tested by

no test coverage detected