1
0
mirror of synced 2026-08-06 19:46:54 +00:00
Files
2025-04-01 19:57:20 +02:00

33 lines
924 B
TypeScript

import type { ITokenizer } from 'strtok3';
import type { ITokenParser } from '../ParserFactory.js';
import type { IOptions, } from '../type.js';
import type { INativeMetadataCollector } from './MetadataCollector.js';
export abstract class BasicParser implements ITokenParser {
protected readonly metadata: INativeMetadataCollector;
protected readonly tokenizer: ITokenizer;
protected readonly options: IOptions;
/**
* Initialize parser with output (metadata), input (tokenizer) & parsing options (options).
* @param {INativeMetadataCollector} metadata Output
* @param {ITokenizer} tokenizer Input
* @param {IOptions} options Parsing options
*/
constructor(
metadata: INativeMetadataCollector,
tokenizer: ITokenizer,
options: IOptions
) {
this.metadata = metadata;
this.tokenizer = tokenizer;
this.options = options;
}
public abstract parse(): Promise<void>;
}