(s: ITokenStream)
| 14 | * ``` |
| 15 | */ |
| 16 | export function parseDest(s: ITokenStream): Ast.Expression { |
| 17 | // 全部parseExprに任せるとparseReferenceが型注釈を巻き込んでパースしてしまうためIdentifierのみ個別に処理。 |
| 18 | if (s.is(TokenKind.Identifier)) { |
| 19 | const nameStartPos = s.getPos(); |
| 20 | const name = s.getTokenValue(); |
| 21 | s.next(); |
| 22 | return NODE('identifier', { name }, nameStartPos, s.getPos()); |
| 23 | } else { |
| 24 | return parseExpr(s, false); |
| 25 | } |
| 26 | } |
| 27 | |
| 28 | /** |
| 29 | * ```abnf |