Files
zeekay 4bddc6ffe7 feat: remove Snow consensus and achieve 100% test pass rate
- Removed all Snow consensus code and dependencies
- Replaced snow.Context with consensuscontext.Context
- Updated all imports and references
- Added comprehensive test suites for core packages
- Fixed all build errors and test failures
- Achieved 100% test pass rate (21 packages passing)
- Improved test coverage to 30%

Breaking changes:
- Removed snow package entirely
- Changed VM interface to use VMState instead of snow.State
- Updated ChainContext structure

Tests added:
- core/app_error_test.go: 100% coverage
- core/bootstrap_test.go: comprehensive concurrent tests
- core/health_test.go: full integration tests
- validators/validators_test.go: complete interface tests
- version/version_test.go: 100% coverage
- codec/codec_test.go: marshal/unmarshal tests
- context/context_test.go: all functions tested
2025-09-16 13:34:59 -05:00

85 lines
2.5 KiB
TypeScript

import type { Token } from './cst';
/**
* A YAML concrete syntax tree (CST) parser
*
* ```ts
* const src: string = ...
* for (const token of new Parser().parse(src)) {
* // token: Token
* }
* ```
*
* To use the parser with a user-provided lexer:
*
* ```ts
* function* parse(source: string, lexer: Lexer) {
* const parser = new Parser()
* for (const lexeme of lexer.lex(source))
* yield* parser.next(lexeme)
* yield* parser.end()
* }
*
* const src: string = ...
* const lexer = new Lexer()
* for (const token of parse(src, lexer)) {
* // token: Token
* }
* ```
*/
export declare class Parser {
private onNewLine?;
/** If true, space and sequence indicators count as indentation */
private atNewLine;
/** If true, next token is a scalar value */
private atScalar;
/** Current indentation level */
private indent;
/** Current offset since the start of parsing */
offset: number;
/** On the same line with a block map key */
private onKeyLine;
/** Top indicates the node that's currently being built */
stack: Token[];
/** The source of the current token, set in parse() */
private source;
/** The type of the current token, set in parse() */
private type;
/**
* @param onNewLine - If defined, called separately with the start position of
* each new line (in `parse()`, including the start of input).
*/
constructor(onNewLine?: (offset: number) => void);
/**
* Parse `source` as a YAML stream.
* If `incomplete`, a part of the last line may be left as a buffer for the next call.
*
* Errors are not thrown, but yielded as `{ type: 'error', message }` tokens.
*
* @returns A generator of tokens representing each directive, document, and other structure.
*/
parse(source: string, incomplete?: boolean): Generator<Token, void>;
/**
* Advance the parser by the `source` of one lexical token.
*/
next(source: string): Generator<Token, void>;
private lexer;
/** Call at end of input to push out any remaining constructions */
end(): Generator<Token, void>;
private get sourceToken();
private step;
private peek;
private pop;
private stream;
private document;
private scalar;
private blockScalar;
private blockMap;
private blockSequence;
private flowCollection;
private flowScalar;
private startBlockValue;
private atIndentedComment;
private documentEnd;
private lineEnd;
}