psl-parser
Version:
A parser for the Profile Scripting Language
140 lines (139 loc) • 3.77 kB
TypeScript
export declare function getTokens(documentContents: string): IterableIterator<Token>;
export declare class Token {
type: Type;
value: string;
position: Position;
constructor(type: Type, value: string, position: Position);
getRange(): Range;
isWhiteSpace(): boolean;
isAlphanumeric(): boolean;
isNumeric(): boolean;
isLineComment(): boolean;
isBlockComment(): boolean;
isString(): boolean;
isLineCommentInit(): boolean;
isBlockCommentInit(): boolean;
isBlockCommentTerm(): boolean;
isDoubleQuotes(): boolean;
isSlash(): boolean;
isTab(): boolean;
isNewLine(): boolean;
isSpace(): boolean;
isExclamationMark(): boolean;
isNumberSign(): boolean;
isDollarSign(): boolean;
isAmpersand(): boolean;
isSingleQuote(): boolean;
isOpenParen(): boolean;
isCloseParen(): boolean;
isAsterisk(): boolean;
isPlusSign(): boolean;
isComma(): boolean;
isMinusSign(): boolean;
isPeriod(): boolean;
isColon(): boolean;
isSemiColon(): boolean;
isLessThan(): boolean;
isEqualSign(): boolean;
isGreaterThan(): boolean;
isQuestionMark(): boolean;
isAtSymbol(): boolean;
isOpenBracket(): boolean;
isBackslash(): boolean;
isCloseBracket(): boolean;
isCaret(): boolean;
isUnderscore(): boolean;
isBackQuote(): boolean;
isOpenBrace(): boolean;
isPipe(): boolean;
isCloseBrace(): boolean;
isTilde(): boolean;
}
export declare class Range {
/**
* The start position. It is before or equal to [end](#Range.end).
*/
readonly start: Position;
/**
* The end position. It is after or equal to [start](#Range.start).
*/
readonly end: Position;
/**
* Create a new range from two positions. If `start` is not
* before or equal to `end`, the values will be swapped.
*
* @param start A position.
* @param end A position.
*/
constructor(start: Position, end: Position);
/**
* Create a new range from number coordinates. It is a shorter equivalent of
* using `new Range(new Position(startLine, startCharacter), new Position(endLine, endCharacter))`
*
* @param startLine A zero-based line value.
* @param startCharacter A zero-based character value.
* @param endLine A zero-based line value.
* @param endCharacter A zero-based character value.
*/
constructor(startLine: number, startCharacter: number, endLine: number, endCharacter: number);
}
export declare class Position {
/**
* The zero-based line value.
*/
readonly line: number;
/**
* The zero-based character value.
*/
readonly character: number;
/**
* @param line A zero-based line value.
* @param character A zero-based character value.
*/
constructor(line: number, character: number);
}
export declare const enum Type {
Alphanumeric = 1,
Numeric = 2,
LineComment = 3,
BlockComment = 4,
String = 5,
LineCommentInit = 6,
BlockCommentInit = 7,
BlockCommentTerm = 8,
DoubleQuotes = 9,
Slash = 10,
Tab = 11,
NewLine = 13,
Space = 32,
ExclamationMark = 33,
NumberSign = 35,
DollarSign = 36,
Ampersand = 38,
SingleQuote = 39,
OpenParen = 40,
CloseParen = 41,
Asterisk = 42,
PlusSign = 43,
Comma = 44,
MinusSign = 45,
Period = 46,
Colon = 58,
SemiColon = 59,
LessThan = 60,
EqualSign = 61,
GreaterThan = 62,
QuestionMark = 63,
AtSymbol = 64,
OpenBracket = 91,
Backslash = 92,
CloseBracket = 93,
Caret = 94,
Underscore = 95,
BackQuote = 96,
OpenBrace = 123,
Pipe = 124,
CloseBrace = 125,
Tilde = 126,
Undefined = -1
}