{
  "definitions": [
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/analyzers/literal.analyzer.ts",
          "name": "lineOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-literal-analyzer-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/literal.analyzer.ts",
            "label": "tools/core/analyzers/literal.analyzer.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/literal.analyzer.ts.md",
            "ref": "anatomy:file-coordination-tools-core-analyzers-literal-analyzer-ts"
          }
        },
        {
          "file": "tools/core/analyzers/literal.analyzer.ts",
          "name": "nameEndingAt",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-literal-analyzer-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/literal.analyzer.ts",
            "label": "tools/core/analyzers/literal.analyzer.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/literal.analyzer.ts.md",
            "ref": "anatomy:file-coordination-tools-core-analyzers-literal-analyzer-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "tools/core/analyzers/literal.analyzer.ts",
          "name": "unboundedEnumerations",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-literal-analyzer-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/literal.analyzer.ts",
            "label": "tools/core/analyzers/literal.analyzer.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/literal.analyzer.ts.md",
            "ref": "anatomy:file-coordination-tools-core-analyzers-literal-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 57,
      "name": "enumerationAt",
      "signature": "const enumerationAt = function enumerationAt(source: string, openAt: number): Enumeration[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/analyzers/literal.analyzer.ts",
          "name": "enumerationAt",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-literal-analyzer-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/literal.analyzer.ts",
            "label": "tools/core/analyzers/literal.analyzer.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/literal.analyzer.ts.md",
            "ref": "anatomy:file-coordination-tools-core-analyzers-literal-analyzer-ts"
          }
        },
        {
          "file": "tools/core/predicates/comment.predicate.ts",
          "name": "endOfQuoted",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-predicates-comment-predicate-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/predicates/comment.predicate.ts",
            "label": "tools/core/predicates/comment.predicate.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/predicates/comment.predicate.ts.md",
            "ref": "anatomy:file-coordination-tools-core-predicates-comment-predicate-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "tools/rules/literal.rule.ts",
          "name": "check",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-rules-literal-rule-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/rules/literal.rule.ts",
            "label": "tools/rules/literal.rule.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/rules/literal.rule.ts.md",
            "ref": "anatomy:file-coordination-tools-rules-literal-rule-ts"
          }
        }
      ],
      "exported": true,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 71,
      "name": "unboundedEnumerations",
      "signature": "export const unboundedEnumerations = function unboundedEnumerations(source: string): Enumeration[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/predicates/token.predicate.ts",
          "name": "isWordCharacter",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-predicates-token-predicate-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/predicates/token.predicate.ts",
            "label": "tools/core/predicates/token.predicate.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/predicates/token.predicate.ts.md",
            "ref": "anatomy:file-coordination-tools-core-predicates-token-predicate-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "tools/core/analyzers/literal.analyzer.ts",
          "name": "enumerationAt",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-literal-analyzer-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/literal.analyzer.ts",
            "label": "tools/core/analyzers/literal.analyzer.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/literal.analyzer.ts.md",
            "ref": "anatomy:file-coordination-tools-core-analyzers-literal-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 49,
      "name": "nameEndingAt",
      "signature": "const nameEndingAt = function nameEndingAt(source: string, openAt: number): string {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "tools/core/analyzers/literal.analyzer.ts",
          "name": "enumerationAt",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-literal-analyzer-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/literal.analyzer.ts",
            "label": "tools/core/analyzers/literal.analyzer.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/literal.analyzer.ts.md",
            "ref": "anatomy:file-coordination-tools-core-analyzers-literal-analyzer-ts"
          }
        }
      ],
      "exported": true,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 32,
      "name": "lineOf",
      "signature": "export const lineOf = function lineOf(source: string, index: number): number {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "tools/core/analyzers/literal.analyzer.ts",
          "name": "closingQuote",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-literal-analyzer-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/literal.analyzer.ts",
            "label": "tools/core/analyzers/literal.analyzer.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/literal.analyzer.ts.md",
            "ref": "anatomy:file-coordination-tools-core-analyzers-literal-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 105,
      "name": "endsLine",
      "signature": "const endsLine = (at: string): boolean => at === \"\\n\" && quote !== TEMPLATE_QUOTE;"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/analyzers/literal.analyzer.ts",
          "name": "endsLine",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-literal-analyzer-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/literal.analyzer.ts",
            "label": "tools/core/analyzers/literal.analyzer.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/literal.analyzer.ts.md",
            "ref": "anatomy:file-coordination-tools-core-analyzers-literal-analyzer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 102,
      "name": "closingQuote",
      "signature": "const closingQuote = function closingQuote(source: string, start: number, quote: string): number {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 6,
      "name": "MODULE_SUFFIX",
      "signature": "const MODULE_SUFFIX = \".ts\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 8,
      "name": "ENUMERATORS",
      "signature": "const ENUMERATORS: ReadonlySet<string> = new Set([\"readdirSync\", \"readdir\", \"walk\"]);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 10,
      "name": "RECURSIVE_FLAG",
      "signature": "const RECURSIVE_FLAG = \"recursive\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 12,
      "name": "ESCAPING_ROOTS",
      "signature": "const ESCAPING_ROOTS: ReadonlySet<string> = new Set([\"repoRoot\", \"REPO_ROOT\", \"projectRoot\"]);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 14,
      "name": "NARROWERS",
      "signature": "const NARROWERS: ReadonlySet<string> = new Set([\"surfacePrefix\", \"surfacePath\", \"surfaceRoot\"]);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 16,
      "name": "OPEN",
      "signature": "const OPEN = \"(\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 18,
      "name": "CLOSE",
      "signature": "const CLOSE = \")\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 20,
      "name": "QUOTES",
      "signature": "const QUOTES: ReadonlySet<string> = new Set(['\"', \"'\", \"`\"]);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 22,
      "name": "ESCAPE",
      "signature": "const ESCAPE = \"\\\\\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 24,
      "name": "TEMPLATE_QUOTE",
      "signature": "const TEMPLATE_QUOTE = \"`\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 26,
      "name": "BLANKS",
      "signature": "const BLANKS: ReadonlySet<string> = new Set([\" \", \"\\n\"]);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 28,
      "name": "MEMBER_ACCESS",
      "signature": "const MEMBER_ACCESS = \".\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 30,
      "name": "SCANNED_QUOTES",
      "signature": "const SCANNED_QUOTES: ReadonlySet<string> = new Set(['\"', \"'\"]);"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 36,
      "name": "argumentsOf",
      "signature": "const argumentsOf = function argumentsOf(source: string, openAt: number): string {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 37,
      "name": "depth",
      "signature": "let depth = 0;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 50,
      "name": "start",
      "signature": "let start = openAt;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 62,
      "name": "tokens",
      "signature": "const tokens = accumulate(argumentsOf(source, openAt), isWordCharacter);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 63,
      "name": "escaping",
      "signature": "const escaping = tokens.find((token) => ESCAPING_ROOTS.has(token));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 64,
      "name": "narrowed",
      "signature": "const narrowed = tokens.some((token) => NARROWERS.has(token));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 76,
      "name": "character",
      "signature": "const character = source.charAt(cursor);"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 88,
      "name": "isPathShaped",
      "signature": "export const isPathShaped = function isPathShaped(value: string): boolean {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 115,
      "name": "callBefore",
      "signature": "export const callBefore = function callBefore(source: string, quoteAt: number): string {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 124,
      "name": "name",
      "signature": "const name = nameEndingAt(source, cursor);"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 128,
      "name": "quotedLiterals",
      "signature": "export const quotedLiterals = function quotedLiterals(source: string): Quoted[] {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 129,
      "name": "out",
      "signature": "const out: Quoted[] = [];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 130,
      "name": "cursor",
      "signature": "let cursor = 0;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 133,
      "name": "char",
      "signature": "const char = source.charAt(cursor);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 134,
      "name": "close",
      "signature": "const close = SCANNED_QUOTES.has(char) ? closingQuote(source, cursor + 1, char) : cursor;"
    }
  ],
  "document": null,
  "findings": [],
  "generated": false,
  "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-literal-analyzer-ts",
  "language": "typescript",
  "layer": "processing",
  "name": "literal.analyzer.ts",
  "path": "tools/core/analyzers/literal.analyzer.ts",
  "ref": "anatomy:file-coordination-tools-core-analyzers-literal-analyzer-ts",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/coordination#folder-coordination-tools-core-analyzers",
          "json": "https://banes-lab.com/json/anatomy/coordination/folder-coordination-tools-core-analyzers",
          "label": "tools/core/analyzers",
          "markdown": "https://banes-lab.com/anatomy/coordination/folder-coordination-tools-core-analyzers.md",
          "ref": "chapter:/anatomy/coordination#folder-coordination-tools-core-analyzers"
        }
      ],
      "relation": "contained-in"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-predicates-comment-predicate-ts",
          "json": "https://banes-lab.com/json/source/coordination/tools/core/predicates/comment.predicate.ts",
          "label": "tools/core/predicates/comment.predicate.ts",
          "markdown": "https://banes-lab.com/source/coordination/tools/core/predicates/comment.predicate.ts.md",
          "ref": "anatomy:file-coordination-tools-core-predicates-comment-predicate-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-predicates-token-predicate-ts",
          "json": "https://banes-lab.com/json/source/coordination/tools/core/predicates/token.predicate.ts",
          "label": "tools/core/predicates/token.predicate.ts",
          "markdown": "https://banes-lab.com/source/coordination/tools/core/predicates/token.predicate.ts.md",
          "ref": "anatomy:file-coordination-tools-core-predicates-token-predicate-ts"
        }
      ],
      "relation": "uses"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-rules-literal-rule-ts",
          "json": "https://banes-lab.com/json/source/coordination/tools/rules/literal.rule.ts",
          "label": "tools/rules/literal.rule.ts",
          "markdown": "https://banes-lab.com/source/coordination/tools/rules/literal.rule.ts.md",
          "ref": "anatomy:file-coordination-tools-rules-literal-rule-ts"
        }
      ],
      "relation": "used-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/coordination#folder-coordination-tools-core-analyzers",
          "json": "https://banes-lab.com/json/anatomy/coordination/folder-coordination-tools-core-analyzers",
          "label": "tools/core/analyzers",
          "markdown": "https://banes-lab.com/anatomy/coordination/folder-coordination-tools-core-analyzers.md",
          "ref": "chapter:/anatomy/coordination#folder-coordination-tools-core-analyzers"
        },
        {
          "href": "https://banes-lab.com/anatomy/coordination#folder-coordination-tools-core-predicates",
          "json": "https://banes-lab.com/json/anatomy/coordination/folder-coordination-tools-core-predicates",
          "label": "tools/core/predicates",
          "markdown": "https://banes-lab.com/anatomy/coordination/folder-coordination-tools-core-predicates.md",
          "ref": "chapter:/anatomy/coordination#folder-coordination-tools-core-predicates"
        },
        {
          "href": "https://banes-lab.com/anatomy/coordination#folder-coordination-tools-rules",
          "json": "https://banes-lab.com/json/anatomy/coordination/folder-coordination-tools-rules",
          "label": "tools/rules",
          "markdown": "https://banes-lab.com/anatomy/coordination/folder-coordination-tools-rules.md",
          "ref": "chapter:/anatomy/coordination#folder-coordination-tools-rules"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "slots": {
    "concern": "analyzer",
    "subject": "literal",
    "variant": null
  },
  "stats": {
    "bytes": 4589,
    "callable": 10,
    "definitions": 34,
    "edges": 6,
    "exported": 11,
    "files": 1,
    "findings": {},
    "flows": {
      "relay": 3,
      "leaf": 2,
      "entry": 1,
      "isolated": 28
    },
    "lines": {
      "blank": 33,
      "code": 113,
      "total": 146
    }
  },
  "summary": "113 lines of code and 34 definitions.",
  "text": "https://banes-lab.com/source/coordination/tools/core/analyzers/literal.analyzer.ts.txt",
  "tree": "coordination",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-marker-analyzer-ts",
      "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/marker.analyzer.ts",
      "label": "tools/core/analyzers/marker.analyzer.ts",
      "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/marker.analyzer.ts.md",
      "ref": "anatomy:file-coordination-tools-core-analyzers-marker-analyzer-ts"
    },
    "previous": {
      "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-analyzers-graph-analyzer-ts",
      "json": "https://banes-lab.com/json/source/coordination/tools/core/analyzers/graph.analyzer.ts",
      "label": "tools/core/analyzers/graph.analyzer.ts",
      "markdown": "https://banes-lab.com/source/coordination/tools/core/analyzers/graph.analyzer.ts.md",
      "ref": "anatomy:file-coordination-tools-core-analyzers-graph-analyzer-ts"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/source/coordination/tools/core/analyzers",
    "label": "tools/core/analyzers",
    "markdown": "https://banes-lab.com/api/source/coordination/tools/core/analyzers.md",
    "ref": "api:source/coordination/tools/core/analyzers"
  }
}
