(pos Pos)
| 304 | } |
| 305 | |
| 306 | func (p *Parser) parseSystemStmt(pos Pos) (*SystemStmt, error) { |
| 307 | if err := p.expectKeyword(KeywordSystem); err != nil { |
| 308 | return nil, err |
| 309 | } |
| 310 | |
| 311 | var err error |
| 312 | var expr Expr |
| 313 | switch { |
| 314 | case p.matchKeyword(KeywordFlush): |
| 315 | expr, err = p.parseSystemFlushExpr(p.Pos()) |
| 316 | case p.matchKeyword(KeywordReload): |
| 317 | expr, err = p.parseSystemReloadExpr(p.Pos()) |
| 318 | case p.matchKeyword(KeywordSync): |
| 319 | expr, err = p.parseSystemSyncExpr(p.Pos()) |
| 320 | case p.matchKeyword(KeywordStart), p.matchKeyword(KeywordStop): |
| 321 | expr, err = p.parseSystemCtrlExpr(p.Pos()) |
| 322 | case p.matchKeyword(KeywordDrop): |
| 323 | expr, err = p.parseSystemDropExpr(p.Pos()) |
| 324 | default: |
| 325 | return nil, fmt.Errorf("expected FLUSH|RELOAD|SYNC|START|STOP") |
| 326 | } |
| 327 | if err != nil { |
| 328 | return nil, err |
| 329 | } |
| 330 | return &SystemStmt{ |
| 331 | SystemPos: pos, |
| 332 | Expr: expr, |
| 333 | }, nil |
| 334 | } |
| 335 | |
| 336 | func (p *Parser) parseCheckStmt(pos Pos) (*CheckStmt, error) { |
| 337 | if err := p.expectKeyword(KeywordCheck); err != nil { |
no test coverage detected