You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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 } }
|