returnStmt method

Stmt returnStmt()

Implementation

Stmt returnStmt() {
  const retTerminals = [
    TokenType.kSemicolon,
    TokenType.kEnd,
    TokenType.kElse,
    TokenType.kElseIf,
    TokenType.kUntil,
  ];

  final token = consume(TokenType.kReturn, 'Expected "return" keyword.');
  final args = argList(terminals: retTerminals);

  final next = peek();
  if(!retTerminals.contains(next.type)) {
    throw '${next.pos} Keyword "return" must be last in a block.';
  }
  return ReturnStmt(token, args);
}