MCPcopy Index your code
hub / github.com/Effect-TS/effect / tree

Function tree

packages/printer/src/internal/docTree.ts:451–482  ·  view source on GitHub ↗
(
  parser: () => DocTreeParser<DocStream.DocStream<A>, DocTree.DocTree<A>>
)

Source from the content-addressed store, hash-verified

449}
450
451const tree = <A>(
452 parser: () => DocTreeParser<DocStream.DocStream<A>, DocTree.DocTree<A>>
453): DocTreeParser<DocStream.DocStream<A>, DocTree.DocTree<A>> => {
454 return parserFlatMap(nextToken<A>(), (token) => {
455 switch (token._tag) {
456 case "EmptyToken": {
457 return parserSucceed(empty)
458 }
459 case "CharToken": {
460 return parserSucceed(char<A>(token.char))
461 }
462 case "TextToken": {
463 return parserSucceed(text<A>(token.text))
464 }
465 case "LineToken": {
466 return parserSucceed(line<A>(token.indentation))
467 }
468 case "PushAnnotationToken": {
469 return parserFlatMap(parser(), (annotatedContents) =>
470 // Make sure to handle the subsequent pop annotation token
471
472 parserMap(
473 nextToken<A>(),
474 () => annotation(annotatedContents, token.annotation)
475 ))
476 }
477 case "PopAnnotationToken": {
478 return () => Option.none()
479 }
480 }
481 })
482}
483
484/** @internal */
485export const parser = <A>(): DocTreeParser<DocStream.DocStream<A>, DocTree.DocTree<A>> =>

Callers 1

parserFunction · 0.85

Calls 8

parserFlatMapFunction · 0.85
nextTokenFunction · 0.85
parserSucceedFunction · 0.85
parserFunction · 0.85
parserMapFunction · 0.85
charFunction · 0.70
textFunction · 0.70
lineFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…