| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 | 
							- import { Type, YAMLSyntaxError } from './util'
 
- export default function parseCST(str: string): ParsedCST
 
- export interface ParsedCST extends Array<CST.Document> {
 
-   setOrigRanges(): boolean
 
- }
 
- export namespace CST {
 
-   interface Range {
 
-     start: number
 
-     end: number
 
-     origStart?: number
 
-     origEnd?: number
 
-     isEmpty(): boolean
 
-   }
 
-   interface ParseContext {
 
-     /** Node starts at beginning of line */
 
-     atLineStart: boolean
 
-     /** true if currently in a collection context */
 
-     inCollection: boolean
 
-     /** true if currently in a flow context */
 
-     inFlow: boolean
 
-     /** Current level of indentation */
 
-     indent: number
 
-     /** Start of the current line */
 
-     lineStart: number
 
-     /** The parent of the node */
 
-     parent: Node
 
-     /** Source of the YAML document */
 
-     src: string
 
-   }
 
-   interface Node {
 
-     context: ParseContext | null
 
-     /** if not null, indicates a parser failure */
 
-     error: YAMLSyntaxError | null
 
-     /** span of context.src parsed into this node */
 
-     range: Range | null
 
-     valueRange: Range | null
 
-     /** anchors, tags and comments */
 
-     props: Range[]
 
-     /** specific node type */
 
-     type: Type
 
-     /** if non-null, overrides source value */
 
-     value: string | null
 
-     readonly anchor: string | null
 
-     readonly comment: string | null
 
-     readonly hasComment: boolean
 
-     readonly hasProps: boolean
 
-     readonly jsonLike: boolean
 
-     readonly rangeAsLinePos: null | {
 
-       start: { line: number; col: number }
 
-       end?: { line: number; col: number }
 
-     }
 
-     readonly rawValue: string | null
 
-     readonly tag:
 
-       | null
 
-       | { verbatim: string }
 
-       | { handle: string; suffix: string }
 
-     readonly valueRangeContainsNewline: boolean
 
-   }
 
-   interface Alias extends Node {
 
-     type: Type.ALIAS
 
-     /** contain the anchor without the * prefix */
 
-     readonly rawValue: string
 
-   }
 
-   type Scalar = BlockValue | PlainValue | QuoteValue
 
-   interface BlockValue extends Node {
 
-     type: Type.BLOCK_FOLDED | Type.BLOCK_LITERAL
 
-     chomping: 'CLIP' | 'KEEP' | 'STRIP'
 
-     blockIndent: number | null
 
-     header: Range
 
-     readonly strValue: string | null
 
-   }
 
-   interface BlockFolded extends BlockValue {
 
-     type: Type.BLOCK_FOLDED
 
-   }
 
-   interface BlockLiteral extends BlockValue {
 
-     type: Type.BLOCK_LITERAL
 
-   }
 
-   interface PlainValue extends Node {
 
-     type: Type.PLAIN
 
-     readonly strValue: string | null
 
-   }
 
-   interface QuoteValue extends Node {
 
-     type: Type.QUOTE_DOUBLE | Type.QUOTE_SINGLE
 
-     readonly strValue:
 
-       | null
 
-       | string
 
-       | { str: string; errors: YAMLSyntaxError[] }
 
-   }
 
-   interface QuoteDouble extends QuoteValue {
 
-     type: Type.QUOTE_DOUBLE
 
-   }
 
-   interface QuoteSingle extends QuoteValue {
 
-     type: Type.QUOTE_SINGLE
 
-   }
 
-   interface Comment extends Node {
 
-     type: Type.COMMENT
 
-     readonly anchor: null
 
-     readonly comment: string
 
-     readonly rawValue: null
 
-     readonly tag: null
 
-   }
 
-   interface BlankLine extends Node {
 
-     type: Type.BLANK_LINE
 
-   }
 
-   interface MapItem extends Node {
 
-     type: Type.MAP_KEY | Type.MAP_VALUE
 
-     node: ContentNode | null
 
-   }
 
-   interface MapKey extends MapItem {
 
-     type: Type.MAP_KEY
 
-   }
 
-   interface MapValue extends MapItem {
 
-     type: Type.MAP_VALUE
 
-   }
 
-   interface Map extends Node {
 
-     type: Type.MAP
 
-     /** implicit keys are not wrapped */
 
-     items: Array<BlankLine | Comment | Alias | Scalar | MapItem>
 
-   }
 
-   interface SeqItem extends Node {
 
-     type: Type.SEQ_ITEM
 
-     node: ContentNode | null
 
-   }
 
-   interface Seq extends Node {
 
-     type: Type.SEQ
 
-     items: Array<BlankLine | Comment | SeqItem>
 
-   }
 
-   interface FlowChar {
 
-     char: '{' | '}' | '[' | ']' | ',' | '?' | ':'
 
-     offset: number
 
-     origOffset?: number
 
-   }
 
-   interface FlowCollection extends Node {
 
-     type: Type.FLOW_MAP | Type.FLOW_SEQ
 
-     items: Array<
 
-       FlowChar | BlankLine | Comment | Alias | Scalar | FlowCollection
 
-     >
 
-   }
 
-   interface FlowMap extends FlowCollection {
 
-     type: Type.FLOW_MAP
 
-   }
 
-   interface FlowSeq extends FlowCollection {
 
-     type: Type.FLOW_SEQ
 
-   }
 
-   type ContentNode = Alias | Scalar | Map | Seq | FlowCollection
 
-   interface Directive extends Node {
 
-     type: Type.DIRECTIVE
 
-     name: string
 
-     readonly anchor: null
 
-     readonly parameters: string[]
 
-     readonly tag: null
 
-   }
 
-   interface Document extends Node {
 
-     type: Type.DOCUMENT
 
-     directives: Array<BlankLine | Comment | Directive>
 
-     contents: Array<BlankLine | Comment | ContentNode>
 
-     readonly anchor: null
 
-     readonly comment: null
 
-     readonly tag: null
 
-   }
 
- }
 
 
  |