28 lines
697 B
TypeScript
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
|
||
|
);
|
||
|
|
||
|
}
|
||
|
}
|