prettier/tests/disjoint-union-perf/ast.js

81 lines
1.3 KiB
JavaScript

/**
* @flow
*/
export type InferredType =
| 'unknown'
| 'gender'
| 'enum'
| 'number-or-string'
| 'number'
| 'string'
| 'error'
;
export type Pos = {
firstLine: number,
firstColumn: number,
lastLine: number,
lastColumn: number,
};
export type TypedBinaryOpNode = {
exprNodeType: 'binary_op',
binaryOp: 'plus' | 'multiply' | 'divide' | 'minus',
lhs: TypedNode,
rhs: TypedNode,
pos: Pos,
exprType: InferredType,
typed: true,
}
export type TypedUnaryMinusNode = {
exprNodeType: 'unary_minus',
op: TypedNode,
pos: Pos,
exprType: InferredType,
typed: true,
}
export type TypedNumberNode = {
exprNodeType: 'number',
value: number,
pos: Pos,
exprType: 'number',
typed: true,
}
export type TypedStringLiteralNode = {
exprNodeType: 'string_literal',
value: string,
pos: Pos,
exprType: 'string',
typed: true,
}
export type TypedVariableNode = {
exprNodeType: 'variable',
name: string,
pos: Pos,
exprType: InferredType,
typed: true,
};
export type TypedFunctionInvocationNode = {
exprNodeType: 'function_invocation',
name: string,
parameters: TypedNode[],
pos: Pos,
exprType: 'error' | 'string',
typed: true,
}
export type TypedNode =
| TypedBinaryOpNode
| TypedUnaryMinusNode
| TypedNumberNode
| TypedStringLiteralNode
| TypedVariableNode
| TypedFunctionInvocationNode
;