pip-services4-expressions-node
Version:
Tokenizers, parsers and expression calculators in Node.js / ES2017
34 lines (26 loc) • 1.08 kB
text/typescript
/** @module csv */
import { GenericWordState } from "../tokenizers/generic/GenericWordState";
import { CsvConstant } from "./CsvConstant";
/**
* Implements a word state to tokenize CSV stream.
*/
export class CsvWordState extends GenericWordState {
/**
* Constructs this object with specified parameters.
* @param fieldSeparators Separators for fields in CSV stream.
* @param quoteSymbols Delimiters character to quote strings.
*/
public constructor(fieldSeparators: number[], quoteSymbols: number[]) {
super();
this.clearWordChars();
this.setWordChars(0x0000, 0xfffe, true);
this.setWordChars(CsvConstant.CR, CsvConstant.CR, false);
this.setWordChars(CsvConstant.LF, CsvConstant.LF, false);
for (const fieldSeparator of fieldSeparators) {
this.setWordChars(fieldSeparator, fieldSeparator, false);
}
for (const quoteSymbol of quoteSymbols) {
this.setWordChars(quoteSymbol, quoteSymbol, false);
}
}
}