MCPcopy Index your code
hub / github.com/google/mangle / VisitClauseBody

Method VisitClauseBody

parse/parse.go:346–365  ·  view source on GitHub ↗

VisitClauseBody visits a parse tree produced by MangleParser#clauseBody.

(ctx *gen.ClauseBodyContext)

Source from the content-addressed store, hash-verified

344
345// VisitClauseBody visits a parse tree produced by MangleParser#clauseBody.
346func (p Parser) VisitClauseBody(ctx *gen.ClauseBodyContext) any {
347 var premises []ast.Term
348 for _, litOrFml := range ctx.AllLiteralOrFml() {
349 premises = append(premises, p.Visit(litOrFml).(ast.Term))
350 }
351 clause := ast.NewClause(ast.Atom{}, premises)
352 var lastTransform *ast.Transform = nil
353 for _, l := range ctx.AllTransform() {
354 t := p.Visit(l).(ast.Transform)
355 if clause.Transform == nil {
356 clause.Transform = &t
357 lastTransform = &t
358 } else {
359 lastTransform.Next = &t
360 lastTransform = &t
361 }
362 }
363
364 return clause
365}
366
367// VisitTransform visits a parse tree produced by MangleParser#transform.
368func (p Parser) VisitTransform(ctx *gen.TransformContext) any {

Callers 1

VisitMethod · 0.95

Calls 4

VisitMethod · 0.95
NewClauseFunction · 0.92
AllLiteralOrFmlMethod · 0.65
AllTransformMethod · 0.65

Tested by

no test coverage detected