123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- export { createScalarToken, resolveAsScalar, setScalarValue } from './cst-scalar.js';
- export { stringify } from './cst-stringify.js';
- export { visit, Visitor, VisitPath } from './cst-visit.js';
- export interface SourceToken {
- type: 'byte-order-mark' | 'doc-mode' | 'doc-start' | 'space' | 'comment' | 'newline' | 'directive-line' | 'anchor' | 'tag' | 'seq-item-ind' | 'explicit-key-ind' | 'map-value-ind' | 'flow-map-start' | 'flow-map-end' | 'flow-seq-start' | 'flow-seq-end' | 'flow-error-end' | 'comma' | 'block-scalar-header';
- offset: number;
- indent: number;
- source: string;
- }
- export interface ErrorToken {
- type: 'error';
- offset: number;
- source: string;
- message: string;
- }
- export interface Directive {
- type: 'directive';
- offset: number;
- source: string;
- }
- export interface Document {
- type: 'document';
- offset: number;
- start: SourceToken[];
- value?: Token;
- end?: SourceToken[];
- }
- export interface DocumentEnd {
- type: 'doc-end';
- offset: number;
- source: string;
- end?: SourceToken[];
- }
- export interface FlowScalar {
- type: 'alias' | 'scalar' | 'single-quoted-scalar' | 'double-quoted-scalar';
- offset: number;
- indent: number;
- source: string;
- end?: SourceToken[];
- }
- export interface BlockScalar {
- type: 'block-scalar';
- offset: number;
- indent: number;
- props: Token[];
- source: string;
- }
- export interface BlockMap {
- type: 'block-map';
- offset: number;
- indent: number;
- items: Array<{
- start: SourceToken[];
- explicitKey?: true;
- key?: never;
- sep?: never;
- value?: never;
- } | {
- start: SourceToken[];
- explicitKey?: true;
- key: Token | null;
- sep: SourceToken[];
- value?: Token;
- }>;
- }
- export interface BlockSequence {
- type: 'block-seq';
- offset: number;
- indent: number;
- items: Array<{
- start: SourceToken[];
- key?: never;
- sep?: never;
- value?: Token;
- }>;
- }
- export type CollectionItem = {
- start: SourceToken[];
- key?: Token | null;
- sep?: SourceToken[];
- value?: Token;
- };
- export interface FlowCollection {
- type: 'flow-collection';
- offset: number;
- indent: number;
- start: SourceToken;
- items: CollectionItem[];
- end: SourceToken[];
- }
- export type Token = SourceToken | ErrorToken | Directive | Document | DocumentEnd | FlowScalar | BlockScalar | BlockMap | BlockSequence | FlowCollection;
- export type TokenType = SourceToken['type'] | DocumentEnd['type'] | FlowScalar['type'];
- /** The byte order mark */
- export declare const BOM = "\uFEFF";
- /** Start of doc-mode */
- export declare const DOCUMENT = "\u0002";
- /** Unexpected end of flow-mode */
- export declare const FLOW_END = "\u0018";
- /** Next token is a scalar value */
- export declare const SCALAR = "\u001F";
- /** @returns `true` if `token` is a flow or block collection */
- export declare const isCollection: (token: Token | null | undefined) => token is BlockMap | BlockSequence | FlowCollection;
- /** @returns `true` if `token` is a flow or block scalar; not an alias */
- export declare const isScalar: (token: Token | null | undefined) => token is FlowScalar | BlockScalar;
- /** Get a printable representation of a lexer token */
- export declare function prettyToken(token: string): string;
- /** Identify the type of a lexer token. May return `null` for unknown tokens. */
- export declare function tokenType(source: string): TokenType | null;
|