sucrase
Version:
Super-fast alternative to Babel for when you can target modern JS runtimes
88 lines (87 loc) • 2.45 kB
TypeScript
export declare type TokenOptions = {
keyword?: string;
beforeExpr?: boolean;
startsExpr?: boolean;
rightAssociative?: boolean;
isLoop?: boolean;
isAssign?: boolean;
prefix?: boolean;
postfix?: boolean;
binop?: number;
};
export declare class TokenType {
label: string;
keyword?: string;
beforeExpr: boolean;
startsExpr: boolean;
rightAssociative: boolean;
isLoop: boolean;
isAssign: boolean;
prefix: boolean;
postfix: boolean;
binop: number | null;
updateContext?: ((prevType: TokenType) => void) | null;
constructor(label: string, conf?: TokenOptions);
}
export declare class KeywordTokenType extends TokenType {
constructor(name: string, options?: TokenOptions);
}
export declare class BinopTokenType extends TokenType {
constructor(name: string, prec: number);
}
export declare const types: {
[name: string]: TokenType;
};
export declare const keywords: {
break: KeywordTokenType;
case: KeywordTokenType;
catch: KeywordTokenType;
continue: KeywordTokenType;
debugger: KeywordTokenType;
default: KeywordTokenType;
do: KeywordTokenType;
else: KeywordTokenType;
finally: KeywordTokenType;
for: KeywordTokenType;
function: KeywordTokenType;
if: KeywordTokenType;
return: KeywordTokenType;
switch: KeywordTokenType;
throw: KeywordTokenType;
try: KeywordTokenType;
var: KeywordTokenType;
let: KeywordTokenType;
const: KeywordTokenType;
while: KeywordTokenType;
with: KeywordTokenType;
new: KeywordTokenType;
this: KeywordTokenType;
super: KeywordTokenType;
class: KeywordTokenType;
extends: KeywordTokenType;
export: KeywordTokenType;
import: KeywordTokenType;
yield: KeywordTokenType;
null: KeywordTokenType;
true: KeywordTokenType;
false: KeywordTokenType;
in: KeywordTokenType;
instanceof: KeywordTokenType;
typeof: KeywordTokenType;
void: KeywordTokenType;
delete: KeywordTokenType;
async: KeywordTokenType;
get: KeywordTokenType;
set: KeywordTokenType;
declare: KeywordTokenType;
readonly: KeywordTokenType;
abstract: KeywordTokenType;
static: KeywordTokenType;
public: KeywordTokenType;
private: KeywordTokenType;
protected: KeywordTokenType;
as: KeywordTokenType;
enum: KeywordTokenType;
type: KeywordTokenType;
implements: KeywordTokenType;
};