(s: RuntimeState)
| 68 | | otherSuggestions |
| 69 | |
| 70 | export const fullStringParse = (s: RuntimeState): InnerParseResult => { |
| 71 | s.parseOperand() |
| 72 | let result: InnerParseResult = parseUntilFinalizer(s).root |
| 73 | if (!result) { |
| 74 | return throwInternalError( |
| 75 | `Root was unexpectedly unset after parsing string '${s.scanner.scanned}'` |
| 76 | ) |
| 77 | } |
| 78 | |
| 79 | if (s.finalizer === "=") result = parseDefault(s as RootedRuntimeState) |
| 80 | else if (s.finalizer === "?") result = [result, "?"] |
| 81 | |
| 82 | s.scanner.shiftUntilNonWhitespace() |
| 83 | if (s.scanner.lookahead) { |
| 84 | // throw a parse error if non-whitespace characters made it here without being parsed |
| 85 | throwParseError(writeUnexpectedCharacterMessage(s.scanner.lookahead)) |
| 86 | } |
| 87 | return result |
| 88 | } |
| 89 | |
| 90 | type fullStringParse<s extends StaticState, $, args> = extractFinalizedResult< |
| 91 | parseUntilFinalizer<s, $, args> |
no test coverage detected
searching dependent graphs…