VisitClauseBody visits a parse tree produced by MangleParser#clauseBody.
(ctx *gen.ClauseBodyContext)
| 344 | |
| 345 | // VisitClauseBody visits a parse tree produced by MangleParser#clauseBody. |
| 346 | func (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. |
| 368 | func (p Parser) VisitTransform(ctx *gen.TransformContext) any { |
no test coverage detected