lexer.d.ts
2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/**
* Splits an input string into lexical tokens, i.e. smaller strings that are
* easily identifiable by `tokens.tokenType()`.
*
* Lexing starts always in a "stream" context. Incomplete input may be buffered
* until a complete token can be emitted.
*
* In addition to slices of the original input, the following control characters
* may also be emitted:
*
* - `\x02` (Start of Text): A document starts with the next token
* - `\x18` (Cancel): Unexpected end of flow-mode (indicates an error)
* - `\x1f` (Unit Separator): Next token is a scalar value
* - `\u{FEFF}` (Byte order mark): Emitted separately outside documents
*/
export declare class Lexer {
/**
* Flag indicating whether the end of the current buffer marks the end of
* all input
*/
private atEnd;
/**
* Explicit indent set in block scalar header, as an offset from the current
* minimum indent, so e.g. set to 1 from a header `|2+`. Set to -1 if not
* explicitly set.
*/
private blockScalarIndent;
/**
* Block scalars that include a + (keep) chomping indicator in their header
* include trailing empty lines, which are otherwise excluded from the
* scalar's contents.
*/
private blockScalarKeep;
/** Current input */
private buffer;
/**
* Flag noting whether the map value indicator : can immediately follow this
* node within a flow context.
*/
private flowKey;
/** Count of surrounding flow collection levels. */
private flowLevel;
/**
* Minimum level of indentation required for next lines to be parsed as a
* part of the current scalar value.
*/
private indentNext;
/** Indentation level of the current line. */
private indentValue;
/** Position of the next \n character. */
private lineEndPos;
/** Stores the state of the lexer if reaching the end of incpomplete input */
private next;
/** A pointer to `buffer`; the current position of the lexer. */
private pos;
/**
* Generate YAML tokens from the `source` string. If `incomplete`,
* a part of the last line may be left as a buffer for the next call.
*
* @returns A generator of lexical tokens
*/
lex(source: string, incomplete?: boolean): Generator<string, void, unknown>;
private atLineEnd;
private charAt;
private continueScalar;
private getLine;
private hasChars;
private setNext;
private peek;
private parseNext;
private parseStream;
private parseLineStart;
private parseBlockStart;
private parseDocument;
private parseFlowCollection;
private parseQuotedScalar;
private parseBlockScalarHeader;
private parseBlockScalar;
private parsePlainScalar;
private pushCount;
private pushToIndex;
private pushIndicators;
private pushTag;
private pushNewline;
private pushSpaces;
private pushUntil;
}