bolt/src/ast.js

4796 lines
86 KiB
JavaScript
Raw Normal View History

export class NodeVisitor {
visit(node) {
for (const child of node.preorder()) {
const key = `visit${kindToString(child.kind)}`;
if (this[key] !== undefined) {
this[key](child);
}
}
}
}
let nextNodeId = 1;
class SyntaxBase {
constructor(span) {
this.id = nextNodeId++;
this.errors = [];
this.span = span;
}
*getChildNodes() {
for (const key of Object.keys(this)) {
if (key === 'span' || key === 'parentNode' || key === 'type') {
continue
}
const value = this[key];
if (Array.isArray(value)) {
for (const element of value) {
if (isSyntax(element)) {
yield element;
}
}
} else {
if (isSyntax(value)) {
yield value;
}
}
}
}
visit(visitors) {
const stack = [this];
while (stack.length > 0) {
const node = stack.pop();
const kindName = kindToString(node.kind);
const kindNamesToVisit = [kindName, ...NODE_TYPES[kindName].parents];
for (const visitor of visitors) {
for (const kindName of kindNamesToVisit) {
const key = `visit${kindName}`
if (visitor[key] !== undefined) {
visitor[key](node);
}
}
}
for (const childNode of node.getChildNodes()) {
stack.push(childNode);
}
}
}
*preorder() {
const stack = [this];
while (stack.length > 0) {
const node = stack.pop();
yield node
for (const childNode of node.getChildNodes()) {
stack.push(childNode);
}
}
}
mayContainKind(kind) {
// TODO
return true;
}
getParentOfKind(kind) {
let currNode = this.parentNode;
while (currNode !== null) {
if (currNode.kind === kind) {
return currNode;
}
currNode = currNode.parentNode;
}
return null;
}
*findAllChildrenOfKind(kind) {
for (const node of this.preorder()) {
if (!node.mayContainKind(kind)) {
break;
}
if (node.kind === kind) {
yield node
}
}
}
}
export function isSyntax(value) {
return typeof value === 'object'
&& value !== null
&& value.__NODE_TYPE !== undefined;
}
export function setParents(node, parentNode = null) {
node.parentNode = parentNode;
for (const child of node.getChildNodes()) {
setParents(child, node)
}
}
class EndOfFile extends SyntaxBase {
static kind = 0;
static parents = [
"BoltToken",
"JSToken",
"JSSyntax",
"Token",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltStringLiteral extends SyntaxBase {
static kind = 7;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class BoltIntegerLiteral extends SyntaxBase {
static kind = 8;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class BoltIdentifier extends SyntaxBase {
static kind = 10;
static parents = [
"BoltSymbol",
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
text,
span = null,
) {
super(span);
this.text = text;
this.span = span
}
}
class BoltOperator extends SyntaxBase {
static kind = 12;
static parents = [
"BoltSymbol",
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
text,
span = null,
) {
super(span);
this.text = text;
this.span = span
}
}
class BoltAssignment extends SyntaxBase {
static kind = 13;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
operator,
span = null,
) {
super(span);
this.operator = operator;
this.span = span
}
}
class BoltComma extends SyntaxBase {
static kind = 14;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltSemi extends SyntaxBase {
static kind = 15;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltColon extends SyntaxBase {
static kind = 16;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltColonColon extends SyntaxBase {
static kind = 17;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltDot extends SyntaxBase {
static kind = 18;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltDotDot extends SyntaxBase {
static kind = 19;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltRArrow extends SyntaxBase {
static kind = 20;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltRArrowAlt extends SyntaxBase {
static kind = 21;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltLArrow extends SyntaxBase {
static kind = 22;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltEqSign extends SyntaxBase {
static kind = 23;
static parents = [
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltGtSign extends SyntaxBase {
static kind = 24;
static parents = [
"BoltToken",
"BoltOperatorLike",
"BoltSymbol",
"BoltToken",
"Token",
"BoltSyntax",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltExMark extends SyntaxBase {
static kind = 25;
static parents = [
"BoltToken",
"BoltOperatorLike",
"BoltSymbol",
"BoltToken",
"Token",
"BoltSyntax",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltLtSign extends SyntaxBase {
static kind = 26;
static parents = [
"BoltToken",
"BoltOperatorLike",
"BoltSymbol",
"BoltToken",
"Token",
"BoltSyntax",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltVBar extends SyntaxBase {
static kind = 27;
static parents = [
"BoltToken",
"BoltOperatorLike",
"BoltSymbol",
"BoltToken",
"Token",
"BoltSyntax",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltWhereKeyword extends SyntaxBase {
static kind = 29;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltQuoteKeyword extends SyntaxBase {
static kind = 30;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltFnKeyword extends SyntaxBase {
static kind = 31;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltForeignKeyword extends SyntaxBase {
static kind = 32;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltForKeyword extends SyntaxBase {
static kind = 33;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltLetKeyword extends SyntaxBase {
static kind = 34;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltReturnKeyword extends SyntaxBase {
static kind = 35;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltLoopKeyword extends SyntaxBase {
static kind = 36;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltYieldKeyword extends SyntaxBase {
static kind = 37;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltMatchKeyword extends SyntaxBase {
static kind = 38;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltImportKeyword extends SyntaxBase {
static kind = 39;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltExportKeyword extends SyntaxBase {
static kind = 40;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltPubKeyword extends SyntaxBase {
static kind = 41;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltModKeyword extends SyntaxBase {
static kind = 42;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltMutKeyword extends SyntaxBase {
static kind = 43;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltEnumKeyword extends SyntaxBase {
static kind = 44;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltStructKeyword extends SyntaxBase {
static kind = 45;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltTypeKeyword extends SyntaxBase {
static kind = 46;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltTraitKeyword extends SyntaxBase {
static kind = 47;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltImplKeyword extends SyntaxBase {
static kind = 48;
static parents = [
"BoltToken",
"BoltKeyword",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltParenthesized extends SyntaxBase {
static kind = 50;
static parents = [
"BoltPunctuated",
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
text,
span = null,
) {
super(span);
this.text = text;
this.span = span
}
}
class BoltBraced extends SyntaxBase {
static kind = 51;
static parents = [
"BoltPunctuated",
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
text,
span = null,
) {
super(span);
this.text = text;
this.span = span
}
}
class BoltBracketed extends SyntaxBase {
static kind = 52;
static parents = [
"BoltPunctuated",
"BoltToken",
"Token",
"BoltSyntax",
"Syntax"
];
constructor(
text,
span = null,
) {
super(span);
this.text = text;
this.span = span
}
}
class BoltSourceFile extends SyntaxBase {
static kind = 53;
static parents = [
"BoltSyntax",
"SourceFile",
"Syntax"
];
constructor(
elements,
pkg,
span = null,
) {
super(span);
this.elements = elements;
this.pkg = pkg;
this.span = span
}
}
class BoltQualName extends SyntaxBase {
static kind = 54;
static parents = [
"BoltSyntax",
"Syntax"
];
constructor(
isAbsolute,
modulePath,
name,
span = null,
) {
super(span);
this.isAbsolute = isAbsolute;
this.modulePath = modulePath;
this.name = name;
this.span = span
}
}
class BoltTypeOfExpression extends SyntaxBase {
static kind = 56;
static parents = [
"BoltTypeExpression",
"BoltSyntax",
"Syntax"
];
constructor(
expression,
span = null,
) {
super(span);
this.expression = expression;
this.span = span
}
}
class BoltReferenceTypeExpression extends SyntaxBase {
static kind = 57;
static parents = [
"BoltTypeExpression",
"BoltSyntax",
"Syntax"
];
constructor(
name,
typeArgs,
span = null,
) {
super(span);
this.name = name;
this.typeArgs = typeArgs;
this.span = span
}
}
class BoltFunctionTypeExpression extends SyntaxBase {
static kind = 58;
static parents = [
"BoltTypeExpression",
"BoltSyntax",
"Syntax"
];
constructor(
params,
returnType,
span = null,
) {
super(span);
this.params = params;
this.returnType = returnType;
this.span = span
}
}
class BoltLiftedTypeExpression extends SyntaxBase {
static kind = 59;
static parents = [
"BoltTypeExpression",
"BoltSyntax",
"Syntax"
];
constructor(
expression,
span = null,
) {
super(span);
this.expression = expression;
this.span = span
}
}
class BoltTypeParameter extends SyntaxBase {
static kind = 60;
static parents = [
"BoltSyntax",
"Syntax"
];
constructor(
index,
name,
typeExpr,
defaultType,
span = null,
) {
super(span);
this.index = index;
this.name = name;
this.typeExpr = typeExpr;
this.defaultType = defaultType;
this.span = span
}
}
class BoltBindPattern extends SyntaxBase {
static kind = 62;
static parents = [
"BoltPattern",
"BoltSyntax",
"Syntax"
];
constructor(
name,
span = null,
) {
super(span);
this.name = name;
this.span = span
}
}
class BoltTypePattern extends SyntaxBase {
static kind = 63;
static parents = [
"BoltPattern",
"BoltSyntax",
"Syntax"
];
constructor(
typeExpr,
nestedPattern,
span = null,
) {
super(span);
this.typeExpr = typeExpr;
this.nestedPattern = nestedPattern;
this.span = span
}
}
class BoltExpressionPattern extends SyntaxBase {
static kind = 64;
static parents = [
"BoltPattern",
"BoltSyntax",
"Syntax"
];
constructor(
expression,
span = null,
) {
super(span);
this.expression = expression;
this.span = span
}
}
class BoltTuplePatternElement extends SyntaxBase {
static kind = 65;
static parents = [
"BoltSyntax",
"Syntax"
];
constructor(
index,
pattern,
span = null,
) {
super(span);
this.index = index;
this.pattern = pattern;
this.span = span
}
}
class BoltTuplePattern extends SyntaxBase {
static kind = 66;
static parents = [
"BoltPattern",
"BoltSyntax",
"Syntax"
];
constructor(
elements,
span = null,
) {
super(span);
this.elements = elements;
this.span = span
}
}
class BoltRecordFieldPattern extends SyntaxBase {
static kind = 67;
static parents = [
"BoltSyntax",
"Syntax"
];
constructor(
isRest,
name,
pattern,
span = null,
) {
super(span);
this.isRest = isRest;
this.name = name;
this.pattern = pattern;
this.span = span
}
}
class BoltRecordPattern extends SyntaxBase {
static kind = 68;
static parents = [
"BoltPattern",
"BoltSyntax",
"Syntax"
];
constructor(
name,
fields,
span = null,
) {
super(span);
this.name = name;
this.fields = fields;
this.span = span
}
}
class BoltQuoteExpression extends SyntaxBase {
static kind = 70;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
tokens,
span = null,
) {
super(span);
this.tokens = tokens;
this.span = span
}
}
class BoltTupleExpression extends SyntaxBase {
static kind = 71;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
elements,
span = null,
) {
super(span);
this.elements = elements;
this.span = span
}
}
class BoltReferenceExpression extends SyntaxBase {
static kind = 72;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
name,
span = null,
) {
super(span);
this.name = name;
this.span = span
}
}
class BoltMemberExpression extends SyntaxBase {
static kind = 73;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
expression,
path,
span = null,
) {
super(span);
this.expression = expression;
this.path = path;
this.span = span
}
}
class BoltFunctionExpression extends SyntaxBase {
static kind = 74;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
params,
returnType,
body,
span = null,
) {
super(span);
this.params = params;
this.returnType = returnType;
this.body = body;
this.span = span
}
}
class BoltCallExpression extends SyntaxBase {
static kind = 75;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
operator,
operands,
span = null,
) {
super(span);
this.operator = operator;
this.operands = operands;
this.span = span
}
}
class BoltYieldExpression extends SyntaxBase {
static kind = 76;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class BoltMatchArm extends SyntaxBase {
static kind = 77;
static parents = [
"BoltSyntax",
"Syntax"
];
constructor(
pattern,
body,
span = null,
) {
super(span);
this.pattern = pattern;
this.body = body;
this.span = span
}
}
class BoltMatchExpression extends SyntaxBase {
static kind = 78;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
value,
arms,
span = null,
) {
super(span);
this.value = value;
this.arms = arms;
this.span = span
}
}
class BoltCase extends SyntaxBase {
static kind = 79;
static parents = [
"BoltSyntax",
"Syntax"
];
constructor(
test,
result,
span = null,
) {
super(span);
this.test = test;
this.result = result;
this.span = span
}
}
class BoltCaseExpression extends SyntaxBase {
static kind = 80;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
cases,
span = null,
) {
super(span);
this.cases = cases;
this.span = span
}
}
class BoltBlockExpression extends SyntaxBase {
static kind = 81;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
elements,
span = null,
) {
super(span);
this.elements = elements;
this.span = span
}
}
class BoltConstantExpression extends SyntaxBase {
static kind = 82;
static parents = [
"BoltExpression",
"BoltSyntax",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class BoltReturnStatement extends SyntaxBase {
static kind = 84;
static parents = [
"ReturnStatement",
"BoltStatement",
"BoltSyntax",
"BoltFunctionBodyElement",
"BoltSourceElement",
"FunctionBodyElement",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class BoltConditionalCase extends SyntaxBase {
static kind = 85;
static parents = [
"BoltSyntax",
"Syntax"
];
constructor(
test,
body,
span = null,
) {
super(span);
this.test = test;
this.body = body;
this.span = span
}
}
class BoltConditionalStatement extends SyntaxBase {
static kind = 86;
static parents = [
"BoltStatement",
"BoltSyntax",
"BoltFunctionBodyElement",
"BoltSourceElement",
"FunctionBodyElement",
"Syntax"
];
constructor(
cases,
span = null,
) {
super(span);
this.cases = cases;
this.span = span
}
}
class BoltResumeStatement extends SyntaxBase {
static kind = 87;
static parents = [
"BoltStatement",
"BoltSyntax",
"BoltFunctionBodyElement",
"BoltSourceElement",
"FunctionBodyElement",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class BoltExpressionStatement extends SyntaxBase {
static kind = 88;
static parents = [
"BoltStatement",
"BoltSyntax",
"BoltFunctionBodyElement",
"BoltSourceElement",
"FunctionBodyElement",
"Syntax"
];
constructor(
expression,
span = null,
) {
super(span);
this.expression = expression;
this.span = span
}
}
class BoltParameter extends SyntaxBase {
static kind = 89;
static parents = [
"BoltSyntax",
"Syntax"
];
constructor(
index,
bindings,
typeExpr,
defaultValue,
span = null,
) {
super(span);
this.index = index;
this.bindings = bindings;
this.typeExpr = typeExpr;
this.defaultValue = defaultValue;
this.span = span
}
}
class BoltModule extends SyntaxBase {
static kind = 93;
static parents = [
"BoltSyntax",
"BoltSourceElement",
"Syntax"
];
constructor(
modifiers,
name,
elements,
span = null,
) {
super(span);
this.modifiers = modifiers;
this.name = name;
this.elements = elements;
this.span = span
}
}
class BoltFunctionDeclaration extends SyntaxBase {
static kind = 96;
static parents = [
"BoltFunctionBodyElement",
"BoltDeclaration",
"BoltDeclarationLike",
"BoltTraitOrImplElement",
"BoltSyntax",
"BoltSourceElement",
"FunctionBodyElement",
"Syntax"
];
constructor(
modifiers,
target,
name,
params,
returnType,
typeParams,
body,
span = null,
) {
super(span);
this.modifiers = modifiers;
this.target = target;
this.name = name;
this.params = params;
this.returnType = returnType;
this.typeParams = typeParams;
this.body = body;
this.span = span
}
}
class BoltVariableDeclaration extends SyntaxBase {
static kind = 97;
static parents = [
"BoltFunctionBodyElement",
"BoltDeclaration",
"BoltDeclarationLike",
"BoltSyntax",
"BoltSourceElement",
"FunctionBodyElement",
"Syntax"
];
constructor(
modifiers,
bindings,
typeExpr,
value,
span = null,
) {
super(span);
this.modifiers = modifiers;
this.bindings = bindings;
this.typeExpr = typeExpr;
this.value = value;
this.span = span
}
}
class BoltPlainImportSymbol extends SyntaxBase {
static kind = 99;
static parents = [
"BoltImportSymbol",
"BoltSyntax",
"Syntax"
];
constructor(
remote,
local,
span = null,
) {
super(span);
this.remote = remote;
this.local = local;
this.span = span
}
}
class BoltImportDirective extends SyntaxBase {
static kind = 100;
static parents = [
"BoltSourceElement",
"Syntax"
];
constructor(
modifiers,
file,
symbols,
span = null,
) {
super(span);
this.modifiers = modifiers;
this.file = file;
this.symbols = symbols;
this.span = span
}
}
class BoltExportSymbol extends SyntaxBase {
static kind = 101;
static parents = [
"BoltSyntax",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class BoltPlainExportSymbol extends SyntaxBase {
static kind = 102;
static parents = [
"Syntax"
];
constructor(
local,
remote,
span = null,
) {
super(span);
this.local = local;
this.remote = remote;
this.span = span
}
}
class BoltExportDirective extends SyntaxBase {
static kind = 103;
static parents = [
"BoltSourceElement",
"Syntax"
];
constructor(
file,
symbols,
span = null,
) {
super(span);
this.file = file;
this.symbols = symbols;
this.span = span
}
}
class BoltTraitDeclaration extends SyntaxBase {
static kind = 105;
static parents = [
"BoltDeclarationLike",
"BoltTypeDeclaration",
"BoltSyntax",
"BoltSourceElement",
"Syntax"
];
constructor(
modifiers,
typeParams,
name,
typeBoundExpr,
elements,
span = null,
) {
super(span);
this.modifiers = modifiers;
this.typeParams = typeParams;
this.name = name;
this.typeBoundExpr = typeBoundExpr;
this.elements = elements;
this.span = span
}
}
class BoltImplDeclaration extends SyntaxBase {
static kind = 106;
static parents = [
"BoltTypeDeclaration",
"BoltDeclarationLike",
"BoltSyntax",
"BoltSourceElement",
"Syntax"
];
constructor(
modifiers,
typeParams,
name,
traitTypeExpr,
elements,
span = null,
) {
super(span);
this.modifiers = modifiers;
this.typeParams = typeParams;
this.name = name;
this.traitTypeExpr = traitTypeExpr;
this.elements = elements;
this.span = span
}
}
class BoltTypeAliasDeclaration extends SyntaxBase {
static kind = 107;
static parents = [
"BoltDeclarationLike",
"BoltTypeDeclaration",
"BoltTraitOrImplElement",
"BoltSyntax",
"BoltSourceElement",
"Syntax"
];
constructor(
modifiers,
name,
typeParams,
typeExpr,
span = null,
) {
super(span);
this.modifiers = modifiers;
this.name = name;
this.typeParams = typeParams;
this.typeExpr = typeExpr;
this.span = span
}
}
class BoltRecordField extends SyntaxBase {
static kind = 109;
static parents = [
"BoltRecordMember",
"BoltSyntax",
"Syntax"
];
constructor(
name,
typeExpr,
span = null,
) {
super(span);
this.name = name;
this.typeExpr = typeExpr;
this.span = span
}
}
class BoltRecordDeclaration extends SyntaxBase {
static kind = 110;
static parents = [
"BoltDeclaration",
"BoltTypeDeclaration",
"BoltDeclarationLike",
"BoltSyntax",
"BoltSourceElement",
"BoltSyntax",
"BoltSourceElement",
"Syntax"
];
constructor(
modifiers,
name,
typeParms,
members,
span = null,
) {
super(span);
this.modifiers = modifiers;
this.name = name;
this.typeParms = typeParms;
this.members = members;
this.span = span
}
}
class BoltMacroCall extends SyntaxBase {
static kind = 112;
static parents = [
"BoltRecordMember",
"BoltSourceElement",
"BoltTraitOrImplElement",
"BoltFunctionBodyElement",
"FunctionBodyElement",
"BoltSyntax",
"Syntax"
];
constructor(
name,
text,
span = null,
) {
super(span);
this.name = name;
this.text = text;
this.span = span
}
}
class JSIdentifier extends SyntaxBase {
static kind = 115;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
text,
span = null,
) {
super(span);
this.text = text;
this.span = span
}
}
class JSString extends SyntaxBase {
static kind = 116;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class JSInteger extends SyntaxBase {
static kind = 117;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class JSFromKeyword extends SyntaxBase {
static kind = 118;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSReturnKeyword extends SyntaxBase {
static kind = 119;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSTryKeyword extends SyntaxBase {
static kind = 120;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSFinallyKeyword extends SyntaxBase {
static kind = 121;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSCatchKeyword extends SyntaxBase {
static kind = 122;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSImportKeyword extends SyntaxBase {
static kind = 123;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSAsKeyword extends SyntaxBase {
static kind = 124;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSConstKeyword extends SyntaxBase {
static kind = 125;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSLetKeyword extends SyntaxBase {
static kind = 126;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSExportKeyword extends SyntaxBase {
static kind = 127;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSFunctionKeyword extends SyntaxBase {
static kind = 128;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSWhileKeyword extends SyntaxBase {
static kind = 129;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSForKeyword extends SyntaxBase {
static kind = 130;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSOperator extends SyntaxBase {
static kind = 132;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
text,
span = null,
) {
super(span);
this.text = text;
this.span = span
}
}
class JSCloseBrace extends SyntaxBase {
static kind = 133;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSCloseBracket extends SyntaxBase {
static kind = 134;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSCloseParen extends SyntaxBase {
static kind = 135;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSOpenBrace extends SyntaxBase {
static kind = 136;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSOpenBracket extends SyntaxBase {
static kind = 137;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSOpenParen extends SyntaxBase {
static kind = 138;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSSemi extends SyntaxBase {
static kind = 139;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSComma extends SyntaxBase {
static kind = 140;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSDot extends SyntaxBase {
static kind = 141;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSDotDotDot extends SyntaxBase {
static kind = 142;
static parents = [
"JSToken",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSMulOp extends SyntaxBase {
static kind = 143;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSAddOp extends SyntaxBase {
static kind = 144;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSDivOp extends SyntaxBase {
static kind = 145;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSSubOp extends SyntaxBase {
static kind = 146;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSLtOp extends SyntaxBase {
static kind = 147;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSGtOp extends SyntaxBase {
static kind = 148;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSBOrOp extends SyntaxBase {
static kind = 149;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSBXorOp extends SyntaxBase {
static kind = 150;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSBAndOp extends SyntaxBase {
static kind = 151;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSBNotOp extends SyntaxBase {
static kind = 152;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSNotOp extends SyntaxBase {
static kind = 153;
static parents = [
"JSToken",
"JSOperatorLike",
"JSSyntax",
"Token",
"Syntax"
];
constructor(
span = null,
) {
super(span);
this.span = span
}
}
class JSBindPattern extends SyntaxBase {
static kind = 155;
static parents = [
"JSPattern",
"JSSyntax",
"Syntax"
];
constructor(
name,
span = null,
) {
super(span);
this.name = name;
this.span = span
}
}
class JSConstantExpression extends SyntaxBase {
static kind = 157;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class JSMemberExpression extends SyntaxBase {
static kind = 158;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
value,
property,
span = null,
) {
super(span);
this.value = value;
this.property = property;
this.span = span
}
}
class JSCallExpression extends SyntaxBase {
static kind = 159;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
operator,
operands,
span = null,
) {
super(span);
this.operator = operator;
this.operands = operands;
this.span = span
}
}
class JSBinaryExpression extends SyntaxBase {
static kind = 160;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
left,
operator,
right,
span = null,
) {
super(span);
this.left = left;
this.operator = operator;
this.right = right;
this.span = span
}
}
class JSUnaryExpression extends SyntaxBase {
static kind = 161;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
operator,
operand,
span = null,
) {
super(span);
this.operator = operator;
this.operand = operand;
this.span = span
}
}
class JSNewExpression extends SyntaxBase {
static kind = 162;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
target,
args,
span = null,
) {
super(span);
this.target = target;
this.args = args;
this.span = span
}
}
class JSSequenceExpression extends SyntaxBase {
static kind = 163;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
expressions,
span = null,
) {
super(span);
this.expressions = expressions;
this.span = span
}
}
class JSConditionalExpression extends SyntaxBase {
static kind = 164;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
test,
consequent,
alternate,
span = null,
) {
super(span);
this.test = test;
this.consequent = consequent;
this.alternate = alternate;
this.span = span
}
}
class JSLiteralExpression extends SyntaxBase {
static kind = 165;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class JSReferenceExpression extends SyntaxBase {
static kind = 166;
static parents = [
"JSExpression",
"JSSyntax",
"Syntax"
];
constructor(
name,
span = null,
) {
super(span);
this.name = name;
this.span = span
}
}
class JSCatchBlock extends SyntaxBase {
static kind = 170;
static parents = [
"JSSyntax",
"Syntax"
];
constructor(
bindings,
elements,
span = null,
) {
super(span);
this.bindings = bindings;
this.elements = elements;
this.span = span
}
}
class JSTryCatchStatement extends SyntaxBase {
static kind = 171;
static parents = [
"JSSyntax",
"Syntax"
];
constructor(
tryBlock,
catchBlock,
finalBlock,
span = null,
) {
super(span);
this.tryBlock = tryBlock;
this.catchBlock = catchBlock;
this.finalBlock = finalBlock;
this.span = span
}
}
class JSExpressionStatement extends SyntaxBase {
static kind = 172;
static parents = [
"JSStatement",
"JSSyntax",
"JSSourceElement",
"JSFunctionBodyElement",
"FunctionBodyElement",
"Syntax"
];
constructor(
expression,
span = null,
) {
super(span);
this.expression = expression;
this.span = span
}
}
class JSConditionalCase extends SyntaxBase {
static kind = 173;
static parents = [
"JSSyntax",
"Syntax"
];
constructor(
test,
body,
span = null,
) {
super(span);
this.test = test;
this.body = body;
this.span = span
}
}
class JSConditionalStatement extends SyntaxBase {
static kind = 174;
static parents = [
"JSStatement",
"JSSyntax",
"JSSourceElement",
"JSFunctionBodyElement",
"FunctionBodyElement",
"Syntax"
];
constructor(
cases,
span = null,
) {
super(span);
this.cases = cases;
this.span = span
}
}
class JSReturnStatement extends SyntaxBase {
static kind = 175;
static parents = [
"ReturnStatement",
"JSStatement",
"JSSyntax",
"JSSourceElement",
"JSFunctionBodyElement",
"FunctionBodyElement",
"Syntax"
];
constructor(
value,
span = null,
) {
super(span);
this.value = value;
this.span = span
}
}
class JSParameter extends SyntaxBase {
static kind = 176;
static parents = [
"JSSyntax",
"Syntax"
];
constructor(
index,
bindings,
defaultValue,
span = null,
) {
super(span);
this.index = index;
this.bindings = bindings;
this.defaultValue = defaultValue;
this.span = span
}
}
class JSImportStarBinding extends SyntaxBase {
static kind = 180;
static parents = [
"JSImportBinding",
"JSSyntax",
"Syntax"
];
constructor(
local,
span = null,
) {
super(span);
this.local = local;
this.span = span
}
}
class JSImportAsBinding extends SyntaxBase {
static kind = 181;
static parents = [
"JSImportBinding",
"JSSyntax",
"Syntax"
];
constructor(
remote,
local,
span = null,
) {
super(span);
this.remote = remote;
this.local = local;
this.span = span
}
}
class JSImportDeclaration extends SyntaxBase {
static kind = 182;
static parents = [
"JSDeclaration",
"JSSyntax",
"JSSourceElement",
"Syntax"
];
constructor(
bindings,
filename,
span = null,
) {
super(span);
this.bindings = bindings;
this.filename = filename;
this.span = span
}
}
class JSFunctionDeclaration extends SyntaxBase {
static kind = 183;
static parents = [
"JSDeclaration",
"JSFunctionBodyElement",
"FunctionBodyElement",
"JSSyntax",
"JSSourceElement",
"Syntax"
];
constructor(
modifiers,
name,
params,
body,
span = null,
) {
super(span);
this.modifiers = modifiers;
this.name = name;
this.params = params;
this.body = body;
this.span = span
}
}
class JSArrowFunctionDeclaration extends SyntaxBase {
static kind = 184;
static parents = [
"JSDeclaration",
"JSFunctionBodyElement",
"FunctionBodyElement",
"JSSyntax",
"JSSourceElement",
"Syntax"
];
constructor(
name,
params,
body,
span = null,
) {
super(span);
this.name = name;
this.params = params;
this.body = body;
this.span = span
}
}
class JSLetDeclaration extends SyntaxBase {
static kind = 185;
static parents = [
"JSDeclaration",
"JSFunctionBodyElement",
"FunctionBodyElement",
"JSSyntax",
"JSSourceElement",
"Syntax"
];
constructor(
bindings,
value,
span = null,
) {
super(span);
this.bindings = bindings;
this.value = value;
this.span = span
}
}
class JSSourceFile extends SyntaxBase {
static kind = 186;
static parents = [
"JSSyntax",
"SourceFile",
"Syntax"
];
constructor(
elements,
span = null,
) {
super(span);
this.elements = elements;
this.span = span
}
}
const NODE_CLASSES = {
EndOfFile,
BoltStringLiteral,
BoltIntegerLiteral,
BoltIdentifier,
BoltOperator,
BoltAssignment,
BoltComma,
BoltSemi,
BoltColon,
BoltColonColon,
BoltDot,
BoltDotDot,
BoltRArrow,
BoltRArrowAlt,
BoltLArrow,
BoltEqSign,
BoltGtSign,
BoltExMark,
BoltLtSign,
BoltVBar,
BoltWhereKeyword,
BoltQuoteKeyword,
BoltFnKeyword,
BoltForeignKeyword,
BoltForKeyword,
BoltLetKeyword,
BoltReturnKeyword,
BoltLoopKeyword,
BoltYieldKeyword,
BoltMatchKeyword,
BoltImportKeyword,
BoltExportKeyword,
BoltPubKeyword,
BoltModKeyword,
BoltMutKeyword,
BoltEnumKeyword,
BoltStructKeyword,
BoltTypeKeyword,
BoltTraitKeyword,
BoltImplKeyword,
BoltParenthesized,
BoltBraced,
BoltBracketed,
BoltSourceFile,
BoltQualName,
BoltTypeOfExpression,
BoltReferenceTypeExpression,
BoltFunctionTypeExpression,
BoltLiftedTypeExpression,
BoltTypeParameter,
BoltBindPattern,
BoltTypePattern,
BoltExpressionPattern,
BoltTuplePatternElement,
BoltTuplePattern,
BoltRecordFieldPattern,
BoltRecordPattern,
BoltQuoteExpression,
BoltTupleExpression,
BoltReferenceExpression,
BoltMemberExpression,
BoltFunctionExpression,
BoltCallExpression,
BoltYieldExpression,
BoltMatchArm,
BoltMatchExpression,
BoltCase,
BoltCaseExpression,
BoltBlockExpression,
BoltConstantExpression,
BoltReturnStatement,
BoltConditionalCase,
BoltConditionalStatement,
BoltResumeStatement,
BoltExpressionStatement,
BoltParameter,
BoltModule,
BoltFunctionDeclaration,
BoltVariableDeclaration,
BoltPlainImportSymbol,
BoltImportDirective,
BoltExportSymbol,
BoltPlainExportSymbol,
BoltExportDirective,
BoltTraitDeclaration,
BoltImplDeclaration,
BoltTypeAliasDeclaration,
BoltRecordField,
BoltRecordDeclaration,
BoltMacroCall,
JSIdentifier,
JSString,
JSInteger,
JSFromKeyword,
JSReturnKeyword,
JSTryKeyword,
JSFinallyKeyword,
JSCatchKeyword,
JSImportKeyword,
JSAsKeyword,
JSConstKeyword,
JSLetKeyword,
JSExportKeyword,
JSFunctionKeyword,
JSWhileKeyword,
JSForKeyword,
JSOperator,
JSCloseBrace,
JSCloseBracket,
JSCloseParen,
JSOpenBrace,
JSOpenBracket,
JSOpenParen,
JSSemi,
JSComma,
JSDot,
JSDotDotDot,
JSMulOp,
JSAddOp,
JSDivOp,
JSSubOp,
JSLtOp,
JSGtOp,
JSBOrOp,
JSBXorOp,
JSBAndOp,
JSBNotOp,
JSNotOp,
JSBindPattern,
JSConstantExpression,
JSMemberExpression,
JSCallExpression,
JSBinaryExpression,
JSUnaryExpression,
JSNewExpression,
JSSequenceExpression,
JSConditionalExpression,
JSLiteralExpression,
JSReferenceExpression,
JSCatchBlock,
JSTryCatchStatement,
JSExpressionStatement,
JSConditionalCase,
JSConditionalStatement,
JSReturnStatement,
JSParameter,
JSImportStarBinding,
JSImportAsBinding,
JSImportDeclaration,
JSFunctionDeclaration,
JSArrowFunctionDeclaration,
JSLetDeclaration,
JSSourceFile,
}
export function kindToString (kind) {
switch (kind) {
case 0: return 'EndOfFile';
case 7: return 'BoltStringLiteral';
case 8: return 'BoltIntegerLiteral';
case 10: return 'BoltIdentifier';
case 12: return 'BoltOperator';
case 13: return 'BoltAssignment';
case 14: return 'BoltComma';
case 15: return 'BoltSemi';
case 16: return 'BoltColon';
case 17: return 'BoltColonColon';
case 18: return 'BoltDot';
case 19: return 'BoltDotDot';
case 20: return 'BoltRArrow';
case 21: return 'BoltRArrowAlt';
case 22: return 'BoltLArrow';
case 23: return 'BoltEqSign';
case 24: return 'BoltGtSign';
case 25: return 'BoltExMark';
case 26: return 'BoltLtSign';
case 27: return 'BoltVBar';
case 29: return 'BoltWhereKeyword';
case 30: return 'BoltQuoteKeyword';
case 31: return 'BoltFnKeyword';
case 32: return 'BoltForeignKeyword';
case 33: return 'BoltForKeyword';
case 34: return 'BoltLetKeyword';
case 35: return 'BoltReturnKeyword';
case 36: return 'BoltLoopKeyword';
case 37: return 'BoltYieldKeyword';
case 38: return 'BoltMatchKeyword';
case 39: return 'BoltImportKeyword';
case 40: return 'BoltExportKeyword';
case 41: return 'BoltPubKeyword';
case 42: return 'BoltModKeyword';
case 43: return 'BoltMutKeyword';
case 44: return 'BoltEnumKeyword';
case 45: return 'BoltStructKeyword';
case 46: return 'BoltTypeKeyword';
case 47: return 'BoltTraitKeyword';
case 48: return 'BoltImplKeyword';
case 50: return 'BoltParenthesized';
case 51: return 'BoltBraced';
case 52: return 'BoltBracketed';
case 53: return 'BoltSourceFile';
case 54: return 'BoltQualName';
case 56: return 'BoltTypeOfExpression';
case 57: return 'BoltReferenceTypeExpression';
case 58: return 'BoltFunctionTypeExpression';
case 59: return 'BoltLiftedTypeExpression';
case 60: return 'BoltTypeParameter';
case 62: return 'BoltBindPattern';
case 63: return 'BoltTypePattern';
case 64: return 'BoltExpressionPattern';
case 65: return 'BoltTuplePatternElement';
case 66: return 'BoltTuplePattern';
case 67: return 'BoltRecordFieldPattern';
case 68: return 'BoltRecordPattern';
case 70: return 'BoltQuoteExpression';
case 71: return 'BoltTupleExpression';
case 72: return 'BoltReferenceExpression';
case 73: return 'BoltMemberExpression';
case 74: return 'BoltFunctionExpression';
case 75: return 'BoltCallExpression';
case 76: return 'BoltYieldExpression';
case 77: return 'BoltMatchArm';
case 78: return 'BoltMatchExpression';
case 79: return 'BoltCase';
case 80: return 'BoltCaseExpression';
case 81: return 'BoltBlockExpression';
case 82: return 'BoltConstantExpression';
case 84: return 'BoltReturnStatement';
case 85: return 'BoltConditionalCase';
case 86: return 'BoltConditionalStatement';
case 87: return 'BoltResumeStatement';
case 88: return 'BoltExpressionStatement';
case 89: return 'BoltParameter';
case 93: return 'BoltModule';
case 96: return 'BoltFunctionDeclaration';
case 97: return 'BoltVariableDeclaration';
case 99: return 'BoltPlainImportSymbol';
case 100: return 'BoltImportDirective';
case 101: return 'BoltExportSymbol';
case 102: return 'BoltPlainExportSymbol';
case 103: return 'BoltExportDirective';
case 105: return 'BoltTraitDeclaration';
case 106: return 'BoltImplDeclaration';
case 107: return 'BoltTypeAliasDeclaration';
case 109: return 'BoltRecordField';
case 110: return 'BoltRecordDeclaration';
case 112: return 'BoltMacroCall';
case 115: return 'JSIdentifier';
case 116: return 'JSString';
case 117: return 'JSInteger';
case 118: return 'JSFromKeyword';
case 119: return 'JSReturnKeyword';
case 120: return 'JSTryKeyword';
case 121: return 'JSFinallyKeyword';
case 122: return 'JSCatchKeyword';
case 123: return 'JSImportKeyword';
case 124: return 'JSAsKeyword';
case 125: return 'JSConstKeyword';
case 126: return 'JSLetKeyword';
case 127: return 'JSExportKeyword';
case 128: return 'JSFunctionKeyword';
case 129: return 'JSWhileKeyword';
case 130: return 'JSForKeyword';
case 132: return 'JSOperator';
case 133: return 'JSCloseBrace';
case 134: return 'JSCloseBracket';
case 135: return 'JSCloseParen';
case 136: return 'JSOpenBrace';
case 137: return 'JSOpenBracket';
case 138: return 'JSOpenParen';
case 139: return 'JSSemi';
case 140: return 'JSComma';
case 141: return 'JSDot';
case 142: return 'JSDotDotDot';
case 143: return 'JSMulOp';
case 144: return 'JSAddOp';
case 145: return 'JSDivOp';
case 146: return 'JSSubOp';
case 147: return 'JSLtOp';
case 148: return 'JSGtOp';
case 149: return 'JSBOrOp';
case 150: return 'JSBXorOp';
case 151: return 'JSBAndOp';
case 152: return 'JSBNotOp';
case 153: return 'JSNotOp';
case 155: return 'JSBindPattern';
case 157: return 'JSConstantExpression';
case 158: return 'JSMemberExpression';
case 159: return 'JSCallExpression';
case 160: return 'JSBinaryExpression';
case 161: return 'JSUnaryExpression';
case 162: return 'JSNewExpression';
case 163: return 'JSSequenceExpression';
case 164: return 'JSConditionalExpression';
case 165: return 'JSLiteralExpression';
case 166: return 'JSReferenceExpression';
case 170: return 'JSCatchBlock';
case 171: return 'JSTryCatchStatement';
case 172: return 'JSExpressionStatement';
case 173: return 'JSConditionalCase';
case 174: return 'JSConditionalStatement';
case 175: return 'JSReturnStatement';
case 176: return 'JSParameter';
case 180: return 'JSImportStarBinding';
case 181: return 'JSImportAsBinding';
case 182: return 'JSImportDeclaration';
case 183: return 'JSFunctionDeclaration';
case 184: return 'JSArrowFunctionDeclaration';
case 185: return 'JSLetDeclaration';
case 186: return 'JSSourceFile';
}
}
export function isEndOfFile(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 0;
}
export function isToken(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 0 || value.kind === 115 || value.kind === 116 || value.kind === 117 || value.kind === 118 || value.kind === 119 || value.kind === 120 || value.kind === 121 || value.kind === 122 || value.kind === 123 || value.kind === 124 || value.kind === 125 || value.kind === 126 || value.kind === 127 || value.kind === 128 || value.kind === 129 || value.kind === 130 || value.kind === 132 || value.kind === 133 || value.kind === 134 || value.kind === 135 || value.kind === 136 || value.kind === 137 || value.kind === 138 || value.kind === 139 || value.kind === 140 || value.kind === 141 || value.kind === 142 || value.kind === 143 || value.kind === 144 || value.kind === 145 || value.kind === 146 || value.kind === 147 || value.kind === 148 || value.kind === 149 || value.kind === 150 || value.kind === 151 || value.kind === 152 || value.kind === 153 || value.kind === 0 || value.kind === 7 || value.kind === 8 || value.kind === 13 || value.kind === 14 || value.kind === 15 || value.kind === 16 || value.kind === 17 || value.kind === 18 || value.kind === 19 || value.kind === 20 || value.kind === 21 || value.kind === 22 || value.kind === 23 || value.kind === 24 || value.kind === 25 || value.kind === 26 || value.kind === 27 || value.kind === 29 || value.kind === 30 || value.kind === 31 || value.kind === 32 || value.kind === 33 || value.kind === 34 || value.kind === 35 || value.kind === 36 || value.kind === 37 || value.kind === 38 || value.kind === 39 || value.kind === 40 || value.kind === 41 || value.kind === 42 || value.kind === 43 || value.kind === 44 || value.kind === 45 || value.kind === 46 || value.kind === 47 || value.kind === 48 || value.kind === 50 || value.kind === 51 || value.kind === 52 || value.kind === 10 || value.kind === 12 || value.kind === 24 || value.kind === 25 || value.kind === 26 || value.kind === 27
}
export function isSourceFile(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 53 || value.kind === 186
}
export function isFunctionBodyElement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 183 || value.kind === 184 || value.kind === 185 || value.kind === 172 || value.kind === 174 || value.kind === 175 || value.kind === 96 || value.kind === 97 || value.kind === 112 || value.kind === 84 || value.kind === 86 || value.kind === 87 || value.kind === 88
}
export function isReturnStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 84 || value.kind === 175
}
export function isBoltSyntax(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 53 || value.kind === 54 || value.kind === 60 || value.kind === 65 || value.kind === 67 || value.kind === 77 || value.kind === 79 || value.kind === 85 || value.kind === 89 || value.kind === 93 || value.kind === 101 || value.kind === 109 || value.kind === 112 || value.kind === 99 || value.kind === 105 || value.kind === 106 || value.kind === 107 || value.kind === 110 || value.kind === 96 || value.kind === 97 || value.kind === 110 || value.kind === 84 || value.kind === 86 || value.kind === 87 || value.kind === 88 || value.kind === 70 || value.kind === 71 || value.kind === 72 || value.kind === 73 || value.kind === 74 || value.kind === 75 || value.kind === 76 || value.kind === 78 || value.kind === 80 || value.kind === 81 || value.kind === 82 || value.kind === 62 || value.kind === 63 || value.kind === 64 || value.kind === 66 || value.kind === 68 || value.kind === 56 || value.kind === 57 || value.kind === 58 || value.kind === 59 || value.kind === 0 || value.kind === 7 || value.kind === 8 || value.kind === 13 || value.kind === 14 || value.kind === 15 || value.kind === 16 || value.kind === 17 || value.kind === 18 || value.kind === 19 || value.kind === 20 || value.kind === 21 || value.kind === 22 || value.kind === 23 || value.kind === 24 || value.kind === 25 || value.kind === 26 || value.kind === 27 || value.kind === 29 || value.kind === 30 || value.kind === 31 || value.kind === 32 || value.kind === 33 || value.kind === 34 || value.kind === 35 || value.kind === 36 || value.kind === 37 || value.kind === 38 || value.kind === 39 || value.kind === 40 || value.kind === 41 || value.kind === 42 || value.kind === 43 || value.kind === 44 || value.kind === 45 || value.kind === 46 || value.kind === 47 || value.kind === 48 || value.kind === 50 || value.kind === 51 || value.kind === 52 || value.kind === 10 || value.kind === 12 || value.kind === 24 || value.kind === 25 || value.kind === 26 || value.kind === 27
}
export function isBoltToken(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 0 || value.kind === 7 || value.kind === 8 || value.kind === 13 || value.kind === 14 || value.kind === 15 || value.kind === 16 || value.kind === 17 || value.kind === 18 || value.kind === 19 || value.kind === 20 || value.kind === 21 || value.kind === 22 || value.kind === 23 || value.kind === 24 || value.kind === 25 || value.kind === 26 || value.kind === 27 || value.kind === 29 || value.kind === 30 || value.kind === 31 || value.kind === 32 || value.kind === 33 || value.kind === 34 || value.kind === 35 || value.kind === 36 || value.kind === 37 || value.kind === 38 || value.kind === 39 || value.kind === 40 || value.kind === 41 || value.kind === 42 || value.kind === 43 || value.kind === 44 || value.kind === 45 || value.kind === 46 || value.kind === 47 || value.kind === 48 || value.kind === 50 || value.kind === 51 || value.kind === 52 || value.kind === 10 || value.kind === 12 || value.kind === 24 || value.kind === 25 || value.kind === 26 || value.kind === 27
}
export function isBoltStringLiteral(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 7;
}
export function isBoltIntegerLiteral(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 8;
}
export function isBoltSymbol(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 10 || value.kind === 12 || value.kind === 24 || value.kind === 25 || value.kind === 26 || value.kind === 27
}
export function isBoltIdentifier(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 10;
}
export function isBoltOperatorLike(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 24 || value.kind === 25 || value.kind === 26 || value.kind === 27
}
export function isBoltOperator(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 12;
}
export function isBoltAssignment(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 13;
}
export function isBoltComma(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 14;
}
export function isBoltSemi(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 15;
}
export function isBoltColon(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 16;
}
export function isBoltColonColon(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 17;
}
export function isBoltDot(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 18;
}
export function isBoltDotDot(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 19;
}
export function isBoltRArrow(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 20;
}
export function isBoltRArrowAlt(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 21;
}
export function isBoltLArrow(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 22;
}
export function isBoltEqSign(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 23;
}
export function isBoltGtSign(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 24;
}
export function isBoltExMark(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 25;
}
export function isBoltLtSign(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 26;
}
export function isBoltVBar(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 27;
}
export function isBoltKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 29 || value.kind === 30 || value.kind === 31 || value.kind === 32 || value.kind === 33 || value.kind === 34 || value.kind === 35 || value.kind === 36 || value.kind === 37 || value.kind === 38 || value.kind === 39 || value.kind === 40 || value.kind === 41 || value.kind === 42 || value.kind === 43 || value.kind === 44 || value.kind === 45 || value.kind === 46 || value.kind === 47 || value.kind === 48
}
export function isBoltWhereKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 29;
}
export function isBoltQuoteKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 30;
}
export function isBoltFnKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 31;
}
export function isBoltForeignKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 32;
}
export function isBoltForKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 33;
}
export function isBoltLetKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 34;
}
export function isBoltReturnKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 35;
}
export function isBoltLoopKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 36;
}
export function isBoltYieldKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 37;
}
export function isBoltMatchKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 38;
}
export function isBoltImportKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 39;
}
export function isBoltExportKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 40;
}
export function isBoltPubKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 41;
}
export function isBoltModKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 42;
}
export function isBoltMutKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 43;
}
export function isBoltEnumKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 44;
}
export function isBoltStructKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 45;
}
export function isBoltTypeKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 46;
}
export function isBoltTraitKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 47;
}
export function isBoltImplKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 48;
}
export function isBoltPunctuated(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 50 || value.kind === 51 || value.kind === 52
}
export function isBoltParenthesized(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 50;
}
export function isBoltBraced(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 51;
}
export function isBoltBracketed(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 52;
}
export function isBoltSourceFile(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 53;
}
export function isBoltQualName(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 54;
}
export function isBoltTypeExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 56 || value.kind === 57 || value.kind === 58 || value.kind === 59
}
export function isBoltTypeOfExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 56;
}
export function isBoltReferenceTypeExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 57;
}
export function isBoltFunctionTypeExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 58;
}
export function isBoltLiftedTypeExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 59;
}
export function isBoltTypeParameter(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 60;
}
export function isBoltPattern(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 62 || value.kind === 63 || value.kind === 64 || value.kind === 66 || value.kind === 68
}
export function isBoltBindPattern(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 62;
}
export function isBoltTypePattern(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 63;
}
export function isBoltExpressionPattern(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 64;
}
export function isBoltTuplePatternElement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 65;
}
export function isBoltTuplePattern(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 66;
}
export function isBoltRecordFieldPattern(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 67;
}
export function isBoltRecordPattern(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 68;
}
export function isBoltExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 70 || value.kind === 71 || value.kind === 72 || value.kind === 73 || value.kind === 74 || value.kind === 75 || value.kind === 76 || value.kind === 78 || value.kind === 80 || value.kind === 81 || value.kind === 82
}
export function isBoltQuoteExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 70;
}
export function isBoltTupleExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 71;
}
export function isBoltReferenceExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 72;
}
export function isBoltMemberExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 73;
}
export function isBoltFunctionExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 74;
}
export function isBoltCallExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 75;
}
export function isBoltYieldExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 76;
}
export function isBoltMatchArm(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 77;
}
export function isBoltMatchExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 78;
}
export function isBoltCase(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 79;
}
export function isBoltCaseExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 80;
}
export function isBoltBlockExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 81;
}
export function isBoltConstantExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 82;
}
export function isBoltStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 84 || value.kind === 86 || value.kind === 87 || value.kind === 88
}
export function isBoltReturnStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 84;
}
export function isBoltConditionalCase(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 85;
}
export function isBoltConditionalStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 86;
}
export function isBoltResumeStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 87;
}
export function isBoltExpressionStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 88;
}
export function isBoltParameter(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 89;
}
export function isBoltDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 96 || value.kind === 97 || value.kind === 110
}
export function isBoltTypeDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 105 || value.kind === 106 || value.kind === 107 || value.kind === 110
}
export function isBoltModule(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 93;
}
export function isBoltDeclarationLike(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 96 || value.kind === 97 || value.kind === 105 || value.kind === 106 || value.kind === 107 || value.kind === 110
}
export function isBoltFunctionBodyElement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 96 || value.kind === 97 || value.kind === 112 || value.kind === 84 || value.kind === 86 || value.kind === 87 || value.kind === 88
}
export function isBoltFunctionDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 96;
}
export function isBoltVariableDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 97;
}
export function isBoltImportSymbol(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 99
}
export function isBoltPlainImportSymbol(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 99;
}
export function isBoltImportDirective(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 100;
}
export function isBoltExportSymbol(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 101;
}
export function isBoltPlainExportSymbol(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 102;
}
export function isBoltExportDirective(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 103;
}
export function isBoltTraitOrImplElement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 96 || value.kind === 107 || value.kind === 112
}
export function isBoltTraitDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 105;
}
export function isBoltImplDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 106;
}
export function isBoltTypeAliasDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 107;
}
export function isBoltRecordMember(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 109 || value.kind === 112
}
export function isBoltRecordField(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 109;
}
export function isBoltRecordDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 110;
}
export function isBoltSourceElement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 93 || value.kind === 100 || value.kind === 103 || value.kind === 112 || value.kind === 105 || value.kind === 106 || value.kind === 107 || value.kind === 110 || value.kind === 96 || value.kind === 97 || value.kind === 110 || value.kind === 84 || value.kind === 86 || value.kind === 87 || value.kind === 88
}
export function isBoltMacroCall(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 112;
}
export function isJSSyntax(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 170 || value.kind === 171 || value.kind === 173 || value.kind === 176 || value.kind === 186 || value.kind === 180 || value.kind === 181 || value.kind === 182 || value.kind === 183 || value.kind === 184 || value.kind === 185 || value.kind === 172 || value.kind === 174 || value.kind === 175 || value.kind === 157 || value.kind === 158 || value.kind === 159 || value.kind === 160 || value.kind === 161 || value.kind === 162 || value.kind === 163 || value.kind === 164 || value.kind === 165 || value.kind === 166 || value.kind === 155 || value.kind === 0 || value.kind === 115 || value.kind === 116 || value.kind === 117 || value.kind === 118 || value.kind === 119 || value.kind === 120 || value.kind === 121 || value.kind === 122 || value.kind === 123 || value.kind === 124 || value.kind === 125 || value.kind === 126 || value.kind === 127 || value.kind === 128 || value.kind === 129 || value.kind === 130 || value.kind === 132 || value.kind === 133 || value.kind === 134 || value.kind === 135 || value.kind === 136 || value.kind === 137 || value.kind === 138 || value.kind === 139 || value.kind === 140 || value.kind === 141 || value.kind === 142 || value.kind === 143 || value.kind === 144 || value.kind === 145 || value.kind === 146 || value.kind === 147 || value.kind === 148 || value.kind === 149 || value.kind === 150 || value.kind === 151 || value.kind === 152 || value.kind === 153
}
export function isJSToken(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 0 || value.kind === 115 || value.kind === 116 || value.kind === 117 || value.kind === 118 || value.kind === 119 || value.kind === 120 || value.kind === 121 || value.kind === 122 || value.kind === 123 || value.kind === 124 || value.kind === 125 || value.kind === 126 || value.kind === 127 || value.kind === 128 || value.kind === 129 || value.kind === 130 || value.kind === 132 || value.kind === 133 || value.kind === 134 || value.kind === 135 || value.kind === 136 || value.kind === 137 || value.kind === 138 || value.kind === 139 || value.kind === 140 || value.kind === 141 || value.kind === 142 || value.kind === 143 || value.kind === 144 || value.kind === 145 || value.kind === 146 || value.kind === 147 || value.kind === 148 || value.kind === 149 || value.kind === 150 || value.kind === 151 || value.kind === 152 || value.kind === 153
}
export function isJSIdentifier(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 115;
}
export function isJSString(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 116;
}
export function isJSInteger(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 117;
}
export function isJSFromKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 118;
}
export function isJSReturnKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 119;
}
export function isJSTryKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 120;
}
export function isJSFinallyKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 121;
}
export function isJSCatchKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 122;
}
export function isJSImportKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 123;
}
export function isJSAsKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 124;
}
export function isJSConstKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 125;
}
export function isJSLetKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 126;
}
export function isJSExportKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 127;
}
export function isJSFunctionKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 128;
}
export function isJSWhileKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 129;
}
export function isJSForKeyword(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 130;
}
export function isJSOperatorLike(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 143 || value.kind === 144 || value.kind === 145 || value.kind === 146 || value.kind === 147 || value.kind === 148 || value.kind === 149 || value.kind === 150 || value.kind === 151 || value.kind === 152 || value.kind === 153
}
export function isJSOperator(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 132;
}
export function isJSCloseBrace(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 133;
}
export function isJSCloseBracket(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 134;
}
export function isJSCloseParen(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 135;
}
export function isJSOpenBrace(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 136;
}
export function isJSOpenBracket(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 137;
}
export function isJSOpenParen(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 138;
}
export function isJSSemi(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 139;
}
export function isJSComma(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 140;
}
export function isJSDot(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 141;
}
export function isJSDotDotDot(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 142;
}
export function isJSMulOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 143;
}
export function isJSAddOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 144;
}
export function isJSDivOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 145;
}
export function isJSSubOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 146;
}
export function isJSLtOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 147;
}
export function isJSGtOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 148;
}
export function isJSBOrOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 149;
}
export function isJSBXorOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 150;
}
export function isJSBAndOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 151;
}
export function isJSBNotOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 152;
}
export function isJSNotOp(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 153;
}
export function isJSPattern(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 155
}
export function isJSBindPattern(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 155;
}
export function isJSExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 157 || value.kind === 158 || value.kind === 159 || value.kind === 160 || value.kind === 161 || value.kind === 162 || value.kind === 163 || value.kind === 164 || value.kind === 165 || value.kind === 166
}
export function isJSConstantExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 157;
}
export function isJSMemberExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 158;
}
export function isJSCallExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 159;
}
export function isJSBinaryExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 160;
}
export function isJSUnaryExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 161;
}
export function isJSNewExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 162;
}
export function isJSSequenceExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 163;
}
export function isJSConditionalExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 164;
}
export function isJSLiteralExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 165;
}
export function isJSReferenceExpression(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 166;
}
export function isJSSourceElement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 182 || value.kind === 183 || value.kind === 184 || value.kind === 185 || value.kind === 172 || value.kind === 174 || value.kind === 175
}
export function isJSFunctionBodyElement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 183 || value.kind === 184 || value.kind === 185 || value.kind === 172 || value.kind === 174 || value.kind === 175
}
export function isJSStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 172 || value.kind === 174 || value.kind === 175
}
export function isJSCatchBlock(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 170;
}
export function isJSTryCatchStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 171;
}
export function isJSExpressionStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 172;
}
export function isJSConditionalCase(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 173;
}
export function isJSConditionalStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 174;
}
export function isJSReturnStatement(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 175;
}
export function isJSParameter(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 176;
}
export function isJSDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 182 || value.kind === 183 || value.kind === 184 || value.kind === 185
}
export function isJSImportBinding(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 180 || value.kind === 181
}
export function isJSImportStarBinding(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 180;
}
export function isJSImportAsBinding(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 181;
}
export function isJSImportDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 182;
}
export function isJSFunctionDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 183;
}
export function isJSArrowFunctionDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 184;
}
export function isJSLetDeclaration(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 185;
}
export function isJSSourceFile(value) {
if (!isSyntax(value)) {
return false;
}
return value.kind === 186;
}