code: def expect_optional_keyword(lexer: Lexer, value: str) -> Optional[Token]:
      
      token = lexer.token
      if token.kind == TokenKind.NAME and token.value == value:
          lexer.advance()
          return token
  
      return None
docs: Expect the next token optionally to be a given keyword.
  
      If the next token is a given keyword, return that token after advancing the lexer.
      Otherwise, do not change the parser state and return None.