library-ts/browser/text/lexer/CSVLexer.ts

28 lines
697 B
TypeScript

import { Lexer } from "./Lexer";
import { LexerMatcher } from "./LexerMatcher";
import { LexerMatcherLibrary } from "./LexerMatcherLibrary";
import { LexerType } from "./LexerType";
export class CSVLexer extends Lexer
{
static readonly COMMA = "COMMA";
static readonly COMMA_MATCHER = new LexerMatcher( CSVLexer.COMMA, /\,/ );
static readonly DATA = "DATA";
static readonly DATA_MATCHER = new LexerMatcher( CSVLexer.DATA, /(\w|\d|\s)+/ );
constructor()
{
super();
this.addAllMatchers(
LexerMatcherLibrary.DOUBLE_QUOTED_STRING_MATCHER,
CSVLexer.COMMA_MATCHER,
LexerMatcherLibrary.BREAK_MATCHER,
LexerMatcherLibrary.ANY_SYMBOL_MATCHER
);
}
}