(parseMapper: ParseMapper, tokens: SplootNode[])
| 206 | } |
| 207 | |
| 208 | export function parseToPyright(parseMapper: ParseMapper, tokens: SplootNode[]): ExpressionNode { |
| 209 | if (tokens.length === 0) { |
| 210 | return { |
| 211 | nodeType: ParseNodeType.Error, |
| 212 | category: ErrorExpressionCategory.MissingExpression, |
| 213 | id: parseMapper.getNextId(), |
| 214 | start: 0, |
| 215 | length: 0, |
| 216 | } |
| 217 | } |
| 218 | const [valid, index, leftNode] = parseLeafToPyright(parseMapper, tokens, 0) |
| 219 | if (!valid) { |
| 220 | // No valid leaf at the start |
| 221 | return { |
| 222 | nodeType: ParseNodeType.Error, |
| 223 | category: ErrorExpressionCategory.MissingExpression, |
| 224 | id: parseMapper.getNextId(), |
| 225 | start: 0, |
| 226 | length: 0, |
| 227 | } |
| 228 | } |
| 229 | const [, , overallNode] = parseExpressionToPyright(parseMapper, tokens, leftNode, index, 0) |
| 230 | return overallNode |
| 231 | } |
| 232 | |
| 233 | function parseLeaf(tokens: SplootNode[], currentIndex: number): [boolean, number] { |
| 234 | if (currentIndex >= tokens.length) { |
no test coverage detected